def deleteNode(provider,driverUno,driverDos,driverTres,driverCuatro,nodeId): pass nodesProvider = '' if provider == "Digital Ocean": pass accessKey = driverUno driverDos = driverDos driverTres = driverTres driverCuatro = driverCuatro nodeId = nodeId driver = DigitalOceanNodeDriver(accessKey) idsNodes = driver.list_nodes() for idNodes in idsNodes: #print idsNodes if idNodes.id == nodeId: pass idNod = idNodes # print idNod nodeDelete = driver.destroy_node(idNod) types = 'terminated' node = checkStatus.checkStatus(driver, idNod.id, types) if node != 0: nodesProvider = nodeDelete if provider == "EC2": pass accessId = driverUno secretKey = driverDos region = driverTres driverCuatro = driverCuatro nodeId = nodeId # driver = BaseEC2NodeDriver(accessId,secretKey,'eu-west-1') cls = get_driver(Provider.EC2) driver = cls(accessId, secretKey, region=region) idsNodes = driver.list_nodes() for idNodes in idsNodes: #print idsNodes if idNodes.id == nodeId: pass idNod = idNodes # print idNod public_ips = driver.ex_describe_all_addresses(only_associated = True) for public_ip in public_ips: if public_ip.instance_id == idNod.id: ip = public_ip nodeDelete = driver.destroy_node(idNod) driver.ex_release_address(ip, domain = ip.domain) types = 'terminated' node = checkStatus.checkStatus(driver, idNod.id, types) if node != 0: nodesProvider = nodeDelete else: nodesProvider = 'null' if provider == "Azure": pass tenantId = driverUno subscriptionId = driverDos applicationId = driverTres keyPaswd = driverCuatro nodeId = nodeId driver = AzureNodeDriver(tenantId,subscriptionId,applicationId,keyPaswd) idsNodes = driver.list_nodes() for idNodes in idsNodes: #print idsNodes if idNodes.id == nodeId: pass idNod = idNodes # print idNod nodeDelete = driver.destroy_node(idNod) types = 'terminated' node = checkStatus.checkStatus(driver, idNod.id, types) if node != 0: nodesProvider = nodeDelete if provider == "Linode": pass apiKey = driverUno driverDos = driverDos driverTres = driverTres driverCuatro = driverCuatro nodeId = nodeId driver = LinodeNodeDriver(apiKey) idsNodes = driver.list_nodes() for idNodes in idsNodes: #print idsNodes if idNodes.id == nodeId: pass idNod = idNodes # print idNod nodeDelete = driver.destroy_node(idNod) types = 'terminated' node = checkStatus.checkStatus(driver, idNod.id, types) if node != 0: nodesProvider = nodeDelete return nodesProvider
class LinodeTest(unittest.TestCase, TestCaseMixin): # The Linode test suite def setUp(self): LinodeNodeDriver.connectionCls.conn_classes = (None, LinodeMockHttp) LinodeMockHttp.use_param = 'api_action' self.driver = LinodeNodeDriver('foo') def test_list_nodes(self): nodes = self.driver.list_nodes() self.assertEqual(len(nodes), 1) node = nodes[0] self.assertEqual(node.id, "8098") self.assertEqual(node.name, 'api-node3') self.assertEqual(node.extra['PLANID'], '1') self.assertTrue('75.127.96.245' in node.public_ips) self.assertEqual(node.private_ips, []) def test_reboot_node(self): # An exception would indicate failure node = self.driver.list_nodes()[0] self.driver.reboot_node(node) def test_destroy_node(self): # An exception would indicate failure node = self.driver.list_nodes()[0] self.driver.destroy_node(node) def test_create_node_password_auth(self): # Will exception on failure self.driver.create_node(name="Test", location=self.driver.list_locations()[0], size=self.driver.list_sizes()[0], image=self.driver.list_images()[6], auth=NodeAuthPassword("test123")) def test_create_node_ssh_key_auth(self): # Will exception on failure node = self.driver.create_node(name="Test", location=self.driver.list_locations()[ 0], size=self.driver.list_sizes()[0], image=self.driver.list_images()[6], auth=NodeAuthSSHKey('foo')) self.assertTrue(isinstance(node, Node)) def test_list_sizes(self): sizes = self.driver.list_sizes() self.assertEqual(len(sizes), 10) for size in sizes: self.assertEqual(size.ram, int(size.name.split(" ")[1])) def test_list_images(self): images = self.driver.list_images() self.assertEqual(len(images), 22) def test_create_node_response(self): # should return a node object node = self.driver.create_node(name="node-name", location=self.driver.list_locations()[ 0], size=self.driver.list_sizes()[0], image=self.driver.list_images()[0], auth=NodeAuthPassword("foobar")) self.assertTrue(isinstance(node, Node))
class LinodeTest(unittest.TestCase, TestCaseMixin): # The Linode test suite def setUp(self): LinodeNodeDriver.connectionCls.conn_classes = (None, LinodeMockHttp) LinodeMockHttp.use_param = 'api_action' self.driver = LinodeNodeDriver('foo') def test_list_nodes(self): nodes = self.driver.list_nodes() self.assertEqual(len(nodes), 1) node = nodes[0] self.assertEqual(node.id, "8098") self.assertEqual(node.name, 'api-node3') self.assertEqual(node.extra['PLANID'], '1') self.assertTrue('75.127.96.245' in node.public_ips) self.assertEqual(node.private_ips, []) def test_reboot_node(self): # An exception would indicate failure node = self.driver.list_nodes()[0] self.driver.reboot_node(node) def test_destroy_node(self): # An exception would indicate failure node = self.driver.list_nodes()[0] self.driver.destroy_node(node) def test_create_node_password_auth(self): # Will exception on failure self.driver.create_node(name="Test", location=self.driver.list_locations()[0], size=self.driver.list_sizes()[0], image=self.driver.list_images()[6], auth=NodeAuthPassword("test123")) def test_create_node_ssh_key_auth(self): # Will exception on failure node = self.driver.create_node(name="Test", location=self.driver.list_locations()[0], size=self.driver.list_sizes()[0], image=self.driver.list_images()[6], auth=NodeAuthSSHKey('foo')) self.assertTrue(isinstance(node, Node)) def test_list_sizes(self): sizes = self.driver.list_sizes() self.assertEqual(len(sizes), 10) for size in sizes: self.assertEqual(size.ram, int(size.name.split(" ")[1])) def test_list_images(self): images = self.driver.list_images() self.assertEqual(len(images), 22) def test_create_node_response(self): # should return a node object node = self.driver.create_node(name="node-name", location=self.driver.list_locations()[0], size=self.driver.list_sizes()[0], image=self.driver.list_images()[0], auth=NodeAuthPassword("foobar")) self.assertTrue(isinstance(node, Node))
def setUp(self): LinodeNodeDriver.connectionCls.conn_classes = (None, LinodeMockHttp) LinodeMockHttp.use_param = 'api_action' self.driver = LinodeNodeDriver('foo')
class LinodeTest(unittest.TestCase, TestCaseMixin): # The Linode test suite def setUp(self): LinodeNodeDriver.connectionCls.conn_classes = (None, LinodeMockHttp) LinodeMockHttp.use_param = 'api_action' self.driver = LinodeNodeDriver('foo') def test_list_nodes(self): nodes = self.driver.list_nodes() self.assertEqual(len(nodes), 1) node = nodes[0] self.assertEqual(node.id, "8098") self.assertEqual(node.name, 'api-node3') self.assertEqual(node.extra['PLANID'], '2') self.assertTrue('75.127.96.245' in node.public_ips) self.assertEqual(node.private_ips, []) def test_reboot_node(self): # An exception would indicate failure node = self.driver.list_nodes()[0] self.driver.reboot_node(node) def test_destroy_node(self): # An exception would indicate failure node = self.driver.list_nodes()[0] self.driver.destroy_node(node) def test_create_node_password_auth(self): # Will exception on failure self.driver.create_node(name="Test", location=self.driver.list_locations()[0], size=self.driver.list_sizes()[0], image=self.driver.list_images()[6], auth=NodeAuthPassword("test123")) def test_create_node_ssh_key_auth(self): # Will exception on failure node = self.driver.create_node(name="Test", location=self.driver.list_locations()[ 0], size=self.driver.list_sizes()[0], image=self.driver.list_images()[6], auth=NodeAuthSSHKey('foo')) self.assertTrue(isinstance(node, Node)) def test_list_sizes(self): sizes = self.driver.list_sizes() self.assertEqual(len(sizes), 9) for size in sizes: self.assertEqual(size.ram, int(size.name.split(" ")[1])) def test_list_images(self): images = self.driver.list_images() self.assertEqual(len(images), 30) def test_create_node_response(self): # should return a node object node = self.driver.create_node(name="node-name", location=self.driver.list_locations()[ 0], size=self.driver.list_sizes()[0], image=self.driver.list_images()[0], auth=NodeAuthPassword("foobar")) self.assertTrue(isinstance(node, Node)) def test_destroy_volume(self): # Will exception on failure node = self.driver.list_nodes()[0] volume = StorageVolume(id=55648, name="test", size=1024, driver=self.driver, extra={"LINODEID": node.id}) self.driver.destroy_volume(volume) def test_ex_create_volume(self): # should return a StorageVolume object node = self.driver.list_nodes()[0] volume = self.driver.ex_create_volume(size=4096, name="Another test image", node=node, fs_type="ext4") self.assertTrue(isinstance(volume, StorageVolume)) def test_ex_list_volumes(self): # should return list of StorageVolume objects node = self.driver.list_nodes()[0] volumes = self.driver.ex_list_volumes(node=node) self.assertTrue(isinstance(volumes, list)) self.assertTrue(isinstance(volumes[0], StorageVolume)) self.assertEqual(len(volumes), 2)
def resizeNode(provider, driverUno, driverDos, driverTres, driverCuatro, size, nodeId): pass nodesProvider = '' if provider == "Digital Ocean": pass accessKey = driverUno driverDos = driverDos driverTres = driverTres driverCuatro = driverCuatro size = size nodeId = nodeId driver = DigitalOceanNodeDriver(accessKey) idsNodes = driver.list_nodes() sizesNode = driver.list_sizes() for idNodes in idsNodes: #print idsNodes if idNodes.id == nodeId: pass idNod = idNodes # print idNod for sizeNode in sizesNode: if sizeNode.name == size: pass sizeName = sizeNode nodesProvider = driver.resize_node(sizeName, idNod) if provider == "EC2": pass accessId = driverUno secretKey = driverDos region = driverTres driverCuatro = driverCuatro size = size nodeId = nodeId # driver = BaseEC2NodeDriver(accessId,secretKey,'eu-west-1') cls = get_driver(Provider.EC2) driver = cls(accessId, secretKey, region=region) idsNodes = driver.list_nodes() sizesNode = driver.list_sizes() idNod = '' sizeName = '' for idNodes in idsNodes: #print idsNodes if idNodes.id == nodeId: pass idNod = idNodes # print idNod for sizeNode in sizesNode: if sizeNode.id == size: pass sizeName = sizeNode nodesProvider = driver.ex_change_node_size(idNod, sizeName) if provider == "Azure": pass tenantId = driverUno subscriptionId = driverDos applicationId = driverTres keyPaswd = driverCuatro size = size nodeId = nodeId driver = AzureNodeDriver(tenantId, subscriptionId, applicationId, keyPaswd) idsNodes = driver.list_nodes() sizesNode = driver.list_sizes() for idNodes in idsNodes: #print idsNodes if idNodes.id == nodeId: pass idNod = idNodes # print idNod for sizeNode in sizesNode: if sizeNode.name == size: pass sizeName = sizeNode nodesProvider = driver.resize_node(sizeName, idNod) if provider == "Linode": pass apiKey = driverUno driverDos = driverDos driverTres = driverTres driverCuatro = driverCuatro size = size nodeId = nodeId driver = LinodeNodeDriver(apiKey) idsNodes = driver.list_nodes() sizesNode = driver.list_sizes() for idNodes in idsNodes: #print idsNodes if idNodes.id == nodeId: pass idNod = idNodes # print idNod for sizeNode in sizesNode: if sizeNode.name == size: pass sizeName = sizeNode nodesProvider = driver.ex_resize_node(sizeName, idNod) return nodesProvider
def setUp(self): LinodeNodeDriver.connectionCls.conn_class = LinodeMockHttpV4 LinodeMockHttpV4.type = None self.driver = LinodeNodeDriver('foo', api_version='4.0')
class LinodeTest(unittest.TestCase, TestCaseMixin): # The Linode test suite def setUp(self): LinodeNodeDriver.connectionCls.conn_class = LinodeMockHttp LinodeMockHttp.use_param = 'api_action' self.driver = LinodeNodeDriver('foo', api_version='3.0') def test_list_nodes(self): nodes = self.driver.list_nodes() self.assertEqual(len(nodes), 1) node = nodes[0] self.assertEqual(node.id, "8098") self.assertEqual(node.name, 'api-node3') self.assertEqual(node.extra['PLANID'], '2') self.assertTrue('75.127.96.245' in node.public_ips) self.assertEqual(node.private_ips, []) def test_reboot_node(self): # An exception would indicate failure node = self.driver.list_nodes()[0] self.driver.reboot_node(node) def test_destroy_node(self): # An exception would indicate failure node = self.driver.list_nodes()[0] self.driver.destroy_node(node) def test_create_node_password_auth(self): # Will exception on failure self.driver.create_node(name="Test", location=self.driver.list_locations()[0], size=self.driver.list_sizes()[0], image=self.driver.list_images()[6], auth=NodeAuthPassword("test123")) def test_create_node_ssh_key_auth(self): # Will exception on failure node = self.driver.create_node(name="Test", location=self.driver.list_locations()[ 0], size=self.driver.list_sizes()[0], image=self.driver.list_images()[6], auth=NodeAuthSSHKey('foo')) self.assertTrue(isinstance(node, Node)) def test_list_sizes(self): sizes = self.driver.list_sizes() self.assertEqual(len(sizes), 9) for size in sizes: self.assertEqual(size.ram, int(size.name.split(" ")[1])) def test_list_images(self): images = self.driver.list_images() self.assertEqual(len(images), 30) def test_create_node_response(self): # should return a node object node = self.driver.create_node(name="node-name", location=self.driver.list_locations()[ 0], size=self.driver.list_sizes()[0], image=self.driver.list_images()[0], auth=NodeAuthPassword("foobar")) self.assertTrue(isinstance(node, Node)) def test_destroy_volume(self): # Will exception on failure node = self.driver.list_nodes()[0] volume = StorageVolume(id=55648, name="test", size=1024, driver=self.driver, extra={"LINODEID": node.id}) self.driver.destroy_volume(volume) def test_ex_create_volume(self): # should return a StorageVolume object node = self.driver.list_nodes()[0] volume = self.driver.ex_create_volume(size=4096, name="Another test image", node=node, fs_type="ext4") self.assertTrue(isinstance(volume, StorageVolume)) def test_ex_list_volumes(self): # should return list of StorageVolume objects node = self.driver.list_nodes()[0] volumes = self.driver.ex_list_volumes(node=node) self.assertTrue(isinstance(volumes, list)) self.assertTrue(isinstance(volumes[0], StorageVolume)) self.assertEqual(len(volumes), 2)
class LinodeTestsV4(unittest.TestCase, TestCaseMixin): should_list_volumes = True def setUp(self): LinodeNodeDriver.connectionCls.conn_class = LinodeMockHttpV4 LinodeMockHttpV4.type = None self.driver = LinodeNodeDriver("foo", api_version="4.0") def test_unknown_api_version(self): self.assertRaises(NotImplementedError, LinodeNodeDriver, "foo", api_version="2.0") def test_correct_class_is_used(self): self.assertIsInstance(self.driver, LinodeNodeDriverV4) def test_list_sizes(self): sizes = self.driver.list_sizes() self.assertEqual(len(sizes), 28) size = sizes[0] self.assertEqual(size.id, "g6-nanode-1") for size in sizes: self.assertIsInstance(size.price, float) if size.extra["class"] == "gpu": self.assertGreater(size.extra["gpus"], 0) else: self.assertEqual(size.extra["gpus"], 0) def test_list_images(self): images = self.driver.list_images() self.assertEqual(len(images), 34) image = images[0] self.assertEqual(image.id, "linode/alpine3.10") self.assertEqual(image.extra["type"], "manual") self.assertEqual(image.extra["vendor"], "Alpine") for image in images: self.assertIsInstance(image.extra["size"], int) self.assertTrue(image.extra["is_public"]) def test_list_locations(self): locations = self.driver.list_locations() self.assertEqual(len(locations), 10) location = locations[0] self.assertEqual(location.country, "IN") self.assertEqual(location.id, "ap-west") self.assertEqual(location.extra["status"], "ok") self.assertIsInstance(location.extra["capabilities"], list) def test_create_node_response(self): size = self.driver.list_sizes()[0] image = self.driver.list_images()[0] location = self.driver.list_locations()[0] node = self.driver.create_node( location=location, name="node-name", image=image, root_pass="******", size=size, ) self.assertTrue(isinstance(node, Node)) def test_list_nodes(self): nodes = self.driver.list_nodes() self.assertEqual(len(nodes), 2) node = nodes[0] node_2 = nodes[1] self.assertEqual(node.id, "22344420") self.assertEqual(node.public_ips, ["138.89.34.81"]) self.assertEqual(node.private_ips, ["192.168.1.230"]) self.assertEqual(node.extra["hypervisor"], "kvm") self.assertEqual(node_2.public_ips, ["156.12.197.243"]) self.assertEqual(node_2.private_ips, []) def test_list_nodes_UNAUTHORIZED(self): LinodeMockHttpV4.type = "UNAUTHORIZED" with self.assertRaises(InvalidCredsError): self.driver.list_nodes() def test_list_nodes_fills_datetime(self): nodes = self.driver.list_nodes() self.assertEqual(nodes[0].created_at, datetime(2020, 10, 8, 18, 51, 29)) def test_create_node(self): image = self.driver.list_images()[0] size = self.driver.list_sizes()[0] location = self.driver.list_locations()[0] node = self.driver.create_node( location, size, image=image, name="TestNode", root_pass="******", ex_backups_enabled=True, ex_tags=["testing123"], ex_private_ip=True, ) self.assertEqual(node.name, "TestNode") self.assertEqual(len(node.private_ips), 1) self.assertTrue(node.extra["backups"]["enabled"]) self.assertEqual(node.extra["tags"], ["testing123"]) def test_create_node_no_root_pass(self): image = self.driver.list_images()[0] size = self.driver.list_sizes()[0] location = self.driver.list_locations()[0] with self.assertRaises(LinodeExceptionV4): self.driver.create_node(location, size, image=image, name="TestNode") def test_create_node_no_image(self): size = self.driver.list_sizes()[0] location = self.driver.list_locations()[0] LinodeMockHttpV4.type = "NO_IMAGE" node = self.driver.create_node(location, size, name="TestNode", ex_tags=["testing123"]) self.assertIsNone(node.image) self.assertEqual(node.name, "TestNode") self.assertFalse(node.extra["backups"]["enabled"]) self.assertEqual(node.extra["tags"], ["testing123"]) self.assertEqual(len(node.private_ips), 0) def test_create_node_invalid_name(self): size = self.driver.list_sizes()[0] location = self.driver.list_locations()[0] with self.assertRaises(LinodeExceptionV4): self.driver.create_node(location, size, name="Test__Node") with self.assertRaises(LinodeExceptionV4): self.driver.create_node(location, size, name="Test Node") with self.assertRaises(LinodeExceptionV4): self.driver.create_node(location, size, name="Test--Node") with self.assertRaises(LinodeExceptionV4): self.driver.create_node(location, size, name="Test..Node") def test_reboot_node(self): node = Node("22344420", None, None, None, None, driver=self.driver) result = self.driver.reboot_node(node) self.assertTrue(result) def test_start_node(self): node = Node("22344420", None, None, None, None, driver=self.driver) result = self.driver.start_node(node) self.assertTrue(result) def test_start_node_error(self): LinodeMockHttpV4.type = "ALREADY_BOOTED" node = Node("22344420", None, NodeState.RUNNING, None, None, driver=self.driver) with self.assertRaises(LibcloudError): self.driver.start_node(node) def test_stop_node(self): node = Node("22344420", None, None, None, None, driver=self.driver) result = self.driver.stop_node(node) self.assertTrue(result) def test_destroy_node(self): node = Node("22344420", None, None, None, None, driver=self.driver) result = self.driver.stop_node(node) self.assertTrue(result) def test_ex_rename_node(self): node = Node("22344420", "name1", None, None, None, driver=self.driver) renamed_node = self.driver.ex_rename_node(node, "new_name") self.assertEqual(renamed_node.name, "new_name") def test_ex_resize_node(self): node = Node("22344420", None, None, None, None, driver=self.driver, size="g6-nanode-1") size = self.driver.list_sizes()[0] result = self.driver.ex_resize_node(node, size=size) self.assertTrue(result) def test_ex_get_node(self): node_id = "22344420" node = self.driver.ex_get_node(node_id) self.assertEqual(node.name, "test_2") self.assertEqual(node.image, "linode/centos8") self.assertEqual(node.extra["tags"], ["testing"]) self.assertEqual(node.public_ips, ["212.71.239.24"]) self.assertEqual(node.extra["hypervisor"], "kvm") def test_ex_list_disks(self): node = Node("22344420", None, None, None, None, driver=self.driver) disks = self.driver.ex_list_disks(node) disk = disks[0] self.assertEqual(disk.name, "CentOS 7 Disk") self.assertEqual(disk.size, 25088) for disk in disks: self.assertIsInstance(disk, LinodeDisk) def test_ex_create_disk(self): node = Node("22344420", None, None, None, None, driver=self.driver) image = self.driver.list_images()[0] disk = self.driver.ex_create_disk(5000, "TestDisk", node, "ext4", image=image, ex_root_pass="******") self.assertIsInstance(disk, LinodeDisk) self.assertEqual(disk.size, 5000) self.assertEqual(disk.filesystem, "ext4") self.assertEqual(disk.name, "TestingDisk") def test_ex_create_disk_no_image(self): node = Node("22344420", None, None, None, None, driver=self.driver) disk = self.driver.ex_create_disk(5000, "TestDisk", node, "ext4") self.assertIsInstance(disk, LinodeDisk) self.assertEqual(disk.size, 5000) self.assertEqual(disk.filesystem, "ext4") self.assertEqual(disk.name, "TestingDisk") def test_ex_create_disk_exception_no_root_pass(self): node = Node("22344420", None, None, None, None, driver=self.driver) image = self.driver.list_images()[0] with self.assertRaises(LinodeExceptionV4): self.driver.ex_create_disk(5000, "TestDisk", node, "ext4", image=image) def test_ex_create_disk_exception_invalid_fs(self): node = Node("22344420", None, None, None, None, driver=self.driver) image = self.driver.list_images()[0] with self.assertRaises(LinodeExceptionV4): self.driver.ex_create_disk( 5000, "TestDisk", node, "random_fs", image=image, ex_root_pass="******", ) def test_ex_destroy_disk(self): node = Node("22344420", None, NodeState.STOPPED, None, None, driver=self.driver) disk = LinodeDisk("23517413", None, None, None, self.driver, None) result = self.driver.ex_destroy_disk(node, disk) self.assertTrue(result) def test_ex_destroy_disk_exception(self): node = Node("22344420", None, NodeState.RUNNING, None, None, driver=self.driver) disk = LinodeDisk("23517413", None, None, None, self.driver, None) with self.assertRaises(LinodeExceptionV4): self.driver.ex_destroy_disk(node, disk) def test_list_volumes(self): volumes = self.driver.list_volumes() self.assertEqual(len(volumes), 2) volume = volumes[0] volume_2 = volumes[1] self.assertEqual(volume.id, "12345") self.assertEqual(volume.name, "Testvolume1") self.assertEqual(volume.size, 100) self.assertEqual(volume.extra["linode_id"], 456353688) self.assertIsNone(volume_2.extra["linode_id"]) def test_create_volume(self): node = Node("22344420", None, NodeState.RUNNING, None, None, driver=self.driver) volume = self.driver.create_volume("Volume1", 50, node=node, tags=["test123", "testing"]) self.assertEqual(volume.extra["linode_id"], 22344420) self.assertEqual(volume.size, 50) self.assertEqual(volume.name, "Volume1") self.assertEqual(volume.extra["tags"], ["test123", "testing"]) def test_create_volume_unattached(self): location = self.driver.list_locations()[0] LinodeMockHttpV4.type = "UNATTACHED" volume = self.driver.create_volume("Volume1", 50, location=location, tags=["test123", "testing"]) self.assertEqual(volume.size, 50) self.assertEqual(volume.name, "Volume1") self.assertEqual(volume.extra["tags"], ["test123", "testing"]) def test_create_volume_invalid_name(self): location = self.driver.list_locations()[0] with self.assertRaises(LinodeExceptionV4): self.driver.create_volume("Volume__1", 50, location=location) with self.assertRaises(LinodeExceptionV4): self.driver.create_volume("Volume 1", 50, location=location) with self.assertRaises(LinodeExceptionV4): self.driver.create_volume("Volume--1", 50, location=location) def test_attach_volume_already_attached(self): volume = self.driver.list_volumes()[0] node = self.driver.list_nodes()[0] with self.assertRaises(LinodeExceptionV4): self.driver.attach_volume(node, volume) def test_attach_volume(self): volume = self.driver.list_volumes()[1] node = self.driver.list_nodes()[0] attached_volume = self.driver.attach_volume(node, volume) self.assertIsInstance(attached_volume, StorageVolume) self.assertEqual(str(attached_volume.extra["linode_id"]), node.id) def test_detach_volume(self): volume = self.driver.list_volumes()[0] result = self.driver.detach_volume(volume) self.assertTrue(result) def test_detach_volume_already_detached(self): volume = self.driver.list_volumes()[1] with self.assertRaises(LinodeExceptionV4): self.driver.detach_volume(volume) def test_destroy_volume(self): volume = self.driver.list_volumes()[1] result = self.driver.destroy_volume(volume) self.assertTrue(result) def test_destroy_volume_attached(self): volume = self.driver.list_volumes()[0] with self.assertRaises(LinodeExceptionV4): self.driver.destroy_volume(volume) def test_ex_resize_volume(self): volume = self.driver.list_volumes()[0] size = 200 result = self.driver.ex_resize_volume(volume, size) self.assertTrue(result) def test_ex_resize_volume_resize_down(self): volume = self.driver.list_volumes()[0] size = 50 with self.assertRaises(LinodeExceptionV4): self.driver.ex_resize_volume(volume, size) def test_ex_clone_volume(self): volume = self.driver.list_volumes()[0] cloned_volume = self.driver.ex_clone_volume(volume, "TestingClone") self.assertIsInstance(cloned_volume, StorageVolume) self.assertEqual(volume.size, cloned_volume.size) self.assertEqual(cloned_volume.name, "TestingClone") def test_ex_get_volume(self): volume_id = "123456" volume = self.driver.ex_get_volume(volume_id) self.assertEqual(volume.name, "Testvolume1") self.assertEqual(volume.size, 10) self.assertEqual(volume.extra["linode_id"], 456353688) def test_create_image(self): node = Node("22344420", None, None, None, None, driver=self.driver) disk = self.driver.ex_list_disks(node)[0] image = self.driver.create_image(disk, name="Test", description="Test Image") self.assertIsInstance(image, NodeImage) self.assertEqual(image.name, "Test") self.assertEqual(image.extra["description"], "Test Image") def test_delete_image(self): node = Node("22344420", None, None, None, None, driver=self.driver) disk = self.driver.ex_list_disks(node)[0] image = self.driver.create_image(disk, name="Test", description="Test Image") result = self.driver.delete_image(image) self.assertTrue(result) def test_ex_list_addresses(self): ips = self.driver.ex_list_addresses() self.assertEqual(len(ips), 3) ip = ips[0] self.assertEqual(ip.inet, "192.168.15.21") self.assertEqual(ip.version, "ipv4") self.assertFalse(ip.public) for ip in ips: self.assertIsInstance(ip, LinodeIPAddress) def test_ex_list_node_addresses(self): node = Node("22344420", None, None, None, None, driver=self.driver) ips = self.driver.ex_list_node_addresses(node) ip = ips[0] self.assertEqual(ip.inet, "176.58.100.100") self.assertEqual(ip.version, "ipv4") self.assertTrue(ip.public) for ip in ips: self.assertIsInstance(ip, LinodeIPAddress) self.assertEqual(node.id, str(ip.extra["node_id"])) def test_ex_allocate_private_address(self): node = Node("22344420", None, None, None, None, driver=self.driver) ip = self.driver.ex_allocate_private_address(node) self.assertIsInstance(ip, LinodeIPAddress) self.assertEqual(ip.version, "ipv4") self.assertEqual(ip.inet, "192.168.100.10") def test_ex_share_address(self): node = Node("22344420", None, None, None, None, driver=self.driver) ips = self.driver.ex_list_addresses() result = self.driver.ex_share_address(node, ips) self.assertTrue(result) def test__paginated_request_two_pages(self): LinodeMockHttpV4.type = "PAGINATED" images = self.driver.list_images() self.assertEqual(len(images), 34)
class LinodeTestsV4(unittest.TestCase, TestCaseMixin): should_list_volumes = True def setUp(self): LinodeNodeDriver.connectionCls.conn_class = LinodeMockHttpV4 LinodeMockHttpV4.type = None self.driver = LinodeNodeDriver('foo', api_version='4.0') def test_unknown_api_version(self): self.assertRaises(NotImplementedError, LinodeNodeDriver, 'foo', api_version='2.0') def test_correct_class_is_used(self): self.assertIsInstance(self.driver, LinodeNodeDriverV4) def test_list_sizes(self): sizes = self.driver.list_sizes() self.assertEqual(len(sizes), 28) size = sizes[0] self.assertEqual(size.id, 'g6-nanode-1') for size in sizes: self.assertIsInstance(size.price, float) if size.extra['class'] == 'gpu': self.assertGreater(size.extra['gpus'], 0) else: self.assertEqual(size.extra['gpus'], 0) def test_list_images(self): images = self.driver.list_images() self.assertEqual(len(images), 34) image = images[0] self.assertEqual(image.id, 'linode/alpine3.10') self.assertEqual(image.extra['type'], 'manual') self.assertEqual(image.extra['vendor'], 'Alpine') for image in images: self.assertIsInstance(image.extra['size'], int) self.assertTrue(image.extra['is_public']) def test_list_locations(self): locations = self.driver.list_locations() self.assertEqual(len(locations), 10) location = locations[0] self.assertEqual(location.country, 'IN') self.assertEqual(location.id, 'ap-west') self.assertEqual(location.extra['status'], 'ok') self.assertIsInstance(location.extra['capabilities'], list) def test_create_node_response(self): size = self.driver.list_sizes()[0] image = self.driver.list_images()[0] location = self.driver.list_locations()[0] node = self.driver.create_node(location=location, name='node-name', image=image, root_pass='******', size=size) self.assertTrue(isinstance(node, Node)) def test_list_nodes(self): nodes = self.driver.list_nodes() self.assertEqual(len(nodes), 2) node = nodes[0] node_2 = nodes[1] self.assertEqual(node.id, '22344420') self.assertEqual(node.public_ips, ['138.89.34.81']) self.assertEqual(node.private_ips, ['192.168.1.230']) self.assertEqual(node.extra['hypervisor'], 'kvm') self.assertEqual(node_2.public_ips, ['156.12.197.243']) self.assertEqual(node_2.private_ips, []) def test_list_nodes_UNAUTHORIZED(self): LinodeMockHttpV4.type = 'UNAUTHORIZED' with self.assertRaises(InvalidCredsError): self.driver.list_nodes() def test_list_nodes_fills_datetime(self): nodes = self.driver.list_nodes() self.assertEqual(nodes[0].created_at, datetime(2020, 10, 8, 18, 51, 29)) def test_create_node(self): image = self.driver.list_images()[0] size = self.driver.list_sizes()[0] location = self.driver.list_locations()[0] node = self.driver.create_node(location, size, image=image, name='TestNode', root_pass='******', ex_backups_enabled=True, ex_tags=['testing123'], ex_private_ip=True) self.assertEqual(node.name, 'TestNode') self.assertEqual(len(node.private_ips), 1) self.assertTrue(node.extra['backups']['enabled']) self.assertEqual(node.extra['tags'], ['testing123']) def test_create_node_no_root_pass(self): image = self.driver.list_images()[0] size = self.driver.list_sizes()[0] location = self.driver.list_locations()[0] with self.assertRaises(LinodeExceptionV4): self.driver.create_node(location, size, image=image, name='TestNode') def test_create_node_no_image(self): size = self.driver.list_sizes()[0] location = self.driver.list_locations()[0] LinodeMockHttpV4.type = 'NO_IMAGE' node = self.driver.create_node(location, size, name='TestNode', ex_tags=['testing123']) self.assertIsNone(node.image) self.assertEqual(node.name, 'TestNode') self.assertFalse(node.extra['backups']['enabled']) self.assertEqual(node.extra['tags'], ['testing123']) self.assertEqual(len(node.private_ips), 0) def test_create_node_invalid_name(self): size = self.driver.list_sizes()[0] location = self.driver.list_locations()[0] with self.assertRaises(LinodeExceptionV4): self.driver.create_node(location, size, name='Test__Node') with self.assertRaises(LinodeExceptionV4): self.driver.create_node(location, size, name='Test Node') with self.assertRaises(LinodeExceptionV4): self.driver.create_node(location, size, name='Test--Node') with self.assertRaises(LinodeExceptionV4): self.driver.create_node(location, size, name='Test..Node') def test_reboot_node(self): node = Node('22344420', None, None, None, None, driver=self.driver) result = self.driver.reboot_node(node) self.assertTrue(result) def test_start_node(self): node = Node('22344420', None, None, None, None, driver=self.driver) result = self.driver.start_node(node) self.assertTrue(result) def test_start_node_error(self): LinodeMockHttpV4.type = 'ALREADY_BOOTED' node = Node('22344420', None, NodeState.RUNNING, None, None, driver=self.driver) with self.assertRaises(LibcloudError): self.driver.start_node(node) def test_stop_node(self): node = Node('22344420', None, None, None, None, driver=self.driver) result = self.driver.stop_node(node) self.assertTrue(result) def test_destroy_node(self): node = Node('22344420', None, None, None, None, driver=self.driver) result = self.driver.stop_node(node) self.assertTrue(result) def test_ex_rename_node(self): node = Node('22344420', 'name1', None, None, None, driver=self.driver) renamed_node = self.driver.ex_rename_node(node, 'new_name') self.assertEqual(renamed_node.name, 'new_name') def test_ex_resize_node(self): node = Node('22344420', None, None, None, None, driver=self.driver, size='g6-nanode-1') size = self.driver.list_sizes()[0] result = self.driver.ex_resize_node(node, size=size) self.assertTrue(result) def test_ex_get_node(self): node_id = '22344420' node = self.driver.ex_get_node(node_id) self.assertEqual(node.name, 'test_2') self.assertEqual(node.image, 'linode/centos8') self.assertEqual(node.extra['tags'], ['testing']) self.assertEqual(node.public_ips, ['212.71.239.24']) self.assertEqual(node.extra['hypervisor'], 'kvm') def test_ex_list_disks(self): node = Node('22344420', None, None, None, None, driver=self.driver) disks = self.driver.ex_list_disks(node) disk = disks[0] self.assertEqual(disk.name, 'CentOS 7 Disk') self.assertEqual(disk.size, 25088) for disk in disks: self.assertIsInstance(disk, LinodeDisk) def test_ex_create_disk(self): node = Node('22344420', None, None, None, None, driver=self.driver) image = self.driver.list_images()[0] disk = self.driver.ex_create_disk(5000, 'TestDisk', node, 'ext4', image=image, ex_root_pass='******') self.assertIsInstance(disk, LinodeDisk) self.assertEqual(disk.size, 5000) self.assertEqual(disk.filesystem, 'ext4') self.assertEqual(disk.name, 'TestingDisk') def test_ex_create_disk_no_image(self): node = Node('22344420', None, None, None, None, driver=self.driver) disk = self.driver.ex_create_disk(5000, 'TestDisk', node, 'ext4') self.assertIsInstance(disk, LinodeDisk) self.assertEqual(disk.size, 5000) self.assertEqual(disk.filesystem, 'ext4') self.assertEqual(disk.name, 'TestingDisk') def test_ex_create_disk_exception_no_root_pass(self): node = Node('22344420', None, None, None, None, driver=self.driver) image = self.driver.list_images()[0] with self.assertRaises(LinodeExceptionV4): self.driver.ex_create_disk(5000, 'TestDisk', node, 'ext4', image=image) def test_ex_create_disk_exception_invalid_fs(self): node = Node('22344420', None, None, None, None, driver=self.driver) image = self.driver.list_images()[0] with self.assertRaises(LinodeExceptionV4): self.driver.ex_create_disk(5000, 'TestDisk', node, 'random_fs', image=image, ex_root_pass='******') def test_ex_destroy_disk(self): node = Node('22344420', None, NodeState.STOPPED, None, None, driver=self.driver) disk = LinodeDisk('23517413', None, None, None, self.driver, None) result = self.driver.ex_destroy_disk(node, disk) self.assertTrue(result) def test_ex_destroy_disk_exception(self): node = Node('22344420', None, NodeState.RUNNING, None, None, driver=self.driver) disk = LinodeDisk('23517413', None, None, None, self.driver, None) with self.assertRaises(LinodeExceptionV4): self.driver.ex_destroy_disk(node, disk) def test_list_volumes(self): volumes = self.driver.list_volumes() self.assertEqual(len(volumes), 2) volume = volumes[0] volume_2 = volumes[1] self.assertEqual(volume.id, '12345') self.assertEqual(volume.name, 'Testvolume1') self.assertEqual(volume.size, 100) self.assertEqual(volume.extra['linode_id'], 456353688) self.assertIsNone(volume_2.extra['linode_id']) def test_create_volume(self): node = Node('22344420', None, NodeState.RUNNING, None, None, driver=self.driver) volume = self.driver.create_volume('Volume1', 50, node=node, tags=['test123', 'testing']) self.assertEqual(volume.extra['linode_id'], 22344420) self.assertEqual(volume.size, 50) self.assertEqual(volume.name, 'Volume1') self.assertEqual(volume.extra['tags'], ['test123', 'testing']) def test_create_volume_unattached(self): location = self.driver.list_locations()[0] LinodeMockHttpV4.type = 'UNATTACHED' volume = self.driver.create_volume('Volume1', 50, location=location, tags=['test123', 'testing']) self.assertEqual(volume.size, 50) self.assertEqual(volume.name, 'Volume1') self.assertEqual(volume.extra['tags'], ['test123', 'testing']) def test_create_volume_invalid_name(self): location = self.driver.list_locations()[0] with self.assertRaises(LinodeExceptionV4): self.driver.create_volume('Volume__1', 50, location=location) with self.assertRaises(LinodeExceptionV4): self.driver.create_volume('Volume 1', 50, location=location) with self.assertRaises(LinodeExceptionV4): self.driver.create_volume('Volume--1', 50, location=location) def test_attach_volume_already_attached(self): volume = self.driver.list_volumes()[0] node = self.driver.list_nodes()[0] with self.assertRaises(LinodeExceptionV4): self.driver.attach_volume(node, volume) def test_attach_volume(self): volume = self.driver.list_volumes()[1] node = self.driver.list_nodes()[0] attached_volume = self.driver.attach_volume(node, volume) self.assertIsInstance(attached_volume, StorageVolume) self.assertEqual(str(attached_volume.extra['linode_id']), node.id) def test_detach_volume(self): volume = self.driver.list_volumes()[0] result = self.driver.detach_volume(volume) self.assertTrue(result) def test_detach_volume_already_detached(self): volume = self.driver.list_volumes()[1] with self.assertRaises(LinodeExceptionV4): self.driver.detach_volume(volume) def test_destroy_volume(self): volume = self.driver.list_volumes()[1] result = self.driver.destroy_volume(volume) self.assertTrue(result) def test_destroy_volume_attached(self): volume = self.driver.list_volumes()[0] with self.assertRaises(LinodeExceptionV4): self.driver.destroy_volume(volume) def test_ex_resize_volume(self): volume = self.driver.list_volumes()[0] size = 200 result = self.driver.ex_resize_volume(volume, size) self.assertTrue(result) def test_ex_resize_volume_resize_down(self): volume = self.driver.list_volumes()[0] size = 50 with self.assertRaises(LinodeExceptionV4): self.driver.ex_resize_volume(volume, size) def test_ex_clone_volume(self): volume = self.driver.list_volumes()[0] cloned_volume = self.driver.ex_clone_volume(volume, 'TestingClone') self.assertIsInstance(cloned_volume, StorageVolume) self.assertEqual(volume.size, cloned_volume.size) self.assertEqual(cloned_volume.name, 'TestingClone') def test_ex_get_volume(self): volume_id = '123456' volume = self.driver.ex_get_volume(volume_id) self.assertEqual(volume.name, 'Testvolume1') self.assertEqual(volume.size, 10) self.assertEqual(volume.extra['linode_id'], 456353688) def test_create_image(self): node = Node('22344420', None, None, None, None, driver=self.driver) disk = self.driver.ex_list_disks(node)[0] image = self.driver.create_image(disk, name='Test', description='Test Image') self.assertIsInstance(image, NodeImage) self.assertEqual(image.name, 'Test') self.assertEqual(image.extra['description'], 'Test Image') def test_delete_image(self): node = Node('22344420', None, None, None, None, driver=self.driver) disk = self.driver.ex_list_disks(node)[0] image = self.driver.create_image(disk, name='Test', description='Test Image') result = self.driver.delete_image(image) self.assertTrue(result) def test_ex_list_addresses(self): ips = self.driver.ex_list_addresses() self.assertEqual(len(ips), 3) ip = ips[0] self.assertEqual(ip.inet, '192.168.15.21') self.assertEqual(ip.version, 'ipv4') self.assertFalse(ip.public) for ip in ips: self.assertIsInstance(ip, LinodeIPAddress) def test_ex_list_node_addresses(self): node = Node('22344420', None, None, None, None, driver=self.driver) ips = self.driver.ex_list_node_addresses(node) ip = ips[0] self.assertEqual(ip.inet, '176.58.100.100') self.assertEqual(ip.version, 'ipv4') self.assertTrue(ip.public) for ip in ips: self.assertIsInstance(ip, LinodeIPAddress) self.assertEqual(node.id, str(ip.extra['node_id'])) def test_ex_allocate_private_address(self): node = Node('22344420', None, None, None, None, driver=self.driver) ip = self.driver.ex_allocate_private_address(node) self.assertIsInstance(ip, LinodeIPAddress) self.assertEqual(ip.version, 'ipv4') self.assertEqual(ip.inet, '192.168.100.10') def test_ex_share_address(self): node = Node('22344420', None, None, None, None, driver=self.driver) ips = self.driver.ex_list_addresses() result = self.driver.ex_share_address(node, ips) self.assertTrue(result) def test__paginated_request_two_pages(self): LinodeMockHttpV4.type = 'PAGINATED' images = self.driver.list_images() self.assertEqual(len(images), 34)
def createNode(provider, driverUno, driverDos, driverTres, driverCuatro, name, size, image, location, ex_network): pass nodesProvider = '' if provider == "Digital Ocean": pass accessKey = driverUno sshKey = driverDos driverTres = driverTres driverCuatro = driverCuatro driver = DigitalOceanNodeDriver(accessKey) sshKeyID = list() ssh = int(sshKey) keyPairs = driver.list_key_pairs() sizesNode = driver.list_sizes() imagesNode = driver.list_images() locationsNode = driver.list_locations() for keyPair in keyPairs: if keyPair.extra['id'] == ssh: pass sshKeyID.append(keyPair.extra['id']) for sizeNode in sizesNode: if sizeNode.name == size: pass sizeName = sizeNode for imageNode in imagesNode: if imageNode.id == image: pass imageId = imageNode for locationNode in locationsNode: if locationNode.id == location: pass locationId = locationNode idNodes = driver.create_node(name, sizeName, imageId, locationId, None, sshKeyID, None) idNodes.extra = json.dumps(idNodes.extra) attr = { 'id': idNodes.id, 'name': idNodes.name, 'state': idNodes.state, 'public_ips': idNodes.public_ips, 'private_ips': idNodes.private_ips, 'provider': 'DigitalOcean', 'extra': idNodes.extra } nodesProvider = json.dumps(attr) if provider == "EC2": pass accessId = driverUno secretKey = driverDos region = driverTres driverCuatro = driverCuatro reg = region[0:len(region) - 1] # driver = BaseEC2NodeDriver(accessId,secretKey,'eu-west-1') cls = get_driver(Provider.EC2) driver = cls(accessId, secretKey, region=reg) sizesNode = driver.list_sizes() imagesNode = driver.list_images() sizeName = '' imageId = '' for sizeNode in sizesNode: if sizeNode.id == size: pass sizeName = sizeNode for imageNode in imagesNode: if imageNode.name == image: pass imageId = imageNode nodeCreate = driver.create_node(name=name, image=imageId, size=sizeName) types = 'running' node = checkStatus.checkStatus(driver, nodeCreate.id, types) if node != 0: pass elastic = elasticIP.setElasticIP(driver, node.id) if elastic != 0: pass v4 = [] ips = { 'ipaddress': elastic.ip, 'gateway': 'NULL', 'mask': 'NULL', 'private_ip': node.private_ips[0] } v4.append(ips) network = {'v4': v4} extra = { 'launch_time': node.extra['launch_time'], 'instance_type': node.extra['instance_type'], 'network': network } attr = { 'id': node.id, 'region': reg, 'name': node.name, 'state': node.state, 'public_ip': elastic.ip, 'provider': 'Amazon', 'extra': extra } print json.dumps(attr) else: v4 = [] ips = { 'ipaddress': node.public_ips[0], 'gateway': 'NULL', 'mask': 'NULL', 'private_ip': node.private_ips[0] } v4.append(ips) network = {'v4': v4} extra = { 'launch_time': node.extra['launch_time'], 'instance_type': node.extra['instance_type'], 'network': network } attr = { 'id': node.id, 'region': region, 'name': node.name, 'state': node.state, 'public_ip': node.public_ips[0], 'provider': 'Amazon', 'extra': extra, 'elastic': '0' } nodesProvider = json.dumps(attr) if provider == "Azure": pass tenantId = driverUno subscriptionId = driverDos applicationId = driverTres keyPaswd = driverCuatro driver = AzureNodeDriver(tenantId, subscriptionId, applicationId, keyPaswd) locations = driver.list_locations() networks = driver.ex_list_networks() for network in networks: pass if network.name == ex_network: pass ex_network = network for loc in locations: pass if loc.id == location: pass locationID = loc sizesNode = driver.list_sizes(location=locationID) imagesNode = driver.list_images(location=locationID, ex_publisher=None, ex_offer=None, ex_sku=None, ex_version=None) for sizeNode in sizesNode: if sizeNode.name == size: pass sizeName = sizeNode for imageNode in imagesNode: if imageNode.id == image: pass imageId = imageNode nodeCreate = driver.create_node(name, sizeName, imageId, None, None, None, location=locationID, ex_network=ex_network, ex_subnet=None, ex_nic=None) types = 'running' node = checkStatus.checkStatus(driver, nodeCreate.id, types) if node != 0: pass v4 = [] ips = { 'ipaddress': node.public_ips, 'gateway': 'NULL', 'mask': 'NULL', 'private_ip': node.private_ips } v4.append(ips) network = {'v4': v4} extra = { 'instance_type': node.extra['properties']['hardwareProfile']['vmSize'], 'network': network } attr = { 'id': node.extra['properties']['vmId'], 'region': node.extra['location'], 'name': node.name, 'state': node.state, 'public_ip': node.public_ips, 'provider': 'Azure Virtual machines', 'extra': extra } nodesProvider = json.dumps(attr) if provider == "Linode": pass apiKey = driverUno driverDos = driverDos driverTres = driverTres driverCuatro = driverCuatro nodeId = nodeId driver = LinodeNodeDriver(apiKey) node = driver.create_node(name, image, size, auth, location) nodesProvider = json.dumps(node) return nodesProvider
def getNode(provider,driverUno,driverDos,driverTres,driverCuatro,nodeId): pass nodesProvider = '' if provider == "Digital Ocean": pass accessKey = driverUno driverDos = driverDos driverTres = driverTres driverCuatro = driverCuatro nodeId = nodeId driver = DigitalOceanNodeDriver(accessKey) idsNodes = driver.list_nodes() for idNodes in idsNodes: #print idsNodes if idNodes.id == nodeId: pass idNod = idNodes # print idNod idNod.extra = json.dumps(idNod.extra); attr = {'id' : idNod.id, 'name' : idNod.name, 'state' : idNod.state, 'public_ips' : idNod.public_ips, 'private_ips' : idNod.private_ips, 'provider' : 'DigitalOcean', 'extra' : idNod.extra} nodesProvider = json.dumps(attr) if provider == "EC2": pass accessId = driverUno secretKey = driverDos region = driverTres driverCuatro = driverCuatro nodeId = nodeId # driver = BaseEC2NodeDriver(accessId,secretKey,'eu-west-1') cls = get_driver(Provider.EC2) driver = cls(accessId, secretKey, region=region) idsNodes = driver.list_nodes() for idNodes in idsNodes: #print idsNodes if idNodes.id == nodeId: pass node = idNodes if node.state == 'terminated': v4 = [] ips = {'ipaddress' : node.public_ips, 'gateway' : 'NULL', 'mask' : 'NULL', 'private_ip' : node.private_ips} v4.append(ips) network = {'v4' : v4} extra = {'launch_time' : node.extra['launch_time'], 'instance_type' : node.extra['instance_type'], 'network' : network} attr = {'id' : node.id, 'region' : region, 'name': node.name, 'state' : node.state, 'public_ip' : node.public_ips, 'provider' : 'Amazon', 'extra' : extra} if node.state != 'terminated': v4 = [] ips = {'ipaddress' : node.public_ips[0], 'gateway' : 'NULL', 'mask' : 'NULL', 'private_ip' : node.private_ips[0]} v4.append(ips) network = {'v4' : v4} extra = {'launch_time' : node.extra['launch_time'], 'instance_type' : node.extra['instance_type'], 'network' : network} attr = {'id' : node.id, 'region' : region, 'name': node.name, 'state' : node.state, 'public_ip' : node.public_ips[0], 'provider' : 'Amazon', 'extra' : extra} nodesProvider = json.dumps(attr) if provider == "Azure": pass tenantId = driverUno subscriptionId = driverDos applicationId = driverTres keyPaswd = driverCuatro nodeId = nodeId driver = AzureNodeDriver(tenantId,subscriptionId,applicationId,keyPaswd) idsNodes = driver.list_nodes() for idNodes in idsNodes: #print idsNodes if idNodes.id == nodeId: pass node = idNodes # print idNod v4 = [] ips = {'ipaddress' : node.public_ips, 'gateway' : 'NULL', 'mask' : 'NULL', 'private_ip' : node.private_ips} v4.append(ips) network = {'v4' : v4} extra = {'instance_type' : node.extra['properties']['hardwareProfile']['vmSize'], 'network' : network} attr = {'id' : node.extra['properties']['vmId'], 'region' : node.extra['location'], 'name': node.name, 'state' : node.state, 'public_ip' : node.public_ips, 'provider' : 'Azure Virtual machines', 'extra' : extra} nodesProvider = json.dumps(node) if provider == "Linode": pass apiKey = driverUno driverDos = driverDos driverTres = driverTres driverCuatro = driverCuatro nodeId = nodeId driver = LinodeNodeDriver(apiKey) for idNodes in idsNodes: #print idsNodes if idNodes.id == nodeId: pass idNod = idNodes # print idNod nodesProvider = json.dumps(idNod) return nodesProvider
def setUp(self): LinodeNodeDriver.connectionCls.conn_class = LinodeMockHttp LinodeMockHttp.use_param = 'api_action' self.driver = LinodeNodeDriver('foo', api_version='3.0')
def getAllNodes(provider, driverUno, driverDos, driverTres, driverCuatro): pass nodesProvider = '' node = [] if provider == "Digital Ocean": pass accessKey = driverUno driverDos = driverDos driverTres = driverTres driverCuatro = driverCuatro driver = DigitalOceanNodeDriver(accessKey) idsNodes = driver.list_nodes() for idNodes in idsNodes: #print idsNodes pass idNodes.extra = json.dumps(idNodes.extra) attr = { 'id': idNodes.id, 'name': idNodes.name, 'state': idNodes.state, 'public_ips': idNodes.public_ips, 'private_ips': idNodes.private_ips, 'provider': 'DigitalOcean', 'extra': idNodes.extra } node.append(attr) nodesProvider = json.dumps(attr) if provider == "EC2": pass accessId = driverUno secretKey = driverDos region = driverTres driverCuatro = driverCuatro # driver = BaseEC2NodeDriver(accessId,secretKey,'eu-west-1') cls = get_driver(Provider.EC2) driver = cls(accessId, secretKey, region=region) nodes = driver.list_nodes() nodeFunction = [] for node in nodes: pass if node.state != 'terminated': v4 = [] ips = { 'ipaddress': node.public_ips[0], 'gateway': 'NULL', 'mask': 'NULL', 'private_ip': node.private_ips[0] } v4.append(ips) network = {'v4': v4} extra = { 'launch_time': node.extra['launch_time'], 'instance_type': node.extra['instance_type'], 'network': network } attr = { 'id': node.id, 'region': region, 'name': node.name, 'state': node.state, 'public_ip': node.public_ips[0], 'provider': 'Amazon', 'extra': extra } nodeFunction.append(json.dumps(attr)) nodesProvider = nodeFunction if provider == "Azure": pass tenantId = driverUno subscriptionId = driverDos applicationId = driverTres keyPaswd = driverCuatro driver = AzureNodeDriver(tenantId, subscriptionId, applicationId, keyPaswd) nodes = driver.list_nodes() print nodes if provider == "Linode": pass apiKey = driverUno driverDos = driverDos driverTres = driverTres driverCuatro = driverCuatro driver = LinodeNodeDriver(apiKey) nodes = driver.list_nodes() nodesProvider = nodes return nodesProvider
def shutdownNode(provider, driverUno, driverDos, driverTres, driverCuatro, nodeId): pass nodesProvider = '' if provider == "Digital Ocean": pass accessKey = driverUno driverDos = driverDos driverTres = driverTres driverCuatro = driverCuatro nodeId = nodeId driver = DigitalOceanNodeDriver(accessKey) idsNodes = driver.list_nodes() for idNodes in idsNodes: #print idsNodes if idNodes.id == nodeId: pass idNod = idNodes # print idNod nodeStopped = driver.ex_shutdown_node(idNod) types = 'stopped' node = checkStatus.checkStatus(driver, idNod.id, types) if node != 0: nodesProvider = nodeStopped if provider == "EC2": pass accessId = driverUno secretKey = driverDos region = driverTres driverCuatro = driverCuatro nodeId = nodeId # driver = BaseEC2NodeDriver(accessId,secretKey,'eu-west-1') cls = get_driver(Provider.EC2) driver = cls(accessId, secretKey, region=region) idsNodes = driver.list_nodes() for idNodes in idsNodes: #print idsNodes if idNodes.id == nodeId: pass idNod = idNodes # print idNod nodeStopped = driver.ex_stop_node(idNod) types = 'stopped' node = checkStatus.checkStatus(driver, idNod.id, types) if node != 0: nodesProvider = nodeStopped if provider == "Azure": pass tenantId = driverUno subscriptionId = driverDos applicationId = driverTres keyPaswd = driverCuatro nodeId = nodeId driver = AzureNodeDriver(tenantId, subscriptionId, applicationId, keyPaswd) idsNodes = driver.list_nodes() for idNodes in idsNodes: #print idsNodes if idNodes.id == nodeId: pass idNod = idNodes # print idNod nodeStopped = driver.ex_stop_node(idNod) types = 'stopped' node = checkStatus.checkStatus(driver, idNod.id, types) if node != 0: nodesProvider = nodeStopped if provider == "Linode": pass apiKey = driverUno driverDos = driverDos driverTres = driverTres driverCuatro = driverCuatro nodeId = nodeId driver = LinodeNodeDriver(apiKey) idsNodes = driver.list_nodes() for idNodes in idsNodes: #print idsNodes if idNodes.id == nodeId: pass idNod = idNodes # print idNod nodeStopped = driver.ex_stop_node(idNod) types = 'stopped' node = checkStatus.checkStatus(driver, idNod.id, types) if node != 0: nodesProvider = nodeStopped return nodesProvider
def setUp(self): LinodeNodeDriver.connectionCls.conn_class = LinodeMockHttp LinodeMockHttp.use_param = "api_action" self.driver = LinodeNodeDriver("foo", api_version="3.0")