]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rest/test.py: cope with older requests.py versions
authorDan Mick <dan.mick@inktank.com>
Wed, 24 Jul 2013 23:08:30 +0000 (16:08 -0700)
committerDan Mick <dan.mick@inktank.com>
Wed, 24 Jul 2013 23:09:13 +0000 (16:09 -0700)
Older requests.py didn't have r.json (or r.json()); avoid by
decoding the json myself

Signed-off-by: Dan Mick <dan.mick@inktank.com>
qa/workunits/rest/test.py

index bcad4b03447a1b440288abf37ab5adba18251dc7..60dabab9678fe7dc9a1364c11c9bd0fc58356f57 100755 (executable)
@@ -1,8 +1,8 @@
 #!/usr/bin/python
 
 import exceptions
+import json
 import os
-# import nosetests
 import requests
 import subprocess
 import sys
@@ -43,9 +43,10 @@ def expect(url, method, respcode, contenttype, extra_hdrs=None, data=None):
 
     if contenttype.startswith('application'):
         if r_contenttype == 'application/json':
-            # may raise
             try:
-                assert(r.json != None)
+                # older requests.py doesn't create r.myjson; create it myself
+                r.myjson = json.loads(r.content)
+                assert(r.myjson != None)
             except Exception as e:
                 fail(r, 'Invalid JSON returned: "{0}"'.format(str(e)))
 
@@ -83,7 +84,7 @@ if __name__ == '__main__':
     assert('client.xx' in r.content)
 
     r = expect('auth/list.json', 'GET', 200, 'json')
-    dictlist = r.json['output']['auth_dump']
+    dictlist = r.myjson['output']['auth_dump']
     xxdict = [d for d in dictlist if d['entity'] == 'client.xx'][0]
     assert(xxdict)
     assert('caps' in xxdict)
@@ -97,7 +98,7 @@ if __name__ == '__main__':
     expect('auth/caps?entity=client.xx&caps=osd&caps=allow rw', 'PUT', 200,
            'json', JSONHDR)
     r = expect('auth/list.json', 'GET', 200, 'json')
-    dictlist = r.json['output']['auth_dump']
+    dictlist = r.myjson['output']['auth_dump']
     xxdict = [d for d in dictlist if d['entity'] == 'client.xx'][0]
     assert(xxdict)
     assert('caps' in xxdict)
@@ -116,7 +117,7 @@ if __name__ == '__main__':
     expect('auth/del?entity=client.xx', 'PUT', 200, 'json', JSONHDR)
 
     r = expect('osd/dump', 'GET', 200, 'json', JSONHDR)
-    assert('epoch' in r.json['output'])
+    assert('epoch' in r.myjson['output'])
 
     assert('GLOBAL' in expect('df', 'GET', 200, 'plain').content)
     assert('CATEGORY' in expect('df?detail=detail', 'GET', 200, 'plain').content)
@@ -124,12 +125,12 @@ if __name__ == '__main__':
     assert('CATEGORY' in expect('df?detail', 'GET', 200, 'plain').content)
 
     r = expect('df', 'GET', 200, 'json', JSONHDR)
-    assert('total_used' in r.json['output']['stats'])
+    assert('total_used' in r.myjson['output']['stats'])
     r = expect('df', 'GET', 200, 'xml', XMLHDR)
     assert(r.tree.find('output/stats/stats/total_used') is not None)
 
     r = expect('df?detail', 'GET', 200, 'json', JSONHDR)
-    assert('rd_kb' in r.json['output']['pools'][0]['stats'])
+    assert('rd_kb' in r.myjson['output']['pools'][0]['stats'])
     r = expect('df?detail', 'GET', 200, 'xml', XMLHDR)
     assert(r.tree.find('output/stats/pools/pool/stats/rd_kb') is not None)
 
@@ -149,7 +150,7 @@ if __name__ == '__main__':
     expect('mds/compat/rm_incompat?feature=4', 'PUT', 200, '')
 
     r = expect('mds/compat/show', 'GET', 200, 'json', JSONHDR)
-    assert('incompat' in r.json['output'])
+    assert('incompat' in r.myjson['output'])
     r = expect('mds/compat/show', 'GET', 200, 'xml', XMLHDR)
     assert(r.tree.find('output/mds_compat/incompat') is not None)
 
@@ -157,8 +158,8 @@ if __name__ == '__main__':
     expect('mds/deactivate?who=2', 'PUT', 400, '')
 
     r = expect('mds/dump.json', 'GET', 200, 'json')
-    assert('created' in r.json['output'])
-    current_epoch = r.json['output']['epoch']
+    assert('created' in r.myjson['output'])
+    current_epoch = r.myjson['output']['epoch']
     r = expect('mds/dump.xml', 'GET', 200, 'xml')
     assert(r.tree.find('output/mdsmap/created') is not None)
 
@@ -171,7 +172,7 @@ if __name__ == '__main__':
            200, '')
     expect('osd/pool/create?pool=data2&pg_num=10', 'PUT', 200, '')
     r = expect('osd/dump', 'GET', 200, 'json', JSONHDR)
-    pools = r.json['output']['pools']
+    pools = r.myjson['output']['pools']
     poolnum = None
     for p in pools:
         if p['pool_name'] == 'data2':
@@ -185,10 +186,10 @@ if __name__ == '__main__':
            '&sure=--yes-i-really-really-mean-it', 'PUT', 200, '')
     expect('mds/set_max_mds?maxmds=4', 'PUT', 200, '')
     r = expect('mds/dump.json', 'GET', 200, 'json')
-    assert(r.json['output']['max_mds'] == 4)
+    assert(r.myjson['output']['max_mds'] == 4)
     expect('mds/set_max_mds?maxmds=3', 'PUT', 200, '')
     r = expect('mds/stat.json', 'GET', 200, 'json')
-    assert('info' in r.json['output']['mdsmap'])
+    assert('info' in r.myjson['output']['mdsmap'])
     r = expect('mds/stat.xml', 'GET', 200, 'xml')
     assert(r.tree.find('output/mds_stat/mdsmap/info') is not None)
 
@@ -199,17 +200,17 @@ if __name__ == '__main__':
     r = expect('mon/getmap', 'GET', 200, '')
     assert(len(r.content) != 0)
     r = expect('mon_status.json', 'GET', 200, 'json')
-    assert('name' in r.json['output'])
+    assert('name' in r.myjson['output'])
     r = expect('mon_status.xml', 'GET', 200, 'xml')
     assert(r.tree.find('output/mon_status/name') is not None)
 
     bl = '192.168.0.1:0/1000'
     expect('osd/blacklist?blacklistop=add&addr=' + bl, 'PUT', 200, '')
     r = expect('osd/blacklist/ls.json', 'GET', 200, 'json')
-    assert([b for b in r.json['output'] if b['addr'] == bl])
+    assert([b for b in r.myjson['output'] if b['addr'] == bl])
     expect('osd/blacklist?blacklistop=rm&addr=' + bl, 'PUT', 200, '')
     r = expect('osd/blacklist/ls.json', 'GET', 200, 'json')
-    assert([b for b in r.json['output'] if b['addr'] == bl] == [])
+    assert([b for b in r.myjson['output'] if b['addr'] == bl] == [])
 
     expect('osd/crush/tunables?profile=legacy', 'PUT', 200, '')
     expect('osd/crush/tunables?profile=bobtail', 'PUT', 200, '')
@@ -222,73 +223,73 @@ if __name__ == '__main__':
 
     expect('osd/down?ids=0', 'PUT', 200, '')
     r = expect('osd/dump', 'GET', 200, 'json', JSONHDR)
-    assert(r.json['output']['osds'][0]['osd'] == 0)
-    assert(r.json['output']['osds'][0]['up'] == 0)
+    assert(r.myjson['output']['osds'][0]['osd'] == 0)
+    assert(r.myjson['output']['osds'][0]['up'] == 0)
 
     expect('osd/unset?key=noup', 'PUT', 200, '')
 
     for i in range(0,100):
         r = expect('osd/dump', 'GET', 200, 'json', JSONHDR)
-        assert(r.json['output']['osds'][0]['osd'] == 0)
-        if r.json['output']['osds'][0]['up'] == 1:
+        assert(r.myjson['output']['osds'][0]['osd'] == 0)
+        if r.myjson['output']['osds'][0]['up'] == 1:
             break
         else:
             print >> sys.stderr, "waiting for osd.0 to come back up"
             time.sleep(10)
 
     r = expect('osd/dump', 'GET', 200, 'json', JSONHDR)
-    assert(r.json['output']['osds'][0]['osd'] == 0)
-    assert(r.json['output']['osds'][0]['up'] == 1)
+    assert(r.myjson['output']['osds'][0]['osd'] == 0)
+    assert(r.myjson['output']['osds'][0]['up'] == 1)
 
     r = expect('osd/find?id=1', 'GET', 200, 'json', JSONHDR)
-    assert(r.json['output']['osd'] == 1)
+    assert(r.myjson['output']['osd'] == 1)
 
     expect('osd/out?ids=1', 'PUT', 200, '')
     r = expect('osd/dump', 'GET', 200, 'json', JSONHDR)
-    assert(r.json['output']['osds'][1]['osd'] == 1)
-    assert(r.json['output']['osds'][1]['in'] == 0)
+    assert(r.myjson['output']['osds'][1]['osd'] == 1)
+    assert(r.myjson['output']['osds'][1]['in'] == 0)
 
     expect('osd/in?ids=1', 'PUT', 200, '')
     r = expect('osd/dump', 'GET', 200, 'json', JSONHDR)
-    assert(r.json['output']['osds'][1]['osd'] == 1)
-    assert(r.json['output']['osds'][1]['in'] == 1)
+    assert(r.myjson['output']['osds'][1]['osd'] == 1)
+    assert(r.myjson['output']['osds'][1]['in'] == 1)
 
     r = expect('osd/find?id=0', 'GET', 200, 'json', JSONHDR)
-    assert(r.json['output']['osd'] == 0)
+    assert(r.myjson['output']['osd'] == 0)
 
     r = expect('osd/getmaxosd', 'GET', 200, 'xml', XMLHDR)
     assert(r.tree.find('output/getmaxosd/max_osd') is not None)
     r = expect('osd/getmaxosd', 'GET', 200, 'json', JSONHDR)
-    saved_maxosd = r.json['output']['max_osd']
+    saved_maxosd = r.myjson['output']['max_osd']
     expect('osd/setmaxosd?newmax=10', 'PUT', 200, '')
     r = expect('osd/getmaxosd', 'GET', 200, 'json', JSONHDR)
-    assert(r.json['output']['max_osd'] == 10)
+    assert(r.myjson['output']['max_osd'] == 10)
     expect('osd/setmaxosd?newmax={0}'.format(saved_maxosd), 'PUT', 200, '')
     r = expect('osd/getmaxosd', 'GET', 200, 'json', JSONHDR)
-    assert(r.json['output']['max_osd'] == saved_maxosd)
+    assert(r.myjson['output']['max_osd'] == saved_maxosd)
 
     r = expect('osd/create', 'PUT', 200, 'json', JSONHDR)
-    assert('osdid' in r.json['output'])
-    osdid = r.json['output']['osdid']
+    assert('osdid' in r.myjson['output'])
+    osdid = r.myjson['output']['osdid']
     expect('osd/lost?id={0}'.format(osdid), 'PUT', 400, '')
     expect('osd/lost?id={0}&sure=--yes-i-really-mean-it'.format(osdid),
            'PUT', 200, 'json', JSONHDR)
     expect('osd/rm?ids={0}'.format(osdid), 'PUT', 200, '')
     r = expect('osd/ls', 'GET', 200, 'json', JSONHDR)
-    assert(isinstance(r.json['output'], list))
+    assert(isinstance(r.myjson['output'], list))
     r = expect('osd/ls', 'GET', 200, 'xml', XMLHDR)
     assert(r.tree.find('output/osds/osd') is not None)
 
 
     expect('osd/pause', 'PUT', 200, '')
     r = expect('osd/dump', 'GET', 200, 'json', JSONHDR)
-    assert('pauserd,pausewr' in r.json['output']['flags'])
+    assert('pauserd,pausewr' in r.myjson['output']['flags'])
     expect('osd/unpause', 'PUT', 200, '')
     r = expect('osd/dump', 'GET', 200, 'json', JSONHDR)
-    assert('pauserd,pausewr' not in r.json['output']['flags'])
+    assert('pauserd,pausewr' not in r.myjson['output']['flags'])
 
     r = expect('osd/tree', 'GET', 200, 'json', JSONHDR)
-    assert('nodes' in r.json['output'])
+    assert('nodes' in r.myjson['output'])
     r = expect('osd/tree', 'GET', 200, 'xml', XMLHDR)
     assert(r.tree.find('output/tree/nodes') is not None)
     expect('osd/pool/mksnap?pool=data&snap=datasnap', 'PUT', 200, '')
@@ -298,20 +299,20 @@ if __name__ == '__main__':
 
     expect('osd/pool/create?pool=data2&pg_num=10', 'PUT', 200, '')
     r = expect('osd/lspools', 'GET', 200, 'json', JSONHDR)
-    assert([p for p in r.json['output'] if p['poolname'] == 'data2'])
+    assert([p for p in r.myjson['output'] if p['poolname'] == 'data2'])
     expect('osd/pool/rename?srcpool=data2&destpool=data3', 'PUT', 200, '')
     r = expect('osd/lspools', 'GET', 200, 'json', JSONHDR)
-    assert([p for p in r.json['output'] if p['poolname'] == 'data3'])
+    assert([p for p in r.myjson['output'] if p['poolname'] == 'data3'])
     expect('osd/pool/delete?pool=data3', 'PUT', 400, '')
     expect('osd/pool/delete?pool=data3&pool2=data3&sure=--yes-i-really-really-mean-it', 'PUT', 200, '')
 
     r = expect('osd/stat', 'GET', 200, 'json', JSONHDR)
-    assert('num_up_osds' in r.json['output'])
+    assert('num_up_osds' in r.myjson['output'])
     r = expect('osd/stat', 'GET', 200, 'xml', XMLHDR)
     assert(r.tree.find('output/osdmap/num_up_osds') is not None)
 
     r = expect('osd/ls', 'GET', 200, 'json', JSONHDR)
-    for osdid in r.json['output']:
+    for osdid in r.myjson['output']:
         # XXX no tell yet
         # expect('tell?target=osd.{0}&args=version'.format(osdid), 'PUT',
         #         200, '')
@@ -321,7 +322,7 @@ if __name__ == '__main__':
     expect('pg/debug?debugop=degraded_pgs_exist', 'GET', 200, '')
     expect('pg/deep-scrub?pgid=0.0', 'PUT', 200, '')
     r = expect('pg/dump', 'GET', 200, 'json', JSONHDR)
-    assert('pg_stats_sum' in r.json['output'])
+    assert('pg_stats_sum' in r.myjson['output'])
     r = expect('pg/dump', 'GET', 200, 'xml', XMLHDR)
     assert(r.tree.find('output/pg_map/pg_stats_sum') is not None)
 
@@ -335,8 +336,8 @@ if __name__ == '__main__':
     assert(len(r.content) != 0)
 
     r = expect('pg/map?pgid=0.0', 'GET', 200, 'json', JSONHDR)
-    assert('acting' in r.json['output'])
-    assert(r.json['output']['pgid'] == '0.0')
+    assert('acting' in r.myjson['output'])
+    assert(r.myjson['output']['pgid'] == '0.0')
     r = expect('pg/map?pgid=0.0', 'GET', 200, 'xml', XMLHDR)
     assert(r.tree.find('output/pg_map/acting') is not None)
     assert(r.tree.find('output/pg_map/pgid').text == '0.0')
@@ -348,15 +349,15 @@ if __name__ == '__main__':
 
     expect('pg/set_full_ratio?ratio=0.90', 'PUT', 200, '')
     r = expect('pg/dump', 'GET', 200, 'json', JSONHDR)
-    assert(float(r.json['output']['full_ratio']) == 0.90)
+    assert(float(r.myjson['output']['full_ratio']) == 0.90)
     expect('pg/set_full_ratio?ratio=0.95', 'PUT', 200, '')
     expect('pg/set_nearfull_ratio?ratio=0.90', 'PUT', 200, '')
     r = expect('pg/dump', 'GET', 200, 'json', JSONHDR)
-    assert(float(r.json['output']['near_full_ratio']) == 0.90)
+    assert(float(r.myjson['output']['near_full_ratio']) == 0.90)
     expect('pg/set_full_ratio?ratio=0.85', 'PUT', 200, '')
 
     r = expect('pg/stat', 'GET', 200, 'json', JSONHDR)
-    assert('pg_stats_sum' in r.json['output'])
+    assert('pg_stats_sum' in r.myjson['output'])
     r = expect('pg/stat', 'GET', 200, 'xml', XMLHDR)
     assert(r.tree.find('output/pg_map/pg_stats_sum') is not None)
 
@@ -367,12 +368,12 @@ if __name__ == '__main__':
 
     # report's CRC needs to be handled
     # r = expect('report', 'GET', 200, 'json', JSONHDR)
-    # assert('osd_stats' in r.json['output'])
+    # assert('osd_stats' in r.myjson['output'])
     # r = expect('report', 'GET', 200, 'xml', XMLHDR)
     # assert(r.tree.find('output/report/osdmap') is not None)
 
     r = expect('status', 'GET', 200, 'json', JSONHDR)
-    assert('osdmap' in r.json['output'])
+    assert('osdmap' in r.myjson['output'])
     r = expect('status', 'GET', 200, 'xml', XMLHDR)
     assert(r.tree.find('output/status/osdmap') is not None)
 
@@ -393,21 +394,21 @@ if __name__ == '__main__':
     for v in ['pg_num', 'pgp_num', 'size', 'min_size', 'crash_replay_interval',
               'crush_ruleset']:
         r = expect('osd/pool/get.json?pool=data&var=' + v, 'GET', 200, 'json')
-        assert(v in r.json['output'])
+        assert(v in r.myjson['output'])
 
     r = expect('osd/pool/get.json?pool=data&var=size', 'GET', 200, 'json')
-    assert(r.json['output']['size'] == 2)
+    assert(r.myjson['output']['size'] == 2)
 
     expect('osd/pool/set?pool=data&var=size&val=3', 'PUT', 200, 'plain')
     r = expect('osd/pool/get.json?pool=data&var=size', 'GET', 200, 'json')
-    assert(r.json['output']['size'] == 3)
+    assert(r.myjson['output']['size'] == 3)
 
     expect('osd/pool/set?pool=data&var=size&val=2', 'PUT', 200, 'plain')
     r = expect('osd/pool/get.json?pool=data&var=size', 'GET', 200, 'json')
-    assert(r.json['output']['size'] == 2)
+    assert(r.myjson['output']['size'] == 2)
 
     r = expect('osd/pool/get.json?pool=rbd&var=crush_ruleset', 'GET', 200, 'json')
-    assert(r.json['output']['crush_ruleset'] == 2)
+    assert(r.myjson['output']['crush_ruleset'] == 2)
 
     expect('osd/thrash?num_epochs=10', 'PUT', 200, '')
     print 'OK'