Lenovo 物理基础架构供应商 REST API
Lenovo 物理基础架构供应商 REST API 参考指南
摘要
第 1 章 REST API
您可以使用 REST API 来检索有关供应商、物理基础架构供应商和物理服务器的信息。如果需要与您的物理基础架构中的服务器相关的信息,您可以使用 CloudForms REST API。
开始之前
若要使用 REST API,您必须以有权访问该 API 的用户身份登录 CloudForms Management Engine API。默认用户为 admin,密码为 smartvm。
使用以下 URL 来访问 CloudForms REST API:
<CloudForms_address>:<port>/api
例如:
localhost:3000/api
1.1. 检索供应商详细信息
若要检索所有供应商的信息,请使用以下请求 URL:
GET <CloudForms_address>:<port>/api/providers
系统将返回含有下列键的 JSON 回复。
actions (可用操作的列表) count (供应商的总数) name (URI 名称) pages (页数) resource (受 CloudForms 管理的各个供应商的 URL 的列表 ) subcount (返回的供应商数目)
示例
若要检索供应商的所有信息,请使用 ?expand=resources 查询参数,例如:
GET localhost:3000/api/providers?expand=resources
若要检索供应商的某一具体信息(如名称和 ID),请使用 ?expand=resources&attributes=<attribute_list> 查询参数,例如:
GET localhost:3000/ api/providers?expand=resources&attributes=id,name
若要检索供应商的其他信息(如端口、主机名和 IP 地址),请使用 ?expand=resources&attributes=<attribute_list> 查询参数,例如:
GET localhost:3000/api/providers?expand=resources&attributes=port,hostname,ipaddress
若要检索仅与 Lenovo 物理基础架构供应商相关的信息,请对所有供应商资源使用 ?expand=resources&filter[]=type=<provider_type> 属性,例如:
GET localhost:3000/api/providers?expand=resources&filter[]=type=ManageIQ::Providers::Lenovo::PhysicalInfraManager
1.2. 按照 ID 检索供应商详细信息
若要检索特定供应商的信息,请使用以下请求 URL,其中 <provider_ID> 是供应商的唯一标识符:
GET <CloudForms_address>:<port>/api/providers/<provider_ID>
系统将返回含有下列键的 JSON 回复。
href id name created_on updated_on guid zone_id type last_refresh_date tenant_id enabled options actions
示例
若要检索该供应商的具体信息(如名称和 ID),请使用 ?attributes=<attribute_list> 查询参数,例如:
GET localhost:3000/api/providers/<provider_ID>?expand=resources&attributes=id,name
若要检索该供应商的其他信息(如端口、主机名和 IP 地址),请使用 ?attributes=<attribute_list> 查询参数,例如:
GET localhost:3000/api/providers/<provider_ID>?expand=resources &attributes=port,hostname,ipaddress
1.3. 执行物理基础架构供应商操作
您可以使用 REST API 对物理基础架构供应商执行操作,如创建、修改和删除。
注意:要对物理基础架构供应商执行操作,您必须使用您首选的工具或库创建基本的身份验证信息,在使用 REST API 时使用 CloudForms 实例的用户名和密码。
1.3.1. 创建 Lenovo 物理基础架构供应商
若要创建 Lenovo 物理基础架构供应商,请使用以下请求 URL 和 JSON 请求正文发送 POST 请求。
POST <CloudForms_address>:<port>/api/providers
请求正文:
{
"action": "create",
"credentials": {
"password": "<PASSWORD>",
"userid": "<USERNAME>"
},
"hostname": "<LENOVO XCLARITY ADMINISTRATOR ADDRESS>",
"name": "<NAME>",
"port": "<THE SERVICE PORT>",
"type": "ManageIQ::Providers::Lenovo::PhysicalInfraManager"
}1.3.2. 修改 Lenovo 物理基础架构供应商的属性
若要修改 Lenovo 物理基础架构供应商的属性,请使用以下请求 URL 和 JSON 请求正文发送 POST 请求。
POST <CloudForms_address>:<port>/api/providers
请求正文:
{
"action":"edit",
"credentials": {
"password":"<new_passowrd>",
"userid":"<new_user_name>"
},
"hostname":"<New_Lenovo_XClarity_Administrator_address>",
"name":"<new_provider_name>",
"port":"<new_service_port>"
}1.3.3. 刷新所有供应商的信息
若要刷新所有供应商的信息,请使用以下请求 URL 和 JSON 请求正文发送 POST 请求。
POST <CloudForms_address>:<port>/api/providers
请求正文:
{
"action":"refresh"
}1.3.4. 删除物理基础架构供应商
要删除特定的供应商:
使用以下请求 URL 发送 DELETE 请求。
DELETE <CloudForms_address>:<port>/api/providers/<provider_ID>
使用以下请求 URL 和 JSON 请求正文发送 POST 请求。
POST <CloudForms_address>:<port>/api/providers/<provider_ID>
请求正文:
{ "action":"delete" }
1.3.5. 对多个物理基础架构供应商执行操作
若要对多个物理基础架构供应商执行操作,请使用以下请求 URL 和 JSON 请求正文发送 POST 请求。
POST <CloudForms_address>:<port>/api/providers
请求正文:
{
"action":"<action>",
"resources": [{
"href":"<provider_ID>"
},
{
"href":"<provider_ID>"
}]
}1.4. 检索物理服务器详细信息
若要检索所有物理服务器的信息,请使用以下请求 URL:
GET <CloudForms_address>:<port>/api/physical_servers
系统将返回含有下列键的 JSON 回复。
actions (可用操作的列表) count (物理服务器的数量) name (URI 名称) pages (页数) resource (各物理服务器的 URL 的列表 ) subcount (返回的物理服务器数量)
示例
若要检索物理服务器的所有信息,请使用 ?expand=resources 查询参数,例如:
GET localhost:3000/api/physical_servers?expand=resources
若要检索物理服务器的某一具体信息(如名称和 ID),请使用 ?expand=resources&attributes=<attribute_list> 查询参数,例如:
GET localhost:3000/api/physical_servers?expand=resources&attributes=id,name
若要检索物理服务器的具体信息(如固件、网络、客户设备和资源详细信息),请使用 ?expand=resources&attributes=<attribute_list> 查询参数,例如:
GET localhost:3000/api/physical_servers?expand=resources&attributes= hardware.firmwares,hardware.networks,hardware.guest_devices,hardware.assets_details
若要检索仅与特定物理服务器相关的信息,请对所有物理服务器资源使用 ?expand=resources&filter[]=name=<server_name> 查询属性,例如:
GET localhost:3000/api/physical_servers?expand=resources&filter[]=name=Server1-20127X5462
1.5. 按照 ID 检索物理服务器详细信息
若要检索特定物理服务器的信息,请使用以下请求 URL:
GET <CloudForms_address>:<port>/api/physical_servers/<server_ID>
系统将返回含有下列键的 JSON 回复。
actions created_at ems_id ems_ref field_replaceable_unit health_state hostname href location_led_state machine_type manufacturer model name power_state product_name serial_number type uid_ems updated_at vendor
示例
若要检索特定物理服务器的某一具体信息(如名称和 ID),请使用 ?expand=resources&attributes=<attribute_list> 查询参数,例如:
GET localhost:3000/api/physical_servers/<server_ID>?expand=resources&attributes=id,name
若要检索特定物理服务器的具体信息(如固件、网络、客户设备和资源详细信息),请使用 ?expand=resources&attributes=<attribute_list> 查询参数,例如:
GET localhost:3000/api/physical_servers/<server_ID>?expand=resources &attributes=hardware.firmwares,hardware.networks,hardware.guest_devices,hardware.assets_details
1.6. 执行物理服务器操作
您可以使用 REST API 对物理服务器执行管理任务,如开机和关机、重启,以及更改位置 LED 状态。
注意:要对物理服务器执行操作,您必须使用您首选的工具或库创建基本的身份验证信息,再输入您的用户名和密码来访问 CloudForms REST API。
1.6.1. 打开物理服务器电源
若要打开特定物理服务器的电源,请使用以下请求 URL 和 JSON 请求正文发送 POST 请求。
POST <CloudForms_address>:<port>/api/physical_servers/<server_ID>
请求正文:
{
"action":"power_on"
}1.6.2. 关闭物理服务器电源
若要关闭操作系统并关闭特定物理服务器的电源,请使用以下请求 URL 和 JSON 请求正文发送 POST 请求。
POST <CloudForms_address>:<port>/api/physical_servers/<server_ID>
请求正文:
{
"action":"power_off"
}1.6.3. 立即关闭物理服务器电源
若要立即关闭特定物理服务器的电源,请使用以下请求 URL 和 JSON 请求正文发送 POST 请求。
POST <CloudForms_address>:<port>/api/physical_servers/<server_ID>
请求正文:
{
"action":"power_off_now"
}1.6.4. 重启物理服务器
若要关闭操作系统并重启特定的物理服务器,请使用以下请求 URL 和 JSON 请求正文发送 POST 请求。
POST <CloudForms_address>:<port>/api/physical_servers/<server_ID>
请求正文:
{
"action":"restart"
}1.6.5. 立即重启物理服务器
若要立即重启特定的物理服务器,请使用以下请求 URL 和 JSON 请求正文发送 POST 请求。
POST <CloudForms_address>:<port>/api/physical_servers/<server_ID>
请求正文:
{
"action":"restart_now"
}1.6.6. 将物理服务器的位置 LED 状态更改为闪烁
若要将特定服务器的位置 LED 状态更改为闪烁,请使用以下请求 URL 和 JSON 请求正文发送 POST 请求。
POST <CloudForms_address>:<port>/api/physical_servers/<server_ID>
请求正文:
{
"action":"blink_loc_led"
}1.6.7. 对多台物理服务器执行操作
若要对多台物理服务器执行操作,请使用以下请求 URL 和 JSON 请求正文发送 POST 请求。
POST <CloudForms_address>:<port>/api/physical_servers
请求正文:
{
"action":"<action>",
"resources": [{
"href":"<server_ID>"
},
{
"href":"<server_ID>"
}]
}