]> git.proxmox.com Git - ceph.git/blame_incremental - ceph/qa/workunits/rados/test_pool_access.sh
bump version to 18.2.4-pve3
[ceph.git] / ceph / qa / workunits / rados / test_pool_access.sh
... / ...
CommitLineData
1#!/usr/bin/env bash
2
3set -ex
4
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()
16{
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_ARGS="-k $KEYRING" python3
26import rados
27
28cluster = rados.Rados(conffile="", rados_id="${ID}")
29cluster.connect()
30cluster.create_pool("${POOL}")
31EOF
32}
33
34delete_pool_op() {
35 ID=$1
36 POOL=$2
37
38 cat << EOF | CEPH_ARGS="-k $KEYRING" python3
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_ARGS="-k $KEYRING" python3
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_ARGS="-k $KEYRING" python3
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}
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'`
101expect_false rados --id poolaccess2 --key $key -p rbd ls
102
103key=`ceph auth get-or-create-key client.poolaccess3 mon 'allow r' osd 'allow rw pool=nopool'`
104expect_false rados --id poolaccess3 --key $key -p rbd ls
105
106test_pool_op
107
108echo OK