]> git.proxmox.com Git - ceph.git/blame - ceph/qa/workunits/rados/test_pool_access.sh
update sources to 12.2.7
[ceph.git] / ceph / qa / workunits / rados / test_pool_access.sh
CommitLineData
31f18b77
FG
1#!/bin/bash -x
2
3set -e
4
28e407b8
AA
5KEYRING=$(mktemp)
6trap cleanup EXIT ERR HUP INT QUIT
7
8cleanup() {
9 (ceph auth del client.mon_read || true) >/dev/null 2>&1
10 (ceph auth del client.mon_write || true) >/dev/null 2>&1
11
12 rm -f $KEYRING
13}
14
15expect_false()
31f18b77 16{
28e407b8
AA
17 set -x
18 if "$@"; then return 1; else return 0; fi
19}
20
21create_pool_op() {
22 ID=$1
23 POOL=$2
24
25 cat << EOF | CEPH_KEYRING="$KEYRING" python
26import rados
27
28cluster = rados.Rados(conffile="", rados_id="${ID}")
29cluster.connect()
30cluster.create_pool("${POOL}")
31EOF
31f18b77
FG
32}
33
28e407b8
AA
34delete_pool_op() {
35 ID=$1
36 POOL=$2
37
38 cat << EOF | CEPH_KEYRING="$KEYRING" python
39import rados
40
41cluster = rados.Rados(conffile="", rados_id="${ID}")
42cluster.connect()
43cluster.delete_pool("${POOL}")
44EOF
45}
46
47create_pool_snap_op() {
48 ID=$1
49 POOL=$2
50 SNAP=$3
51
52 cat << EOF | CEPH_KEYRING="$KEYRING" python
53import rados
54
55cluster = rados.Rados(conffile="", rados_id="${ID}")
56cluster.connect()
57ioctx = cluster.open_ioctx("${POOL}")
58
59ioctx.create_snap("${SNAP}")
60EOF
61}
62
63remove_pool_snap_op() {
64 ID=$1
65 POOL=$2
66 SNAP=$3
67
68 cat << EOF | CEPH_KEYRING="$KEYRING" python
69import rados
70
71cluster = rados.Rados(conffile="", rados_id="${ID}")
72cluster.connect()
73ioctx = cluster.open_ioctx("${POOL}")
74
75ioctx.remove_snap("${SNAP}")
76EOF
77}
78
79test_pool_op()
80{
81 ceph auth get-or-create client.mon_read mon 'allow r' >> $KEYRING
82 ceph auth get-or-create client.mon_write mon 'allow *' >> $KEYRING
83
84 expect_false create_pool_op mon_read pool1
85 create_pool_op mon_write pool1
86
87 expect_false create_pool_snap_op mon_read pool1 snap1
88 create_pool_snap_op mon_write pool1 snap1
89
90 expect_false remove_pool_snap_op mon_read pool1 snap1
91 remove_pool_snap_op mon_write pool1 snap1
92
93 expect_false delete_pool_op mon_read pool1
94 delete_pool_op mon_write pool1
95}
31f18b77
FG
96
97key=`ceph auth get-or-create-key client.poolaccess1 mon 'allow r' osd 'allow *'`
98rados --id poolaccess1 --key $key -p rbd ls
99
100key=`ceph auth get-or-create-key client.poolaccess2 mon 'allow r' osd 'allow * pool=nopool'`
28e407b8 101expect_false rados --id poolaccess2 --key $key -p rbd ls
31f18b77
FG
102
103key=`ceph auth get-or-create-key client.poolaccess3 mon 'allow r' osd 'allow rw pool=nopool'`
28e407b8
AA
104expect_false rados --id poolaccess3 --key $key -p rbd ls
105
106test_pool_op
31f18b77
FG
107
108echo OK