#xml-rpc #rpc-client #cli-client #case-sensitive #xapi #xen-api

bin+lib xapirpc

针对xapi通信的极简RPC客户端

8个版本 (5个重大更新)

使用旧的Rust 2015

0.9.0 2018年3月1日
0.8.2 2018年3月1日
0.8.1 2018年2月25日
0.5.0 2018年2月19日
0.2.0 2018年2月15日

#10 in #xml-rpc

自定义许可证

18KB
375

xapirpc   构建状态 文档徽章 最新版本

针对xapi rpc调用的极简库和CLI客户端。


该包提供了一个小的CLI实用工具来对xapi进行RPC调用,并导出一个库,该库提供了一些常见的辅助函数来创建xapi客户端(请参阅docs.rs上的文档)。CLI可执行文件提供了一个使用示例。

CLI工具的输出是json格式,因此可以将其管道传递到jq或其他json工具进行进一步过滤。例如,您可以使用以下方法获取所有虚拟机的uuidname_label

xapirpc VM get_all_records | jq '.[]|select(.is_a_template==false)|{uuid, name_label}'

CLI帮助应该明确所有支持的定制选项。

$ xapirpc --help
Minimal xapi xmlrpc CLI client
USAGE:
    xapirpc [FLAGS] [OPTIONS] <class> <method> [args]...
FLAGS:
        --compact    Output the result as non-prettified json
        --help       Prints help information
    -V, --version    Prints version information
OPTIONS:
    -h, --host <host>    XenServer host. Can be passed with the XAPI_HOST env variable.
    -p, --pass <pass>    XenServer host user password. Can be passed with the XAPI_PASSWORD env variable.
    -u, --user <user>    XenServer host user name. Can be passed with the XAPI_USER env variable.
ARGS:
    <class>      Case sensitive value for the xapi class
    <method>     Case sensitive value for the xapi method
    <args>...    Ordered list of arguments for the call (if any). Do not pass a session.

hostuserpass的值可以通过创建并添加到json对象中来手动配置。

$HOME/.config/xapirpc/config.prefs.json

例如:

$ cat $HOME/.config/xapirpc/config.prefs.json
{"user":"my_user_name","pass":"my_pass"}

要尝试它,请克隆此存储库,并使用cargo build --release或使用cargo install xapirpc --force安装它。

致谢

感谢

  • @gaborigloi将库移植到quicli
  • @Pistahh修复了jq示例和代码中的注释

依赖项

~23–33MB
~588K SLoC