Instances

Compute Instances are virtual private servers. Examples of this would be AWS EC2 and Azure Virtual Machines. This class inherits from TopLevelResource and has direct access to the resource’s database object. The following attributes are directly accessible:

attr resource_id:
 The primary resource identifier that takes the form of a prefix followed by numbers and letters
attr organization_service_id:
 The ID of the parent organization service (cloud)
attr region_name:
 The region that the instance resides in
attr instance_id:
 The provider ID of the instance
attr instance_type:
 The type of instance
attr instance_flavor_resource_id:
 The resource ID of the type (flavor) this is instance runs on
attr state:The state that the instance is in
attr name:The name of the instance
attr availability_zone:
 The availability zone where this instance runs
attr launch_time:
 The time the instance was launched (started)
attr create_time:
 The time the instance was created
attr platform:The platform the system runs on (linux/windows)
attr root_device_type:
 Denotes the root device storage type
attr root_device_name:
 The name of the root device
attr image_id:The ID of the image used to create this instance
attr key_name:The name of the key pair used for this instance
attr public_ip_address:
 Returns the public IP address of this instance
attr private_ip_address:
 Returns the private IP address of this instance
attr tenancy:Type of tenancy- dedicated or default
attr instance_status:
 Returns the system and instance reachability status values
attr instance_flavor:
 Returns a flavor object which contains information on the size of the instance
attr access_lists:
 Returns a list of associated security groups
attr network_interfaces:
 Returns a list of attached network interfaces
attr volumes:Returns a list of attached volumes
class DivvyResource.Resources.instance.Instance(resource_id)

Bases: DivvyResource.Resources.toplevelresource.TopLevelResource

Instance operations

add_instance_to_app(name)

Add instance to App

delete(user_resource_id=None, force_delete=False, wait_for_result=True)

Delete this resource. If wrapped in a with JobQueue() block, this will queue the deletion job to the wrapped queue, otherwise it calls immediately.

Parameters:force_delete – If set this will work around termination protection (if the cloud supports it). An example of this is AWS.
Returns:bool
get_aggregate_cost()

Retrieve monthly cost and sum the attached volumes in order to factor into total costs

get_attached_ips()

Retrieve all ip addresses - public and private - associated with this instance.

get_attached_network_interfaces()

Retrieve a list of db object for interfaces which are attached to this instance (if any). DEPRECATED - Used instance.network_interfaces

get_attached_networks()

Retrieve all networks this instance is attached to.

get_attached_private_ips()

Retrieve private ip addresses which are attached to this instance (if any).

get_attached_public_ips()

Retrieve public ip objects which are attached to this instance (if any).

get_attached_volumes()

Retrieve a list of db object for volumes which are attached to this instance (if any).

get_availability_zone()

Retrieve the name of the availability zone

get_date_created()

Retrieve the time from the provider that this resource was created. By default this will return the begining date of epoch if no such create time exists.

static get_db_class()
get_image()

Retrieve the image that the instance uses. If the instance was deleted upstream or if we have not harvested it yet then this could return None.

get_image_id()

Retrieve the image ID of the resource

get_image_name()

Retrieve the image name that the instance uses. If the instance was deleted upstream or if we have not harvested it yet then this could return None.

get_instance_type()

Retrieve the instance type of the resource

get_primary_network_interface_id()

Return the network interface attached to eth0 (device index 0)

static get_provider_id_field()
get_resource_dependencies()

Retrieve the dependencies for a particular resources. This is an override of the parent function because we need to reverse the order on our resource lookups.

static get_resource_type()
get_security_groups()

Retrieve security groups which are associated with this instance

get_supported_actions()

Retrieve all the actions which are supported by this resource.

Restricts actions by resource state

handle_resource_created(user_resource_id=None, project_resource_id=None)

This should be called when a resource is created/discovered after the basic data is added to the database. This gives an opportunity for post-addition hooks (assignment to projects/groups, alerts, etc)

handle_resource_destroyed(user_resource_id=None)

This should be called when a resource is destroyed before the basic data is removed from the database. This gives an opportunity for pre-destruction hooks (removal from projects/groups, alerts, etc)

handle_resource_modified(resource, *args, **kwargs)

This should be called when a resource is modified after the new data has been updated in the DB session This gives an opportunity for post-modification hooks

instance
instance_id
is_attached_to_asg()

Return True if instance is attached to Auto Scale Group

organization_service_id
pause()

Pause this instance. It is wrapped in a with JobQueue() block, this will queue the stop job to the wrapped queue

region_name
remove_instance_from_app()

Remove instance from app

restart()

Restart this instance. It is wrapped in a with JobQueue() block, this will queue the stop job to the wrapped queue

resume()

Restart this instance. It is wrapped in a with JobQueue() block, this will queue the stop job to the wrapped queue

shelve()

Stop this instance. It is wrapped in a with JobQueue() block, this will queue the stop job to the wrapped queue.

start()

Start this instance. It is wrapped in a with JobQueue() block, this will queue the stop job to the wrapped queue

stop()

Stop this instance. It is wrapped in a with JobQueue() block, this will queue the stop job to the wrapped queue

suspend()

Suspend this instance. It is wrapped in a with JobQueue() block, this will queue the stop job to the wrapped queue

top_level_resource = True
unpause()

Unpause this instance. It is wrapped in a with JobQueue() block, this will queue the stop job to the wrapped queue

unshelve()

Stop this instance. It is wrapped in a with JobQueue() block, this will queue the stop job to the wrapped queue.

uses_simple_networking()

Determine whether this instance supports only instance-based simple networking. i.e. EC2-classic networking or nova-network