Heat Datasource Driver - get_all implementation

launchpad blueprint: https://blueprints.launchpad.net/vitrage/+spec/heat-datasource-get-all

This blueprint describes the Heat driver for Vitrage Datasource, and its implementation for get_all Stacks and Stack Resources.

Problem description

Heat stacks should be added to Vitrage Graph via Vitrage Datasources. This requires writing a Datasource driver for heat.

The driver should support two modes:

  • get_all: query all Heat Stacks.

  • notifications: notify the datasource upon a change in a stack definition or state

This blueprint refers to get_all implementation.

Proposed change

Heat driver will be configured with:

  • Poll interval in seconds (default: 600)

Every poll-interval seconds, Heat Driver will call Heat list all stacks API. The stacks will be converted to Vitrage datasource events and passed to Vitrage Graph queue.

Alternatives

None

Data model impact

Heat event will be sent to Vitrage Graph queue with the following properties:

Field

Description

Examples

stack_id

The stack UUID

e47e1be6-3598-46e6-bb63-0cc9a4e35ad7

name

The stack name

mystack

description

The stack description

mydescription

user_project_id

The ID of the tenant that owns the alarm

5542b27142154f30b32dea6238aa81aa

owner

The ID of the user that owns the alarm

5555527142154f30b32dea6238aa81aa

status

The stack status

in progress / failed

status_reason

The stack status reason

Stack create started ….

REST API impact

None

Versioning impact

None

Other end user impact

None

Deployer impact

Heat driver should be configured

Developer impact

None

Horizon impact

None

Implementation

Assignee(s)

Primary assignee:

dan-offek

Work Items

None

Dependencies

None

Testing

This blueprint requires unit tests and Tempest tests.

Documentation Impact

None

References

Datasource main blueprint: https://github.com/openstack/vitrage-specs/blob/master/specs/mitaka/vitrage-datasource.rst