Commit Graph

1734 Commits

Author SHA1 Message Date
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
Joshua Boniface eeb8879f73 Move run_os_command to common functions
References #80
2020-02-08 23:33:15 -05:00
Joshua Boniface 37310e5455 Correct name of systemd target 2020-02-08 20:39:07 -05:00
Joshua Boniface 26c2c2c295 Further split API so only Flask can be loaded 2020-02-08 20:36:53 -05:00
Joshua Boniface d564671e1c Avoid restarting pvcapid in build-and-deploy 2020-02-08 20:28:58 -05:00
Joshua Boniface 4f25c55efc Fix startup of API daemon
References #79
2020-02-08 20:27:45 -05:00
Joshua Boniface 3532dcc11f Update startup of API and Swagger generator
References #79
2020-02-08 19:52:15 -05:00
Joshua Boniface ce985234c3 Use consistent naming of components
Rename "pvcd" to "pvcnoded", and "pvc-api" to "pvcapid" so names for the
daemons are fully consistent. Update the names of the configuration
files as well to match this new formatting.

References #79
2020-02-08 19:34:07 -05:00
Joshua Boniface 83704d8677 Adjust package descriptions
References #79
2020-02-08 19:01:01 -05:00
Joshua Boniface 97e318a2ca Align naming of Debian packages
Rename pvc-daemon to pvc-daemon-node and pvc-api to pvc-daemon-api.

Closes #79
2020-02-08 18:58:56 -05:00
Joshua Boniface 4505b239eb Rename API and common Debian packages
Closes #79
2020-02-08 18:50:38 -05:00
Joshua Boniface 74228eb063 Bump version to 0.6 2020-02-08 18:27:39 -05:00
Joshua Boniface 97a800b065 Update text in example multipart userdata 2020-02-07 09:08:29 -05:00
Joshua Boniface 90e42683c6 Reduce sleep time during VM migrations 2020-02-04 17:52:37 -05:00
Joshua Boniface 20c8466296 Handle invalid search fields better 2020-02-04 17:35:24 -05:00
Joshua Boniface 776d4f7262 Update API docs for profile 2020-02-02 01:34:55 -05:00
Joshua Boniface e7728b8375 Allow modification of a VM profile
And fix some bugs around this.

Fixes #76
2020-01-30 11:45:46 -05:00
Joshua Boniface b3558f1783 Ensure VM restart happens after cfg update
Fixes #74
2020-01-30 11:18:53 -05:00