ae87cd1714
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 |
||
---|---|---|
.. | ||
__init__.py | ||
base.py | ||
bootaction.py | ||
fields.py | ||
hostprofile.py | ||
hwprofile.py | ||
network.py | ||
node.py | ||
promenade.py | ||
rack.py | ||
readme.md | ||
site.py | ||
task.py |
readme.md
Drydock Model
Object models for the drydock design parts and subparts. We use oslo.versionedobjects as the supporting library for object management to support RPC and versioned persistence.
Features
Inheritance
Drydock supports inheritance in the design data model.
Currently this only supports BaremetalNode inheriting from HostProfile and HostProfile inheriting from HostProfile.
Inheritance rules:
- A child overrides a parent for part and subpart attributes
- For attributes that are lists, the parent list and child list are merged.
- A child can remove a list member by prefixing the value with '!'
- For lists of subparts (i.e. HostInterface and HostPartition) if there is a member in the parent list and child list with the same name (as defined by the get_name() method), the child member inherits from the parent member. The '!' prefix applies here for deleting a member based on the name.
Phased Data
The source of the data in a object instance can be one of three types.
- Designed - This is data directly ingested by Drydock representing a design part (Site, HostProfile, etc...) supplied by an external source
- Compiled - This is designed data that has been processed through the Drydock inheritance / merge system. It is the effective design that will be implemented.
- Build - This is the result of actual implementation. It should basically match the compiled view of the model, but might have some additional information only available after implementation.