Commit Graph

1561 Commits

Author SHA1 Message Date
Joshua Boniface 0d2e22a111 Normalize all static networks with bridges
Modifies the storage and upstream networks to mirror the cluster
network, with a bridge on top of the underlying specified dev, and all
IPs bound to the bridge.

Allows creating VMs in the storage or upstream networks, as well as the
cluster network, should the administrator choose to do so (manually).
2020-01-12 19:04:31 -05:00
Joshua Boniface 3fbd5fcead Reformat output warning message 2020-01-12 16:07:26 -05:00
Joshua Boniface 003171ea18 Correct syntax error 2020-01-12 16:04:42 -05:00
Joshua Boniface 74ff8b41ea Add prov warning to primary/secondary commands
Warn the administrator if there are active provisioning jobs while
adjusting the current primary node. This is the simplest, cleanest
solution to #69 without trying to implement any hacks or blocking
operations. The administrator can then decide to revert the action
if needed, or will at least know how many jobs are running/queued and
may need to be cancelled.
2020-01-12 16:03:51 -05:00
Joshua Boniface c4ef73c953 Refactor provisioner data+list format to match 2020-01-12 14:23:11 -05:00
Joshua Boniface b9177c2f26 Add word Job to task ID output 2020-01-12 14:16:11 -05:00
Joshua Boniface 2057859b9f Add Celery task list output 2020-01-12 14:12:01 -05:00
Joshua Boniface ed84df5237 Remove ceph subcommand from docs 2020-01-12 11:44:16 -05:00
Joshua Boniface 1671a87dd4 Fix the flush service 2020-01-11 17:04:12 -05:00
Joshua Boniface 1683a638cf Remove ceph subcommand from storage
Move everything from under "storage ceph" to "storage" to simplify the
CLI; additional subclasses can be re-added at a future time if and when
additional storage classes are supported.
2020-01-11 16:03:40 -05:00
Joshua Boniface 7d0a64763d Use pass instead of continue 2020-01-09 13:58:10 -05:00
Joshua Boniface 83de40307c Fix missing console_log in CLI VM 2020-01-09 13:53:11 -05:00
Joshua Boniface 641f13bb95 Let provisioning finish if script fails
This will allow cleanup to succeed even if the provisioning script
fails, avoiding leaving the system in a weird state.
2020-01-09 13:19:23 -05:00
Joshua Boniface b6474198a4 Implement cluster maintenance mode
Implements a "maintenance mode" for PVC clusters. For now, the only
thing this mode does is disable node fencing while the state is true.
This allows the administrator to tell PVC that network connectivity,
etc. might be interrupted and to avoid fencing nodes.

Closes #70
2020-01-09 10:53:27 -05:00
Joshua Boniface 4cda5ebb52 Correct syntax error 2020-01-09 09:46:58 -05:00
Joshua Boniface a60afe8ea0 Update swagger.json with recent API changes 2020-01-08 21:27:13 -05:00
Joshua Boniface 4f4b4c65c6 Correct handling of disk size in provisioner 2020-01-08 21:26:53 -05:00
Joshua Boniface 6cd3d5c888 Support no-start/no-define in CLI client 2020-01-08 20:13:26 -05:00
Joshua Boniface f280c93c82 Add create/start VM flags to API endpoint 2020-01-08 19:59:01 -05:00
Joshua Boniface d00e532611 Support cloning volumes in provisioning flow 2020-01-08 19:55:06 -05:00
Joshua Boniface 9342bc4959 Add extra newline after debug output 2020-01-08 19:41:01 -05:00
Joshua Boniface 4e5bce4975 Update copyright header year to 2020 2020-01-08 19:38:02 -05:00
Joshua Boniface 6e5065511c Move API call to function and implement keys
Move all API calls to a new common function called call_api to
facilitate easier future changes. Use this function to implement API key
handling via request header value as well as integrate the request URI
generation and debug output handling.

Closes #65
2020-01-08 19:34:24 -05:00
Joshua Boniface 10d892c698 Support adding API keys to client configs
Sets the groundwork for the remainder of #65
2020-01-08 18:43:02 -05:00
Joshua Boniface c26ee544a9 Lower wait times in Ceph client commands 2020-01-08 18:21:28 -05:00
Joshua Boniface c27a024543 Create VM on the cluster before provisioning
Move the tasks around such that the XML is created and the VM is defined
on the cluster before actual provisioning begins. This facilitates us
setting the "provision" state of the VM so clients can see that the VM
is being provisioned.
2020-01-08 18:18:17 -05:00
Joshua Boniface 682c6cecf7 Support overriding initial state of VM
Still defaults to "stop" state unless overridden in the calling
function.
2020-01-08 17:46:30 -05:00
Joshua Boniface c515d63340 Add provision state for VMs 2020-01-08 17:40:02 -05:00
Joshua Boniface 9cab1c6eb5 Don't go unhealthy for migrate/unmigrate VMs 2020-01-08 17:37:07 -05:00
Joshua Boniface 23b1f6cb00 Improve handling of progressbar on success 2020-01-08 17:07:57 -05:00
Joshua Boniface a197d9da80 Support wait watching provisioning task
Addresses #67
2020-01-08 14:41:46 -05:00
Joshua Boniface c183bc7fef Use click.confirm for all confirmations
Addresses #67
2020-01-08 10:34:27 -05:00
Joshua Boniface 9e7d86d5cf Use click.echo_via_pager for VM log output
Addresses #67
2020-01-08 10:06:34 -05:00
Joshua Boniface edbe29d06a Use click.edit for modification tasks
Closes #63
2020-01-08 09:33:01 -05:00
Joshua Boniface f83ede9ee8 Catch all exceptions around database commits
Just catching IntegrtiyError caused some to be missed; catch anything
instead since it all results in a Bad Request response.
2020-01-08 09:31:08 -05:00
Joshua Boniface 2005342a2d Correct verb on VM modify 2020-01-08 09:24:17 -05:00
Joshua Boniface 65e3d153cb Fix invalid is_fuzzy logic condition 2020-01-07 11:45:45 -05:00
Joshua Boniface 0fca10de4a Verify profile is valid when creating VM 2020-01-07 11:45:39 -05:00
Joshua Boniface e2b9ce2a70 Fix some bugs in provisioning 2020-01-07 01:44:23 -05:00
Joshua Boniface 977bd2a439 Fix return text of empty profile list 2020-01-07 00:48:00 -05:00
Joshua Boniface d6182d92fc Strip incoming userdata and script documents 2020-01-06 23:52:29 -05:00
Joshua Boniface 82a88f8433 Fix incorrect port in swagger docs 2020-01-06 23:50:12 -05:00
Joshua Boniface a174afa280 Remove obsolete artifacts upload from gitlab-ci 2020-01-06 23:49:14 -05:00
Joshua Boniface 21d87f5e51 Add v6 configurations to dnsmasq
These options were only applied with v4 networks; now, use the v6
address in a dual-stack or v6-only network.
2020-01-06 23:48:04 -05:00
Joshua Boniface b452a7355f Add GitHub note to README 2020-01-06 23:45:08 -05:00
Joshua Boniface f4206c2b44 Use correct method for userdata update 2020-01-06 23:39:47 -05:00
Joshua Boniface 62798f9ee8 Use the passed name to modify commands 2020-01-06 23:37:28 -05:00
Joshua Boniface 2aaccfffa7 Use POST body for large data objects 2020-01-06 23:30:34 -05:00
Joshua Boniface f326fd99e2 Properly fix IPv4 no-DHCP networking 2020-01-06 22:31:37 -05:00
Joshua Boniface 589b2b1677 Forcibly remove tempdir just in case 2020-01-06 16:52:25 -05:00