Commit Graph

21 Commits

Author SHA1 Message Date
Joshua Boniface e5393082b6 Use build-in selector and respect limits in client
Use the new built-in selector option, as well as respecting node limits,
when performing migrate or move actions on a VM via the clients.
2019-10-12 01:45:44 -04:00
Joshua Boniface 5995353597 Implement VM metadata and use it
Implements the storing of three VM metadata attributes:
1. Node limits - allows specifying a list of hosts on which the VM must
run. This limit influences the migration behaviour of VMs.
2. Per-VM node selectors - allows each VM to have its migration
autoselection method specified, to automatically allow different methods
per VM based on the administrator's preferences.
3. VM autorestart - allows a VM to be automatically restarted from a
stopped state, presumably due to a failure to find a target node (either
due to limits or otherwise) during a flush/fence recovery, on the next
node unflush/ready state of its home hypervisor. Useful mostly in
conjunction with limits to ensure that VMs which were shut down due to
there being no valid migration targets are started back up when their
node becomes ready again.

Includes the full client interaction with these metadata options,
including printing, as well as defining a new function to modify this
metadata. For the CLI it is set/modified either on `vm define` or via the
`vm meta` command. For the API it is set/modified either on a POST to
the `/vm` endpoint (during VM definition) or on POST to the `/vm/<vm>`
endpoint. For the API this replaces the previous reserved word for VM
creation from scratch as this will no longer be implemented in-daemon
(see #22).

Closes #52
2019-10-12 01:17:39 -04:00
Joshua Boniface aaf9f5e43b Add clone volume to API 2019-10-10 14:37:35 -04:00
Joshua Boniface 3b7c1adf71 Implement configurable replcfg (client-side)
Implements administrator-selectable replication configurations for new
pools in PVC clusters, overriding the default of copies=3,mincopies=2.
2019-08-23 14:12:15 -04:00
Joshua Boniface ea2426fa73 Implement additional functions
1. VM state
2. VM node
3. Lock flush
2019-08-07 14:46:20 -04:00
Joshua Boniface a3c96764e0 Implement getting Node states via API 2019-07-28 23:31:59 -04:00
Joshua Boniface 2dbf276e51 Implement snapshot renaming
[3/2] Implements #44
2019-07-28 23:00:35 -04:00
Joshua Boniface d5f263bdd6 Implement Ceph volume resize and rename in clients
[1/2] Implements #44
2019-07-26 15:13:21 -04:00
Joshua Boniface 6b41f6556c Handle returning empty lists better (404) 2019-07-26 13:15:54 -04:00
Joshua Boniface b7960cd221 Use only one element in OSD state 2019-07-26 11:57:14 -04:00
Joshua Boniface 17b463afd4 Replace retcodes with 400; implement OSD status 2019-07-26 11:23:19 -04:00
Joshua Boniface d43ced176f RESTify the network endpoints; remove some cruft 2019-07-26 09:41:46 -04:00
Joshua Boniface f4d63b9088 Remove vm_dump API function 2019-07-25 15:45:31 -04:00
Joshua Boniface dff1c68f6e RESTify the VM functions and enable debug mode 2019-07-25 15:42:17 -04:00
Joshua Boniface 31b4dd9aed Show radosdf output in clients 2019-07-08 10:59:49 -04:00
Joshua Boniface 837b47c366 Use coordinators list like node daemon 2019-07-06 02:35:37 -04:00
Joshua Boniface c638bdeaee Add configuration file, authentication, pywsgi 2019-07-06 02:04:26 -04:00
Joshua Boniface 2ce08b6369 Implement API for Ceph functions 2019-07-05 22:14:58 -04:00
Joshua Boniface 4e94331d1a Implement API for network functions 2019-07-05 21:39:04 -04:00
Joshua Boniface b7480b3bbc Implement all VM API functions 2019-07-05 18:24:14 -04:00
Joshua Boniface 061b4eb61e Refactor API into separate files
Make it easier to separate the model (i.e. API endpoints) from the
controller (i.e. the actual functions which talk to ZK). Helps to keep
the main API file smaller and more regular.
2019-07-05 14:11:01 -04:00