Database Instances

Database Instances are managed systems with one or more relational database management software installed. Examples of this would be AWS RDS, Azure SQL and Google Cloud SQL. 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 name:The name 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 endpoint_address:
 The FQDN of the instance
attr endpoint_port:
 The port that the instance listens on
attr engine:The engine that the database uses (eg: mysq)
attr engine_version:
 The install version of the engine
attr storage_size:
 The size in gigabytes allocated to the instance
attr storage_type:
 The storage type that is used
attr db_name:The name of the master database
attr backup_retention:
 An integer representing the number of days that automatic snapshots are retained for
attr license:The type of license associated with this instance
attr multi_az:Whether or not this system is set up for high availability and is distributed across multiple zones.
attr create_time:
 The time this instance was created
attr master_username:
 The username of the master user
attr encrypted:Denotes if the data stored on the instance is encrypted
attr publicly_accessible:
 Denotes if the instance can be accessed over the Internet
attr access_lists:
 Returns a list of associated security groups
attr snapshots:Returns a list of snapshots that are associated with this instance
attr databases:Returns a list of databases that are active on the instance
attr instance_flavor:
 Returns a flavor object which contains information on the size of the instance
class DivvyResource.Resources.databaseinstance.DatabaseInstance(resource_id)

Bases: DivvyResource.Resources.toplevelresource.TopLevelResource

Database instance operations

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

Retrieve the time from the provider that this resource was created (if available).

static get_db_class()

Retrieve the instance type of the resource

static get_provider_id_field()
static get_resource_type()

Retrieve a list of db objects for snapshots created within from this database instance (if any)


Retrieve the database instance 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 groups, alerts, etc)


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

top_level_resource = True