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.

51 lines
1.9 KiB

2 years ago
# `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.
2 years ago
## 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`
2 years ago
Note that right now, only getting data through the `list/` endpoints is supported.
See section help for more details, i.e.: `lunanode image help`
2 years ago
## 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.
2 years ago
* [ ] 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.
2 years ago
* [ ] 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.
2 years ago
* [ ] 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.
2 years ago
2 years ago
## Support This Project
2 years ago
Please consider supporting my business: [Bytetools Technologies Inc.](https://bytetools.ca/) which is how I make money.
Or you can [support me on librapay](https://liberapay.com/tait/).
2 years ago
2 years ago