This is an automated email from the ASF dual-hosted git repository. micafer pushed a commit to branch unify_create_node in repository https://gitbox.apache.org/repos/asf/libcloud.git
commit 05b47c5ef9010e4ce48eb2b4d2e30594fd8599a8 Author: Miguel Caballer <[email protected]> AuthorDate: Wed Jul 22 13:03:50 2026 +0200 Unify NodeDriver functions --- libcloud/compute/drivers/abiquo.py | 4 +- libcloud/compute/drivers/azure.py | 36 +++++++++++++++--- libcloud/compute/drivers/azure_arm.py | 2 +- libcloud/compute/drivers/brightbox.py | 5 ++- libcloud/compute/drivers/cloudscale.py | 10 ++++- libcloud/compute/drivers/cloudsigma.py | 45 ++++++++++++++++++---- libcloud/compute/drivers/digitalocean.py | 30 ++++++++++++--- libcloud/compute/drivers/ec2.py | 27 +++++++++++-- libcloud/compute/drivers/equinixmetal.py | 23 ++++++++++-- libcloud/compute/drivers/gandi.py | 24 +++++++++++- libcloud/compute/drivers/gce.py | 13 ++++++- libcloud/compute/drivers/gig_g8.py | 33 +++++++++++++--- libcloud/compute/drivers/gridscale.py | 25 ++++++++++-- libcloud/compute/drivers/kamatera.py | 10 ++++- libcloud/compute/drivers/ktucloud.py | 4 +- libcloud/compute/drivers/kubevirt.py | 7 +++- libcloud/compute/drivers/linode.py | 48 ++++++++++++++++++++---- libcloud/compute/drivers/maxihost.py | 20 +++++++--- libcloud/compute/drivers/onapp.py | 11 +++++- libcloud/compute/drivers/opennebula.py | 11 ++++-- libcloud/compute/drivers/openstack.py | 20 ++++++++-- libcloud/compute/drivers/outscale.py | 18 +++++---- libcloud/compute/drivers/ovh.py | 9 ++++- libcloud/compute/drivers/scaleway.py | 36 +++++++++++++++--- libcloud/compute/drivers/upcloud.py | 5 ++- libcloud/compute/drivers/vcloud.py | 4 +- libcloud/compute/drivers/vsphere.py | 15 ++++++-- libcloud/compute/drivers/vultr.py | 43 +++++++++++++++------ libcloud/test/compute/test_abiquo.py | 22 +++++++++-- libcloud/test/compute/test_dimensiondata_v2_3.py | 38 ++++++++++++++++++- libcloud/test/compute/test_dimensiondata_v2_4.py | 38 ++++++++++++++++++- libcloud/test/compute/test_ec2.py | 2 +- libcloud/test/compute/test_gce.py | 2 +- libcloud/test/compute/test_linode_v4.py | 10 ++--- libcloud/test/compute/test_nttcis.py | 40 +++++++++++++++++++- libcloud/test/compute/test_onapp.py | 2 + libcloud/test/compute/test_openstack.py | 1 + libcloud/test/compute/test_vcl.py | 2 +- libcloud/test/compute/test_vcloud.py | 2 +- 39 files changed, 574 insertions(+), 123 deletions(-) diff --git a/libcloud/compute/drivers/abiquo.py b/libcloud/compute/drivers/abiquo.py index 7ce8a87e9..305c618a1 100644 --- a/libcloud/compute/drivers/abiquo.py +++ b/libcloud/compute/drivers/abiquo.py @@ -76,9 +76,7 @@ class AbiquoNodeDriver(NodeDriver): super().__init__(key=user_id, secret=secret, secure=False, host=None, port=None, **kwargs) self.ex_populate_cache() - def create_node( - self, name, size, image, location=None, auth=None, ex_group_name=None - ): + def create_node(self, name, size, image, location=None, auth=None, ex_group_name=None): """ Create a new node instance in Abiquo diff --git a/libcloud/compute/drivers/azure.py b/libcloud/compute/drivers/azure.py index a35488830..81388f14b 100644 --- a/libcloud/compute/drivers/azure.py +++ b/libcloud/compute/drivers/azure.py @@ -334,7 +334,10 @@ class AzureNodeDriver(NodeDriver): self.follow_redirects = kwargs.get("follow_redirects", True) super().__init__(self.subscription_id, self.key_file, secure=True, **kwargs) - def list_sizes(self): + def list_sizes( + self, + location=None, + ): """ Lists all sizes @@ -1005,19 +1008,40 @@ class AzureNodeDriver(NodeDriver): Functions not implemented """ - def create_volume_snapshot(self): + def create_volume_snapshot( + self, + volume, + name=None, + ): raise NotImplementedError("You cannot create snapshots of " "Azure VMs at this time.") - def attach_volume(self): + def attach_volume( + self, + node, + volume, + device=None, + ): raise NotImplementedError("attach_volume is not supported " "at this time.") - def create_volume(self): + def create_volume( + self, + size, + name, + location=None, + snapshot=None, + ): raise NotImplementedError("create_volume is not supported " "at this time.") - def detach_volume(self): + def detach_volume( + self, + volume, + ): raise NotImplementedError("detach_volume is not supported " "at this time.") - def destroy_volume(self): + def destroy_volume( + self, + volume, + ): raise NotImplementedError("destroy_volume is not supported " "at this time.") """ diff --git a/libcloud/compute/drivers/azure_arm.py b/libcloud/compute/drivers/azure_arm.py index 9c76b384f..68868b254 100644 --- a/libcloud/compute/drivers/azure_arm.py +++ b/libcloud/compute/drivers/azure_arm.py @@ -1082,10 +1082,10 @@ class AzureNodeDriver(NodeDriver): self, node, volume, + device=None, ex_lun=None, ex_vhd_uri=None, ex_vhd_create=False, - **ex_kwargs, ): """ Attach a volume to node. diff --git a/libcloud/compute/drivers/brightbox.py b/libcloud/compute/drivers/brightbox.py index 7f7a8766e..655ee7242 100644 --- a/libcloud/compute/drivers/brightbox.py +++ b/libcloud/compute/drivers/brightbox.py @@ -218,7 +218,10 @@ class BrightboxNodeDriver(NodeDriver): data = self.connection.request("/%s/images" % self.api_version).object return list(map(self._to_image, data)) - def list_sizes(self): + def list_sizes( + self, + location=None, + ): data = self.connection.request("/%s/server_types" % self.api_version).object return list(map(self._to_size, data)) diff --git a/libcloud/compute/drivers/cloudscale.py b/libcloud/compute/drivers/cloudscale.py index 58958c979..d16a9b310 100644 --- a/libcloud/compute/drivers/cloudscale.py +++ b/libcloud/compute/drivers/cloudscale.py @@ -94,13 +94,19 @@ class CloudscaleNodeDriver(NodeDriver): """ return self._list_resources("/v1/servers", self._to_node) - def list_sizes(self): + def list_sizes( + self, + location=None, + ): """ Lists all available sizes. On cloudscale these are known as flavors. """ return self._list_resources("/v1/flavors", self._to_size) - def list_images(self): + def list_images( + self, + location=None, + ): """ List all images. diff --git a/libcloud/compute/drivers/cloudsigma.py b/libcloud/compute/drivers/cloudsigma.py index f533d756c..00c2057d5 100644 --- a/libcloud/compute/drivers/cloudsigma.py +++ b/libcloud/compute/drivers/cloudsigma.py @@ -1180,7 +1180,10 @@ class CloudSigma_2_0_NodeDriver(CloudSigmaNodeDriver): return nodes - def list_sizes(self): + def list_sizes( + self, + location=None, + ): """ List available sizes. """ @@ -1202,7 +1205,10 @@ class CloudSigma_2_0_NodeDriver(CloudSigmaNodeDriver): return sizes - def list_images(self): + def list_images( + self, + location=None, + ): """ Return a list of available pre-installed library drives. @@ -1626,7 +1632,15 @@ class CloudSigma_2_0_NodeDriver(CloudSigmaNodeDriver): return drive - def create_volume(self, name, size, media="disk", ex_avoid=None): + def create_volume( + self, + size, + name, + location=None, + snapshot=None, + media="disk", + ex_avoid=None, + ): return self.ex_create_drive(name=name, size=size, media=media, ex_avoid=ex_avoid) def ex_clone_drive(self, drive, name=None, ex_avoid=None): @@ -1733,7 +1747,12 @@ class CloudSigma_2_0_NodeDriver(CloudSigmaNodeDriver): return response.status == 200 - def attach_volume(self, node, volume): + def attach_volume( + self, + node, + volume, + device=None, + ): return self.ex_attach_drive(node=node, drive=volume) def ex_detach_drive(self, node, drive): @@ -1744,7 +1763,11 @@ class CloudSigma_2_0_NodeDriver(CloudSigmaNodeDriver): return response.status == 200 - def detach_volume(self, node, volume): + def detach_volume( + self, + volume, + node=None, + ): return self.ex_detach_drive(node=node, drive=volume) def ex_get_drive(self, drive_id): @@ -1769,7 +1792,11 @@ class CloudSigma_2_0_NodeDriver(CloudSigmaNodeDriver): return response.status == httplib.NO_CONTENT - def destroy_volume(self, drive): + def destroy_volume( + self, + volume, + ): + drive = volume return self.ex_destroy_drive(drive=drive) # Firewall policies extension methods @@ -2158,7 +2185,10 @@ class CloudSigma_2_0_NodeDriver(CloudSigmaNodeDriver): return keys - def get_key_pair(self, key_uuid): + def get_key_pair( + self, + name, + ): """ Retrieve a single key pair. @@ -2167,6 +2197,7 @@ class CloudSigma_2_0_NodeDriver(CloudSigmaNodeDriver): :rtype: :class:`.KeyPair` """ + key_uuid = name action = "/keypairs/%s/" % (key_uuid) response = self.connection.request(action=action, method="GET").object diff --git a/libcloud/compute/drivers/digitalocean.py b/libcloud/compute/drivers/digitalocean.py index dbab5cff1..3fb7fa635 100644 --- a/libcloud/compute/drivers/digitalocean.py +++ b/libcloud/compute/drivers/digitalocean.py @@ -100,7 +100,10 @@ class DigitalOcean_v2_NodeDriver(DigitalOcean_v2_BaseDriver, DigitalOceanNodeDri EX_CREATE_ATTRIBUTES = ["backups", "ipv6", "private_networking", "tags", "ssh_keys"] - def list_images(self): + def list_images( + self, + location=None, + ): data = self._paginated_request("/v2/images", "images") return list(map(self._to_image, data)) @@ -231,7 +234,12 @@ class DigitalOcean_v2_NodeDriver(DigitalOcean_v2_BaseDriver, DigitalOceanNodeDri ) return res.status == httplib.CREATED - def create_image(self, node, name): + def create_image( + self, + node, + name, + description=None, + ): """ Create an image from a Node. @@ -251,7 +259,10 @@ class DigitalOcean_v2_NodeDriver(DigitalOcean_v2_BaseDriver, DigitalOceanNodeDri ) return res.status == httplib.CREATED - def delete_image(self, image): + def delete_image( + self, + node_image, + ): """Delete an image for node. @inherits: :class:`NodeDriver.delete_image` @@ -261,6 +272,7 @@ class DigitalOcean_v2_NodeDriver(DigitalOcean_v2_BaseDriver, DigitalOceanNodeDri :rtype: ``bool`` """ + image = node_image res = self.connection.request("/v2/images/%s" % (image.id), method="DELETE") return res.status == httplib.NO_CONTENT @@ -374,13 +386,17 @@ class DigitalOcean_v2_NodeDriver(DigitalOcean_v2_BaseDriver, DigitalOceanNodeDri return self._to_key_pair(data=data) - def delete_key_pair(self, key): + def delete_key_pair( + self, + key_pair, + ): """ Delete an existing SSH key. :param key: SSH key (required) :type key: :class:`KeyPair` """ + key = key_pair key_id = key.extra["id"] res = self.connection.request("/v2/account/keys/%s" % (key_id), method="DELETE") return res.status == httplib.NO_CONTENT @@ -495,7 +511,11 @@ class DigitalOcean_v2_NodeDriver(DigitalOcean_v2_BaseDriver, DigitalOceanNodeDri return all([r.status == httplib.ACCEPTED for r in responses]) - def create_volume_snapshot(self, volume, name): + def create_volume_snapshot( + self, + volume, + name=None, + ): """ Create a new volume snapshot. diff --git a/libcloud/compute/drivers/ec2.py b/libcloud/compute/drivers/ec2.py index 77a9a5017..ef7ae5476 100644 --- a/libcloud/compute/drivers/ec2.py +++ b/libcloud/compute/drivers/ec2.py @@ -1876,7 +1876,12 @@ class BaseEC2NodeDriver(NodeDriver): return volume - def attach_volume(self, node, volume, device): + def attach_volume( + self, + node, + volume, + device=None, + ): params = { "Action": "AttachVolume", "VolumeId": volume.id, @@ -2018,7 +2023,13 @@ class BaseEC2NodeDriver(NodeDriver): return self._get_boolean(res) - def copy_image(self, image, source_region, name=None, description=None): + def copy_image( + self, + source_region, + node_image, + name, + description=None, + ): """ Copy an Amazon Machine Image from the specified source region to the current region. @@ -2040,6 +2051,7 @@ class BaseEC2NodeDriver(NodeDriver): :return: Instance of class ``NodeImage`` :rtype: :class:`NodeImage` """ + image = node_image params = { "Action": "CopyImage", "SourceRegion": source_region, @@ -2110,7 +2122,10 @@ class BaseEC2NodeDriver(NodeDriver): return image - def delete_image(self, image): + def delete_image( + self, + node_image, + ): """ Deletes an image at Amazon given a NodeImage object @@ -2121,6 +2136,7 @@ class BaseEC2NodeDriver(NodeDriver): :rtype: ``bool`` """ + image = node_image params = {"Action": "DeregisterImage", "ImageId": image.id} response = self.connection.request(self.path, params=params).object @@ -5502,7 +5518,10 @@ class EucNodeDriver(BaseEC2NodeDriver): extra={"cpu": int(cpu)}, ) - def list_sizes(self): + def list_sizes( + self, + location=None, + ): """ Lists available nodes sizes. diff --git a/libcloud/compute/drivers/equinixmetal.py b/libcloud/compute/drivers/equinixmetal.py index 2db8a0b6b..a7103cdc4 100644 --- a/libcloud/compute/drivers/equinixmetal.py +++ b/libcloud/compute/drivers/equinixmetal.py @@ -245,12 +245,19 @@ def _list_async(driver): return list(map(self._to_location, data)) - def list_images(self): + def list_images( + self, + location=None, + ): data = self.connection.request("/metal/v1/operating-systems").object["operating_systems"] return list(map(self._to_image, data)) - def list_sizes(self, ex_project_id=None): + def list_sizes( + self, + location=None, + ex_project_id=None, + ): project_id = ( ex_project_id or self.project_id or (len(self.projects) and self.projects[0].id) ) @@ -417,7 +424,11 @@ def _list_async(driver): return list(map(self._to_key_pairs, data)) - def create_key_pair(self, name, public_key): + def create_key_pair( + self, + name, + public_key=None, + ): """ Create a new SSH key. @@ -432,13 +443,17 @@ def _list_async(driver): return self._to_key_pairs(data) - def delete_key_pair(self, key): + def delete_key_pair( + self, + key_pair, + ): """ Delete an existing SSH key. :param key: SSH key (required) :type key: :class:`KeyPair` """ + key = key_pair key_id = key.name res = self.connection.request("/metal/v1/ssh-keys/%s" % (key_id), method="DELETE") diff --git a/libcloud/compute/drivers/gandi.py b/libcloud/compute/drivers/gandi.py index 8b97d5c22..b3543c85e 100644 --- a/libcloud/compute/drivers/gandi.py +++ b/libcloud/compute/drivers/gandi.py @@ -230,7 +230,23 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver): return True return False - def deploy_node(self, **kwargs): + def deploy_node( + self, + deploy, + ssh_username="root", + ssh_alternate_usernames=None, + ssh_port=22, + ssh_timeout=10, + ssh_key=None, + ssh_key_password=None, + auth=None, + timeout=300, + max_tries=3, + ssh_interface="public_ips", + at_exit_func=None, + wait_period=5, + **create_node_kwargs, + ): """ deploy_node is not implemented for gandi driver @@ -521,7 +537,11 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver): return True return False - def detach_volume(self, node, volume): + def detach_volume( + self, + volume, + node=None, + ): """ Detaches a volume from a node. diff --git a/libcloud/compute/drivers/gce.py b/libcloud/compute/drivers/gce.py index f15ee2aa8..e9d77c6e3 100644 --- a/libcloud/compute/drivers/gce.py +++ b/libcloud/compute/drivers/gce.py @@ -2678,7 +2678,12 @@ class GCENodeDriver(NodeDriver): return list_forwarding_rules - def list_images(self, ex_project=None, ex_include_deprecated=False): + def list_images( + self, + location=None, + ex_project=None, + ex_include_deprecated=False, + ): """ Return a list of image objects. If no project is specified, a list of all non-deprecated global and vendor images images is returned. By @@ -6135,7 +6140,11 @@ class GCENodeDriver(NodeDriver): return self.ex_get_volume(name, location) - def create_volume_snapshot(self, volume, name): + def create_volume_snapshot( + self, + volume, + name=None, + ): """ Create a snapshot of the provided Volume. diff --git a/libcloud/compute/drivers/gig_g8.py b/libcloud/compute/drivers/gig_g8.py index 1c5937a0f..e8d299a18 100644 --- a/libcloud/compute/drivers/gig_g8.py +++ b/libcloud/compute/drivers/gig_g8.py @@ -416,7 +416,10 @@ class G8NodeDriver(NodeDriver): networks.append(self._to_network(network)) return networks - def list_sizes(self): + def list_sizes( + self, + location=None, + ): # type () -> List[Size] """ Returns a list of node sizes as a cloud provider might have @@ -477,7 +480,10 @@ class G8NodeDriver(NodeDriver): self._api_request("/machines/delete", {"machineId": int(node.id)}) return True - def list_images(self): + def list_images( + self, + location=None, + ): # type () -> List[Image] """ Returns a list of images as a cloud provider might have @@ -498,7 +504,15 @@ class G8NodeDriver(NodeDriver): volumes.append(self._to_volume(disk)) return volumes - def create_volume(self, size, name, ex_description, ex_disk_type="D"): + def create_volume( + self, + size, + name, + location=None, + snapshot=None, + ex_description=None, + ex_disk_type="D", + ): # type (int, str, str, Optional[str]) -> StorageVolume """ Create volume @@ -535,13 +549,22 @@ class G8NodeDriver(NodeDriver): self._api_request("/disks/delete", {"diskId": int(volume.id)}) return True - def attach_volume(self, node, volume): + def attach_volume( + self, + node, + volume, + device=None, + ): # type (Node, StorageVolume) -> bool params = {"machineId": int(node.id), "diskId": int(volume.id)} self._api_request("/machines/attachDisk", params) return True - def detach_volume(self, node, volume): + def detach_volume( + self, + volume, + node=None, + ): # type (Node, StorageVolume) -> bool params = {"machineId": int(node.id), "diskId": int(volume.id)} self._api_request("/machines/detachDisk", params) diff --git a/libcloud/compute/drivers/gridscale.py b/libcloud/compute/drivers/gridscale.py index 69331b4b5..263a83be8 100644 --- a/libcloud/compute/drivers/gridscale.py +++ b/libcloud/compute/drivers/gridscale.py @@ -194,7 +194,10 @@ class GridscaleNodeDriver(GridscaleBaseDriver, NodeDriver): ips.append(ip) return ips - def list_images(self): + def list_images( + self, + location=None, + ): """ List images. @@ -379,7 +382,11 @@ class GridscaleNodeDriver(GridscaleBaseDriver, NodeDriver): ) ) - def create_volume_snapshot(self, volume, name): + def create_volume_snapshot( + self, + volume, + name=None, + ): """ Creates a snapshot of the current state of your volume, you can rollback to. @@ -406,7 +413,12 @@ class GridscaleNodeDriver(GridscaleBaseDriver, NodeDriver): ) ) - def create_image(self, node, name): + def create_image( + self, + node, + name, + description=None, + ): """ Creates an image from a node object. @@ -725,7 +737,12 @@ class GridscaleNodeDriver(GridscaleBaseDriver, NodeDriver): ) return result - def attach_volume(self, node, volume): + def attach_volume( + self, + node, + volume, + device=None, + ): """ Attaches volume to node. diff --git a/libcloud/compute/drivers/kamatera.py b/libcloud/compute/drivers/kamatera.py index 051224afd..645b7ce17 100644 --- a/libcloud/compute/drivers/kamatera.py +++ b/libcloud/compute/drivers/kamatera.py @@ -88,7 +88,10 @@ class KamateraNodeDriver(NodeDriver): for datacenter in response.object ] - def list_sizes(self, location): + def list_sizes( + self, + location=None, + ): """ List predefined sizes for the given location. @@ -111,7 +114,10 @@ class KamateraNodeDriver(NodeDriver): for size in response.object ] - def list_images(self, location): + def list_images( + self, + location=None, + ): """ List available disk images. diff --git a/libcloud/compute/drivers/ktucloud.py b/libcloud/compute/drivers/ktucloud.py index 2c5dca14f..e6d426810 100644 --- a/libcloud/compute/drivers/ktucloud.py +++ b/libcloud/compute/drivers/ktucloud.py @@ -60,9 +60,7 @@ class KTUCloudNodeDriver(CloudStackNodeDriver): sizes.append(NodeSize(diskofferingid, sz["diskofferingdesc"], 0, 0, 0, 0, self)) return sizes - def create_node( - self, name, size, image, location=None, auth=None, ex_usageplantype="hourly" - ): + def create_node(self, name, size, image, location=None, auth=None, ex_usageplantype="hourly"): params = { "displayname": name, "serviceofferingid": image.id, diff --git a/libcloud/compute/drivers/kubevirt.py b/libcloud/compute/drivers/kubevirt.py index b6eceaddb..f0a46dcd6 100644 --- a/libcloud/compute/drivers/kubevirt.py +++ b/libcloud/compute/drivers/kubevirt.py @@ -1204,6 +1204,7 @@ class KubeVirtNodeDriver(KubernetesDriverMixin, NodeDriver): size, name, location=None, + snapshot=None, ex_storage_class_name="", ex_volume_mode="Filesystem", ex_access_mode="ReadWriteOnce", @@ -1518,7 +1519,11 @@ class KubeVirtNodeDriver(KubernetesDriverMixin, NodeDriver): except Exception: raise - def detach_volume(self, volume, ex_node): + def detach_volume( + self, + volume, + ex_node=None, + ): """ Detaches a volume from a node but the node must be given since a PVC can have more than one VMI's pointing to it diff --git a/libcloud/compute/drivers/linode.py b/libcloud/compute/drivers/linode.py index cc6d988b2..2fd487f40 100644 --- a/libcloud/compute/drivers/linode.py +++ b/libcloud/compute/drivers/linode.py @@ -126,7 +126,10 @@ class LinodeNodeDriverV4(LinodeNodeDriver): data = self._paginated_request("/v4/linode/instances", "data") return [self._to_node(obj) for obj in data] - def list_sizes(self): + def list_sizes( + self, + location=None, + ): """ Returns a list of Linode Types @@ -135,7 +138,10 @@ class LinodeNodeDriverV4(LinodeNodeDriver): data = self._paginated_request("/v4/linode/types", "data") return [self._to_size(obj) for obj in data] - def list_images(self): + def list_images( + self, + location=None, + ): """ Returns a list of images @@ -523,7 +529,15 @@ class LinodeNodeDriverV4(LinodeNodeDriver): return [self._to_volume(obj) for obj in data] - def create_volume(self, name, size, location=None, node=None, tags=None): + def create_volume( + self, + size, + name, + location=None, + snapshot=None, + node=None, + tags=None, + ): """Creates a volume and optionally attaches it to a node. :param name: The name to be given to volume (required).\ @@ -579,7 +593,13 @@ class LinodeNodeDriverV4(LinodeNodeDriver): ).object return self._to_volume(response) - def attach_volume(self, node, volume, persist_across_boots=True): + def attach_volume( + self, + node, + volume, + device=None, + persist_across_boots=True, + ): """Attaches a volume to a node. Volume and node must be located in the same region @@ -706,7 +726,10 @@ class LinodeNodeDriverV4(LinodeNodeDriver): response = self.connection.request("/v4/volumes/%s" % volume_id).object return self._to_volume(response) - def get_image(self, image): + def get_image( + self, + image_id, + ): """ Lookup a Linode image @@ -715,10 +738,16 @@ class LinodeNodeDriverV4(LinodeNodeDriver): :rtype: :class: `NodeImage` """ + image = image_id response = self.connection.request("/v4/images/%s" % image, method="GET") return self._to_image(response.object) - def create_image(self, disk, name=None, description=None): + def create_image( + self, + node, + name, + description=None, + ): """Creates a private image from a LinodeDisk. Images are limited to three per account. @@ -737,6 +766,7 @@ class LinodeNodeDriverV4(LinodeNodeDriver): :rtype: :class:`NodeImage` """ + disk = node if not isinstance(disk, LinodeDisk): raise LinodeExceptionV4("Invalid disk instance") @@ -747,7 +777,10 @@ class LinodeNodeDriverV4(LinodeNodeDriver): ).object return self._to_image(response) - def delete_image(self, image): + def delete_image( + self, + node_image, + ): """Deletes a private image :param image: NodeImage to delete (required) @@ -755,6 +788,7 @@ class LinodeNodeDriverV4(LinodeNodeDriver): :rtype: ``bool`` """ + image = node_image if not isinstance(image, NodeImage): raise LinodeExceptionV4("Invalid image instance") diff --git a/libcloud/compute/drivers/maxihost.py b/libcloud/compute/drivers/maxihost.py index 7107c8146..129526f9d 100644 --- a/libcloud/compute/drivers/maxihost.py +++ b/libcloud/compute/drivers/maxihost.py @@ -35,9 +35,7 @@ class MaxihostNodeDriver(NodeDriver): name = "Maxihost" website = "https://www.maxihost.com/" - def create_node( - self, name, size, image, location=None, auth=None, ex_ssh_key_ids=None - ): + def create_node(self, name, size, image, location=None, auth=None, ex_ssh_key_ids=None): """ Create a node. @@ -158,7 +156,10 @@ class MaxihostNodeDriver(NodeDriver): country = data.get("location").get("country", "") return NodeLocation(id=data["slug"], name=name, country=country, driver=self) - def list_sizes(self): + def list_sizes( + self, + location=None, + ): """ List sizes """ @@ -187,7 +188,10 @@ class MaxihostNodeDriver(NodeDriver): extra=extra, ) - def list_images(self): + def list_images( + self, + location=None, + ): """ List images """ @@ -216,7 +220,11 @@ class MaxihostNodeDriver(NodeDriver): data = self.connection.request("/account/keys") return list(map(self._to_key_pair, data.object["ssh_keys"])) - def create_key_pair(self, name, public_key): + def create_key_pair( + self, + name, + public_key=None, + ): """ Create a new SSH key. diff --git a/libcloud/compute/drivers/onapp.py b/libcloud/compute/drivers/onapp.py index 902b80075..76ab8fd06 100644 --- a/libcloud/compute/drivers/onapp.py +++ b/libcloud/compute/drivers/onapp.py @@ -227,7 +227,10 @@ class OnAppNodeDriver(NodeDriver): nodes.append(self._to_node(vm["virtual_machine"])) return nodes - def list_images(self): + def list_images( + self, + location=None, + ): """ List all images @@ -287,7 +290,10 @@ class OnAppNodeDriver(NodeDriver): ) return self._to_key_pair(response.object["ssh_key"]) - def delete_key_pair(self, key): + def delete_key_pair( + self, + key_pair, + ): """ Delete an existing key pair. @@ -297,6 +303,7 @@ class OnAppNodeDriver(NodeDriver): :return: True on success :rtype: ``bool`` """ + key = key_pair key_id = key.name response = self.connection.request("/settings/ssh_keys/%s.json" % key_id, method="DELETE") return response.status == httplib.NO_CONTENT diff --git a/libcloud/compute/drivers/opennebula.py b/libcloud/compute/drivers/opennebula.py index 578a96977..d4e2d1695 100644 --- a/libcloud/compute/drivers/opennebula.py +++ b/libcloud/compute/drivers/opennebula.py @@ -704,9 +704,7 @@ class OpenNebula_2_0_NodeDriver(OpenNebulaNodeDriver): name = "OpenNebula (v2.0 - v2.2)" - def create_node( - self, name, size, image, location=None, auth=None, networks=None, context=None - ): + def create_node(self, name, size, image, location=None, auth=None, networks=None, context=None): """ Create a new OpenNebula node. @@ -1209,7 +1207,12 @@ class OpenNebula_3_6_NodeDriver(OpenNebula_3_2_NodeDriver): return resp.status == httplib.NO_CONTENT - def attach_volume(self, node, volume, device): + def attach_volume( + self, + node, + volume, + device=None, + ): action = ET.Element("ACTION") perform = ET.SubElement(action, "PERFORM") diff --git a/libcloud/compute/drivers/openstack.py b/libcloud/compute/drivers/openstack.py index b98e33fac..06edd7a12 100644 --- a/libcloud/compute/drivers/openstack.py +++ b/libcloud/compute/drivers/openstack.py @@ -1128,7 +1128,10 @@ class OpenStack_1_0_NodeDriver(OpenStackNodeDriver): self.connection.request("/images", method="POST", data=ET.tostring(image_elm)).object ) - def delete_image(self, image): + def delete_image( + self, + node_image, + ): """Delete an image for node. @inherits: :class:`NodeDriver.delete_image` @@ -1138,6 +1141,7 @@ class OpenStack_1_0_NodeDriver(OpenStackNodeDriver): :rtype: ``bool`` """ + image = node_image uri = "/images/%s" % image.id resp = self.connection.request(uri, method="DELETE") return resp.status == httplib.NO_CONTENT @@ -1782,7 +1786,13 @@ class OpenStack_1_1_NodeDriver(OpenStackNodeDriver): resp = self._node_action(node, "revertResize") return resp.status == httplib.ACCEPTED - def create_image(self, node, name, metadata=None): + def create_image( + self, + node, + name, + description=None, + metadata=None, + ): """ Creates a new image. @@ -2364,7 +2374,10 @@ class OpenStack_1_1_NodeDriver(OpenStackNodeDriver): self.connection.request("/images/{}".format(image_id)).object["image"] ) - def delete_image(self, image): + def delete_image( + self, + node_image, + ): """ Delete a NodeImage @@ -2375,6 +2388,7 @@ class OpenStack_1_1_NodeDriver(OpenStackNodeDriver): :rtype: ``bool`` """ + image = node_image resp = self.connection.request("/images/{}".format(image.id), method="DELETE") return resp.status == httplib.NO_CONTENT diff --git a/libcloud/compute/drivers/outscale.py b/libcloud/compute/drivers/outscale.py index 8ec74e746..db2104632 100644 --- a/libcloud/compute/drivers/outscale.py +++ b/libcloud/compute/drivers/outscale.py @@ -836,10 +836,10 @@ class OutscaleNodeDriver(NodeDriver): def create_image( self, + node, + name, + description=None, ex_architecture: str = None, - node: Node = None, - name: str = None, - description: str = None, ex_block_device_mapping: dict = None, ex_no_reboot: bool = False, ex_root_device_name: str = None, @@ -994,6 +994,7 @@ class OutscaleNodeDriver(NodeDriver): def list_images( self, + location=None, account_aliases: List[str] = None, account_ids: List[str] = None, architectures: List[str] = None, @@ -1386,13 +1387,14 @@ class OutscaleNodeDriver(NodeDriver): def create_volume_snapshot( self, + volume, + name=None, ex_description: str = None, ex_dry_run: bool = False, ex_file_location: str = None, ex_snapshot_size: int = None, ex_source_region_name: str = None, ex_source_snapshot: VolumeSnapshot = None, - volume: StorageVolume = None, ): """ Create a new volume snapshot. @@ -1678,11 +1680,13 @@ class OutscaleNodeDriver(NodeDriver): def create_volume( self, - ex_subregion_name: str, + size, + name, + location=None, + snapshot=None, + ex_subregion_name: str = None, ex_dry_run: bool = False, ex_iops: int = None, - size: int = None, - snapshot: VolumeSnapshot = None, ex_volume_type: str = None, ): """ diff --git a/libcloud/compute/drivers/ovh.py b/libcloud/compute/drivers/ovh.py index 16a9f7c5e..9bf73fc1c 100644 --- a/libcloud/compute/drivers/ovh.py +++ b/libcloud/compute/drivers/ovh.py @@ -265,7 +265,12 @@ class OvhNodeDriver(NodeDriver): return keys[0] - def import_key_pair_from_string(self, name, key_material, ex_location): + def import_key_pair_from_string( + self, + name, + key_material, + ex_location=None, + ): """ Import a new public key from string. @@ -298,7 +303,7 @@ class OvhNodeDriver(NodeDriver): self, size, name, - location, + location=None, snapshot=None, ex_volume_type="classic", ex_description=None, diff --git a/libcloud/compute/drivers/scaleway.py b/libcloud/compute/drivers/scaleway.py index 71f9405c1..7a9154ac4 100644 --- a/libcloud/compute/drivers/scaleway.py +++ b/libcloud/compute/drivers/scaleway.py @@ -187,7 +187,11 @@ class ScalewayNodeDriver(NodeDriver): for location in SCALEWAY_LOCATION_DATA ] - def list_sizes(self, region=None): + def list_sizes( + self, + location=None, + region=None, + ): """ List available VM sizes. @@ -246,7 +250,11 @@ class ScalewayNodeDriver(NodeDriver): extra=extra, ) - def list_images(self, region=None): + def list_images( + self, + location=None, + region=None, + ): """ List available VM images. @@ -261,7 +269,13 @@ class ScalewayNodeDriver(NodeDriver): images = response["images"] return [self._to_image(image) for image in images] - def create_image(self, node, name, region=None): + def create_image( + self, + node, + name, + description=None, + region=None, + ): """ Create a VM image from an existing node's root volume. @@ -554,7 +568,14 @@ class ScalewayNodeDriver(NodeDriver): extra=extra, ) - def create_volume(self, size, name, region=None): + def create_volume( + self, + size, + name, + location=None, + snapshot=None, + region=None, + ): """ Create a new volume. @@ -583,7 +604,12 @@ class ScalewayNodeDriver(NodeDriver): volume = response.object["volume"] return self._to_volume(volume) - def create_volume_snapshot(self, volume, name, region=None): + def create_volume_snapshot( + self, + volume, + name=None, + region=None, + ): """ Create snapshot from volume. diff --git a/libcloud/compute/drivers/upcloud.py b/libcloud/compute/drivers/upcloud.py index 83e68c72f..4419d9cea 100644 --- a/libcloud/compute/drivers/upcloud.py +++ b/libcloud/compute/drivers/upcloud.py @@ -173,7 +173,10 @@ class UpcloudDriver(NodeDriver): location, ) - def list_images(self): + def list_images( + self, + location=None, + ): """ List available distributions. diff --git a/libcloud/compute/drivers/vcloud.py b/libcloud/compute/drivers/vcloud.py index 8a86f5e4b..658701535 100644 --- a/libcloud/compute/drivers/vcloud.py +++ b/libcloud/compute/drivers/vcloud.py @@ -1606,9 +1606,7 @@ class VCloud_1_5_NodeDriver(VCloudNodeDriver): return results - def create_node( - self, name, size, image, location=None, auth=None, **kwargs - ): + def create_node(self, name, size, image, location=None, auth=None, **kwargs): """ Creates and returns node. If the source image is: - vApp template - a new vApp is instantiated from template diff --git a/libcloud/compute/drivers/vsphere.py b/libcloud/compute/drivers/vsphere.py index 884852d39..728c33665 100644 --- a/libcloud/compute/drivers/vsphere.py +++ b/libcloud/compute/drivers/vsphere.py @@ -256,7 +256,10 @@ class VSphereNodeDriver(NodeDriver): return VSphereNetwork(id=data.name, name=data.name, extra=extra) - def list_sizes(self): + def list_sizes( + self, + location=None, + ): """ Returns sizes """ @@ -1352,7 +1355,10 @@ class VSphere_REST_NodeDriver(NodeDriver): self.session_token = result.object["value"] self.connection.session_token = self.session_token - def list_sizes(self): + def list_sizes( + self, + location=None, + ): return [] def list_nodes( @@ -1915,7 +1921,10 @@ class VSphere_REST_NodeDriver(NodeDriver): return result - def list_images(self, **kwargs): + def list_images( + self, + location=None, + ): libraries = self.ex_list_content_libraries() item_ids = [] diff --git a/libcloud/compute/drivers/vultr.py b/libcloud/compute/drivers/vultr.py index 6a852ad0f..9e4d50a4f 100644 --- a/libcloud/compute/drivers/vultr.py +++ b/libcloud/compute/drivers/vultr.py @@ -844,10 +844,16 @@ class VultrNodeDriverV1(VultrNodeDriver): def list_locations(self): return self._list_resources("/v1/regions/list", self._to_location) - def list_sizes(self): + def list_sizes( + self, + location=None, + ): return self._list_resources("/v1/plans/list", self._to_size) - def list_images(self): + def list_images( + self, + location=None, + ): return self._list_resources("/v1/os/list", self._to_image) # pylint: disable=too-many-locals @@ -1370,7 +1376,11 @@ class VultrNodeDriverV2(VultrNodeDriver): return resp.success() - def list_sizes(self, ex_list_bare_metals: bool = True) -> List[NodeSize]: + def list_sizes( + self, + location=None, + ex_list_bare_metals: bool = True, + ): """List available node sizes. :keyword ex_list_bare_metals: Whether to fetch bare metal sizes. @@ -1385,7 +1395,10 @@ class VultrNodeDriverV2(VultrNodeDriver): sizes += self.ex_list_bare_metal_sizes() return sizes - def list_images(self) -> List[NodeImage]: + def list_images( + self, + location=None, + ): """List available node images. :rtype: ``list`` of :class: `NodeImage` @@ -1411,10 +1424,11 @@ class VultrNodeDriverV2(VultrNodeDriver): def create_volume( self, - size: int, - name: str, - location: Union[NodeLocation, str], - ) -> StorageVolume: + size, + name, + location=None, + snapshot=None, + ): """Create a new volume. :param size: Size of the volume in gigabytes.\ @@ -1445,10 +1459,11 @@ class VultrNodeDriverV2(VultrNodeDriver): def attach_volume( self, - node: Node, - volume: StorageVolume, + node, + volume, + device=None, ex_live: bool = True, - ) -> bool: + ): """Attaches volume to node. :param node: Node to attach volume to. @@ -1517,7 +1532,10 @@ class VultrNodeDriverV2(VultrNodeDriver): data = self._paginated_request("/v2/ssh-keys", "ssh_keys") return [self._to_key_pair(item) for item in data] - def get_key_pair(self, key_id: str) -> KeyPair: + def get_key_pair( + self, + name, + ): """Retrieve a single key pair. :param key_id: ID of the key pair to retrieve. @@ -1525,6 +1543,7 @@ class VultrNodeDriverV2(VultrNodeDriver): :rtype: :class: `KeyPair` """ + key_id = name resp = self.connection.request("/v2/ssh-keys/%s" % key_id) return self._to_key_pair(resp.object["ssh_key"]) diff --git a/libcloud/test/compute/test_abiquo.py b/libcloud/test/compute/test_abiquo.py index f15aa0cfd..7117403c3 100644 --- a/libcloud/test/compute/test_abiquo.py +++ b/libcloud/test/compute/test_abiquo.py @@ -107,7 +107,7 @@ class AbiquoNodeDriverTest(TestCaseMixin, unittest.TestCase): """ image = self.driver.list_images()[0] location = self.driver.list_locations()[0] - self.driver.create_node(image=image, location=location) + self.driver.create_node(name=None, size=None, image=image, location=location) def test_create_node_specify_wrong_location(self): """ @@ -115,7 +115,14 @@ class AbiquoNodeDriverTest(TestCaseMixin, unittest.TestCase): """ image = self.driver.list_images()[0] location = NodeLocation(435, "fake-location", "Spain", self.driver) - self.assertRaises(LibcloudError, self.driver.create_node, image=image, location=location) + self.assertRaises( + LibcloudError, + self.driver.create_node, + name=None, + size=None, + image=image, + location=location, + ) def test_create_node_specify_wrong_image(self): """ @@ -128,14 +135,21 @@ class AbiquoNodeDriverTest(TestCaseMixin, unittest.TestCase): image = NodeImage(3234, "dummy-image", self.driver) location = self.driver.list_locations()[0] # With this image, it should raise an Exception - self.assertRaises(LibcloudError, self.driver.create_node, image=image, location=location) + self.assertRaises( + LibcloudError, + self.driver.create_node, + name=None, + size=None, + image=image, + location=location, + ) def test_create_node_specify_group_name(self): """ Test 'create_node' into a concrete group. """ image = self.driver.list_images()[0] - self.driver.create_node(image=image, ex_group_name="new_group_name") + self.driver.create_node(name=None, size=None, image=image, ex_group_name="new_group_name") def test_create_group_location_does_not_exist(self): """ diff --git a/libcloud/test/compute/test_dimensiondata_v2_3.py b/libcloud/test/compute/test_dimensiondata_v2_3.py index 9ecfdd1ee..56edbefbe 100644 --- a/libcloud/test/compute/test_dimensiondata_v2_3.py +++ b/libcloud/test/compute/test_dimensiondata_v2_3.py @@ -291,6 +291,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): ) disks = [DimensionDataServerDisk(scsi_id="0", speed="HIGHPERFORMANCE")] node = self.driver.create_node( + size=None, name="test2", image=image, auth=root_pw, @@ -310,6 +311,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): image = self.driver.list_images()[0] network = self.driver.ex_list_networks()[0] node = self.driver.create_node( + size=None, name="test2", image=image, auth=None, @@ -325,6 +327,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): image = self.driver.ex_list_customer_images()[1] network = self.driver.ex_list_networks()[0] node = self.driver.create_node( + size=None, name="test2", image=image, auth=None, @@ -340,6 +343,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): image = self.driver.ex_list_customer_images()[1].id network = self.driver.ex_list_networks()[0] node = self.driver.create_node( + size=None, name="test2", image=image, auth=None, @@ -355,6 +359,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): image = self.driver.ex_list_customer_images()[0] network = self.driver.ex_list_networks()[0] node = self.driver.create_node( + size=None, name="test2", image=image, auth=None, @@ -370,6 +375,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): image = self.driver.ex_list_customer_images()[0].id network = self.driver.ex_list_networks()[0] node = self.driver.create_node( + size=None, name="test2", image=image, auth=None, @@ -386,6 +392,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): image = self.driver.list_images()[0].id network = self.driver.ex_list_networks()[0].id node = self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -406,6 +413,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): cpu_count=4, cores_per_socket=1, performance="HIGHPERFORMANCE" ) node = self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -429,6 +437,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): cpu_count=4, cores_per_socket=1, performance="HIGHPERFORMANCE" ) node = self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -447,6 +456,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): image = self.driver.list_images()[0] with self.assertRaises(InvalidRequestError): self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -459,6 +469,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): rootPw = NodeAuthPassword("pass123") image = self.driver.list_images()[0] node = self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -474,6 +485,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): rootPw = NodeAuthPassword("pass123") image = self.driver.list_images()[0] node = self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -488,6 +500,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): rootPw = NodeAuthPassword("pass123") image = self.driver.list_images()[0] node = self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -503,6 +516,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): rootPw = NodeAuthPassword("pass123") image = self.driver.list_images()[0] node = self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -519,6 +533,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): image = self.driver.list_images()[0] with self.assertRaises(ValueError): self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -531,6 +546,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): rootPw = NodeAuthPassword("pass123") image = self.driver.list_images()[0] node = self.driver.create_node( + size=None, name="test3", image=image, auth=rootPw, @@ -544,6 +560,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): rootPw = NodeAuthPassword("pass123") image = self.driver.list_images()[0] node = self.driver.create_node( + size=None, name="test3", image=image, auth=rootPw, @@ -559,6 +576,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): image = self.driver.list_images()[0] with self.assertRaises(ValueError): self.driver.create_node( + size=None, name="test3", image=image, auth=rootPw, @@ -572,7 +590,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): image = self.driver.list_images()[0] with self.assertRaises(ValueError): self.driver.create_node( - name="test3", image=image, auth=rootPw, ex_primary_nic_vlan="fakevlan" + size=None, name="test3", image=image, auth=rootPw, ex_primary_nic_vlan="fakevlan" ) def test_create_node_no_primary_nic_fail(self): @@ -580,6 +598,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): image = self.driver.list_images()[0] with self.assertRaises(ValueError): self.driver.create_node( + size=None, name="test3", image=image, auth=rootPw, @@ -590,6 +609,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): rootPw = NodeAuthPassword("pass123") image = self.driver.list_images()[0] node = self.driver.create_node( + size=None, name="test3", image=image, auth=rootPw, @@ -604,6 +624,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): rootPw = "pass123" image = self.driver.list_images()[0] node = self.driver.create_node( + size=None, name="test3", image=image, auth=rootPw, @@ -618,6 +639,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): image = self.driver.list_images()[0] with self.assertRaises(ValueError): self.driver.create_node( + size=None, name="test3", image=image, auth=rootPw, @@ -633,6 +655,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): cpu_count="4", cores_per_socket="2", performance="STANDARD" ) node = self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -650,6 +673,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): image = self.driver.list_images()[0] node = self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -667,6 +691,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): image = self.driver.list_images()[0] disks = [DimensionDataServerDisk(scsi_id="0", speed="HIGHPERFORMANCE")] node = self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -685,6 +710,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): disks = "blah" with self.assertRaises(TypeError): self.driver.create_node( + size=None, name="test2", image=image, auth=root_pw, @@ -699,6 +725,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): rootPw = NodeAuthPassword("pass123") image = self.driver.list_images()[0] node = self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -716,6 +743,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): image = self.driver.list_images()[0] with self.assertRaises(ValueError): self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -730,6 +758,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): additional_vlans = ["fakevlan1", "fakevlan2"] additional_ipv4 = ["10.0.0.2", "10.0.0.3"] node = self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -748,6 +777,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): image = self.driver.list_images()[0] with self.assertRaises(TypeError): self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -766,6 +796,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): additional_nics = [nic1, nic2] node = self.driver.create_node( + size=None, name="test2", image=image, auth=root_pw, @@ -791,6 +822,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): additional_nics = [nic1, nic2] with self.assertRaises(ValueError): self.driver.create_node( + size=None, name="test2", image=image, auth=root_pw, @@ -807,6 +839,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): additional_nics = "blah" with self.assertRaises(TypeError): self.driver.create_node( + size=None, name="test2", image=image, auth=root_pw, @@ -825,6 +858,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): additional_nics = [nic1, nic2] with self.assertRaises(ValueError): self.driver.create_node( + size=None, name="test2", image=image, auth=root_pw, @@ -840,6 +874,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): image = self.driver.list_images()[0] with self.assertRaises(TypeError): self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -854,6 +889,7 @@ class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin): rootPw = NodeAuthPassword("pass123") image = self.driver.list_images()[0] node = self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, diff --git a/libcloud/test/compute/test_dimensiondata_v2_4.py b/libcloud/test/compute/test_dimensiondata_v2_4.py index b6e2c7f08..0462420da 100644 --- a/libcloud/test/compute/test_dimensiondata_v2_4.py +++ b/libcloud/test/compute/test_dimensiondata_v2_4.py @@ -294,6 +294,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): ) disks = [DimensionDataServerDisk(scsi_id="0", speed="HIGHPERFORMANCE")] node = self.driver.create_node( + size=None, name="test2", image=image, auth=root_pw, @@ -313,6 +314,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): image = self.driver.list_images()[0] network = self.driver.ex_list_networks()[0] node = self.driver.create_node( + size=None, name="test2", image=image, auth=None, @@ -328,6 +330,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): image = self.driver.ex_list_customer_images()[1] network = self.driver.ex_list_networks()[0] node = self.driver.create_node( + size=None, name="test2", image=image, auth=None, @@ -343,6 +346,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): image = self.driver.ex_list_customer_images()[1].id network = self.driver.ex_list_networks()[0] node = self.driver.create_node( + size=None, name="test2", image=image, auth=None, @@ -358,6 +362,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): image = self.driver.ex_list_customer_images()[0] network = self.driver.ex_list_networks()[0] node = self.driver.create_node( + size=None, name="test2", image=image, auth=None, @@ -373,6 +378,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): image = self.driver.ex_list_customer_images()[0].id network = self.driver.ex_list_networks()[0] node = self.driver.create_node( + size=None, name="test2", image=image, auth=None, @@ -389,6 +395,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): image = self.driver.list_images()[0].id network = self.driver.ex_list_networks()[0].id node = self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -409,6 +416,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): cpu_count=4, cores_per_socket=1, performance="HIGHPERFORMANCE" ) node = self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -432,6 +440,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): cpu_count=4, cores_per_socket=1, performance="HIGHPERFORMANCE" ) node = self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -450,6 +459,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): image = self.driver.list_images()[0] with self.assertRaises(InvalidRequestError): self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -462,6 +472,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): rootPw = NodeAuthPassword("pass123") image = self.driver.list_images()[0] node = self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -477,6 +488,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): rootPw = NodeAuthPassword("pass123") image = self.driver.list_images()[0] node = self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -491,6 +503,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): rootPw = NodeAuthPassword("pass123") image = self.driver.list_images()[0] node = self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -506,6 +519,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): rootPw = NodeAuthPassword("pass123") image = self.driver.list_images()[0] node = self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -522,6 +536,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): image = self.driver.list_images()[0] with self.assertRaises(ValueError): self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -534,6 +549,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): rootPw = NodeAuthPassword("pass123") image = self.driver.list_images()[0] node = self.driver.create_node( + size=None, name="test3", image=image, auth=rootPw, @@ -547,6 +563,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): rootPw = NodeAuthPassword("pass123") image = self.driver.list_images()[0] node = self.driver.create_node( + size=None, name="test3", image=image, auth=rootPw, @@ -562,6 +579,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): image = self.driver.list_images()[0] with self.assertRaises(ValueError): self.driver.create_node( + size=None, name="test3", image=image, auth=rootPw, @@ -575,7 +593,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): image = self.driver.list_images()[0] with self.assertRaises(ValueError): self.driver.create_node( - name="test3", image=image, auth=rootPw, ex_primary_nic_vlan="fakevlan" + size=None, name="test3", image=image, auth=rootPw, ex_primary_nic_vlan="fakevlan" ) def test_create_node_no_primary_nic_fail(self): @@ -583,6 +601,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): image = self.driver.list_images()[0] with self.assertRaises(ValueError): self.driver.create_node( + size=None, name="test3", image=image, auth=rootPw, @@ -593,6 +612,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): rootPw = NodeAuthPassword("pass123") image = self.driver.list_images()[0] node = self.driver.create_node( + size=None, name="test3", image=image, auth=rootPw, @@ -607,6 +627,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): rootPw = "pass123" image = self.driver.list_images()[0] node = self.driver.create_node( + size=None, name="test3", image=image, auth=rootPw, @@ -621,6 +642,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): image = self.driver.list_images()[0] with self.assertRaises(ValueError): self.driver.create_node( + size=None, name="test3", image=image, auth=rootPw, @@ -636,6 +658,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): cpu_count="4", cores_per_socket="2", performance="STANDARD" ) node = self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -653,6 +676,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): image = self.driver.list_images()[0] node = self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -670,6 +694,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): image = self.driver.list_images()[0] disks = [DimensionDataServerDisk(scsi_id="0", speed="HIGHPERFORMANCE")] node = self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -688,6 +713,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): disks = "blah" with self.assertRaises(TypeError): self.driver.create_node( + size=None, name="test2", image=image, auth=root_pw, @@ -702,6 +728,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): rootPw = NodeAuthPassword("pass123") image = self.driver.list_images()[0] node = self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -719,6 +746,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): image = self.driver.list_images()[0] with self.assertRaises(ValueError): self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -733,6 +761,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): additional_vlans = ["fakevlan1", "fakevlan2"] additional_ipv4 = ["10.0.0.2", "10.0.0.3"] node = self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -751,6 +780,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): image = self.driver.list_images()[0] with self.assertRaises(TypeError): self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -769,6 +799,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): additional_nics = [nic1, nic2] node = self.driver.create_node( + size=None, name="test2", image=image, auth=root_pw, @@ -794,6 +825,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): additional_nics = [nic1, nic2] with self.assertRaises(ValueError): self.driver.create_node( + size=None, name="test2", image=image, auth=root_pw, @@ -810,6 +842,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): additional_nics = "blah" with self.assertRaises(TypeError): self.driver.create_node( + size=None, name="test2", image=image, auth=root_pw, @@ -828,6 +861,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): additional_nics = [nic1, nic2] with self.assertRaises(ValueError): self.driver.create_node( + size=None, name="test2", image=image, auth=root_pw, @@ -843,6 +877,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): image = self.driver.list_images()[0] with self.assertRaises(TypeError): self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -857,6 +892,7 @@ class DimensionData_v2_4_Tests(unittest.TestCase): rootPw = NodeAuthPassword("pass123") image = self.driver.list_images()[0] node = self.driver.create_node( + size=None, name="test2", image=image, auth=rootPw, diff --git a/libcloud/test/compute/test_ec2.py b/libcloud/test/compute/test_ec2.py index cc83bd139..b01ef2e09 100644 --- a/libcloud/test/compute/test_ec2.py +++ b/libcloud/test/compute/test_ec2.py @@ -587,7 +587,7 @@ class EC2Tests(LibcloudTestCase, TestCaseMixin): def test_copy_image(self): image = self.driver.list_images()[0] resp = self.driver.copy_image( - image, "us-east-1", name="Faux Image", description="Test Image Copy" + "us-east-1", image, name="Faux Image", description="Test Image Copy" ) self.assertEqual(resp.id, "ami-4db38224") diff --git a/libcloud/test/compute/test_gce.py b/libcloud/test/compute/test_gce.py index 75161a0ef..f64fe8ad6 100644 --- a/libcloud/test/compute/test_gce.py +++ b/libcloud/test/compute/test_gce.py @@ -410,7 +410,7 @@ class GCENodeDriverTest(GoogleTestCase, TestCaseMixin): local_images = self.driver.list_images() all_deprecated_images = self.driver.list_images(ex_include_deprecated=True) debian_images = self.driver.list_images(ex_project="debian-cloud") - local_plus_deb = self.driver.list_images(["debian-cloud", "project_name"]) + local_plus_deb = self.driver.list_images(ex_project=["debian-cloud", "project_name"]) self.assertEqual(len(local_images), 52) self.assertEqual(len(all_deprecated_images), 180) self.assertEqual(len(debian_images), 2) diff --git a/libcloud/test/compute/test_linode_v4.py b/libcloud/test/compute/test_linode_v4.py index a166e95cf..05bdab9e4 100644 --- a/libcloud/test/compute/test_linode_v4.py +++ b/libcloud/test/compute/test_linode_v4.py @@ -323,7 +323,7 @@ class LinodeTestsV4(unittest.TestCase, TestCaseMixin): 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"]) + volume = self.driver.create_volume(50, "Volume1", node=node, tags=["test123", "testing"]) self.assertEqual(volume.extra["linode_id"], 22344420) self.assertEqual(volume.size, 50) @@ -334,7 +334,7 @@ class LinodeTestsV4(unittest.TestCase, TestCaseMixin): location = self.driver.list_locations()[0] LinodeMockHttpV4.type = "UNATTACHED" volume = self.driver.create_volume( - "Volume1", 50, location=location, tags=["test123", "testing"] + 50, "Volume1", location=location, tags=["test123", "testing"] ) self.assertEqual(volume.size, 50) @@ -344,11 +344,11 @@ class LinodeTestsV4(unittest.TestCase, TestCaseMixin): 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) + self.driver.create_volume(50, "Volume__1", location=location) with self.assertRaises(LinodeExceptionV4): - self.driver.create_volume("Volume 1", 50, location=location) + self.driver.create_volume(50, "Volume 1", location=location) with self.assertRaises(LinodeExceptionV4): - self.driver.create_volume("Volume--1", 50, location=location) + self.driver.create_volume(50, "Volume--1", location=location) def test_attach_volume_already_attached(self): volume = self.driver.list_volumes()[0] diff --git a/libcloud/test/compute/test_nttcis.py b/libcloud/test/compute/test_nttcis.py index af7975f34..f1788a0d8 100644 --- a/libcloud/test/compute/test_nttcis.py +++ b/libcloud/test/compute/test_nttcis.py @@ -315,6 +315,7 @@ def test_create_mcp1_node_optional_param(driver): ) disks = [NttCisServerDisk(scsi_id="0", speed="HIGHPERFORMANCE")] node = driver.create_node( + size=None, name="test2", image=image, auth=root_pw, @@ -335,6 +336,7 @@ def test_create_mcp1_node_response_no_pass_random_gen(driver): image = driver.list_images()[0] network = driver.ex_list_networks()[0] node = driver.create_node( + size=None, name="test2", image=image, auth=None, @@ -351,6 +353,7 @@ def test_create_mcp1_node_response_no_pass_customer_windows(driver): image = driver.ex_list_customer_images()[1] network = driver.ex_list_networks()[0] node = driver.create_node( + size=None, name="test2", image=image, auth=None, @@ -367,6 +370,7 @@ def test_create_mcp1_node_response_no_pass_customer_windows_STR(driver): image = driver.ex_list_customer_images()[1].id network = driver.ex_list_networks()[0] node = driver.create_node( + size=None, name="test2", image=image, auth=None, @@ -383,6 +387,7 @@ def test_create_mcp1_node_response_no_pass_customer_linux(driver): image = driver.ex_list_customer_images()[0] network = driver.ex_list_networks()[0] node = driver.create_node( + size=None, name="test2", image=image, auth=None, @@ -399,6 +404,7 @@ def test_create_mcp1_node_response_no_pass_customer_linux_STR(driver): image = driver.ex_list_customer_images()[0].id network = driver.ex_list_networks()[0] node = driver.create_node( + size=None, name="test2", image=image, auth=None, @@ -416,6 +422,7 @@ def test_create_mcp1_node_response_STR(driver): image = driver.list_images()[0].id network = driver.ex_list_networks()[0].id node = driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -432,6 +439,7 @@ def test_create_mcp1_node_no_network(driver): image = driver.list_images()[0] with pytest.raises(InvalidRequestError): driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -445,6 +453,7 @@ def test_create_node_mcp1_ipv4(driver): rootPw = NodeAuthPassword("pass123") image = driver.list_images()[0] node = driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -461,6 +470,7 @@ def test_create_node_mcp1_network(driver): rootPw = NodeAuthPassword("pass123") image = driver.list_images()[0] node = driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -482,6 +492,7 @@ def test_create_node_response_network_domain(driver): cpu_count=4, cores_per_socket=1, performance="HIGHPERFORMANCE" ) node = driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -506,6 +517,7 @@ def test_create_node_response_network_domain_STR(driver): cpu_count=4, cores_per_socket=1, performance="HIGHPERFORMANCE" ) node = driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -524,6 +536,7 @@ def test_create_node_mcp2_vlan(driver): rootPw = NodeAuthPassword("pass123") image = driver.list_images()[0] node = driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -540,6 +553,7 @@ def test_create_node_mcp2_ipv4(driver): rootPw = NodeAuthPassword("pass123") image = driver.list_images()[0] node = driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -557,6 +571,7 @@ def test_create_node_network_domain_no_vlan_or_ipv4(driver): image = driver.list_images()[0] with pytest.raises(ValueError): driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -570,6 +585,7 @@ def test_create_node_response(driver): rootPw = NodeAuthPassword("pass123") image = driver.list_images()[0] node = driver.create_node( + size=None, name="test3", image=image, auth=rootPw, @@ -584,6 +600,7 @@ def test_create_node_ms_time_zone(driver): rootPw = NodeAuthPassword("pass123") image = driver.list_images()[0] node = driver.create_node( + size=None, name="test3", image=image, auth=rootPw, @@ -600,6 +617,7 @@ def test_create_node_ambigious_mcps_fail(driver): image = driver.list_images()[0] with pytest.raises(ValueError): driver.create_node( + size=None, name="test3", image=image, auth=rootPw, @@ -613,7 +631,9 @@ def test_create_node_no_network_domain_fail(driver): rootPw = NodeAuthPassword("pass123") image = driver.list_images()[0] with pytest.raises(ValueError): - driver.create_node(name="test3", image=image, auth=rootPw, ex_primary_nic_vlan="fakevlan") + driver.create_node( + size=None, name="test3", image=image, auth=rootPw, ex_primary_nic_vlan="fakevlan" + ) def test_create_node_no_primary_nic_fail(driver): @@ -621,6 +641,7 @@ def test_create_node_no_primary_nic_fail(driver): image = driver.list_images()[0] with pytest.raises(ValueError): driver.create_node( + size=None, name="test3", image=image, auth=rootPw, @@ -632,6 +653,7 @@ def test_create_node_primary_vlan_nic(driver): rootPw = NodeAuthPassword("pass123") image = driver.list_images()[0] node = driver.create_node( + size=None, name="test3", image=image, auth=rootPw, @@ -647,6 +669,7 @@ def test_create_node_primary_ipv4(driver): rootPw = "pass123" image = driver.list_images()[0] node = driver.create_node( + size=None, name="test3", image=image, auth=rootPw, @@ -662,6 +685,7 @@ def test_create_node_both_primary_nic_and_vlan_fail(driver): image = driver.list_images()[0] with pytest.raises(ValueError): driver.create_node( + size=None, name="test3", image=image, auth=rootPw, @@ -678,6 +702,7 @@ def test_create_node_cpu_specification(driver): cpu_count="4", cores_per_socket="2", performance="STANDARD" ) node = driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -696,6 +721,7 @@ def test_create_node_memory(driver): image = driver.list_images()[0] node = driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -714,6 +740,7 @@ def test_create_node_disks(driver): image = driver.list_images()[0] disks = [NttCisServerDisk(scsi_id="0", speed="HIGHPERFORMANCE")] node = driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -733,6 +760,7 @@ def test_create_node_disks_fail(driver): disks = "blah" with pytest.raises(TypeError): driver.create_node( + size=None, name="test2", image=image, auth=root_pw, @@ -748,6 +776,7 @@ def test_create_node_ipv4_gateway(driver): rootPw = NodeAuthPassword("pass123") image = driver.list_images()[0] node = driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -766,6 +795,7 @@ def test_create_node_network_domain_no_vlan_no_ipv4_fail(driver): image = driver.list_images()[0] with pytest.raises(ValueError): driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -781,6 +811,7 @@ def test_create_node_mcp2_additional_nics_legacy(driver): additional_vlans = ["fakevlan1", "fakevlan2"] additional_ipv4 = ["10.0.0.2", "10.0.0.3"] node = driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -800,6 +831,7 @@ def test_create_node_bad_additional_nics_ipv4(driver): image = driver.list_images()[0] with pytest.raises(TypeError): driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -819,6 +851,7 @@ def test_create_node_additional_nics(driver): additional_nics = [nic1, nic2] node = driver.create_node( + size=None, name="test2", image=image, auth=root_pw, @@ -841,6 +874,7 @@ def test_create_node_additional_nics_vlan_ipv4_coexist_fail(driver): additional_nics = [nic1, nic2] with pytest.raises(ValueError): driver.create_node( + size=None, name="test2", image=image, auth=root_pw, @@ -858,6 +892,7 @@ def test_create_node_additional_nics_invalid_input_fail(driver): additional_nics = "blah" with pytest.raises(TypeError): driver.create_node( + size=None, name="test2", image=image, auth=root_pw, @@ -877,6 +912,7 @@ def test_create_node_additional_nics_vlan_ipv4_not_exist_fail(driver): additional_nics = [nic1, nic2] with pytest.raises(ValueError): driver.create_node( + size=None, name="test2", image=image, auth=root_pw, @@ -893,6 +929,7 @@ def test_create_node_bad_additional_nics_vlan(driver): image = driver.list_images()[0] with pytest.raises(TypeError): driver.create_node( + size=None, name="test2", image=image, auth=rootPw, @@ -908,6 +945,7 @@ def test_create_node_mcp2_indicate_dns(driver): rootPw = NodeAuthPassword("pass123") image = driver.list_images()[0] node = driver.create_node( + size=None, name="test2", image=image, auth=rootPw, diff --git a/libcloud/test/compute/test_onapp.py b/libcloud/test/compute/test_onapp.py index 27d463406..e97f0716f 100644 --- a/libcloud/test/compute/test_onapp.py +++ b/libcloud/test/compute/test_onapp.py @@ -35,6 +35,8 @@ class OnAppNodeTestCase(LibcloudTestCase): def test_create_node(self): node = self.driver.create_node( name="onapp-new-fred", + size=None, + image=None, ex_memory=512, ex_cpus=4, ex_cpu_shares=4, diff --git a/libcloud/test/compute/test_openstack.py b/libcloud/test/compute/test_openstack.py index 0b33b6c5d..933886fcb 100644 --- a/libcloud/test/compute/test_openstack.py +++ b/libcloud/test/compute/test_openstack.py @@ -1226,6 +1226,7 @@ class OpenStack_1_1_Tests(unittest.TestCase, TestCaseMixin): size = NodeSize(1, "256 slice", None, None, None, None, driver=self.driver) node = self.driver.create_node( + image=None, name="racktest", size=size, ex_blockdevicemappings=[ diff --git a/libcloud/test/compute/test_vcl.py b/libcloud/test/compute/test_vcl.py index 76ff10745..ce3fc8fb8 100644 --- a/libcloud/test/compute/test_vcl.py +++ b/libcloud/test/compute/test_vcl.py @@ -47,7 +47,7 @@ class VCLTests(unittest.TestCase): def test_create_node(self): image = self.driver.list_images()[0] - node = self.driver.create_node(image=image) + node = self.driver.create_node(name=None, size=None, image=image) self.assertEqual(node.id, "51") def test_destroy_node(self): diff --git a/libcloud/test/compute/test_vcloud.py b/libcloud/test/compute/test_vcloud.py index 34af00584..86754a532 100644 --- a/libcloud/test/compute/test_vcloud.py +++ b/libcloud/test/compute/test_vcloud.py @@ -178,7 +178,7 @@ class VCloud_1_5_Tests(unittest.TestCase, TestCaseMixin): def test_create_node_clone(self): image = self.driver.list_nodes()[0] - node = self.driver.create_node(name="testNode", image=image) + node = self.driver.create_node(size=None, name="testNode", image=image) self.assertTrue(isinstance(node, Node)) self.assertEqual( "https://vm-vcloud/api/vApp/vapp-8c57a5b6-e61b-48ca-8a78-3b70ee65ef6a",
