Commit Graph

1701 Commits

Author SHA1 Message Date
Joshua Boniface d2a5fe59c0 Use transitional takeover states for migration
Use a pair of transitional states, "takeover" and "relinquish", when
transitioning between primary and secondary coordinator states. This
provides a clsuter-wide record that the nodes are still working during
their synchronous transition states, and should allow clients to
determine when the node(s) have fully switched over. Also add an
additional 2 seconds of wait at the end of the transition jobs to ensure
everything has had a chance to start before proceeding.

References #72
2020-02-19 14:06:54 -05:00
Joshua Boniface 8678dedfea Revert "Implement wait for node coordinator transition"
This reverts commit 0aefafa7f7.

This does not work since the API goes away during the transition.

References #72
2020-02-19 10:50:21 -05:00
Joshua Boniface 0aefafa7f7 Implement wait for node coordinator transition
References #72
2020-02-19 10:50:04 -05:00
Joshua Boniface 6db4df51c0 Remove obsolete follow_console_log function 2020-02-19 10:19:49 -05:00
Joshua Boniface 5ddf72855b Clean up obsolete is_cli flags 2020-02-19 10:18:41 -05:00
Joshua Boniface 0e05ce8b07 Use correct wording of "shut down" 2020-02-19 10:04:58 -05:00
Joshua Boniface 78780039de Add wait support to VM CLI commands
References #72
2020-02-19 10:02:32 -05:00
Joshua Boniface 99f579e41a Add wait support to API commands
References #72
2020-02-19 09:51:42 -05:00
Joshua Boniface 07577a52a9 Implement wait support for various VM commands
Implements wait support for VM restart, shutdown, move, migrate, and
unmigrate commands, similar to node flush/node unflush.

Includes some additional refactoring of the move command to make its
operation identical to migrate, only without recording the previous
node.

References #72
2020-02-19 09:45:31 -05:00
Joshua Boniface 45040a5635 Make wait flag optional on flush functions
References #72
2020-02-19 09:44:38 -05:00
Joshua Boniface 097f0d9be4 Fix bug with script load from database 2020-02-18 20:39:36 -05:00
Joshua Boniface ca68321be3 Allow modification of system templates
Closes #82
2020-02-18 16:18:27 -05:00
Joshua Boniface b322841edf Complete integration of OVA provisioner
Finishes a basic form of OVA provisioning within the existing create_vm
function. Future plans should include separating out the functions and
cleaning them up a bit more, but this is sufficient for basic operation.

Closes #71
2020-02-18 14:42:45 -05:00
Joshua Boniface 4c58addead Fix typo'd storage_host entry 2020-02-18 14:42:32 -05:00
Joshua Boniface e811c5bbfb Fix renamed import for worker 2020-02-18 12:20:42 -05:00
Joshua Boniface dd44f2f42b Correct formatting error in confirmation 2020-02-17 23:31:03 -05:00
Joshua Boniface 24c86f2c42 Remove obsolete print statement 2020-02-17 23:25:27 -05:00
Joshua Boniface db558ec91f Complete implementation of OVA handling
Add functions for uploading, listing, and removing OVA images to the API
and CLI interfaces. Includes improved parsing of the OVF and creation of
a system_template and profile for each OVA.

Also modifies some behaviour around profiles, making most components
option at creation to support both profile types (and incomplete
profiles generally).

Implementation part 2/3 - remaining: OVA VM creation

References #71
2020-02-17 23:22:50 -05:00
Joshua Boniface 7c99618752 Correct handling of bare bytes values 2020-02-17 12:32:20 -05:00
Joshua Boniface 59ca296c58 Add basic OVA profile support 2020-02-17 12:00:51 -05:00
Joshua Boniface c18c76f42c Add alembic script_location field 2020-02-17 11:36:33 -05:00
Joshua Boniface a7432281a8 Fix script link in postinst message 2020-02-17 11:31:41 -05:00
Joshua Boniface d975f90f29 Add database fields for OVA storage 2020-02-17 11:27:35 -05:00
Joshua Boniface b16e2b4925 Handle CLI wildcard addresses properly
If the local API instance is listening on a wildcard, connect to
127.0.0.1 instead.
2020-02-16 20:02:08 -05:00
Joshua Boniface 90f965f516 Remove installation of obsolete script 2020-02-16 19:51:51 -05:00
Joshua Boniface d2b52c6fe6 Avoid auto-commit in migration generation 2020-02-16 19:51:31 -05:00
Joshua Boniface 8125aea4f3 Clean up some database columns 2020-02-16 19:19:04 -05:00
Joshua Boniface f3de900bdb Import all database models 2020-02-16 19:15:21 -05:00
Joshua Boniface 9c7041f12c Update package version to 0.7 2020-02-15 23:25:47 -05:00
Joshua Boniface c67fc05219 Add DB migration update script 2020-02-15 23:23:09 -05:00
Joshua Boniface 760805fec1 Ensure database migrations are in source control 2020-02-15 23:16:40 -05:00
Joshua Boniface 158ed8d3f0 Remove obsolete schema definition 2020-02-15 23:04:21 -05:00
Joshua Boniface 574623f2a8 Remove obsolete script 2020-02-15 22:59:12 -05:00
Joshua Boniface db09b4c983 Correct some ordering in build-and-deploy 2020-02-15 22:51:35 -05:00
Joshua Boniface 560cb609ba Add database management with SQLAlchemy
Add management of the pvcprov database with SQLAlchemy, to allow
seamless management of the database. Add automatic tasks to the postinst
of the API to execute these migrations.
2020-02-15 22:51:27 -05:00
Joshua Boniface 670596ed8e Add dead node states to status 2020-02-15 18:51:02 -05:00
Joshua Boniface bd8536d9d1 Add OVA upload to API (initial)
Initial, very barebones OVA parsing and image creation.

References #71
2020-02-15 02:10:14 -05:00
Joshua Boniface 95c59c2b39 Support non-extension fromhuman for normalization 2020-02-11 20:31:56 -05:00
Joshua Boniface b29c69378d Just describe the body in words 2020-02-09 21:08:27 -05:00
Joshua Boniface ad60f4b1f1 Try again with just query 2020-02-09 21:06:33 -05:00
Joshua Boniface 68638d7760 Use in: body for body contents 2020-02-09 21:05:15 -05:00
Joshua Boniface 4fa9878e01 Update swagger.json file 2020-02-09 21:02:29 -05:00
Joshua Boniface 602c2f9d4a Use request instead of requestBody 2020-02-09 21:02:13 -05:00
Joshua Boniface c979fed10a Use proper requestBody description of file 2020-02-09 20:59:03 -05:00
Joshua Boniface 1231ba19b7 Ensure image_format is mandatory
References #68
2020-02-09 20:45:43 -05:00
Joshua Boniface 1de57ab6f3 Add CLI client interface to image upload
Closes #68
2020-02-09 20:42:56 -05:00
Joshua Boniface e419855911 Support converting types during upload
Allow the user to specify other, non-raw files and upload them,
performing a conversion with qemu-img convert and a temporary block
device as a shim (since qemu-img can't use FIFOs).

Also ensures that the target volume exists before proceeding.

Addresses #68
2020-02-09 20:29:12 -05:00
Joshua Boniface 49e5ce1176 Support uploading disk images to volumes in API
Addresses #68
2020-02-09 13:45:04 -05:00
Joshua Boniface 92df125a77 Add missing library imports in common functions 2020-02-08 23:43:49 -05:00
Joshua Boniface 7ace5b5056 Remove /ceph/cmd pipe for (most) Ceph commands
Addresses #80
2020-02-08 23:40:02 -05:00