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