solusvm客户端api的轻量级包装器。

beam的Python项目详细描述


https://img.shields.io/pypi/status/beam.svghttps://img.shields.io/pypi/v/beam.svghttps://img.shields.io/pypi/pyversions/beam.svghttps://travis-ci.org/gebn/beam.svg?branch=masterhttps://coveralls.io/repos/github/gebn/beam/badge.svg?branch=master

solusvm客户端api的轻量级包装器。

功能

  • 查询主机的内存、带宽、IP地址和存储使用情况。
  • 启动、重新启动和关闭计算机。
  • 可配置以与任何solusvm提供程序一起使用。
  • 命令行客户机和直观的python模块,用于您自己的脚本。

设置

  1. 运行pip install beam下载模块。
  2. 按如下所示创建.beam.ini库存文件。

库存

库存文件保存有关托管提供商和主机的信息, 因此beam知道如何联系相关的api端点以及 使用。下面是一个示例文件:

[special:vendors]
ramnode = https://vpscp.ramnode.com
vendor2 = https://vendor2-panel.com
default = ramnode

[nyc-1]
key = nyc-1_host_key
hash = nyc-1_host_hash

[ams-1]
key = ams-1_host_key
hash = ams-1_host_hash
vendor = vendor2

这个文件定义了两个主机,nyc-1,由ramnode托管,和ams-1, 由Fliphost托管。最上面是一个特殊供应商的供应商名称 节(假定所有其他节表示主机)。格式映射 solusvm api的基本终结点的供应商名称。那default 指令指示每个主机的隐式供应商,并且必须指定 定义了多个供应商。

每个主机都有自己的部分。正确的keyhash值可以是 从供应商使用的solusvm控制面板获取。如果主机不是 由默认供应商提供,vendor指令指定正确的 一个。

用法

beam提供了一个python库来对主机进行编程访问,并且 一个简单的cli,它用几行代码包装它。

cli

cli客户端可用于查找有关单个主机的信息。

$ beam --help
usage: beam [-h] [-V]
            (-A {boot,reboot,shutdown} | -a ATTRIBUTES [ATTRIBUTES ...])
            [host]

A lightweight wrapper for the SolusVM client API.

positional arguments:
  host                  the identifier of the host whose information to
                        retrieve

optional arguments:
  -h, --help            show this help message and exit
  -V, --version         show program's version number and exit
  -A {boot,reboot,shutdown}, --action {boot,reboot,shutdown}
                        an action to execute against the host
  -a ATTRIBUTES [ATTRIBUTES ...], --attributes ATTRIBUTES [ATTRIBUTES ...]
                        one or more attributes of the host to retrieve
$ beam -a bandwidth.free_percentage
0.4983459835
$ beam nyc-1 -a primary_ip
2604:180:2:32b::498b
$ beam ams-1 -a is_online memory.used_bytes
True
34578234983
$ beam nyc-1 -A shutdown
OK

importbeam# shutdown a specific hosthost=beam.host('nyc-1')# name, key or hashifhost.is_online:host.shutdown()# boot all offline hosts[host.boot()forhostinbeam.hosts()ifnothost.is_online]# get a list of hosts using above 90% of their memoryhosts=[hostforhostinbeam.hosts()ifhost.memory.used_percentage>.9]# get a list of hosts with less than 10 GiB of storage lefthosts=[hostforhostinbeam.hosts()ifhost.storage.free_bytes<1024**3*10]

路线图

  • 生成文档。
  • 将单元测试覆盖率提高到100%,并实现一些集成测试。

词源学

虽然“索罗斯”的意思是孤独,但这有点令人沮丧。索罗斯也会变戏法 太阳的图像给我。太阳beams向下-其名称在 皮皮-原来是这样。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JavaFX触控事件未触发Ubuntu 20.04触控笔记本电脑   java如何在AWT中关闭窗口?   java Dagger 2:注入具有构造函数参数的成员   创建对象的Java调用类   对象我想在A.java中添加两个数字,并在B.java中打印结果(如何?)   java如何使用AWS SDK for Android从数字海洋空间下载图像?   java Facebook sdk 4.0.1无法使用Android studio获取某些字段   4分钟后web应用程序(Angular 8和Rest API)中的java自动会话超时   在Eclipse for Java EE developers edition中禁用HTML警告   java按字母顺序排列字符串我错过了什么明显的东西吗?   java在Jshell中println和printf有什么不同