From fec6e6b92745b164e71f04a72e43cb5260266552 Mon Sep 17 00:00:00 2001 From: Tait Hoyem Date: Sun, 9 Oct 2022 08:43:12 -0600 Subject: [PATCH] Add limitations, additional use cases and TODOs. --- README.md | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 106 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index c0c1f7e..fb3ebbc 100644 --- a/README.md +++ b/README.md @@ -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