You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取OpenNebula XML-RPC API所需的调用参数

OpenNebula RPC方法参数查询及虚拟机创建指引

一、最快的参数查询方式:调用pyone内置文档

pyone库是OpenNebula官方自动生成的Python绑定,所有方法都自带参数说明文档,不需要翻阅源码,直接在Python交互环境中用help()函数即可查看:

# 示例:查询vmpool.info方法的参数说明
help(one.vmpool.info)

输出会直接标注每个参数的类型、含义,你之前用到的one.vmpool.info四个参数依次为:

  • 过滤标志:-1代表返回当前用户有权限查看的所有虚拟机
  • 偏移量:分页查询起始位置,-1代表不分页
  • 数量限制:分页查询返回条数,-1代表返回所有
  • 状态过滤:-1代表返回所有状态的虚拟机

二、方法对应规则(通用所有API调用)

pyone方法和官方XML-RPC接口、CLI命令一一对应,规则固定:

  • 官方XML-RPC的one.xxx.yyy方法,对应pyone的one.xxx.yyy方法,仅需省略第一个session参数(初始化OneServer时已传入,pyone自动携带)
  • CLI命令onexxx 动作的参数顺序,和对应pyone方法的参数顺序完全一致,可直接对照CLI命令的帮助信息确定参数

三、创建虚拟机的方法示例

创建虚拟机对应one.vm.allocate方法,需传入3个参数:

  1. 字符串格式的虚拟机模板内容
  2. 布尔值:是否设置为持有状态暂不部署,一般传False即可
  3. 整型数据存储ID:传0代表系统自动选择合适的数据存储

示例代码如下:

import pyone
one = pyone.OneServer('http://oneserver:2633/RPC2', session='admin:pass')

# 定义虚拟机模板,格式和界面/CLI使用的模板完全一致
vm_template = """
NAME = "test-api-vm"
CPU = 1
MEMORY = 2048
DISK = [ IMAGE_ID = 2, IMAGE_UNAME = "oneadmin" ]
NIC = [ NETWORK_ID = 1, NETWORK_UNAME = "oneadmin" ]
GRAPHICS = [ TYPE = "VNC", LISTEN = "0.0.0.0" ]
"""

# 调用创建方法,返回新虚拟机的ID
new_vm_id = one.vm.allocate(vm_template, False, 0)
print(f"创建成功,虚拟机ID:{new_vm_id}")

内容的提问来源于stack exchange,提问作者Eugene Prodan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 06:15:05