enterpriseve / eve2pve-api-php
Corsinvest Proxmox VE 客户端 API PHP
8.2.3
2024-07-29 06:10 UTC
Requires
- php: >=5.5.0
- lib-curl: *
- dev-master
- 8.2.3
- 8.2.2
- 8.2.1
- 8.2.0
- 8.1.4
- 8.1.3
- 8.1.2
- 8.1.1
- 8.1.0
- v8.0.1
- v8.0.0
- v7.4.0
- v7.3.0
- v7.2.1
- v7.2.0
- v7.1.0
- v7.0.1
- v7.0.0
- v6.4.4
- v2.4.4
- v2.4.3
- v2.4.2
- v2.4.1
- v2.4.0
- v2.3.0
- v2.2.0
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.1
- v2.0.0
- v1.1.2
- v1.1.1
- v1.0.11
- v1.0.10
- v1.0.9
- v1.0.8
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
This package is auto-updated.
Last update: 2024-08-29 06:23:14 UTC
README
Proxmox VE 客户端 API PHP
______ _ __
/ ____/___ __________(_)___ _ _____ _____/ /_
/ / / __ \/ ___/ ___/ / __ \ | / / _ \/ ___/ __/
/ /___/ /_/ / / (__ ) / / / / |/ / __(__ ) /_
\____/\____/_/ /____/_/_/ /_/|___/\___/____/\__/
Corsinvest for Proxmox VE Api Client (Made in Italy)
版权和许可
版权:Corsinvest Srl 欲了解更多许可详情,请访问 LICENSE
商业支持
本软件是 cv4pve-tools 工具套件的一部分。如果您需要商业支持,请访问 网站
通用
客户端是从 Proxmox VE 上的 JSON API 生成的。
此 PHP 5.4+ 库允许您通过 API 与您的 Proxmox 服务器交互。客户端是从 Proxmox VE 上的 JSON API 生成的。
结果
结果是名为 Result 的类,并包含以下方法
- getResponse() 返回来自 Proxmox VE 的数据、错误等 Object/Array
- responseInError (bool) : 包含来自 Proxmox VE 的错误。
- getStatusCode() (int) : HTTP 响应的状态码。
- getReasonPhrase() (string): 通常与状态码一起由服务器发送的原因短语。
- isSuccessStatusCode() (bool) : 获取一个值,表示 HTTP 响应是否成功。
- getError() (string) : 获取错误。
- getResponseHeaders() (string) : 获取与此响应关联的原始 HTTP 标头。
主要功能
- 易于学习
- 无外部库依赖,仅原生 curl
- 实现遵守 Proxmox VE API 结构
- 方法命名
- 设置响应类型 json, png
- 从文档生成完整方法
- 注释任何方法和参数
- 参数索引,例如 [n] 以数组索引和值的形式结构化
- 树结构
- $client->getNodes()->get("pve1")->getQemu()->get(100)->getSnapshot()->snapshotList()->getResponse()->data
- 返回 Proxmox 数据
- 返回结果
- 请求
- 响应
- 状态
- 等待任务完成任务
- waitForTaskToFinish
- taskIsRunning
- getExitStatusTask
- 方法直接访问
- get
- set
- create
- delete
- 登录返回 bool 如果访问
- 返回 Result 类更多详细信息
- 返回对象/数组数据
- 默认对象禁用来自客户端.setResultIsObject(false)
- ClientBase 轻量级功能
- 从 Proxmox VE 6.2 开始支持用户 Api Token
- 使用一次性密码进行双因素认证的登录。
- 设置连接的超时时间。
Api token
从 Proxmox VE 6.2 版本开始,可以使用 Api token。此功能允许在不使用用户名和密码的情况下执行 API。如果您在创建 API 令牌时使用 权限分离,请记住在权限中指定。格式 USER@REALM!TOKENID=TOKEN(以下为使用示例)
安装
建议使用 [Composer] 安装,如果您没有 [Composer],您在等什么?
在您的项目根目录中执行以下操作
composer require Corsinvest/cv4pve-api-php
或将此添加到您的 composer.json
使用
<?php // Require the autoloader require_once 'vendor/autoload.php'; //if you want use lite version only get/set/create/delete use PveClientBase $client = new Corsinvest\ProxmoxVE\Api\PveClient("192.168.0.24"); //login check bool if($client->login('root','password','pam')){ //get version from get method var_dump($client->get('/version')->getResponse()); // $client->put // $client->post // $client->delete $retPippo=$client->get("/pippo"); echo "\n" . $retPippo->getStatusCode(); echo "\n" . $retPippo->getReasonPhrase(); //loop nodes foreach ($client->getNodes()->Index()->getResponse()->data as $node) { echo "\n" . $node->id; } //loop vm foreach ($client->getNodes()->get("pve1")->getQemu()->Vmlist()->getResponse()->data as $vm) { echo "\n" . $vm->vmid ." - " .$vm->name; } //loop snapshots foreach ($client->getNodes()->get("pve1")->getQemu()->get(100)->getSnapshot()->snapshotList()->getResponse()->data as $snap) { echo "\n" . $snap->name; } //return object var_dump($client->getVersion()->version()->getResponse()); //disable return object $client->setResultIsObject(false); //return array $retArr = $client->getVersion()->version()->getResponse(); var_dump($retArr); echo "\n" . $retArr['data']['release']; //enable return objet $client->setResultIsObject(true); //image rrd $client->setResponseType('png'); echo "<img src='{$client->getNodes()->get("pve1")->getRrd()->rrd('cpu','day')->getResponse()}' \>"; //result json result $client->setResponseType('json'); var_dump($client->get('/version')->getResponse()); //set connection timeout (by default no timeout) $client->setTimeout(2)->get('/version')->getResponse(); }
示例输出版本请求
//object result var_dump($client->getVersion()->Version()->getResponse()); object(stdClass)#9 (1) { ["data"]=> object(stdClass)#32 (4) { ["version"]=> string(3) "5.0" ["release"]=> string(2) "31" ["keyboard"]=> string(2) "it" ["repoid"]=> string(8) "27769b1f" } } //disable return object $client->setResultIsObject(false); //array result var_dump($client->getVersion()->Version()); array(1) { ["data"]=> array(4) { ["repoid"]=> string(8) "2560e073" ["release"]=> string(2) "32" ["version"]=> string(3) "5.0" ["keyboard"]=> string(2) "it" } }
在文档中索引的参数以 '[n]' 结尾(例如 Qemu 中的方法 createVM 的 ide 参数)需要带有键和值的数组
[ 1 => "....", 3 => "....", ]
使用API令牌代替用户名/密码
<?php // Require the autoloader require_once 'vendor/autoload.php'; //if you want use lite version only get/set/create/delete use PveClientBase $client = new Corsinvest\ProxmoxVE\Api\PveClient("hostname", "8006"); $client->setApiToken("root@pam!mytokenname=<TOKEN COMES HERE>"); echo $client->getVersion();