You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.9 KiB
1.9 KiB
lunanode
This is an API to work with the LunaNode's OpenStack-compatible [citation needed] API.
Installation
cargo install lunanode
API Keys
Add the LUNANODE_API_KEY
, LUNANODE_KEY_ID
and LUNANODE_API_PARTIALKEY
(the first 64 chars of LUNANODE_API_KEY
) to your environment variables.
Usage
See lunanode help
screen.
Available subcommands:
billing
dns
dyn
floating
(for LunaNode's floating IP system)image
network
record
(DNS)ssh-key
vm
volume
zone
Note that right now, only getting data through the list/
endpoints is supported.
See section help for more details, i.e.: lunanode image help
TODO (looking for contributors)
- Create more detailed documentation.
#[deny(missing_docs)]
is on, but some of the decisions in the code aren't explained very well. - Tests!!! I've written some, but this should be comprehensively tested.
- Write tests that involve talking with a live server! This will enable breaking changes from LunaNode to be seen before they are messed with.
- Write a local test server for faster, more easily created edge-case testing.
- Write tests that involve talking with a live server! This will enable breaking changes from LunaNode to be seen before they are messed with.
- Stricter typing. Certain attributes, even though they are recieved as Strings, should really be some kind of
enum
. Make every non-String type some kind of enum. - 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.
Support This Project
Please consider supporting my business: Bytetools Technologies Inc. which is how I make money. Or you can support me on librapay.