Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mseri/xapirpc-rs
Minimal RPC client for communication with xapi - more a PoC than anything else
https://github.com/mseri/xapirpc-rs
rust xapi xmlrpc
Last synced: 24 days ago
JSON representation
Minimal RPC client for communication with xapi - more a PoC than anything else
- Host: GitHub
- URL: https://github.com/mseri/xapirpc-rs
- Owner: mseri
- License: mit
- Created: 2017-11-03T10:17:38.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2018-03-01T17:20:51.000Z (over 6 years ago)
- Last Synced: 2024-09-13T12:07:58.387Z (about 2 months ago)
- Topics: rust, xapi, xmlrpc
- Language: Rust
- Homepage:
- Size: 82 KB
- Stars: 2
- Watchers: 4
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# xapirpc [![Build Status]][travis] [![Doc Badge]][docs] [![Latest Version]][crates.io]
[Build Status]: https://api.travis-ci.org/mseri/xapirpc-rs.svg?branch=master
[travis]: https://travis-ci.org/mseri/xapirpc-rs
[Latest Version]: https://img.shields.io/crates/v/xapirpc.svg
[crates.io]: https://crates.io/crates/xapirpc
[Doc Badge]: https://docs.rs/xapirpc/badge.svg
[docs]: https://docs.rs/xapirpc/
Minimal library and CLI client for [xapi](https://github.com/xapi-project/xen-api) rpc calls.---
The crate provides a small CLI utility to make RPC calls to
[xapi](https://github.com/xapi-project/xen-api), and
exports a library that exposes some common helpers to create xapi clients
(see [the documentation on docs.rs](https://docs.rs/xapirpc/)). The
CLI executable provides an example of use.The output of the CLI tool is in json, so it can be piped to `jq` or
other json tools for further filtering. For example you can get the
`uuid` and `name_label` of all VMs with:```bash
xapirpc VM get_all_records | jq '.[]|select(.is_a_template==false)|{uuid, name_label}'
```There CLI help should clarify all the supported customisations.
```bash
$ xapirpc --help
Minimal xapi xmlrpc CLI client
USAGE:
xapirpc [FLAGS] [OPTIONS] [args]...
FLAGS:
--compact Output the result as non-prettified json
--help Prints help information
-V, --version Prints version information
OPTIONS:
-h, --host XenServer host. Can be passed with the XAPI_HOST env variable.
-p, --pass XenServer host user password. Can be passed with the XAPI_PASSWORD env variable.
-u, --user XenServer host user name. Can be passed with the XAPI_USER env variable.
ARGS:
Case sensitive value for the xapi class
Case sensitive value for the xapi method
... Ordered list of arguments for the call (if any). Do not pass a session.
```The `host`, `user`, and `pass` value can be manually configured by creating
```
$HOME/.config/xapirpc/config.prefs.json
```
and adding them in a json object. E.g.
```bash
$ cat $HOME/.config/xapirpc/config.prefs.json
{"user":"my_user_name","pass":"my_pass"}
```To try it, clone this repository and build with `cargo build --release` or install it using `cargo install xapirpc --force`.
# Acknowledgements
Thanks:
- @gaborigloi for porting the library to `quicli`
- @Pistahh for fixing the `jq` example and comments on the code