]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
qa/workunits/rest/test_mgr_rest_api.py: improvements
authorSage Weil <sage@redhat.com>
Thu, 1 Jun 2017 14:34:06 +0000 (10:34 -0400)
committerSage Weil <sage@redhat.com>
Thu, 8 Jun 2017 18:29:37 +0000 (14:29 -0400)
Signed-off-by: Sage Weil <sage@redhat.com>
qa/workunits/rest/test-restful.sh [new file with mode: 0755]
qa/workunits/rest/test_mgr_rest_api.py [changed mode: 0644->0755]

diff --git a/qa/workunits/rest/test-restful.sh b/qa/workunits/rest/test-restful.sh
new file mode 100755 (executable)
index 0000000..7beec9f
--- /dev/null
@@ -0,0 +1,16 @@
+#!/bin/sh -ex
+
+mydir=`dirname $0`
+
+secret=`ceph config-key get mgr/restful/keys/admin`
+active=`ceph mgr dump | jq -r .active_name`
+echo "active $active  admin secret $secret"
+
+prefix="mgr/restful/$active"
+addr=`ceph config-key get $prefix/server_addr`
+port=`ceph config-key get $prefix/server_port`
+url="https://$addr:$port"
+echo "prefix $prefix url $url"
+$mydir/test_mgr_rest_api.py $url $secret
+
+echo $0 OK
old mode 100644 (file)
new mode 100755 (executable)
index 5b181d0..c3521b5
@@ -9,20 +9,14 @@ from requests.packages.urllib3.exceptions import InsecureRequestWarning
 requests.packages.urllib3.disable_warnings(category=InsecureRequestWarning)
 
 if len(sys.argv) < 3:
-    print("Usage: %s <node> <admin_key>" % sys.argv[0])
+    print("Usage: %s <url> <admin_key>" % sys.argv[0])
     sys.exit(1)
 
-host = sys.argv[1]
-addr = 'https://' + host + ':8003'
-
+addr = sys.argv[1]
 auth = ('admin', sys.argv[2])
 
 request = None
 
-repeat = 1
-if len(sys.argv) > 2:
-    repeat = int(sys.argv[2])
-
 # Create a pool and get its id
 request = requests.post(addr + '/pool?wait=yes', json={'name': 'supertestfriends', 'pg_num': 128}, verify=False, auth=auth)
 print(request.text)
@@ -30,6 +24,17 @@ request = requests.get(addr + '/pool', verify=False, auth=auth)
 assert(request.json()[-1]['pool_name'] == 'supertestfriends')
 pool_id = request.json()[-1]['pool']
 
+# get a mon name
+request = requests.get(addr + '/mon', verify=False, auth=auth)
+firstmon = request.json()[0]['name']
+print('first mon is %s' % firstmon)
+
+# get a server name
+request = requests.get(addr + '/osd', verify=False, auth=auth)
+aserver = request.json()[0]['server']
+print('a server is %s' % aserver)
+
+
 screenplay = [
     ('get',    '/', {}),
     ('get',    '/config/cluster', {}),
@@ -37,13 +42,13 @@ screenplay = [
     ('get',    '/crush/ruleset', {}),
     ('get',    '/doc', {}),
     ('get',    '/mon', {}),
-    ('get',    '/mon/' + host, {}),
+    ('get',    '/mon/' + firstmon, {}),
     ('get',    '/osd', {}),
     ('get',    '/osd/0', {}),
     ('get',    '/osd/0/command', {}),
     ('get',    '/pool/0', {}),
     ('get',    '/server', {}),
-    ('get',    '/server/' + host, {}),
+    ('get',    '/server/' + aserver, {}),
     ('post',   '/osd/0/command', {'command': 'scrub'}),
     ('post',   '/pool?wait=1', {'name': 'supertestfriends', 'pg_num': 128}),
     ('patch',  '/osd/0', {'in': False}),
@@ -70,3 +75,5 @@ for method, endpoint, args in screenplay:
     if request.status_code != 200 or 'error' in request.json():
         print('ERROR: %s request for URL "%s" failed' % (method, url))
         sys.exit(1)
+
+print('OK')