26个版本 (6个主要版本)
6.1.0 | 2024年5月10日 |
---|---|
5.0.1 | 2024年4月4日 |
4.0.0 | 2024年3月31日 |
3.0.0 | 2024年2月29日 |
0.1.8 | 2022年3月19日 |
#842 in 网络编程
每月24次下载
365KB
7K SLoC
hrobot-rs
hrobot
是一个用于与 Hetzner Robot API 交互的非官方异步Rust客户端
请参阅 AsyncRobot
结构体以获取支持的所有API端点列表。
免责声明: 作者(除作为客户外)与Hetzner无关,该crate绝不会被Hetzner Online GmbH认可或支持。
使用要求
需要Hetzner WebService/app用户才能使用此库。
如果您已经有了Hetzner账户,您可以通过 Hetzner Robot 网页界面在 设置/首选项 下创建一个。
示例
以下是一个快速示例,展示了如何实例化 AsyncRobot
客户端对象并获取由 username
标识的账户拥有的所有专用服务器列表
use hrobot::*;
#[tokio::main]
async fn main() {
// Robot is instantiated using the environment
// variables HROBOT_USERNAME an HROBOT_PASSWORD.
let robot = AsyncRobot::default();
for server in robot.list_servers().await.unwrap() {
println!("{name}: {product} in {location}",
name = server.name,
product = server.product,
location = server.dc
);
}
}
运行上述示例应产生以下类似输出
foo: AX51-NVMe in FSN1-DC18
bar: Server Auction in FSN1-DC5
API端点实现进度
目前已覆盖整个Hetzner Robot API!
由于成本和运行服务器的干扰,一些端点尚未经过测试,因此请参考以下部分以获取端点的详细概述。
详细的API概述。
警告!
[^1] 未测试,请自行承担风险。
[^2] 未由Hetzner官方文档,请自行承担风险。
- 服务器。
- 列出服务器。
- 获取服务器。
- 重命名服务器。
- 取消。
- 获取取消状态。
- 取消服务器。[^1]
- 撤回取消。[^1]
-
撤回服务器订单。[^1] - 已由Hetzner弃用。
- IP。
- 列出IP。
- 获取IP。
- 更新流量警告。
- 分离MAC。
- 获取分离MAC。
- 生成分离MAC。[^1]
- 禁用分离MAC。[^1]
- 取消。
- 获取取消状态。
- 取消IP地址[^1]
- 撤销取消[^1]
- 子网.
- 列出子网。
- 获取子网。
- 分离MAC。
- 获取分离MAC。
- 生成分离MAC。[^1]
- 禁用分离MAC。[^1]
- 取消。[^1]
- 获取取消状态。[^1]
- 取消子网。[^1]
- 撤回取消。[^1]
- 重置
- 列出所有服务器的重置选项。
- 获取单个服务器的重置选项
- 触发重置。[^1]
- 故障转移
- 获取故障转移IP。[^1]
- 切换故障转移流量的路由。[^1]
- 禁用故障转移路由。[^1]
- 网络唤醒
- 检查Wake-on-LAN的可用性。
- 向服务器发送Wake-on-LAN数据包。
- 引导配置
- 获取所有引导配置的状态。
- 救援。
- 获取救援配置。
- 获取最后的救援配置。
- 启用救援配置。
- 禁用救援配置。
- Linux。
- 获取Linux配置。
- 获取最后的Linux配置。
- 启用Linux配置。
- 禁用Linux配置。
- VNC。
- 获取VNC配置。
- 获取最后的VNC配置。[^2]
- 启用VNC配置。
- 禁用VNC配置。
- Windows。[^1]
- 获取Windows配置。[^1]
- 获取最后的Windows配置。[^1] [^2]
- 启用Windows配置。[^1]
- 禁用Windows配置。[^1]
- Plesk。[^1]
- 获取Plesk配置。[^1]
- 获取最后的Plesk配置。[^1] [^2]
- 启用Plesk配置。[^1]
- 禁用Plesk配置。[^1]
- CPanel。[^1]
- 获取CPanel配置。[^1]
- 获取最后的CPanel配置。[^1] [^2]
- 启用CPanel配置。[^1]
- 禁用CPanel配置。[^1]
- 反向DNS。
- 列出反向DNS条目。
- 获取反向DNS条目
- 创建反向DNS条目。
- 更新/创建反向DNS条目。
- 流量。
- 查询流量数据。
- SSH密钥。
- 列出SSH密钥
- 上传新的SSH密钥
- 获取SSH密钥
- 重命名SSH密钥
- 删除SSH密钥
- 服务器订购。
- 产品。
- 列出产品。
- 获取产品信息。
- 列出最近的产品交易。[^1]
- 获取特定的交易信息。[^1]
- 订购新产品。
- 市场(拍卖)。
- 列出市场产品。
- 获取市场产品信息。
- 列出最近的市场交易。[^1]
- 获取特定的市场交易信息。[^1]
- 从市场订购新服务器。
- 附加组件。
- 列出服务器的可用附加组件。
- 列出最近的附加组件交易。[^1]
- 获取特定的附加组件交易信息。[^1]
- 为服务器订购附加组件。
- 产品。
- 存储箱。
- 列出存储箱。
- 获取特定的存储箱。
- 更改存储箱密码。
- 切换存储箱服务。
- 启用/禁用Samba
- 启用/禁用WebDAV
- 启用/禁用SSH
- 启用/禁用外部可达性
- 启用/禁用快照目录可见性。
- 快照。
- 列出存储箱快照。
- 创建存储箱快照。
- 删除存储箱快照。
- 将存储箱还原到快照。
- 更改快照的注释。
- 获取存储箱快照计划。
- 编辑存储箱快照计划。
- 子账户。
- 列出子账户。
- 创建子账户。
- 更新子账户配置。
- 删除子账户。
- 更改子账户密码。
- 防火墙。
- 获取服务器的防火墙配置。
- 将防火墙配置应用于服务器。
- 覆盖规则。
- 应用模板。
- 清除服务器的防火墙配置。
- 模板。
- 列出防火墙模板。
- 创建防火墙模板。
- 获取防火墙模板。
- 更新防火墙模板。
- 删除防火墙模板。
- vSwitch。
- 列出vSwitch。
- 创建新的vSwitch。
- 获取vSwitch。
- 更新vSwitch。
- 取消vSwitch。
- 将服务器添加到vSwitch。
- 从vSwitch中删除服务器。
[^1]: 未经过测试,但应该可以工作。自行承担风险。
[^2]: 由Hetzner未官方文档化,自行承担风险。
测试
测试分为两类
-
单元测试。 这些测试完全不接触 Hetzner API,通常测试库中某些结构(如从已知 API 输出进行序列化/反序列化)所做出的假设。这些测试始终是安全的,并且不需要 Hetzner 凭据。
-
集成测试。 ⚠️
这些测试 确实 会与 Hetzner API 交互,因此需要设置以下两个环境变量
HROBOT_USERNAME
HROBOT_PASSWORD
这些测试将 ⚠️ 购买一个拍卖服务器 ⚠️ 并且(理想情况下)在测试运行后取消 服务器。
它们以 ⚠️ 破坏性 ⚠️ 的方式与以下环境变量提供的资源交互
HETZNER_INTEGRATION_TEST_STORAGEBOX_ID
指定了一个预先分配的存储箱资源,存储箱相关的测试将针对该资源运行。
依赖关系
~17–28MB
~495K SLoC