Commit Graph

1800 Commits

Author SHA1 Message Date
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
Joshua Boniface 38dae8b32f Change name of cluster in patronictl command 2020-01-06 16:37:17 -05:00
Joshua Boniface 2d2bdb879e Use get() instead of direct dict reference 2020-01-06 16:34:39 -05:00
Joshua Boniface a0542d61d0 Fix bad variable name 2020-01-06 16:30:59 -05:00
Joshua Boniface 30d4470c8f Only print AXFR errors in debug mode 2020-01-06 16:04:37 -05:00
Joshua Boniface bbfadac5e1 Fix dnsmasq options for DHCP-disabled networks 2020-01-06 16:04:26 -05:00
Joshua Boniface 096a740c4f Fix bugs around dhcp4_flag 2020-01-06 15:38:06 -05:00
Joshua Boniface 3816da6be6 Don't set a domain except on managed networks 2020-01-06 15:06:00 -05:00
Joshua Boniface 65be917542 Make sure dhcp4_flag is boolean 2020-01-06 15:03:24 -05:00
Joshua Boniface 7b3e267f7a Implement bridge_device for bridged VNIs
Required due to #64. Bridged networks were being created on top of a
vLAN if the Cluster network was a vLAN device, rather than being created
on the underlying device. This came from a previous revision of the
cluster architecture guidelines where Cluster was supposed to be a raw
device rather than a vLAN. This fixed the problem by implementing a
configuration field for a "bridge_device", a NIC device that can then
have the bridged vLANs created on top of it.

Fixes #64
2020-01-06 14:44:56 -05:00
Joshua Boniface 17b6af3ee6 Only split nameservers if needed 2020-01-06 13:21:37 -05:00
Joshua Boniface 220230ad47 Add missing reqargs to network post() 2020-01-06 13:12:08 -05:00