AuroraCompute Computer Driver Documentation

PCextreme B.V. is a Dutch cloud provider. It provides a public cloud offering under the name AuroraCompute. All cloud services are under the family name Aurora.

The datacenters / availability zones are located in:

  • Amsterdam (NL)
  • Rotterdam (NL)
  • Miami (US)
  • Los Angelos (US)
  • Tokyo (JP)
  • Barcelona (ES)
../../_images/pcextreme.png

The AuroraCompute driver is based on the CloudStack driver. Please refer to CloudStack Compute Driver Documentation page for more information.

Instantiating a driver

When you instantiate a driver you need to pass the following arguments to the driver constructor:

  • key - Your AuroraCompute API key
  • secret - Your AuroraCompute secret key

You can find your ‘key’ and ‘secret’ in the AuroraCompute Control Panel under your users.

With these credentials you can instantiate a driver:

from libcloud.compute.types import Provider
from libcloud.compute.providers import get_driver

apikey = 'mykey'
secretkey = 'mysecret'

Driver = get_driver(Provider.AURORACOMPUTE)
conn = Driver(key=apikey, secret=secretkey)

Create a Virtual Machine (node)

Creating a Virtual Machine on AuroraCompute using libcloud works the same as on any other platform. This example is just to show exactly that.

This example will create a Virtual Machine in Amsterdam. Should you want to create one in one of our other regions you should take a look at the example below which shows how to use our different regions.

from libcloud.compute.types import Provider
from libcloud.compute.providers import get_driver

apikey = 'mykey'
secretkey = 'mysecret'

Driver = get_driver(Provider.AURORACOMPUTE)
driver = Driver(key=apikey, secret=secretkey)

images = driver.list_images()
sizes = driver.list_sizes()

# Find a Agile Offering with 2GB of Memory
size = [s for s in sizes if s.ram == 2048 and s.name.startswith('Agile')][0]

# Search for the Ubuntu 16.04 image
image = [i for i in images if i.name == 'Ubuntu 16.04'][0]

# Create the new Virtual Machine
node = driver.create_node(image=image, size=size)

print(node)

Using a different region

By default the region AMS (Amsterdam) is selected by the driver.

AuroraCompute supports multiple regions and when instantiating the driver you can choose a region.

Keep in mind that each region uses different credentials. These can be found in the Control Panel under your users.

In this example we select the Miami (MIA) region:

from libcloud.compute.types import Provider
from libcloud.compute.providers import get_driver
from libcloud.compute.drivers.auroracompute import AuroraComputeRegion

apikey = 'mykey'
secretkey = 'mysecret'

Driver = get_driver(Provider.AURORACOMPUTE, region=AuroraComputeRegion.MIA)
conn = Driver(key=apikey, secret=secretkey)

API Docs

class libcloud.compute.drivers.auroracompute.AuroraComputeNodeDriver(key, secret, path=None, host=None, url=None, region=None)[source]
attach_volume(node, volume, device=None)

@inherits: NodeDriver.attach_volume :type node: CloudStackNode

Return type:bool
copy_image(source_region, node_image, name, description=None)

Copies an image from a source region to the current region.

Parameters:
  • source_region (str) – Region to copy the node from.
  • node_image (NodeImage:) – NodeImage to copy.
  • name (str) – name for new image.
  • description – description for new image.
Return type:

NodeImage:

Returns:

NodeImage instance on success.

create_image(node, name, description=None)

Creates an image from a node object.

Parameters:
  • node (Node) – Node to run the task on.
  • name (description) – name for new image.
  • description – description for new image.
Return type:

NodeImage:

Returns:

NodeImage instance on success.

create_key_pair(name, **kwargs)

Create a new key pair object.

Parameters:
  • name (str) – Key pair name.
  • name – Name of the keypair (required)
  • projectid (str) – An optional project for the ssh key
  • domainid (str) – An optional domainId for the ssh key. If the account parameter is used, domainId must also be used.
  • account (str) – An optional account for the ssh key. Must be used with domainId.
Returns:

Created key pair object.

Return type:

libcloud.compute.base.KeyPair

create_node(**kwargs)

Create a new node

@inherits: NodeDriver.create_node

Parameters:
  • networks (list of CloudStackNetwork) – Optional list of networks to launch the server into.
  • project (CloudStackProject) – Optional project to create the new node under.
  • diskoffering (CloudStackDiskOffering) – Optional disk offering to add to the new node.
  • ex_keyname (str) – Name of existing keypair
  • ex_userdata (str) – String containing user data
  • ex_security_groups (list of str) – List of security groups to assign to the node
  • ex_displayname (str) – String containing instance display name
  • ex_ip_address (str) – String with ipaddress for the default nic
  • ex_start_vm (bool) – Boolean to specify to start VM after creation Default Cloudstack behaviour is to start a VM, if not specified.
  • ex_rootdisksize (str) – String with rootdisksize for the template
  • ex_affinity_groups (list of CloudStackAffinityGroup) – List of affinity groups to assign to the node
Return type:

CloudStackNode

create_volume(size, name, location=None, snapshot=None, ex_volume_type=None)

Creates a data volume Defaults to the first location

create_volume_snapshot(volume, name=None)

Create snapshot from volume

Parameters:
  • volume (StorageVolume) – Instance of StorageVolume
  • name (str) – The name of the snapshot is disregarded by CloudStack drivers
Return type:

VolumeSnapshot

delete_image(node_image)

Deletes a node image from a provider.

Parameters:node_image (NodeImage) – Node image object.
Returns:True if delete_image was successful, False otherwise.
Return type:bool
delete_key_pair(key_pair, **kwargs)

Delete an existing key pair.

Parameters:
  • key_pair (libcloud.compute.base.KeyPair) – Key pair object.
  • projectid (str) – The project associated with keypair
  • domainid (str) – The domain ID associated with the keypair
  • account (str) – The account associated with the keypair. Must be used with the domainId parameter.
Returns:

True of False based on success of Keypair deletion

Return type:

bool

deploy_node(**kwargs)

Create a new node, and start deployment.

In order to be able to SSH into a created node access credentials are required.

A user can pass either a NodeAuthPassword or NodeAuthSSHKey to the auth argument. If the create_node implementation supports that kind if credential (as declared in self.features['create_node']) then it is passed on to create_node. Otherwise it is not passed on to create_node and it is only used for authentication.

If the auth parameter is not supplied but the driver declares it supports generates_password then the password returned by create_node will be used to SSH into the server.

Finally, if the ssh_key_file is supplied that key will be used to SSH into the server.

This function may raise a DeploymentException, if a create_node call was successful, but there is a later error (like SSH failing or timing out). This exception includes a Node object which you may want to destroy if incomplete deployments are not desirable.

>>> from libcloud.compute.drivers.dummy import DummyNodeDriver
>>> from libcloud.compute.deployment import ScriptDeployment
>>> from libcloud.compute.deployment import MultiStepDeployment
>>> from libcloud.compute.base import NodeAuthSSHKey
>>> driver = DummyNodeDriver(0)
>>> key = NodeAuthSSHKey('...') # read from file
>>> script = ScriptDeployment("yum -y install emacs strace tcpdump")
>>> msd = MultiStepDeployment([key, script])
>>> def d():
...     try:
...         driver.deploy_node(deploy=msd)
...     except NotImplementedError:
...         print ("not implemented for dummy driver")
>>> d()
not implemented for dummy driver

Deploy node is typically not overridden in subclasses. The existing implementation should be able to handle most such.

Parameters:
  • deploy (Deployment) – Deployment to run once machine is online and available to SSH.
  • ssh_username (str) – Optional name of the account which is used when connecting to SSH server (default is root)
  • ssh_alternate_usernames (list) – Optional list of ssh usernames to try to connect with if using the default one fails
  • ssh_port (int) – Optional SSH server port (default is 22)
  • ssh_timeout (float) – Optional SSH connection timeout in seconds (default is 10)
  • auth (NodeAuthSSHKey or NodeAuthPassword) – Initial authentication information for the node (optional)
  • ssh_key (str or list of str) – A path (or paths) to an SSH private key with which to attempt to authenticate. (optional)
  • timeout (int) – How many seconds to wait before timing out. (default is 600)
  • max_tries (int) – How many times to retry if a deployment fails before giving up (default is 3)
  • ssh_interface (str) – The interface to wait for. Default is ‘public_ips’, other option is ‘private_ips’.
destroy_node(node, ex_expunge=False)

@inherits: NodeDriver.reboot_node :type node: CloudStackNode

Parameters:ex_expunge (bool) – If true is passed, the vm is expunged immediately. False by default.
Return type:bool
destroy_volume(volume)
Return type:bool
detach_volume(volume)
Return type:bool
ex_allocate_public_ip(vpc_id=None, network_id=None, location=None)

Allocate a public IP.

Parameters:
  • vpc_id (str) – VPC the ip belongs to
  • network_id (''str'') – Network where this IP is connected to.
  • location (NodeLocation) – Zone
Return type:

CloudStackAddress

ex_attach_nic_to_node(node, network, ip_address=None)

Add an extra Nic to a VM

Parameters:
  • network (:class:'CloudStackNetwork`) – NetworkOffering object
  • node (:class:'CloudStackNode`) – Node Object
  • ip_address (str) – Optional, specific IP for this Nic
Return type:

bool

ex_authorize_security_group_ingress(securitygroupname, protocol, cidrlist, startport=None, endport=None, icmptype=None, icmpcode=None, **kwargs)

Creates a new Security Group Ingress rule

Parameters:
  • securitygroupname (str) – The name of the security group. Mutually exclusive with securitygroupid.
  • protocol (str) – Can be TCP, UDP or ICMP. Sometime other protocols can be used like AH, ESP or GRE.
  • cidrlist (str) – Source address CIDR for which this rule applies.
  • startport (int) – Start port of the range for this ingress rule. Applies to protocols TCP and UDP.
  • endport (int) – End port of the range for this ingress rule. It can be None to set only one port. Applies to protocols TCP and UDP.
  • icmptype (int) – Type of the ICMP packet (eg: 8 for Echo Request). -1 or None means “all types”. Applies to protocol ICMP.
  • icmpcode (int) – Code of the ICMP packet for the specified type. If the specified type doesn’t require a code set this value to 0. -1 or None means “all codes”. Applies to protocol ICMP.
  • account (str) – An optional account for the security group. Must be used with domainId.
  • domainid – An optional domainId for the security group. If the account parameter is used, domainId must also be used.
  • projectid (str) – An optional project of the security group
  • securitygroupid (str) – The ID of the security group. Mutually exclusive with securitygroupname
  • usersecuritygrouplist (dict) – User to security group mapping
Return type:

dict

ex_create_affinity_group(name, group_type)

Creates a new Affinity Group

Parameters:
  • name (str) – Name of the affinity group
  • group_type (CloudStackAffinityGroupType) – Type of the affinity group from the available affinity/anti-affinity group types
  • description (str) – Optional description of the affinity group
  • domainid (str) – domain ID of the account owning the affinity group
Return type:

CloudStackAffinityGroup

ex_create_egress_firewall_rule(network_id, cidr_list, protocol, icmp_code=None, icmp_type=None, start_port=None, end_port=None)

Creates a Firewall Rule

Parameters:
  • network_id (str) – the id network network for the egress firewall services
  • cidr_list (str) – cidr list
  • protocol (str) – TCP/IP Protocol (TCP, UDP)
  • icmp_code (int) – Error code for this icmp message
  • icmp_type (int) – Type of the icmp message being sent
  • start_port (int) – start of port range
  • end_port (int) – end of port range
Return type:

CloudStackEgressFirewallRule

ex_create_firewall_rule(address, cidr_list, protocol, icmp_code=None, icmp_type=None, start_port=None, end_port=None)

Creates a Firewall Rule

Parameters:
  • address (CloudStackAddress) – External IP address
  • cidr_list (str) – cidr list
  • protocol (str) – TCP/IP Protocol (TCP, UDP)
  • icmp_code (int) – Error code for this icmp message
  • icmp_type (int) – Type of the icmp message being sent
  • start_port (int) – start of port range
  • end_port (int) – end of port range
Return type:

CloudStackFirewallRule

ex_create_ip_forwarding_rule(node, address, protocol, start_port, end_port=None)

“Add a NAT/firewall forwarding rule.

Parameters:
  • node (CloudStackNode) – Node which should be used
  • address (CloudStackAddress) – CloudStackAddress which should be used
  • protocol (str) – Protocol which should be used (TCP or UDP)
  • start_port (int) – Start port which should be used
  • end_port (int) – End port which should be used
Return type:

CloudStackForwardingRule

ex_create_keypair(name, **kwargs)

Creates a SSH KeyPair, returns fingerprint and private key

Parameters:
  • name (str) – Name of the keypair (required)
  • projectid (str) – An optional project for the ssh key
  • domainid (str) – An optional domainId for the ssh key. If the account parameter is used, domainId must also be used.
  • account (str) – An optional account for the ssh key. Must be used with domainId.
Returns:

A keypair dictionary

Return type:

dict

ex_create_network(display_text, name, network_offering, location, gateway=None, netmask=None, network_domain=None, vpc_id=None, project_id=None)

Creates a Network, only available in advanced zones.

Parameters:
  • display_text (str) – the display text of the network
  • name (str) – the name of the network
  • network_offering (:class:'CloudStackNetworkOffering`) – NetworkOffering object
  • location (NodeLocation) – Zone object
  • gateway (str) – Optional, the Gateway of this network
  • netmask (str) – Optional, the netmask of this network
  • network_domain (str) – Optional, the DNS domain of the network
  • vpc_id (str) – Optional, the VPC id the network belongs to
  • project_id (str) – Optional, the project id the networks belongs to
Return type:

CloudStackNetwork

ex_create_network_acl(protocol, acl_id, cidr_list, start_port, end_port, action=None, traffic_type=None)

Creates an ACL rule in the given network (the network has to belong to VPC)

Parameters:
  • protocol (string) – the protocol for the ACL rule. Valid values are TCP/UDP/ICMP/ALL or valid protocol number
  • acl_id (str) – Name of the network ACL List
  • cidr_list (str) – the cidr list to allow traffic from/to
  • start_port (str) – the starting port of ACL
  • end_port (str) – the ending port of ACL
  • action (str) – scl entry action, allow or deny
  • traffic_type (str) – the traffic type for the ACL,can be Ingress or Egress, defaulted to Ingress if not specified
Return type:

CloudStackNetworkACL

ex_create_network_acllist(name, vpc_id, description=None)

Create an ACL List for a network within a VPC.

Parameters:
  • name (string) – Name of the network ACL List
  • vpc_id (string) – Id of the VPC associated with this network ACL List
  • description (string) – Description of the network ACL List
Return type:

CloudStackNetworkACLList

ex_create_port_forwarding_rule(node, address, private_port, public_port, protocol, public_end_port=None, private_end_port=None, openfirewall=True, network_id=None)

Creates a Port Forwarding Rule, used for Source NAT

Parameters:
  • address (CloudStackAddress) – IP address of the Source NAT
  • private_port (int) – Port of the virtual machine
  • protocol (str) – Protocol of the rule
  • public_port (int) – Public port on the Source NAT address
  • node (CloudStackNode) – The virtual machine
  • network_id (string) – The network of the vm the Port Forwarding rule will be created for. Required when public Ip address is not associated with any Guest network yet (VPC case)
Return type:

CloudStackPortForwardingRule

ex_create_security_group(name, **kwargs)

Creates a new Security Group

Parameters:
  • name (str) – name of the security group (required)
  • account (str) – An optional account for the security group. Must be used with domainId.
  • domainid (str) – An optional domainId for the security group. If the account parameter is used, domainId must also be used.
  • description (str) – The description of the security group
  • projectid (str) – Deploy vm for the project
Return type:

dict

ex_create_snapshot_template(snapshot, name, ostypeid, displaytext=None)

Create a template from a snapshot

Parameters:
  • snapshot – Instance of VolumeSnapshot
  • name (str) – the name of the template
  • name – the os type id
  • name – the display name of the template
Return type:

NodeImage

ex_create_tags(resource_ids, resource_type, tags)

Create tags for a resource (Node/StorageVolume/etc). A list of resource types can be found at http://goo.gl/6OKphH

Parameters:
  • resource_ids (list of resource IDs) – Resource IDs to be tagged. The resource IDs must all be associated with the resource_type. For example, for virtual machines (UserVm) you can only specify a list of virtual machine IDs.
  • resource_type (str) – Resource type (eg: UserVm)
  • tags (dict) – A dictionary or other mapping of strings to strings, associating tag names with tag values.
Return type:

bool

ex_create_vpc(cidr, display_text, name, vpc_offering, zone_id, network_domain=None)

Creates a VPC, only available in advanced zones.

Parameters:
  • cidr – the cidr of the VPC. All VPC guest networks’ cidrs should be within this CIDR
  • display_text (str) – the display text of the VPC
  • name (str) – the name of the VPC
  • vpc_offering (:class:'CloudStackVPCOffering`) – the ID of the VPC offering
  • zone_id (str) – the ID of the availability zone
  • network_domain (str) – Optional, the DNS domain of the network
Return type:

CloudStackVPC

ex_create_vpn_connection(vpn_customer_gateway, vpn_gateway, for_display=None, passive=None)

Creates a VPN Connection.

Parameters:
  • vpn_customer_gateway (CloudStackVpnCustomerGateway) – The VPN Customer Gateway (required).
  • vpn_gateway (CloudStackVpnGateway) – The VPN Gateway (required).
  • for_display (str) – Display the Connection to the end user or not.
  • passive (bool) – If True, sets the connection to be passive.
Return type:

class:CloudStackVpnConnection

ex_create_vpn_customer_gateway(cidr_list, esp_policy, gateway, ike_policy, ipsec_psk, account=None, domain_id=None, dpd=None, esp_lifetime=None, ike_lifetime=None, name=None)

Creates a VPN Customer Gateway.

Parameters:
  • cidr_list (str) – Guest CIDR list of the Customer Gateway (required).
  • esp_policy (str) – ESP policy of the Customer Gateway (required).
  • gateway (str) – Public IP address of the Customer Gateway (required).
  • ike_policy (str) – IKE policy of the Customer Gateway (required).
  • ipsec_psk (str) – IPsec preshared-key of the Customer Gateway (required).
  • account (str) – The associated account with the Customer Gateway (must be used with the domain_id param).
  • domain_id (str) – The domain ID associated with the Customer Gateway. If used with the account parameter returns the gateway associated with the account for the specified domain.
  • dpd (bool) – If DPD is enabled for the VPN connection.
  • esp_lifetime (int) – Lifetime of phase 2 VPN connection to the Customer Gateway, in seconds.
  • ike_lifetime (int) – Lifetime of phase 1 VPN connection to the Customer Gateway, in seconds.
  • name (str) – Name of the Customer Gateway.
Return type:

class:CloudStackVpnCustomerGateway

ex_create_vpn_gateway(vpc, for_display=None)

Creates a VPN Gateway.

Parameters:
  • vpc – VPC to create the Gateway for (required).
  • for_display (bool) – Display the VPC to the end user or not.
Return type:

class:CloudStackVpnGateway

ex_delete_affinity_group(affinity_group)

Delete an Affinity Group

Parameters:affinity_group (CloudStackAffinityGroup) – Instance of affinity group

:rtype bool

ex_delete_egress_firewall_rule(firewall_rule)

Remove a Firewall rule.

Parameters:egress_firewall_rule (CloudStackEgressFirewallRule) – Firewall rule which should be used
Return type:bool
ex_delete_firewall_rule(firewall_rule)

Remove a Firewall Rule.

Parameters:firewall_rule (CloudStackFirewallRule) – Firewall rule which should be used
Return type:bool
ex_delete_ip_forwarding_rule(node, rule)

Remove a NAT/firewall forwarding rule.

Parameters:
  • node (CloudStackNode) – Node which should be used
  • rule (CloudStackForwardingRule) – Forwarding rule which should be used
Return type:

bool

ex_delete_keypair(keypair, **kwargs)

Deletes an existing SSH KeyPair

Parameters:
  • keypair (str) – Name of the keypair (required)
  • projectid (str) – The project associated with keypair
  • domainid (str) – The domain ID associated with the keypair
  • account (str) – The account associated with the keypair. Must be used with the domainId parameter.
Returns:

True of False based on success of Keypair deletion

Return type:

bool

ex_delete_network(network, force=None)

Deletes a Network, only available in advanced zones.

Parameters:
  • network – The network
  • force (bool) – Force deletion of the network?
Return type:

bool

ex_delete_port_forwarding_rule(node, rule)

Remove a Port forwarding rule.

Parameters:
  • node (CloudStackNode) – Node used in the rule
  • rule (CloudStackPortForwardingRule) – Forwarding rule which should be used
Return type:

bool

ex_delete_security_group(name)

Deletes a given Security Group

Parameters:
  • domainid (str) – The domain ID of account owning the security group
  • id (str) – The ID of the security group. Mutually exclusive with name parameter
  • name (str) – The ID of the security group. Mutually exclusive with id parameter
  • account (str) – The account of the security group. Must be specified with domain ID
  • projectid (str) – The project of the security group
Return type:

bool

ex_delete_tags(resource_ids, resource_type, tag_keys)

Delete tags from a resource.

Parameters:
  • resource_ids (list of resource IDs) – Resource IDs to be tagged. The resource IDs must all be associated with the resource_type. For example, for virtual machines (UserVm) you can only specify a list of virtual machine IDs.
  • resource_type (str) – Resource type (eg: UserVm)
  • tag_keys (list) – A list of keys to delete. CloudStack only requires the keys from the key/value pair.
Return type:

bool

ex_delete_vpc(vpc)

Deletes a VPC, only available in advanced zones.

Parameters:vpc – The VPC
Return type:bool
ex_delete_vpn_connection(vpn_connection)

Deletes a VPN Connection.

Parameters:vpn_connection (CloudStackVpnConnection) – The VPN Connection (required).
Return type:bool
ex_delete_vpn_customer_gateway(vpn_customer_gateway)

Deletes a VPN Customer Gateway.

Parameters:vpn_customer_gateway (CloudStackVpnCustomerGateway) – The VPN Customer Gateway (required).
Return type:bool
ex_delete_vpn_gateway(vpn_gateway)

Deletes a VPN Gateway.

Parameters:vpn_gateway (CloudStackVpnGateway) – The VPN Gateway (required).
Return type:bool
ex_detach_nic_from_node(nic, node)

Remove Nic from a VM

Parameters:
  • nic (:class:'CloudStackNetwork`) – Nic object
  • node (:class:'CloudStackNode`) – Node Object
Return type:

bool

ex_get_node(node_id, project=None)

Return a Node object based on its ID.

Parameters:
  • node_id (str) – The id of the node
  • project (CloudStackProject) – Limit node returned to those configured under the defined project.
Return type:

CloudStackNode

ex_get_volume(volume_id, project=None)

Return a StorageVolume object based on its ID.

Parameters:
  • volume_id (str) – The id of the volume
  • project (CloudStackProject) – Limit volume returned to those configured under the defined project.
Return type:

CloudStackNode

ex_import_keypair(name, keyfile)

Imports a new public key where the public key is passed via a filename

Parameters:
  • name (str) – The name of the public key to import.
  • keyfile (str) – The filename with path of the public key to import.
Return type:

dict

ex_import_keypair_from_string(name, key_material)

Imports a new public key where the public key is passed in as a string

Parameters:
  • name (str) – The name of the public key to import.
  • key_material (str) – The contents of a public key file.
Return type:

dict

ex_limits()

Extra call to get account’s resource limits, such as the amount of instances, volumes, snapshots and networks.

CloudStack uses integers as the resource type so we will convert them to a more human readable string using the resource map

A list of the resource type mappings can be found at http://goo.gl/17C6Gk

Returns:dict
Return type:dict
ex_list_affinity_group_types()

List Affinity Group Types

:rtype list of CloudStackAffinityGroupTypes

ex_list_affinity_groups()

List Affinity Groups

:rtype list of CloudStackAffinityGroup

ex_list_disk_offerings()

Fetch a list of all available disk offerings.

Return type:list of CloudStackDiskOffering
ex_list_egress_firewall_rules()

Lists all egress Firewall Rules

Return type:list of CloudStackEgressFirewallRule
ex_list_firewall_rules()

Lists all Firewall Rules

Return type:list of CloudStackFirewallRule
ex_list_ip_forwarding_rules(account=None, domain_id=None, id=None, ipaddress_id=None, is_recursive=None, keyword=None, list_all=None, page=None, page_size=None, project_id=None, virtualmachine_id=None)

Lists all NAT/firewall forwarding rules

Parameters:
  • account (str) – List resources by account. Must be used with the domainId parameter
  • domain_id (str) – List only resources belonging to the domain specified
  • id (str) – Lists rule with the specified ID
  • ipaddress_id (str) – list the rule belonging to this public ip address
  • is_recursive (bool) – Defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.
  • keyword (str) – List by keyword
  • list_all (bool) – If set to false, list only resources belonging to the command’s caller; if set to true - list resources that the caller is authorized to see. Default value is false
  • page (int) – The page to list the keypairs from
  • page_size (int) – The number of results per page
  • project_id (str) – list objects by project
  • virtualmachine_id (str) – Lists all rules applied to the specified Vm
Return type:

list of CloudStackIPForwardingRule

ex_list_keypairs(**kwargs)

List Registered SSH Key Pairs

Parameters:
  • projectid (str) – list objects by project
  • page (int) – The page to list the keypairs from
  • keyword (str) – List by keyword
  • listall (bool) – If set to false, list only resources belonging to the command’s caller; if set to true - list resources that the caller is authorized to see. Default value is false
  • pagesize (int) – The number of results per page
  • account (str) – List resources by account. Must be used with the domainId parameter
  • isrecursive (bool) – Defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.
  • fingerprint (str) – A public key fingerprint to look for
  • name (str) – A key pair name to look for
  • domainid (str) – List only resources belonging to the domain specified
Returns:

A list of keypair dictionaries

Return type:

list of dict

ex_list_network_acl()

Lists all network ACL items

Return type:list of CloudStackNetworkACL
ex_list_network_acllists()

Lists all network ACLs

Return type:list of CloudStackNetworkACLList
ex_list_network_offerings()

List the available network offerings

:rtype list of CloudStackNetworkOffering

ex_list_networks(project=None)

List the available networks

Parameters:project (CloudStackProject) – Optional project the networks belongs to.

:rtype list of CloudStackNetwork

ex_list_nics(node)

List the available networks

Parameters:vm (:class:`CloudStackNode) – Node Object

:rtype list of CloudStackNic

ex_list_os_types()

List all registered os types (needed for snapshot creation)

Return type:list
ex_list_port_forwarding_rules(account=None, domain_id=None, id=None, ipaddress_id=None, is_recursive=None, keyword=None, list_all=None, network_id=None, page=None, page_size=None, project_id=None)

Lists all Port Forwarding Rules

Parameters:
  • account (str) – List resources by account. Must be used with the domainId parameter
  • domain_id (str) – List only resources belonging to the domain specified
  • for_display (bool) – List resources by display flag (only root admin is eligible to pass this parameter).
  • id (str) – Lists rule with the specified ID
  • ipaddress_id (str) – list the rule belonging to this public ip address
  • is_recursive (bool) – Defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.
  • keyword (str) – List by keyword
  • list_all (bool) – If set to false, list only resources belonging to the command’s caller; if set to true - list resources that the caller is authorized to see. Default value is false
  • network_id (string) – list port forwarding rules for certain network
  • page (int) – The page to list the keypairs from
  • page_size (int) – The number of results per page
  • project_id (str) – list objects by project
Return type:

list of CloudStackPortForwardingRule

ex_list_projects()

List the available projects

:rtype list of CloudStackProject

ex_list_public_ips()

Lists all Public IP Addresses.

Return type:list of CloudStackAddress
ex_list_routers(vpc_id=None)

List routers

:rtype list of CloudStackRouter

ex_list_security_groups(**kwargs)

Lists Security Groups

Parameters:
  • domainid (str) – List only resources belonging to the domain specified
  • account (str) – List resources by account. Must be used with the domainId parameter.
  • listall (bool) – If set to false, list only resources belonging to the command’s caller; if set to true list resources that the caller is authorized to see. Default value is false
  • pagesize (int) – Number of entries per page
  • keyword (str) – List by keyword
  • tags (dict) – List resources by tags (key/value pairs)
  • id (str) – list the security group by the id provided
  • securitygroupname (str) – lists security groups by name
  • virtualmachineid (str) – lists security groups by virtual machine id
  • projectid (str) – list objects by project
  • isrecursive (bool) – (boolean) defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.
  • page (int) – (integer)

:rtype list

ex_list_vpc_offerings()

List the available vpc offerings

:rtype list of CloudStackVPCOffering

ex_list_vpcs(project=None)

List the available VPCs

Parameters:project (CloudStackProject) – Optional project under which VPCs are present.

:rtype list of CloudStackVPC

ex_list_vpn_connections(account=None, domain_id=None, for_display=None, id=None, is_recursive=None, keyword=None, list_all=None, page=None, page_size=None, project_id=None, vpc_id=None)

List VPN Connections.

Parameters:
  • account (str) – List resources by account (must be used with the domain_id parameter).
  • domain_id (str) – List only resources belonging to the domain specified.
  • for_display (bool) – List resources by display flag (only root admin is eligible to pass this parameter).
  • id (str) – ID of the VPN Connection.
  • is_recursive (bool) – Defaults to False, but if true, lists all resources from the parent specified by the domain_id till leaves.
  • keyword (str) – List by keyword.
  • list_all (str) – If set to False, list only resources belonging to the command’s caller; if set to True - list resources that the caller is authorized to see. Default value is False.
  • page (int) – Start from page.
  • page_size (int) – Items per page.
  • project_id (str) – List objects by project.
  • vpc_id (str) – List objects by VPC.
Return type:

list of CloudStackVpnConnection

ex_list_vpn_customer_gateways(account=None, domain_id=None, id=None, is_recursive=None, keyword=None, list_all=None, page=None, page_size=None, project_id=None)

List VPN Customer Gateways.

Parameters:
  • account (str) – List resources by account (must be used with the domain_id parameter).
  • domain_id (str) – List only resources belonging to the domain specified.
  • id (str) – ID of the VPN Customer Gateway.
  • is_recursive (bool) – Defaults to False, but if true, lists all resources from the parent specified by the domain_id till leaves.
  • keyword (str) – List by keyword.
  • list_all (str) – If set to False, list only resources belonging to the command’s caller; if set to True - list resources that the caller is authorized to see. Default value is False.
  • page (int) – Start from page.
  • page_size (int) – Items per page.
  • project_id (str) – List objects by project.
Return type:

list of CloudStackVpnCustomerGateway

ex_list_vpn_gateways(account=None, domain_id=None, for_display=None, id=None, is_recursive=None, keyword=None, list_all=None, page=None, page_size=None, project_id=None, vpc_id=None)

List VPN Gateways.

Parameters:
  • account (str) – List resources by account (must be used with the domain_id parameter).
  • domain_id (str) – List only resources belonging to the domain specified.
  • for_display (bool) – List resources by display flag (only root admin is eligible to pass this parameter).
  • id (str) – ID of the VPN Gateway.
  • is_recursive (bool) – Defaults to False, but if true, lists all resources from the parent specified by the domain ID till leaves.
  • keyword (str) – List by keyword.
  • list_all (str) – If set to False, list only resources belonging to the command’s caller; if set to True - list resources that the caller is authorized to see. Default value is False.
  • page (int) – Start from page.
  • page_size (int) – Items per page.
  • project_id (str) – List objects by project.
  • vpc_id (str) – List objects by VPC.
Return type:

list of CloudStackVpnGateway

ex_register_iso(name, url, location=None, **kwargs)

Registers an existing ISO by URL.

Parameters:
  • name (str) – Name which should be used
  • url (str) – Url should be used
  • location (NodeLocation) – Location which should be used
Return type:

str

ex_release_public_ip(address)

Release a public IP.

Parameters:address (CloudStackAddress) – CloudStackAddress which should be used
Return type:bool
ex_replace_network_acllist(acl_id, network_id)

Create an ACL List for a network within a VPC.Replaces ACL associated with a Network or private gateway

Parameters:
  • acl_id (string) – the ID of the network ACL
  • network_id (string) – the ID of the network
Return type:

CloudStackNetworkACLList

ex_revoke_security_group_ingress(rule_id)

Revoke/delete an ingress security rule

Parameters:id (str) – The ID of the ingress security rule
Return type:bool
ex_start(node)

Starts/Resumes a stopped virtual machine

Parameters:
  • id (str) – The ID of the virtual machine (required)
  • hostid (str) – destination Host ID to deploy the VM to parameter available for root admin only

:rtype str

ex_stop(node)

Stops/Suspends a running virtual machine

Parameters:node (CloudStackNode) – Node to stop.
Return type:str
ex_update_node_affinity_group(node, affinity_group_list)

Updates the affinity/anti-affinity group associations of a virtual machine. The VM has to be stopped and restarted for the new properties to take effect.

Parameters:
  • node (CloudStackNode) – Node to update.
  • affinity_group_list (list of CloudStackAffinityGroup) – List of CloudStackAffinityGroup to associate

:rtype CloudStackNode

get_image(image_id)

Returns a single node image from a provider.

Parameters:image_id (str) – Node to run the task on.

:rtype NodeImage: :return: NodeImage instance on success.

get_key_pair(name)

Retrieve a single key pair.

Parameters:name (str) – Name of the key pair to retrieve.
Return type:KeyPair
import_key_pair_from_file(name, key_file_path)

Import a new public key from string.

Parameters:
  • name (str) – Key pair name.
  • key_file_path (str) – Path to the public key file.
Return type:

KeyPair object

import_key_pair_from_string(name, key_material)

Import a new public key from string.

Parameters:
  • name (str) – Key pair name.
  • key_material (str) – Public key material.
Returns:

Imported key pair object.

Return type:

libcloud.compute.base.KeyPair

list_key_pairs(**kwargs)

List registered key pairs.

Parameters:
  • projectid (str) – list objects by project
  • page (int) – The page to list the keypairs from
  • keyword (str) – List by keyword
  • listall (bool) – If set to false, list only resources belonging to the command’s caller; if set to true - list resources that the caller is authorized to see. Default value is false
  • pagesize (int) – The number of results per page
  • account (str) – List resources by account. Must be used with the domainId parameter
  • isrecursive (bool) – Defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.
  • fingerprint (str) – A public key fingerprint to look for
  • name (str) – A key pair name to look for
  • domainid (str) – List only resources belonging to the domain specified
Returns:

A list of key par objects.

Return type:

list of libcloud.compute.base.KeyPair

list_locations()

:rtype list of NodeLocation

list_nodes(project=None, location=None)

@inherits: NodeDriver.list_nodes

Parameters:
  • project (CloudStackProject) – Limit nodes returned to those configured under the defined project.
  • location (NodeLocation) – Limit nodes returned to those in the defined location.
Return type:

list of CloudStackNode

list_sizes(location=None)

:rtype list of NodeSize

list_snapshots()

Describe all snapshots.

Return type:list of VolumeSnapshot
list_volume_snapshots(volume)

List snapshots for a storage volume.

Return type:list of VolumeSnapshot
list_volumes(node=None)

List all volumes

Parameters:node (CloudStackNode) – Only return volumes for the provided node.
Return type:list of StorageVolume
reboot_node(node)

@inherits: NodeDriver.reboot_node :type node: CloudStackNode

Return type:bool
wait_until_running(nodes, wait_period=3, timeout=600, ssh_interface='public_ips', force_ipv4=True, ex_list_nodes_kwargs=None)

Block until the provided nodes are considered running.

Node is considered running when it’s state is “running” and when it has at least one IP address assigned.

Parameters:
  • nodes (list of Node) – List of nodes to wait for.
  • wait_period (int) – How many seconds to wait between each loop iteration. (default is 3)
  • timeout (int) – How many seconds to wait before giving up. (default is 600)
  • ssh_interface (str) – Which attribute on the node to use to obtain an IP address. Valid options: public_ips, private_ips. Default is public_ips.
  • force_ipv4 (bool) – Ignore IPv6 addresses (default is True).
  • ex_list_nodes_kwargs (dict) – Optional driver-specific keyword arguments which are passed to the list_nodes method.
Returns:

[(Node, ip_addresses)] list of tuple of Node instance and list of ip_address on success.

Return type:

list of tuple