drydock/drydock_provisioner/control
Scott Hussey ae87cd1714 Update image and chart mgmt
NOTE: This has become a monolithic commit to get gate
      settings/scripts in place for CI

- Add Makefile with UCP standard entrypoints
- Move Dockerfile into images/drydock per UCP standards
- Add values.yaml entries for uWSGI threads and workers
- Add environment variables to chart Deployment manifest
  for uWSGI thread and workers
- Add threads and workers specification to uWSGI commandline
  in entrypoint
- Test that the Drydock API is responding
- Test that the Drydock API rejects noauth requests
- Fix Makefile utility script to work behind a proxy

Correct task success voting

Some tasks were incorrectly considered partial_success even when
no failure occurred.

- Network configuration erroneously marked messages as errors
- Update result propagation logic to only use the latest retry

The deploy_nodes task ended as incomplete due to a missing
subtask assignment

Also added a node check step to prepare_nodes so that nodes that
are already under provisioner control (MaaS) are not IPMI-rebooted.

Tangential changes:
- added config item to for leadership claim interval
- added some debug logging to bootaction_report task
- fix tasks list API endpoint to generate valid JSON

Improve task concurrency

When tasks are started with a scope of multiple nodes,
split the main task so each node is managed independently
to de-link the progression of nodes.

- Split the prepare_nodes task
- Begin reducing cyclomatic complexity to allow for
  better unit testing
- Improved tox testing to include coverage by default
- Include postgresql integration tests in coverage

Closes #73

Change-Id: I600c2a4db74dd42e809bc3ee499fb945ebdf31f6
2017-12-15 15:33:14 -06:00
..
__init__.py Orchestration of MaaS enlistment (#42) 2017-06-15 20:42:53 -07:00
api.py Add Validation API to Drydock 2017-12-04 10:44:33 -06:00
base.py Implement bootaction API 2017-11-20 16:29:54 -06:00
bootaction.py Add deckhand API integration 2017-12-01 11:49:03 -06:00
designs.py Create schemas for Drydock YAML docs 2017-11-20 11:14:04 -06:00
health.py Implement bootaction API 2017-11-20 16:29:54 -06:00
middleware.py Implement bootaction API 2017-11-20 16:29:54 -06:00
nodes.py Refactor orchestrator 2017-10-26 15:00:39 -05:00
readme.md Merge branch 'master' into module_rename 2017-06-23 07:54:14 -05:00
tasks.py Update image and chart mgmt 2017-12-15 15:33:14 -06:00
validation.py Add Validation API to Drydock 2017-12-04 10:44:33 -06:00

readme.md

Control

This is the external facing API service to control the rest of Drydock and query Drydock-managed data.

v1.0 Endpoints

/api/v1.0/tasks

POST - Create a new orchestration task and submit it for execution GET - Get status of a task DELETE - Cancel execution of a task if permitted

/api/v1.0/designs

POST - Create a new site design so design parts can be added

/api/v1.0/designs/{id}

GET - Get a current design if available. Param 'source=compiled' to calculate the inheritance chain and compile the effective design.

/api/v1.0/designs/{id}/parts

POST - Submit a new design part to be ingested and added to this design GET - View a currently defined design part PUT - Replace an existing design part Not Implemented

/api/v1.0/designs/{id}/parts/{kind}/{name}

GET - View a single design part. param 'source=compiled' to calculate the inheritance chain and compile the effective configuration for the design part.