API extension for accessing instance_actions
Adds a new API extension for accessing the recorded actions and events on an instance. Usage is documented with api samples. Additionally it modified the db api to retrieve actions by request_id since the api does not return the db id. This extension is the first consumer of that method so there's no issue of changing behaviour elsewhere. Blueprint instance-actions DocImpact Change-Id: I74109586cc762a7f51d2b114896cf071ee0671cb
This commit is contained in:
@@ -312,6 +312,14 @@
|
||||
"namespace": "http://docs.openstack.org/compute/ext/hypervisors/api/v1.1",
|
||||
"updated": "2012-06-21T00:00:00+00:00"
|
||||
},
|
||||
{
|
||||
"alias": "os-instance-actions",
|
||||
"description": "View a log of actions taken on an instance",
|
||||
"links": [],
|
||||
"name": "InstanceActions",
|
||||
"namespace": "http://docs.openstack.org/compute/ext/instance-actions/api/v1.1",
|
||||
"updated": "2013-02-08T00:00:00+00:00"
|
||||
},
|
||||
{
|
||||
"alias": "os-instance_usage_audit_log",
|
||||
"description": "Admin-only Task Log Monitoring.",
|
||||
|
||||
@@ -135,6 +135,9 @@
|
||||
<extension alias="os-hypervisors" updated="2012-06-21T00:00:00+00:00" namespace="http://docs.openstack.org/compute/ext/hypervisors/api/v1.1" name="Hypervisors">
|
||||
<description>Admin-only hypervisor administration.</description>
|
||||
</extension>
|
||||
<extension alias="os-instance-actions" updated="2013-02-08T00:00:00+00:00" namespace="http://docs.openstack.org/compute/ext/instance-actions/api/v1.1" name="InstanceActions">
|
||||
<description>View a log of actions taken on an instance</description>
|
||||
</extension>
|
||||
<extension alias="os-instance_usage_audit_log" updated="2012-07-06T01:00:00+00:00" namespace="http://docs.openstack.org/ext/services/api/v1.1" name="OSInstanceUsageAuditLog">
|
||||
<description>Admin-only Task Log Monitoring.</description>
|
||||
</extension>
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"instanceAction": {
|
||||
"action": "reboot",
|
||||
"events": [
|
||||
{
|
||||
"event": "schedule",
|
||||
"finish_time": "2012-12-05 01:02:00.000000",
|
||||
"result": "Success",
|
||||
"start_time": "2012-12-05 01:00:02.000000",
|
||||
"traceback": ""
|
||||
},
|
||||
{
|
||||
"event": "compute_create",
|
||||
"finish_time": "2012-12-05 01:04:00.000000",
|
||||
"result": "Success",
|
||||
"start_time": "2012-12-05 01:03:00.000000",
|
||||
"traceback": ""
|
||||
}
|
||||
],
|
||||
"instance_uuid": "b48316c5-71e8-45e4-9884-6c78055b9b13",
|
||||
"message": "",
|
||||
"project_id": "147",
|
||||
"request_id": "req-3293a3f1-b44c-4609-b8d2-d81b105636b8",
|
||||
"start_time": "2012-12-05 00:00:00.000000",
|
||||
"user_id": "789"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<instanceAction instance_uuid="b48316c5-71e8-45e4-9884-6c78055b9b13" user_id="789" start_time="2012-12-05 00:00:00.000000" request_id="req-3293a3f1-b44c-4609-b8d2-d81b105636b8" action="reboot" message="" project_id="147">
|
||||
<events finish_time="2012-12-05 01:02:00.000000" start_time="2012-12-05 01:00:02.000000" traceback="" event="schedule" result="Success"/>
|
||||
<events finish_time="2012-12-05 01:04:00.000000" start_time="2012-12-05 01:03:00.000000" traceback="" event="compute_create" result="Success"/>
|
||||
</instanceAction>
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"instanceActions": [
|
||||
{
|
||||
"action": "resize",
|
||||
"instance_uuid": "b48316c5-71e8-45e4-9884-6c78055b9b13",
|
||||
"message": "",
|
||||
"project_id": "842",
|
||||
"request_id": "req-25517360-b757-47d3-be45-0e8d2a01b36a",
|
||||
"start_time": "2012-12-05 01:00:00.000000",
|
||||
"user_id": "789"
|
||||
},
|
||||
{
|
||||
"action": "reboot",
|
||||
"instance_uuid": "b48316c5-71e8-45e4-9884-6c78055b9b13",
|
||||
"message": "",
|
||||
"project_id": "147",
|
||||
"request_id": "req-3293a3f1-b44c-4609-b8d2-d81b105636b8",
|
||||
"start_time": "2012-12-05 00:00:00.000000",
|
||||
"user_id": "789"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<instanceActions>
|
||||
<instanceAction instance_uuid="b48316c5-71e8-45e4-9884-6c78055b9b13" user_id="789" start_time="2012-12-05 01:00:00.000000" request_id="req-25517360-b757-47d3-be45-0e8d2a01b36a" action="resize" message="" project_id="842"/>
|
||||
<instanceAction instance_uuid="b48316c5-71e8-45e4-9884-6c78055b9b13" user_id="789" start_time="2012-12-05 00:00:00.000000" request_id="req-3293a3f1-b44c-4609-b8d2-d81b105636b8" action="reboot" message="" project_id="147"/>
|
||||
</instanceActions>
|
||||
@@ -685,9 +685,9 @@ class DbApiTestCase(test.TestCase):
|
||||
db.action_start(ctxt2, action_values)
|
||||
|
||||
actions = db.actions_get(ctxt1, uuid1)
|
||||
action_id = actions[0]['id']
|
||||
action = db.action_get_by_id(ctxt1, uuid1, action_id)
|
||||
self.assertEqual('resize', action['action'])
|
||||
request_id = actions[0]['request_id']
|
||||
action = db.action_get_by_request_id(ctxt1, uuid1, request_id)
|
||||
self.assertEqual('run_instance', action['action'])
|
||||
self.assertEqual(ctxt1.request_id, action['request_id'])
|
||||
|
||||
def test_instance_action_event_start(self):
|
||||
|
||||
Reference in New Issue
Block a user