1 Ceilometer Integration¶
The current implementation of trove supports 4 different operation notifications to Ceilometer: trove.instance.create, trove.instance.delete, trove.instance.modify_volume, and trove.instance.modify_flavor. An additional notification, trove.instance.exists is generated periodically to provide status of active instances.
This spec outlines how Trove can be extended to bring its notification support to be more in line with the rest of Openstack by generating start|end|fail notifications for all operation which result in a change of state of the system.
Launchpad Blueprint: https://blueprints.launchpad.net/trove/+spec/ceilometer-integration
Contents
1.1 Problem Description¶
Trove does not support sufficient notifications for billing or error monitoring.
1.2 Proposed Change¶
Each Trove API call which results in a change of state will be enhanced to generate notifications in line with other Openstack projects. Taskmanager tasks and asynchronous guest agent calls will be supplemented with additional parameters to support the generation of appropriate notifications. A new RPC method will be added to the Conductor to allow the guest to forward the results of asynchronous calls as the guest agent may not have access to the control plane where the Ceilometer collectors operate.
Each API event handler will generate appropriate start, end, and (if necessary) error notifications. For asynchronous calls to the taskmanager or guest agent, the event handler will emit the start notification and pass along sufficient information in the Trove Context to allow subsequent components to generate the end and error notifications. Notification events generated by the Trove guest will be forwarded to the Conductor to be placed on the Trove control plane RabbitMQ broker.
1.2.1 Trove Status Notifications¶
These notifications have an event type of “trove.<action>”. They are the notifications currently emitted by trove, enhanced to include the cluster_id where appropriate.
All Trove status notifications will have the following information:
- Message
- instance_type
name of the flavor of the instance
- user_id
the id of the Openstack user who invoked the action
- resource_id
trove instance_id of the instance
- instance_type_id
flavor id of the flavor of the instance
- launched_at
same as created_at
- instance_name
name of the trove instance
- state
current state of the instance
- state_description
description of the current state of the instance
- nova_instance_id
id of the underlying nova instance
- service_id
notification service id for datastore
- created_at
creation time of the instance
- region
Openstack region
Trove status notifications for trove.create, trove.delete, trove.modify_volume and trove.modify_flavor will have the following additional information:
- Message
- name
name of the Trove instance
- availability_zone
Openstack availability zone
- instance_size
ram allocated to instance
- volume_size
size of volume (if volume support enabled)
- nova_volume_id
nove volume id (if volume support enabled)
- cluster_id
id of cluster (if instance in cluster)
1.2.1.1 trove.instance.create¶
- Message
1.2.1.2 trove.instance.delete¶
- Message
- deleted_at
time at which instance deletion is complete
1.2.1.3 trove.instance.modify_volume¶
- Message
- old_volume_size
volume size prior to resize
- modify_at
time at which volume resize completed
1.2.1.4 trove.instance.modify_flavor¶
- Message
- old_instance_size
memory of instance prior to resize
- modify_at
time at which resize completed
1.2.1.5 trove.instance.exists¶
A periodic event to update statistics about each Trove instance. This notification is emitted only if configured via the exists_notification_transformer config value.
- Message
- display_name
name of the instance
- audit_period_beginning
audit period start time
- audit_period_ending
audit period end time
1.2.1.6 dbaas.quotas¶
The dbaas.quotas notification will be periodically emitted to reflect the current state of utilization of the Trove quotas. The frequency of notification events will be defined by the quota_notification_interval configuration value, but at each interval multiple events may be emitted for each resource due to Taskmanager deployment configuration - each Taskmanager will emit a notification for each resource.
- Message
- resource
name of resource (currently “instances”, “volumes”, or “backups”)
- in_use
the number of resource instances currently in use
- reserved
the number of resource instances currently reserved
- limit
the maximum allocation of resource
- updated
the time of last resource allocation event
1.2.2 Trove API Notifications¶
See the Appendix at the end of this document for the individual API notifications.
1.2.3 Configuration¶
A new configuration value will be added to support implementation of periodic notifcations for quotas.
- quota_notification_interval
Seconds between periodic quota notifications (<0 to disable) 1.
1.2.4 Database¶
No changes will be made to the Trove database.
1.2.5 Public API¶
No changes will be made to the Trove REST API.
1.2.7 Python API¶
No changes will be made to the Trove Python API.
1.2.8 CLI (python-troveclient)¶
No changes will be made to the Trove CLI. n/a
1.2.9 Internal API¶
Notification object instances representing the REST API calls that are responsible for generating API Notification events will be created in the Trove API process. These notification objects will be created for each REST API call which expects to change the state of the Trove system, or one of the guest agents. At the time the notification object is created, the appropriate “.start” event will be generated and published to the notification.info queue.
For operations which are processed completely within the trove-api process, the appropriate “.end” or “.error” event will be published upon completion of the operation.
For operations which require support from the Taskmanager or a guest agent, the notification object will be attached to the TroveContext instance for the operation. The trove-taskmanager or trove-guestagent will be able to retrieve the notification instance from the TroveContext instance and use it to generate the appropriate notification events. The trove-taskmanager will place the notification events directly on the RabbitMQ notification.info queue, whereas the guest agent will forward the notification object to the trove-conductor to be placed on the queue.
A new method will be added to the API for the Conductor. The following RPC method instructs the trove-conductor to send an end or error notification with the appropriate values:
def notify_exc_info(self, etype, value, trace):
- etype, value, trace
results from the sys.exc_info exception call.
1.2.10 Guest Agent¶
There will be no changes to the synchronous guest-agent RPC methods.
Asynchronous guest-agent methods will be modified to send “.end” or”.error” notifications to the trove-conductor to reflect the completion status of each asynchronous RPC method.
It is expected that the current upgrade procedure where the guests are upgraded before the trove controller components will be followed. In this scenario, no notifications will be added to the TroveContext, so the guest agent will not send any notifications to the (yet to be upgraded) trove-conductor.
1.2.11 Alternatives¶
An alternative implementation would be to have the guest agent place notifications directly on the notifications queue, but this would require the guest agent to have access to the same RabbitMQ broker as the trove-api and trove-taskmanager. The proposed design is a step in the direction of allowing the guest to operate in an isolated environment.
1.3 Dashboard Impact (UX)¶
TBD (section added after approval)
1.4 Implementation¶
1.4.1 Assignee(s)¶
- Primary assignee:
6-morgan
1.4.2 Milestones¶
- Target Milestone for completion:
eg. Mitaka
1.4.3 Work Items¶
Develop framework for new notifications
Re-implement existing notifications in new framework (for consistency)
Implement new notification messages
Implement TroveContext changes
Integrate messages with synchronous API calls in trove-api
Implement conductor RPC methods
Integrate notifications with async Taskmanager RPC methods
Integrate notifications with asynch guest agent RPC methods
Update ceilometer message definitions for new notifications
Unit tests for new code
Modify existing tests to verify notifications
Provide documentation for new notifications
1.5 Upgrade Implications¶
tenant-id will be added to ceilometer definition for existing Trove notifications
new notifications will be added for all state changing REST APIs
1.7 Testing¶
Existing unit tests will test changes to trove.* notifications.
New unit tests will be developed to test the new notifications.
The notification mechanism, when propely configured, adds notifications to queues to be consumed by other Openstack, or non-Openstack, components. As these consumers are outside the scope of Trove, integration tests do not test notifications.
1.8 Documentation Impact¶
Documentation will be generated for the new notifications.
1.10 Appendix¶
1.10.1 Dbaas API Notification Definitions¶
These are new notifications emitted by trove to reflect in invocation of the various Trove APIs.
All DBAAS notifications will have an event type of “dbaas.<action>.(start|end|error)” and include the following information:
- Message
- tenant_id
id of the configured tenant
- client_ip
ip:port of trove client which generated API invocation
- server_ip
ip:port of trove service which generated notification
- server_type
service which generated notification (api|task|conductor)
- request_id
Identifier used to correlate start|end|error
1.10.2 dbaas.instance_create.start¶
- Python API
instances.create(name, flavor_id, volume=None, databases=None, users=None, restorePoint=None, availability_zone=None, datastore=None, datastore_version=None, nics=None, configuration=None, replica_of=None, slave_of=None, replica_count=None)
- REST API
POST v1/{tenant_id}/instances/create
- Event Type
dbaas.instance_create.start
- Queue
notification.info
- Message
- name
Name of new instance
- flavor
Flavor id of instance
- datastore
Datastore of instance
- datastore_version
Datastore_version of instance
- databases
Comma separated list of databases to create (if specified)
- users
Comma separated list of users to create (if specified)
- volume_size
Size of volume to create (if specified)
- restore_point
Reference to backup to use to initialize instance (if specified)
- availability_zone
AZ of instance (if specified)
- replica_of
Master instance from which to create replica (if specified)
- replica_count
Number of replicas to create (if specified)
1.10.3 dbaas.instance_create.end¶
- Python API
instances.create(name, flavor_id, volume=None, databases=None, users=None, restorePoint=None, availability_zone=None, datastore=None, datastore_version=None, nics=None, configuration=None, replica_of=None, slave_of=None, replica_count=None)
- REST API
POST v1/{tenant_id}/instances/create
- Event Type
dbaas.instance_create.end
- Queue
notification.info
- Message
- instance_id
id of created instance
1.10.4 dbaas.instance_create.error¶
- Python API
instances.create(name, flavor_id, volume=None, databases=None, users=None, restorePoint=None, availability_zone=None, datastore=None, datastore_version=None, nics=None, configuration=None, replica_of=None, slave_of=None, replica_count=None)
- REST API
POST v1/{tenant_id}/instances/create
- Event Type
dbaas.instance_create.error
- Queue
notification.error
- Message
- instance_id
id of instance
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.5 dbaas.instance_restart.start¶
- Python API
instances.restart(instance)
- REST API
POST v1/{tenant_id}/instances/{id}/action
- Event Type
dbaas.instance_restart.start
- Queue
notification.info
- Message
- instance_id
id of instance to restart
1.10.6 dbaas.instance_restart.end¶
- Python API
instances.restart(instance)
- REST API
POST v1/{tenant_id}/instances/{id}/action
- Event Type
dbaas.instance_restart.end
- Queue
notification.info
- Message
1.10.7 dbaas.instance_restart.error¶
- Python API
instances.restart(instance)
- REST API
POST v1/{tenant_id}/instances/{id}/action
- Event Type
dbaas.instance_restart.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.8 dbaas.instance_resize_volume.start¶
- Python API
instances.resize_volume(instance, volume_size)
- REST API
POST v1/{tenant_id}/instances/{id}/action
- Event Type
dbaas.instance_resize_volume.start
- Queue
notification.info
- Message
- instance_id
id of instance to resize_volume
- new_size
size to which volume will be resized
1.10.9 dbaas.instance_resize_volume.end¶
- Python API
instances.resize_volume(instance, volume_size)
- REST API
POST v1/{tenant_id}/instances/{id}/action
- Event Type
dbaas.instance_resize_volume.end
- Queue
notification.info
- Message
1.10.10 dbaas.instance_resize_volume.error¶
- Python API
instances.resize_volume(instance, volume_size)
- REST API
POST v1/{tenant_id}/instances/{id}/action
- Event Type
dbaas.instance_resize_volume.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.11 dbaas.instance_resize_instance.start¶
- Python API
instances.resize_instance(instance, flavor_id)
- REST API
POST v1/{tenant_id}/instances/{id}/action
- Event Type
dbaas.instance_resize_instance.start
- Queue
notification.info
- Message
- instance_id
id of instance to resize_instance
- new_flavor_id
id of flavor to which instance will be resized
1.10.12 dbaas.instance_resize_instance.end¶
- Python API
instances.resize_instance(instance, flavor_id)
- REST API
POST v1/{tenant_id}/instances/{id}/action
- Event Type
dbaas.instance_resize_instance.end
- Queue
notification.info
- Message
1.10.13 dbaas.instance_resize_instance.error¶
- Python API
instances.resize_instance(instance, flavor_id)
- REST API
POST v1/{tenant_id}/instances/{id}/action
- Event Type
dbaas.instance_resize_instance.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.14 dbaas.instance_promote.start¶
- Python API
instances.promote_to_replica_source(instance)
- REST API
POST v1/{tenant_id}/instances/{id}/action
- Event Type
dbaas.instance_promote.start
- Queue
notification.info
- Message
- instance_id
id of instance to promote
1.10.15 dbaas.instance_promote.end¶
- Python API
instances.promote_to_replica_source(instance)
- REST API
POST v1/{tenant_id}/instances/{id}/action
- Event Type
dbaas.instance_promote.end
- Queue
notification.info
- Message
1.10.16 dbaas.instance_promote.error¶
- Python API
instances.promote_to_replica_source(instance)
- REST API
POST v1/{tenant_id}/instances/{id}/action
- Event Type
dbaas.instance_promote.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.17 dbaas.instance_eject.start¶
- Python API
instances.eject_replica_source(instance)
- REST API
POST v1/{tenant_id}/instances/{id}/action
- Event Type
dbaas.instance_eject.start
- Queue
notification.info
- Message
- instance_id
id of instance to eject
1.10.18 dbaas.instance_eject.end¶
- Python API
instances.eject_replica_source(instance)
- REST API
POST v1/{tenant_id}/instances/{id}/action
- Event Type
dbaas.instance_eject.end
- Queue
notification.info
- Message
1.10.19 dbaas.instance_eject.error¶
- Python API
instances.eject_replica_source(instance)
- REST API
POST v1/{tenant_id}/instances/{id}/action
- Event Type
dbaas.instance_eject.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.20 dbaas.instance_delete.start¶
- Python API
instances.delete(instance)
- REST API
DELETE v1/{tenant_id}/instances/{id}
- Event Type
dbaas.instance_delete.start
- Queue
notification.info
- Message
- instance_id
id of instance to delete
1.10.21 dbaas.instance_delete.end¶
- Python API
instances.delete(instance)
- REST API
DELETE v1/{tenant_id}/instances/{id}
- Event Type
dbaas.instance_delete.end
- Queue
notification.info
- Message
1.10.22 dbaas.instance_delete.error¶
- Python API
instances.delete(instance)
- REST API
DELETE v1/{tenant_id}/instances/{id}
- Event Type
dbaas.instance_delete.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.23 dbaas.instance_detach.start¶
- Python API
instances.edit(detach_replica_source=True)
- REST API
PATCH v1/{tenant_id}/instances/{id}
- Event Type
dbaas.instance_detach.start
- Queue
notification.info
- Message
- instance_id
id of instance to detach
1.10.24 dbaas.instance_detach.end¶
- Python API
instances.edit(detach_replica_source=True)
- REST API
PATCH v1/{tenant_id}/instances/{id}
- Event Type
dbaas.instance_detach.end
- Queue
notification.info
- Message
1.10.25 dbaas.instance_detach.error¶
- Python API
instances.edit(detach_replica_source=True)
- REST API
PATCH v1/{tenant_id}/instances/{id}
- Event Type
dbaas.instance_detach.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.26 dbaas.instance_attach_configuration.start¶
- Python API
instances.modify(instance, configuration)
- REST API
PATCH v1/{tenant_id}/instances/{id}
- Event Type
dbaas.instance_attach_configuration.start
- Queue
notification.info
- Message
- instance_id
id of instance to attach_configuration
- configuration_id
id of configuration to attach
1.10.27 dbaas.instance_attach_configuration.end¶
- Python API
instances.modify(instance, configuration)
- REST API
PATCH v1/{tenant_id}/instances/{id}
- Event Type
dbaas.instance_attach_configuration.end
- Queue
notification.info
- Message
1.10.28 dbaas.instance_attach_configuration.error¶
- Python API
instances.modify(instance, configuration)
- REST API
PATCH v1/{tenant_id}/instances/{id}
- Event Type
dbaas.instance_attach_configuration.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.29 dbaas.instance_detach_configuration.start¶
- Python API
instances.edit(instance, configuration, remove_configuration=True)
- REST API
PATCH v1/{tenant_id}/instances/{id}
- Event Type
dbaas.instance_detach_configuration.start
- Queue
notification.info
- Message
- instance_id
id of instance to detach_configuration
1.10.30 dbaas.instance_detach_configuration.end¶
- Python API
instances.edit(instance, configuration, remove_configuration=True)
- REST API
PATCH v1/{tenant_id}/instances/{id}
- Event Type
dbaas.instance_detach_configuration.end
- Queue
notification.info
- Message
1.10.31 dbaas.instance_detach_configuration.error¶
- Python API
instances.edit(instance, configuration, remove_configuration=True)
- REST API
PATCH v1/{tenant_id}/instances/{id}
- Event Type
dbaas.instance_detach_configuration.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.32 dbaas.cluster_create.start¶
- Python API
clusters.create(name, datastore, datastore_version, instances=None)
- REST API
POST v1/{tenant_id}/clusters
- Event Type
dbaas.cluster_create.start
- Queue
notification.info
- Message
- name
name of cluster
- datastore
datastore of cluster
- datastore_version
datastore_version of cluster
1.10.33 dbaas.cluster_create.end¶
- Python API
clusters.create(name, datastore, datastore_version, instances=None)
- REST API
POST v1/{tenant_id}/clusters
- Event Type
dbaas.cluster_create.end
- Queue
notification.info
- Message
- cluster_id
id of newly created cluster
1.10.34 dbaas.cluster_create.error¶
- Python API
clusters.create(name, datastore, datastore_version, instances=None)
- REST API
POST v1/{tenant_id}/clusters
- Event Type
dbaas.cluster_create.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.35 dbaas.cluster_delete.start¶
- Python API
clusters.delete(cluster)
- REST API
DELETE v1/{tenant_id}/clusters/{id}
- Event Type
dbaas.cluster_delete.start
- Queue
notification.info
- Message
- cluster_id
id of cluster to delete
1.10.36 dbaas.cluster_delete.end¶
- Python API
clusters.delete(cluster)
- REST API
DELETE v1/{tenant_id}/clusters/{id}
- Event Type
dbaas.cluster_delete.end
- Queue
notification.info
- Message
1.10.37 dbaas.cluster_delete.error¶
- Python API
clusters.delete(cluster)
- REST API
DELETE v1/{tenant_id}/clusters/{id}
- Event Type
dbaas.cluster_delete.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.38 dbaas.cluster_add_shard.start¶
- Python API
clusters.add_shard(cluster)
- REST API
POST v1/{tenant_id}/clusters/{id}
- Event Type
dbaas.cluster_add_shard.start
- Queue
notification.info
- Message
- cluster_id
id of cluster to which to add a shard
1.10.39 dbaas.cluster_add_shard.end¶
- Python API
clusters.add_shard(cluster)
- REST API
POST v1/{tenant_id}/clusters/{id}
- Event Type
dbaas.cluster_add_shard.end
- Queue
notification.info
- Message
1.10.40 dbaas.cluster_add_shard.error¶
- Python API
clusters.add_shard(cluster)
- REST API
POST v1/{tenant_id}/clusters/{id}
- Event Type
dbaas.cluster_add_shard.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.41 dbaas.cluster_grow.start¶
- Python API
clusters.grow(cluster, instances)
- REST API
POST v1/{tenant_id}/clusters/{id}
- Event Type
dbaas.cluster_grow.start
- Queue
notification.info
- Message
- cluster_id
id of cluster to which to add a shard
1.10.42 dbaas.cluster_grow.end¶
- Python API
clusters.grow(cluster, instances)
- REST API
POST v1/{tenant_id}/clusters/{id}
- Event Type
dbaas.cluster_grow.end
- Queue
notification.info
- Message
1.10.43 dbaas.cluster_grow.error¶
- Python API
clusters.grow(cluster, instances)
- REST API
POST v1/{tenant_id}/clusters/{id}
- Event Type
dbaas.cluster_grow.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.44 dbaas.cluster_shrink.start¶
- Python API
clusters.shrink(cluster, instances)
- REST API
POST v1/{tenant_id}/clusters/{id}
- Event Type
dbaas.cluster_shrink.start
- Queue
notification.info
- Message
- cluster_id
id of cluster to which to add a shard
1.10.45 dbaas.cluster_shrink.end¶
- Python API
clusters.shrink(cluster, instances)
- REST API
POST v1/{tenant_id}/clusters/{id}
- Event Type
dbaas.cluster_shrink.end
- Queue
notification.info
- Message
1.10.46 dbaas.cluster_shrink.error¶
- Python API
clusters.shrink(cluster, instances)
- REST API
POST v1/{tenant_id}/clusters/{id}
- Event Type
dbaas.cluster_shrink.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.47 dbaas.backup_create.start¶
- Python API
backups.create(name, instance=None, description=None, parent_id=None, backup=None)
- REST API
POST v1/{tenant_id}/backups
- Event Type
dbaas.backup_create.start
- Queue
notification.info
- Message
- name
name of backup
- instance_id
id of instance of which to create backup
- description
description of backup
- parent_id
id of backup of which to take incremental backup
1.10.48 dbaas.backup_create.end¶
- Python API
backups.create(name, instance=None, description=None, parent_id=None, backup=None)
- REST API
POST v1/{tenant_id}/backups
- Event Type
dbaas.backup_create.end
- Queue
notification.info
- Message
- backup_id
id of newly created backup
1.10.49 dbaas.backup_create.error¶
- Python API
backups.create(name, instance=None, description=None, parent_id=None, backup=None)
- REST API
POST v1/{tenant_id}/backups
- Event Type
dbaas.backup_create.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.50 dbaas.backup_delete.start¶
- Python API
backups.delete(backup_id)
- REST API
DELETE v1/{tenant_id}/backups/{id}
- Event Type
dbaas.backup_delete.start
- Queue
notification.info
- Message
- backup_id
id of backup to delete
1.10.51 dbaas.backup_delete.end¶
- Python API
backups.delete(backup_id)
- REST API
DELETE v1/{tenant_id}/backups/{id}
- Event Type
dbaas.backup_delete.end
- Queue
notification.info
- Message
1.10.52 dbaas.backup_delete.error¶
- Python API
backups.delete(backup_id)
- REST API
DELETE v1/{tenant_id}/backups/{id}
- Event Type
dbaas.backup_delete.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.53 dbaas.database_create.start¶
Note that a single call to databases.create would generate a separate notification for each database to be created.
- Python API
databases.create(instance, databases)
- REST API
POST v1/{tenant_id}/databases
- Event Type
dbaas.database_create.start
- Queue
notification.info
- Message
- instance_id
id of instance of which to create database
- dbname
name of database to be created
1.10.54 dbaas.database_create.end¶
- Python API
databases.create(instance, databases)
- REST API
POST v1/{tenant_id}/databases
- Event Type
dbaas.database_create.end
- Queue
notification.info
- Message
1.10.55 dbaas.database_create.error¶
- Python API
databases.create(instance, databases)
- REST API
POST v1/{tenant_id}/databases
- Event Type
dbaas.database_create.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.56 dbaas.database_delete.start¶
- Python API
databases.delete(database_id)
- REST API
DELETE v1/{tenant_id}/databases/{id}
- Event Type
dbaas.database_delete.start
- Queue
notification.info
- Message
- instance_id
id of instance from which to delete database
- dbname
name of database to delete
1.10.57 dbaas.database_delete.end¶
- Python API
databases.delete(database_id)
- REST API
DELETE v1/{tenant_id}/databases/{id}
- Event Type
dbaas.database_delete.end
- Queue
notification.info
- Message
1.10.58 dbaas.database_delete.error¶
- Python API
databases.delete(database_id)
- REST API
DELETE v1/{tenant_id}/databases/{id}
- Event Type
dbaas.database_delete.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.59 dbaas.user_create.start¶
Note that a single call to users.create would generate a separate notification for each user to be created.
- Python API
users.create(instance, users)
- REST API
POST v1/{tenant_id}/instances/{instance}/users
- Event Type
dbaas.user_create.start
- Queue
notification.info
- Message
- instance_id
id of instance for which to create user
- username
name of user to be created
1.10.60 dbaas.user_create.end¶
- Python API
users.create(instance, users)
- REST API
POST v1/{tenant_id}/instances/{instance}/users
- Event Type
dbaas.user_create.end
- Queue
notification.info
- Message
1.10.61 dbaas.user_create.error¶
- Python API
users.create(instance, users)
- REST API
POST v1/{tenant_id}/instances/{instance}/users
- Event Type
dbaas.user_create.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.62 dbaas.user_delete.start¶
- Python API
users.delete(instance, username, hostname)
- REST API
DELETE v1/{tenant_id}/instances/{instance}/users/{id}
- Event Type
dbaas.user_delete.start
- Queue
notification.info
- Message
- instance_id
id of instance from which to delete user
- username
name of user to delete
1.10.63 dbaas.user_delete.end¶
- Python API
users.delete(instance, username, hostname)
- REST API
DELETE v1/{tenant_id}/instances/{instance}/users/{id}
- Event Type
dbaas.user_delete.end
- Queue
notification.info
- Message
1.10.64 dbaas.user_delete.error¶
- Python API
users.delete(instance, username, hostname)
- REST API
DELETE v1/{tenant_id}/instances/{instance}/users/{id}
- Event Type
dbaas.user_delete.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.65 dbaas.user_update_attributes.start¶
- Python API
users.update_attributes(self, instance, username, newuserattr=None, hostname=None)
- REST API
PUT v1/{tenant_id}/instances/{instance}/users/{id}
- Event Type
dbaas.user_update_attributes.start
- Queue
notification.info
- Message
- instance_id
id of instance for which to update attributes
- username
name of user for whom to update attributes
1.10.66 dbaas.user_update_attributes.end¶
- Python API
users.update_attributes(self, instance, username, newuserattr=None, hostname=None)
- REST API
PUT v1/{tenant_id}/instances/{instance}/users/{id}
- Event Type
dbaas.user_update_attributes.end
- Queue
notification.info
- Message
1.10.67 dbaas.user_update_attributes.error¶
- Python API
users.update_attributes(self, instance, username, newuserattr=None, hostname=None)
- REST API
PUT v1/{tenant_id}/instances/{instance}/users/{id}
- Event Type
dbaas.user_update_attributes.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.68 dbaas.user_grant.start¶
Note that a single call to users.grant would generate a set of notifications for each database to which the user is granted access.
- Python API
users.grant(instance, username, databases, hostname=None)
- REST API
PUT v1/{tenant_id}/instances/{instance}/users/{id}/databases
- Event Type
dbaas.user_grant.start
- Queue
notification.info
- Message
- instance_id
id of instance from which to grant user
- username
name of user to grant access to database
- database
name of database to which access will be granted
1.10.69 dbaas.user_grant.end¶
- Python API
users.grant(instance, username, databases, hostname=None)
- REST API
PUT v1/{tenant_id}/instances/{instance}/users/{id}/databases
- Event Type
dbaas.user_grant.end
- Queue
notification.info
- Message
1.10.70 dbaas.user_grant.error¶
- Python API
users.grant(instance, username, databases, hostname=None)
- REST API
PUT v1/{tenant_id}/instances/{instance}/users/{id}/databases
- Event Type
dbaas.user_grant.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.71 dbaas.user_revoke.start¶
- Python API
users.revoke(instance, username, database, hostname=None)
- REST API
PUT v1/{tenant_id}/instances/{instance}/users/{id}/databases/{database}
- Event Type
dbaas.user_revoke.start
- Queue
notification.info
- Message
- instance_id
id of instance from which to revoke user
- username
name of user to revoke access to database
- database
name of database to which access will be revoked
1.10.72 dbaas.user_revoke.end¶
- Python API
users.revoke(instance, username, databases, hostname=None)
- REST API
PUT v1/{tenant_id}/instances/{instance}/users/{id}/databases/{database}
- Event Type
dbaas.user_revoke.end
- Queue
notification.info
- Message
1.10.73 dbaas.user_revoke.error¶
- Python API
users.revoke(instance, username, databases, hostname=None)
- REST API
PUT v1/{tenant_id}/instances/{instance}/users/{id}/databases/{database}
- Event Type
dbaas.user_revoke.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.74 dbaas.user_change_password.start¶
Note that a single call to users.change_password would result in a separate notification event for each changed user.
- Python API
users.change_password(instance, users)
- REST API
PUT v1/{tenant_id}/instances/{instance}/users
- Event Type
dbaas.user_change_password.start
- Queue
notification.info
- Message
- instance_id
id of instance from which to change_password user
- username
name of user for which password changed
1.10.75 dbaas.user_change_password.end¶
- Python API
users.change_password(instance, users)
- REST API
PUT v1/{tenant_id}/instances/{instance}/users
- Event Type
dbaas.user_change_password.end
- Queue
notification.info
- Message
1.10.76 dbaas.user_change_password.error¶
- Python API
users.change_password(instance, users)
- REST API
PUT v1/{tenant_id}/instances/{instance}/users
- Event Type
dbaas.user_change_password.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.77 dbaas.configuration_create.start¶
- Python API
configurations.create(name, values, description=None, datastore=None, datastore_version=None)
- REST API
POST v1/{tenant_id}/configurations
- Event Type
dbaas.configuration_create.start
- Queue
notification.info
- Message
- name
name of configuration to create
- datastore
datastore of configuration
- datastore_version
datastore_version of configuration
1.10.78 dbaas.configuration_create.end¶
- Python API
configurations.create(name, values, description=None, datastore=None, datastore_version=None)
- REST API
POST v1/{tenant_id}/configurations
- Event Type
dbaas.configuration_create.end
- Queue
notification.info
- Message
- configuration_id
id of newly created configuration
1.10.79 dbaas.configuration_create.error¶
- Python API
configurations.create(name, values, description=None, datastore=None, datastore_version=None)
- REST API
POST v1/{tenant_id}/configurations
- Event Type
dbaas.configuration_create.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.80 dbaas.configuration_delete.start¶
- Python API
configurations.delete(configuration_id)
- REST API
DELETE v1/{tenant_id}/configurations/{id}
- Event Type
dbaas.configuration_delete.start
- Queue
notification.info
- Message
- configuration_id
id of configuration to delete
1.10.81 dbaas.configuration_delete.end¶
- Python API
configurations.delete(configuration_id)
- REST API
DELETE v1/{tenant_id}/configurations/{id}
- Event Type
dbaas.configuration_delete.end
- Queue
notification.info
- Message
1.10.82 dbaas.configuration_delete.error¶
- Python API
configurations.delete(configuration_id)
- REST API
DELETE v1/{tenant_id}/configurations/{id}
- Event Type
dbaas.configuration_delete.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.83 dbaas.configuration_update.start¶
- Python API
configurations.update(configuration_id, values, name=None, description=None)
- REST API
PUT v1/{tenant_id}/configurations/{id}
- Event Type
dbaas.configuration_update.start
- Queue
notification.info
- Message
- configuration_id
id of configuration to update
- name
new group name (if specified)
- description
new group description (if specified)
1.10.84 dbaas.configuration_update.end¶
- Python API
configurations.update(configuration_id, values, name=None, description=None)
- REST API
PUT v1/{tenant_id}/configurations/{id}
- Event Type
dbaas.configuration_update.end
- Queue
notification.info
- Message
1.10.85 dbaas.configuration_update.error¶
- Python API
configurations.update(configuration_id, values, name=None, description=None)
- REST API
PUT v1/{tenant_id}/configurations/{id}
- Event Type
dbaas.configuration_update.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception
1.10.86 dbaas.configuration_edit.start¶
- Python API
configurations.edit(configuration_id, values)
- REST API
PATCH v1/{tenant_id}/configurations/{id}
- Event Type
dbaas.configuration_edit.start
- Queue
notification.info
- Message
- configuration_id
id of configuration to edit
1.10.87 dbaas.configuration_edit.end¶
- Python API
configurations.edit(configuration_id, values)
- REST API
PATCH v1/{tenant_id}/configurations/{id}
- Event Type
dbaas.configuration_edit.end
- Queue
notification.info
- Message
1.10.88 dbaas.configuration_edit.error¶
- Python API
configurations.edit(configuration_id, values)
- REST API
PATCH v1/{tenant_id}/configurations/{id}
- Event Type
dbaas.configuration_edit.error
- Queue
notification.error
- Message
- message
message of exception (duplicated from stack trace)
- exception
stack trace of exception