def test_cluster(self): c = HeketiClient(TEST_SERVER, "admin", TEST_ADMIN_KEY) cluster = c.cluster_create() self.assertEqual(True, cluster['id'] != "") self.assertEqual(True, len(cluster['nodes']) == 0) self.assertEqual(True, len(cluster['volumes']) == 0) # Request bad id with self.assertRaises(requests.exceptions.HTTPError): c.cluster_info("bad") # Get info about the cluster info = c.cluster_info(cluster['id']) self.assertEqual(True, info == cluster) # Get a list of clusters list = c.cluster_list() self.assertEqual(True, len(list['clusters']) == 1) self.assertEqual(True, list['clusters'][0] == cluster['id']) # Delete non-existent cluster with self.assertRaises(requests.exceptions.HTTPError): c.cluster_delete("badid") # Delete current cluster self.assertEqual(True, c.cluster_delete(info['id']))
def test_cluster(self): c = HeketiClient(TEST_SERVER, "admin", TEST_ADMIN_KEY) cluster_req = {} cluster_req['block'] = True cluster_req['file'] = True cluster = c.cluster_create(cluster_req) self.assertNotEqual(cluster['id'], "") self.assertEqual(len(cluster['nodes']), 0) self.assertEqual(len(cluster['volumes']), 0) self.assertTrue(cluster['block']) self.assertTrue(cluster['file']) # Request bad id with self.assertRaises(requests.exceptions.HTTPError): c.cluster_info("bad") # Get info about the cluster info = c.cluster_info(cluster['id']) self.assertEqual(info, cluster) # change cluster flags cluster_setflags_req = {} cluster_setflags_req['block'] = False cluster_setflags_req['file'] = True ok = c.cluster_setflags(cluster['id'], cluster_setflags_req) self.assertTrue(ok) # verify the cluster flags have changed info = c.cluster_info(cluster['id']) self.assertEqual(info['id'], cluster['id']) self.assertFalse(info['block']) self.assertTrue(info['file']) # Get a list of clusters list = c.cluster_list() self.assertEqual(1, len(list['clusters'])) self.assertEqual(list['clusters'][0], cluster['id']) # Delete non-existent cluster with self.assertRaises(requests.exceptions.HTTPError): c.cluster_delete("badid") # Delete current cluster self.assertTrue(c.cluster_delete(info['id']))
def test_volume(self): # Create cluster c = HeketiClient(TEST_SERVER, "admin", TEST_ADMIN_KEY) self.assertEqual(True, c != '') cluster = c.cluster_create() self.assertEqual(True, cluster['id'] != '') # Create node request packet for i in range(4): node_req = {} node_req['cluster'] = cluster['id'] node_req['hostnames'] = { "manage": ["node%s-manage.gluster.lab.com" % (i)], "storage": ["node%s-storage.gluster.lab.com" % (i)] } node_req['zone'] = i + 1 # Create node node = c.node_add(node_req) self.assertEqual(True, node['id'] != '') # Create and add devices for i in range(1, 20): device_req = {} device_req['name'] = "sda%s" % (i) device_req['weight'] = 100 device_req['node'] = node['id'] device = c.device_add(device_req) self.assertEqual(True, device) # Get list of volumes list = c.volume_list() self.assertEqual(True, len(list['volumes']) == 0) # Create a volume volume_req = {} volume_req['size'] = 10 volume = c.volume_create(volume_req) self.assertEqual(True, volume['id'] != "") self.assertEqual(True, volume['size'] == volume_req['size']) # Get list of volumes list = c.volume_list() self.assertEqual(True, len(list['volumes']) == 1) self.assertEqual(True, list['volumes'][0] == volume['id']) # Get info on incorrect id with self.assertRaises(requests.exceptions.HTTPError): c.volume_info("badid") # Get info info = c.volume_info(volume['id']) self.assertEqual(True, info == volume) # Expand volume with a bad id volume_ex_params = {} volume_ex_params['expand_size'] = 10 with self.assertRaises(requests.exceptions.HTTPError): c.volume_expand("badid", volume_ex_params) # Expand volume volumeInfo = c.volume_expand(volume['id'], volume_ex_params) self.assertEqual(True, volumeInfo['size'] == 20) # Delete bad id with self.assertRaises(requests.exceptions.HTTPError): c.volume_delete("badid") # Delete volume volume_delete = c.volume_delete(volume['id']) self.assertEqual(True, volume_delete) clusterInfo = c.cluster_info(cluster['id']) for node_id in clusterInfo['nodes']: #Get node information nodeInfo = c.node_info(node_id) # Delete all devices for device in nodeInfo['devices']: device_delete = c.device_delete(device['id']) self.assertEqual(True, device_delete) #Delete node node_delete = c.node_delete(node_id) self.assertEqual(True, node_delete) # Delete cluster cluster_delete = c.cluster_delete(cluster['id']) self.assertEqual(True, cluster_delete)
def test_volume(self): # Create cluster c = HeketiClient(TEST_SERVER, "admin", TEST_ADMIN_KEY) self.assertEqual(True, c != '') cluster = c.cluster_create() self.assertEqual(True, cluster['id'] != '') # Create node request packet print "Creating Cluster" for i in range(3): node_req = {} node_req['cluster'] = cluster['id'] node_req['hostnames'] = { "manage": ["node%s-manage.gluster.lab.com" % (i)], "storage": ["node%s-storage.gluster.lab.com" % (i)]} node_req['zone'] = i + 1 # Create node node = c.node_add(node_req) self.assertEqual(True, node['id'] != '') # Create and add devices for i in range(1, 4): device_req = {} device_req['name'] = "sda%s" % (i) device_req['node'] = node['id'] device = c.device_add(device_req) self.assertEqual(True, device) # Get list of volumes list = c.volume_list() self.assertEqual(True, len(list['volumes']) == 0) # Create a volume print "Creating a volume" volume_req = {} volume_req['size'] = 10 volume = c.volume_create(volume_req) self.assertEqual(True, volume['id'] != "") self.assertEqual(True, volume['size'] == volume_req['size']) # Get list of volumes list = c.volume_list() self.assertEqual(True, len(list['volumes']) == 1) self.assertEqual(True, list['volumes'][0] == volume['id']) # Get info on incorrect id with self.assertRaises(requests.exceptions.HTTPError): c.volume_info("badid") # Get info info = c.volume_info(volume['id']) self.assertEqual(True, info == volume) # Expand volume with a bad id volume_ex_params = {} volume_ex_params['expand_size'] = 10 with self.assertRaises(requests.exceptions.HTTPError): c.volume_expand("badid", volume_ex_params) # Expand volume print "Expanding volume" volumeInfo = c.volume_expand(volume['id'], volume_ex_params) self.assertEqual(True, volumeInfo['size'] == 20) # Delete bad id with self.assertRaises(requests.exceptions.HTTPError): c.volume_delete("badid") # Delete volume print "Deleting volume" volume_delete = c.volume_delete(volume['id']) self.assertEqual(True, volume_delete) print "Deleting Cluster" clusterInfo = c.cluster_info(cluster['id']) for node_id in clusterInfo['nodes']: # Get node information nodeInfo = c.node_info(node_id) # Delete all devices for device in nodeInfo['devices']: device_delete = c.device_delete(device['id']) self.assertEqual(True, device_delete) # Delete node node_delete = c.node_delete(node_id) self.assertEqual(True, node_delete) # Delete cluster cluster_delete = c.cluster_delete(cluster['id']) self.assertEqual(True, cluster_delete)
def test_volume(self): # Create cluster c = HeketiClient(TEST_SERVER, "admin", TEST_ADMIN_KEY, poll_delay=TEST_POLL_DELAY) self.assertEqual(True, c != '') cluster_req = {} cluster_req['block'] = True cluster_req['file'] = True cluster = c.cluster_create(cluster_req) self.assertNotEqual(cluster['id'], '') # Create node request packet print ("Creating Cluster") for i in range(3): node_req = {} node_req['cluster'] = cluster['id'] node_req['hostnames'] = { "manage": ["node%s-manage.gluster.lab.com" % (i)], "storage": ["node%s-storage.gluster.lab.com" % (i)]} node_req['zone'] = i + 1 # Create node node = c.node_add(node_req) self.assertNotEqual(node['id'], '') # Create and add devices for i in range(1, 4): device_req = {} device_req['name'] = "/dev/sda%s" % (i) device_req['node'] = node['id'] device = c.device_add(device_req) self.assertTrue(device) # Get list of volumes list = c.volume_list() self.assertEqual(len(list['volumes']), 0) # Create a volume print ("Creating a volume") volume_req = {} volume_req['size'] = 10 volume = c.volume_create(volume_req) self.assertNotEqual(volume['id'], "") self.assertEqual(volume['size'], volume_req['size']) # Get list of volumes list = c.volume_list() self.assertEqual(len(list['volumes']), 1) self.assertEqual(list['volumes'][0], volume['id']) # Get info on incorrect id with self.assertRaises(requests.exceptions.HTTPError): c.volume_info("badid") # Get info info = c.volume_info(volume['id']) self.assertEqual(info, volume) # Expand volume with a bad id volume_ex_params = {} volume_ex_params['expand_size'] = 10 with self.assertRaises(requests.exceptions.HTTPError): c.volume_expand("badid", volume_ex_params) # Expand volume print ("Expanding volume") volumeInfo = c.volume_expand(volume['id'], volume_ex_params) self.assertEqual(volumeInfo['size'], 20) # Delete bad id with self.assertRaises(requests.exceptions.HTTPError): c.volume_delete("badid") # Delete volume print ("Deleting volume") volume_delete = c.volume_delete(volume['id']) self.assertTrue(volume_delete) print ("Deleting Cluster") clusterInfo = c.cluster_info(cluster['id']) for node_id in clusterInfo['nodes']: # Get node information nodeInfo = c.node_info(node_id) # Delete all devices for device in nodeInfo['devices']: devid = device['id'] self.assertTrue(c.device_state(devid, {'state': 'offline'})) self.assertTrue(c.device_state(devid, {'state': 'failed'})) device_delete = c.device_delete(devid) self.assertTrue(device_delete) # Delete node node_delete = c.node_delete(node_id) self.assertTrue(node_delete) # Delete cluster cluster_delete = c.cluster_delete(cluster['id']) self.assertTrue(cluster_delete)
def test_volume(self): # Create cluster c = HeketiClient(TEST_SERVER, "admin", TEST_ADMIN_KEY) self.assertEqual(True, c != '') cluster_req = {} cluster_req['block'] = True cluster_req['file'] = True cluster = c.cluster_create(cluster_req) self.assertNotEqual(cluster['id'], '') # Create node request packet print("Creating Cluster") for i in range(3): node_req = {} node_req['cluster'] = cluster['id'] node_req['hostnames'] = { "manage": ["node%s-manage.gluster.lab.com" % (i)], "storage": ["node%s-storage.gluster.lab.com" % (i)] } node_req['zone'] = i + 1 # Create node node = c.node_add(node_req) self.assertNotEqual(node['id'], '') # Create and add devices for i in range(1, 4): device_req = {} device_req['name'] = "/dev/sda%s" % (i) device_req['node'] = node['id'] device = c.device_add(device_req) self.assertTrue(device) # Get list of volumes list = c.volume_list() self.assertEqual(len(list['volumes']), 0) # Create a volume print("Creating a volume") volume_req = {} volume_req['size'] = 10 volume = c.volume_create(volume_req) self.assertNotEqual(volume['id'], "") self.assertEqual(volume['size'], volume_req['size']) # Get list of volumes list = c.volume_list() self.assertEqual(len(list['volumes']), 1) self.assertEqual(list['volumes'][0], volume['id']) # Get info on incorrect id with self.assertRaises(requests.exceptions.HTTPError): c.volume_info("badid") # Get info info = c.volume_info(volume['id']) self.assertEqual(info, volume) # Expand volume with a bad id volume_ex_params = {} volume_ex_params['expand_size'] = 10 with self.assertRaises(requests.exceptions.HTTPError): c.volume_expand("badid", volume_ex_params) # Expand volume print("Expanding volume") volumeInfo = c.volume_expand(volume['id'], volume_ex_params) self.assertEqual(volumeInfo['size'], 20) # Delete bad id with self.assertRaises(requests.exceptions.HTTPError): c.volume_delete("badid") # Delete volume print("Deleting volume") volume_delete = c.volume_delete(volume['id']) self.assertTrue(volume_delete) print("Deleting Cluster") clusterInfo = c.cluster_info(cluster['id']) for node_id in clusterInfo['nodes']: # Get node information nodeInfo = c.node_info(node_id) # Delete all devices for device in nodeInfo['devices']: devid = device['id'] self.assertTrue(c.device_state(devid, {'state': 'offline'})) self.assertTrue(c.device_state(devid, {'state': 'failed'})) device_delete = c.device_delete(devid) self.assertTrue(device_delete) # Delete node node_delete = c.node_delete(node_id) self.assertTrue(node_delete) # Delete cluster cluster_delete = c.cluster_delete(cluster['id']) self.assertTrue(cluster_delete)
from heketi import HeketiClient import sys import json Device_Add = open("deviceadd.out", 'w') client= HeketiClient('http://heketi-storage-project.cloudapps.mystorage.com','admin', 'My Secret') c = client.cluster_list() a = c.get('clusters') for i in a: client.cluster_info(i) b = client.cluster_info(i) f = b.get('nodes') node_info = json.dumps(f, indent=4, sort_keys=True) Device_Add.write('Heketi Cluster Node information is \n\n') Device_Add.write(node_info + "\n\n" ) for i in f: client.device_add(device_options={"node": i, "name": "/dev/sde"}) Device_Add.write('Device Add Successful for Node {}\n'.format(i))