From 6d0d1d96c2d34153f14cacb569688d7a929199d6 Mon Sep 17 00:00:00 2001 From: Xiubo Li Date: Fri, 25 Dec 2020 09:08:04 +0800 Subject: [PATCH] qa: add REST API method support for ceph-iscsi Fixes: https://tracker.ceph.com/issues/48529 Signed-off-by: Xiubo Li --- qa/suites/rbd/iscsi/workloads/ceph_iscsi.yaml | 9 +++ .../cli-integration/rbd/rest_api_create.t | 58 +++++++++++++++++++ .../cli-integration/rbd/rest_api_delete.t | 27 +++++++++ 3 files changed, 94 insertions(+) create mode 100644 src/test/cli-integration/rbd/rest_api_create.t create mode 100644 src/test/cli-integration/rbd/rest_api_delete.t diff --git a/qa/suites/rbd/iscsi/workloads/ceph_iscsi.yaml b/qa/suites/rbd/iscsi/workloads/ceph_iscsi.yaml index 5d00e800903e9..f91a35eafd22e 100644 --- a/qa/suites/rbd/iscsi/workloads/ceph_iscsi.yaml +++ b/qa/suites/rbd/iscsi/workloads/ceph_iscsi.yaml @@ -11,3 +11,12 @@ tasks: - src/test/cli-integration/rbd/iscsi_client.t c_gateway.1: - src/test/cli-integration/rbd/gwcli_delete.t +- cram: + parallel: False + clients: + a_gateway.0: + - src/test/cli-integration/rbd/rest_api_create.t + b_client.0: + - src/test/cli-integration/rbd/iscsi_client.t + c_gateway.1: + - src/test/cli-integration/rbd/rest_api_delete.t diff --git a/src/test/cli-integration/rbd/rest_api_create.t b/src/test/cli-integration/rbd/rest_api_create.t new file mode 100644 index 0000000000000..0006626cc8105 --- /dev/null +++ b/src/test/cli-integration/rbd/rest_api_create.t @@ -0,0 +1,58 @@ +Create a datapool/block1 disk +============================= + $ sudo curl --user admin:admin -d mode=create -d size=300M -X PUT http://127.0.0.1:5000/api/disk/datapool/block1 -s + { + "message": "disk create/update successful" + } + +Create the target IQN +===================== + $ sudo curl --user admin:admin -X PUT http://127.0.0.1:5000/api/target/iqn.2003-01.com.redhat.iscsi-gw:ceph-gw -s + { + "message": "Target defined successfully" + } + +Create the first gateway +======================== + $ HOST=`python3 -c "import socket; print(socket.getfqdn())"` + > IP=`hostname -i | awk '{print $1}'` + > sudo curl --user admin:admin -d ip_address=$IP -X PUT http://127.0.0.1:5000/api/gateway/iqn.2003-01.com.redhat.iscsi-gw:ceph-gw/$HOST -s + { + "message": "Gateway creation successful" + } + +Create the second gateway +======================== + $ IP=`cat /etc/ceph/iscsi-gateway.cfg |grep 'trusted_ip_list' | awk -F'[, ]' '{print $3}'` + > if [ "$IP" != `hostname -i | awk '{print $1}'` ]; then + > HOST=`python3 -c "import socket; print(socket.getfqdn('$IP'))"` + > sudo curl --user admin:admin -d ip_address=$IP -X PUT http://127.0.0.1:5000/api/gateway/iqn.2003-01.com.redhat.iscsi-gw:ceph-gw/$HOST -s + > else + > IP=`cat /etc/ceph/iscsi-gateway.cfg |grep 'trusted_ip_list' | awk -F'[, ]' '{print $4}'` + > HOST=`python3 -c "import socket; print(socket.getfqdn('$IP'))"` + > sudo curl --user admin:admin -d ip_address=$IP -X PUT http://127.0.0.1:5000/api/gateway/iqn.2003-01.com.redhat.iscsi-gw:ceph-gw/$HOST -s + > fi + { + "message": "Gateway creation successful" + } + +Attach the disk +=============== + $ sudo curl --user admin:admin -d disk=datapool/block1 -X PUT http://127.0.0.1:5000/api/targetlun/iqn.2003-01.com.redhat.iscsi-gw:ceph-gw -s + { + "message": "Target LUN mapping updated successfully" + } + +Create a host +============= + $ sudo curl --user admin:admin -X PUT http://127.0.0.1:5000/api/client/iqn.2003-01.com.redhat.iscsi-gw:ceph-gw/iqn.1994-05.com.redhat:client -s + { + "message": "client create/update successful" + } + +Map the LUN +=========== + $ sudo curl --user admin:admin -d disk=datapool/block1 -X PUT http://127.0.0.1:5000/api/clientlun/iqn.2003-01.com.redhat.iscsi-gw:ceph-gw/iqn.1994-05.com.redhat:client -s + { + "message": "client masking update successful" + } diff --git a/src/test/cli-integration/rbd/rest_api_delete.t b/src/test/cli-integration/rbd/rest_api_delete.t new file mode 100644 index 0000000000000..f8406447f1b90 --- /dev/null +++ b/src/test/cli-integration/rbd/rest_api_delete.t @@ -0,0 +1,27 @@ +Delete the host +=============== + $ sudo curl --user admin:admin -X DELETE http://127.0.0.1:5000/api/client/iqn.2003-01.com.redhat.iscsi-gw:ceph-gw/iqn.1994-05.com.redhat:client -s + { + "message": "client delete successful" + } + +Delete the iscsi-targets disk +============================= + $ sudo curl --user admin:admin -d disk=datapool/block1 -X DELETE http://127.0.0.1:5000/api/targetlun/iqn.2003-01.com.redhat.iscsi-gw:ceph-gw -s + { + "message": "Target LUN mapping updated successfully" + } + +Delete the target IQN +===================== + $ sudo curl --user admin:admin -X DELETE http://127.0.0.1:5000/api/target/iqn.2003-01.com.redhat.iscsi-gw:ceph-gw -s + { + "message": "Target deleted." + } + +Delete the disks +================ + $ sudo curl --user admin:admin -X DELETE http://127.0.0.1:5000/api/disk/datapool/block1 -s + { + "message": "disk map deletion successful" + } -- 2.39.5