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