Add limitations, additional use cases and TODOs.

master
Tait Hoyem 2 years ago
parent 15f288a732
commit fec6e6b927

@ -1,9 +1,10 @@
# `lunanode`
This is an API to work with the LunaNode's OpenStack-compatible [citation needed] API.
This crate currently covers only the most basic functionality from the Lunanode API. Currently 8/21 use cases.
This crate currently covers only the most basic functionality from the Lunanode API. Currently 33/98 (34%) API calls.
If you'd like to contribute additional functionality, please feel free to make an MR.
* VMs [8/21]
* VM [8/21]
* List [X]
* Start [X]
* Stop [X]
@ -17,7 +18,7 @@ This crate currently covers only the most basic functionality from the Lunanode
* Reimage [ ]
* Resize [ ]
* VNC [ ]
* IP [ ]
* IP [1/3]
* Floaitng IP Add [ ]
* Floating IP Delete [ ]
* IP List [X]
@ -25,7 +26,106 @@ This crate currently covers only the most basic functionality from the Lunanode
* IP Delete [X]
* Security group Add [ ]
* Security group Delete [ ]
* TODO: write more of the endpoints.
* Image [4/7]
* Fetch [ ]
* List [X]
* Details [X]
* Delete [X]
* Replicate [X]
* Rename [ ]
* Retrieve [ ]
* Volume [1/12]
* Create [ ]
* List [X]
* Info [ ]
* Attach [ ]
* Detach [ ]
* Extend [ ]
* Rename [ ]
* Delete [ ]
* Snapshot [0/4]
* Create [ ]
* List [ ]
* Replicate [ ]
* Delete [ ]
* Floating IP [1/3]
* List [X]
* Add [ ]
* Delete [ ]
* Network [1/3]
* List [X]
* Add [ ]
* Delete [ ]
* Security Group [0/7]
* List [ ]
* Create [ ]
* Delete [ ]
* Rename [ ]
* Rule List [ ]
* Rule Insert [ ]
* Rule Delete [ ]
* Script [0/5]
* List [ ]
* Get [ ]
* Create [ ]
* Update [ ]
* Delete [ ]
* SSH Key [1/3]
* List [X]
* Add [ ]
* Remove [ ]
* Plan [1/1]
* List [X]
* Region [1/1]
* List [X]
* Monitor [3/10]
* Check [2/4]
* List [X]
* Types [X]
* Add [ ]
* Remove [ ]
* Contact [1/4]
* List [X]
* Add [ ]
* Remove [ ]
* Alert [0/3]
* List [ ]
* Add [ ]
* Remove [ ]
* Email [6/14]
* Usage [X]
* Domain [1/5]
* List [X]
* Add [ ]
* Remove [ ]
* DKIM [0/2]
* Set [ ]
* Unset [ ]
* User [4/4]
* List [X]
* Add [X]
* Remove [X]
* Set Password [X]
* Alias [0/3]
* List [ ]
* Add [ ]
* Remove [ ]
* DNS [6/10]
* Zone [2/3]
* List [X]
* Add [X]
* Remove [ ]
* Record [1/3]
* List [X]
* Add [ ]
* Remove [ ]
* Dyn [3/4]
* List [X]
* Add [X]
* Update [ ]
* Remove [X]
* Billing [1/1]
* Credit [X]
## Installation
@ -67,6 +167,8 @@ See section help for more details, i.e.: `lunanode image help`
* [ ] UUIDs should be UUID types and not string. The only library I could find to do this, Uuid, seems to serialize them without the dashes, which screws up Lunanode... annoyingly.
* [ ] Subnets should be more strictly types. They should always be an IP/subnet combo as two fields (std::net::Ipv4Addr, i32(0..32)).
* [ ] Automatically create IDs from names, or other identifiying info instead of using the RESP API's id system.
* For example: `email user add tait@tait.tech` should automatically fetch the domain ID required to make this call normally: `email user add DOMAIN_ID tait@tait.tech`.
* Another example: `vm shutdown my_webserver` would automatically exapnd to find the VM with the name my_webserver and have it shutdown expanding the name into the UUID: `vm shutdown ffff-ffff-ffff-ffffffffffffffff`.
## Support This Project

Loading…
Cancel
Save