corsinvest / cv4pve-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:18:10 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(数据、错误等)对象/数组
- 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();