Create a Heat Datasource Driver

Include the URL of your launchpad blueprint:

https://blueprints.launchpad.net/congress/+spec/heat-datasource-driver

This Heat driver will allow Congress to interact with the Openstack Heat API for orchestration. The first version will provide data from Heat’s read API calls until Congress does has infrastructure to handle writing to drivers. Subsequent versions may be able to send requests and write to the Heat API.

Problem description

Today, there is no Congress driver for Heat, either for reading or writing. This driver will give Congress eyes into Heat so that a policy writer can inspect Heat state such as details about each stack, stack snapshots, resources, software configurations, software deployments, and perhaps templates themselves.

Proposed change

This driver will be similar to other existing drivers like neutron_driver.py and nova_driver.py. The Heat driver will read data from the following Heat API calls and convert the responses to Congress tables: * list stacks * show stack detail * list snapshots * list resources * show resource data * show resource metadata * list resource types * show configuration details * list stack events * show event details * show software_configs * show software_deployments

Alternatives

The alternative is to have no driver for Heat, which is not a good option for those admins that use Heat in their cloud.

Policy

N/A

Policy actions

N/A

Data sources

Openstack Heat

Data model impact

N/A

REST API impact

N/A

Security impact

The Heat driver will need to authenticate to the Heat API just like all the other datasource drivers.

Notifications impact

N/A

Other end user impact

N/A

Performance impact

It is possible that the API calls will be expensive. We will need to measure the impact of the API calls on Heat and Congress performance.

Other deployer impact

N/A

Developer impact

N/A

Implementation

Assignee(s)

Primary assignee:

tengqim

Work items

  • Write unit test

  • Write tempest test

  • Write API client code

  • Write translators for tables

Dependencies

N/A

Testing

This work must include a unit test and a tempest test. The driver translator infrastructure makes most of the translation code robust, but the driver is still dependent on the Heat API, so the tempest test is particularly important as an integration test.

Documentation impact

N/A