Exoscale Computer Driver Documentation
Exoscale is a public European cloud provider with data centers in Germany, Austria, and Switzerland.
Exoscale driver is based on the CloudStack one and uses basic zones. For more information and CloudStack specific documentation, please refer to CloudStack Compute Driver Documentation page.
Other Resources
Libcloud 0.14 and Exoscale - Exoscale blog
API Docs
- class libcloud.compute.drivers.exoscale.ExoscaleNodeDriver(key, secret=None, secure=True, host=None, path=None, port=None, url=None, *args, **kwargs)[source]
- Inherits:
NodeDriver.__init__
- Parameters:
host (
str
) – The host where the API can be reached. (required)path (
str
) – The path where the API can be reached. (required)url (
str
) – Full URL to the API endpoint. Mutually exclusive with host and path argument.
- attach_volume(node, volume, device=None)
@inherits:
NodeDriver.attach_volume
:type node:CloudStackNode
- Return type:
bool
- connectionCls
alias of
CloudStackConnection
- copy_image(source_region: str, node_image: NodeImage, name: str, description: str | None = None) NodeImage
Copies an image from a source region to the current region.
- create_image(node: Node, name: str, description: str | None = None) List[NodeImage]
Creates an image from a node object.
- 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 keydomainid (
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:
- create_node(name, size, image, location=None, networks=None, project=None, diskoffering=None, ex_keyname=None, ex_userdata=None, ex_security_groups=None, ex_displayname=None, ex_ip_address=None, ex_start_vm=False, ex_rootdisksize=None, ex_affinity_groups=None)
Create a new node
@inherits:
NodeDriver.create_node
- Parameters:
networks (
list
ofCloudStackNetwork
) – 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 keypairex_userdata (
str
) – String containing user dataex_security_groups (
list
ofstr
) – List of security groups to assign to the nodeex_displayname (
str
) – String containing instance display nameex_ip_address (
str
) – String with ipaddress for the default nicex_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 templateex_affinity_groups (
list
ofCloudStackAffinityGroup
) – List of affinity groups to assign to the node
- Return type:
- 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 ofStorageVolume
name (str) – The name of the snapshot is disregarded by CloudStack drivers
- Return type:
VolumeSnapshot
- delete_image(node_image: NodeImage) bool
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 keypairdomainid (
str
) – The domain ID associated with the keypairaccount (
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(deploy: Deployment, ssh_username: str = 'root', ssh_alternate_usernames: List[str] | None = None, ssh_port: int = 22, ssh_timeout: int = 10, ssh_key: T_Ssh_key | None = None, ssh_key_password: str | None = None, auth: T_Auth | None = None, timeout: int = 300, max_tries: int = 3, ssh_interface: str = 'public_ips', at_exit_func: Callable | None = None, wait_period: int = 5, **create_node_kwargs) Node
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
orNodeAuthSSHKey
to theauth
argument. If thecreate_node
implementation supports that kind if credential (as declared inself.features['create_node']
) then it is passed on tocreate_node
. Otherwise it is not passed on tocreate_node
and it is only used for authentication.If the
auth
parameter is not supplied but the driver declares it supportsgenerates_password
then the password returned bycreate_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 failsssh_port (
int
) – Optional SSH server port (default is 22)ssh_timeout (
float
) – Optional SSH connection timeout in seconds (default is 10)auth (
NodeAuthSSHKey
orNodeAuthPassword
) – Initial authentication information for the node (optional)ssh_key (
str
orlist
ofstr
) – A path (or paths) to an SSH private key with which to attempt to authenticate. (optional)ssh_key_password (
str
) – Optional password used for encrypted keys.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’.at_exit_func (
func
) –Optional atexit handler function which will be registered and called with created node if user cancels the deploy process (e.g. CTRL+C), after the node has been created, but before the deploy process has finished.
This method gets passed in two keyword arguments:
driver -> node driver in question
node -> created Node object
Keep in mind that this function will only be called in such scenario. In case the method finishes (this includes throwing an exception), at exit handler function won’t be called.
wait_period (
int
) – How many seconds to wait between each iteration while waiting for node to transition into running state and have IP assigned. (default is 5)
- 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
- destroy_volume_snapshot(snapshot)
Destroys a snapshot.
- Parameters:
snapshot (
VolumeSnapshot
) – The snapshot to delete- Return type:
- 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 tonetwork_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 groupsecuritygroupid (
str
) – The ID of the security group. Mutually exclusive with securitygroupnameusersecuritygrouplist (
dict
) – User to security group mapping
- Return type:
dict
- ex_change_node_size(node, offering)
Change offering/size of a virtual machine
- Parameters:
node (
CloudStackNode
) – Node to change sizeoffering (
NodeSize
) – The new offering
:rtype
str
- ex_create_affinity_group(name, group_type)
Creates a new Affinity Group
- Parameters:
name (
str
) – Name of the affinity groupgroup_type (
CloudStackAffinityGroupType
) – Type of the affinity group from the available affinity/anti-affinity group typesdescription (
str
) – Optional description of the affinity groupdomainid (
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 servicescidr_list (
str
) – cidr listprotocol (
str
) – TCP/IP Protocol (TCP, UDP)icmp_code (
int
) – Error code for this icmp messageicmp_type (
int
) – Type of the icmp message being sentstart_port (
int
) – start of port rangeend_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 addresscidr_list (
str
) – cidr listprotocol (
str
) – TCP/IP Protocol (TCP, UDP)icmp_code (
int
) – Error code for this icmp messageicmp_type (
int
) – Type of the icmp message being sentstart_port (
int
) – start of port rangeend_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 usedaddress (
CloudStackAddress
) – CloudStackAddress which should be usedprotocol (
str
) – Protocol which should be used (TCP or UDP)start_port (
int
) – Start port which should be usedend_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 keydomainid (
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 networkname (
str
) – the name of the networknetwork_offering (:class:'CloudStackNetworkOffering`) – NetworkOffering object
location (
NodeLocation
) – Zone objectgateway (
str
) – Optional, the Gateway of this networknetmask (
str
) – Optional, the netmask of this networknetwork_domain (
str
) – Optional, the DNS domain of the networkvpc_id (
str
) – Optional, the VPC id the network belongs toproject_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 numberacl_id (
str
) – Name of the network ACL Listcidr_list (
str
) – the cidr list to allow traffic from/tostart_port (
str
) – the starting port of ACLend_port (
str
) – the ending port of ACLaction (
str
) – scl entry action, allow or denytraffic_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 Listvpc_id (
string
) – Id of the VPC associated with this network ACL Listdescription (
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 NATprivate_port (
int
) – Port of the virtual machineprotocol (
str
) – Protocol of the rulepublic_port (
int
) – Public port on the Source NAT addressnode (
CloudStackNode
) – The virtual machinenetwork_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 groupprojectid (
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 templatename – 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 VPCname (
str
) – the name of the VPCvpc_offering (:class:'CloudStackVPCOffering`) – the ID of the VPC offering
zone_id (
str
) – the ID of the availability zonenetwork_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 usedrule (
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 keypairdomainid (
str
) – The domain ID associated with the keypairaccount (
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 rulerule (
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 groupid (
str
) – The ID of the security group. Mutually exclusive with name parametername (
str
) – The ID of the security group. Mutually exclusive with id parameteraccount (
str
) – The account of the security group. Must be specified with domain IDprojectid (
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 nodeproject (
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 volumeproject (
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
ofCloudStackAffinityGroupTypes
- ex_list_affinity_groups()
List Affinity Groups
:rtype
list
ofCloudStackAffinityGroup
- ex_list_disk_offerings()
Fetch a list of all available disk offerings.
- Return type:
list
ofCloudStackDiskOffering
- ex_list_egress_firewall_rules()
Lists all egress Firewall Rules
- Return type:
list
ofCloudStackEgressFirewallRule
- ex_list_firewall_rules()
Lists all Firewall Rules
- Return type:
list
ofCloudStackFirewallRule
- 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 parameterdomain_id (
str
) – List only resources belonging to the domain specifiedid (
str
) – Lists rule with the specified IDipaddress_id (
str
) – list the rule belonging to this public ip addressis_recursive (
bool
) – Defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.keyword (
str
) – List by keywordlist_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 falsepage (
int
) – The page to list the keypairs frompage_size (
int
) – The number of results per pageproject_id (
str
) – list objects by projectvirtualmachine_id (
str
) – Lists all rules applied to the specified Vm
- Return type:
list
ofCloudStackIPForwardingRule
- ex_list_keypairs(**kwargs)
List Registered SSH Key Pairs
- Parameters:
projectid (
str
) – list objects by projectpage (
int
) – The page to list the keypairs fromkeyword (
str
) – List by keywordlistall (
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 falsepagesize (
int
) – The number of results per pageaccount (
str
) – List resources by account. Must be used with the domainId parameterisrecursive (
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 forname (
str
) – A key pair name to look fordomainid (
str
) – List only resources belonging to the domain specified
- Returns:
A list of keypair dictionaries
- Return type:
list
ofdict
- ex_list_network_acl()
Lists all network ACL items
- Return type:
list
ofCloudStackNetworkACL
- ex_list_network_acllists()
Lists all network ACLs
- Return type:
list
ofCloudStackNetworkACLList
- ex_list_network_offerings()
List the available network offerings
:rtype
list
ofCloudStackNetworkOffering
- ex_list_networks(project=None)
List the available networks
- Parameters:
project (
CloudStackProject
) – Optional project the networks belongs to.
:rtype
list
ofCloudStackNetwork
- ex_list_nics(node)
List the available networks
- Parameters:
vm (:class:`CloudStackNode) – Node Object
:rtype
list
ofCloudStackNic
- 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 parameterdomain_id (
str
) – List only resources belonging to the domain specifiedfor_display (
bool
) – List resources by display flag (only root admin is eligible to pass this parameter).id (
str
) – Lists rule with the specified IDipaddress_id (
str
) – list the rule belonging to this public ip addressis_recursive (
bool
) – Defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.keyword (
str
) – List by keywordlist_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 falsenetwork_id (
string
) – list port forwarding rules for certain networkpage (
int
) – The page to list the keypairs frompage_size (
int
) – The number of results per pageproject_id (
str
) – list objects by project
- Return type:
list
ofCloudStackPortForwardingRule
- ex_list_projects()
List the available projects
:rtype
list
ofCloudStackProject
- ex_list_public_ips()
Lists all Public IP Addresses.
- Return type:
list
ofCloudStackAddress
- ex_list_routers(vpc_id=None)
List routers
:rtype
list
ofCloudStackRouter
- ex_list_security_groups(**kwargs)
Lists Security Groups
- Parameters:
domainid (
str
) – List only resources belonging to the domain specifiedaccount (
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 falsepagesize (
int
) – Number of entries per pagekeyword (
str
) – List by keywordtags (
dict
) – List resources by tags (key/value pairs)id (
str
) – list the security group by the id providedsecuritygroupname (
str
) – lists security groups by namevirtualmachineid (
str
) – lists security groups by virtual machine idprojectid (
str
) – list objects by projectisrecursive (
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
ofCloudStackVPCOffering
- ex_list_vpcs(project=None)
List the available VPCs
- Parameters:
project (
CloudStackProject
) – Optional project under which VPCs are present.
:rtype
list
ofCloudStackVPC
- 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
ofCloudStackVpnConnection
- 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
ofCloudStackVpnCustomerGateway
- 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
ofCloudStackVpnGateway
- ex_register_iso(name, url, location=None, **kwargs)
Registers an existing ISO by URL.
- Parameters:
name (
str
) – Name which should be usedurl (
str
) – Url should be usedlocation (
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 ACLnetwork_id (
string
) – the ID of the network
- Return type:
CloudStackNetworkACLList
- ex_restore(node, template=None)
Restore virtual machine
- Parameters:
node (
CloudStackNode
) – Node to restoretemplate (
NodeImage
) – Optional new template
:rtype
str
- 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
ofCloudStackAffinityGroup
) – List of CloudStackAffinityGroup to associate
:rtype
CloudStackNode
- features: Dict[str, List[str]] = {'create_node': ['generates_password']}
- List of available features for a driver.
libcloud.compute.base.NodeDriver.create_node()
ssh_key: Supports
NodeAuthSSHKey
as an authentication method for nodes.password: Supports
NodeAuthPassword
as an authentication method for nodes.generates_password: Returns a password attribute on the Node object returned from creation.
- get_image(image_id: str) NodeImage
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:
- import_key_pair_from_file(name: str, key_file_path: str) KeyPair
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:
- list_images(location=None)
List images on a provider.
- Parameters:
location (
NodeLocation
) – The location at which to list images.- Returns:
list of node image objects.
- Return type:
list
ofNodeImage
- list_key_pairs(**kwargs)
List registered key pairs.
- Parameters:
projectid (
str
) – list objects by projectpage (
int
) – The page to list the keypairs fromkeyword (
str
) – List by keywordlistall (
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 falsepagesize (
int
) – The number of results per pageaccount (
str
) – List resources by account. Must be used with the domainId parameterisrecursive (
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 forname (
str
) – A key pair name to look fordomainid (
str
) – List only resources belonging to the domain specified
- Returns:
A list of key par objects.
- Return type:
list
oflibcloud.compute.base.KeyPair
- list_locations()
:rtype
list
ofNodeLocation
- 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
ofCloudStackNode
- list_sizes(location=None)
:rtype
list
ofNodeSize
- list_snapshots()
Describe all snapshots.
- Return type:
list
ofVolumeSnapshot
- list_volume_snapshots(volume: StorageVolume) List[VolumeSnapshot]
List snapshots for a storage volume.
- Return type:
list
ofVolumeSnapshot
- list_volumes(node=None)
List all volumes
- Parameters:
node (
CloudStackNode
) – Only return volumes for the provided node.- Return type:
list
ofStorageVolume
- reboot_node(node)
@inherits:
NodeDriver.reboot_node
:type node:CloudStackNode
- Return type:
bool
- start_node(node: Node) bool
Start a node.
- Parameters:
node (
Node
) – The node to be started- Returns:
True if the start was successful, otherwise False
- Return type:
bool
- stop_node(node: Node) bool
Stop a node
- Parameters:
node (
Node
) – The node to be stopped.- Returns:
True if the stop was successful, otherwise False
- Return type:
bool
- wait_until_running(nodes: List[Node], wait_period: float = 5, timeout: int = 600, ssh_interface: str = 'public_ips', force_ipv4: bool = True, ex_list_nodes_kwargs: Dict | None = None) List[Tuple[Node, List[str]]]
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
ofNode
) – 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 thelist_nodes
method.
- Returns:
[(Node, ip_addresses)]
list of tuple of Node instance and list of ip_address on success.- Return type:
list
oftuple