SoftLayer API: - 如何在创建时获取裸机服务器的 ID
SoftLayer API: - How to get the ID of a bare metal server on create
我正在使用 'SoftLayer_Hardware'、'createObject' 来部署新服务器,但是这个调用 returns 没有 ID,如 http://sldn.softlayer.com/reference/services/SoftLayer_Hardware/createObject[=12= 上的示例]
所以,如果我没有 ID,我该如何查询该服务器的信息?我注意到有一个 globalIdentifier 变量,但完全没有提及它是什么以及如何使用它
您可以在请求中使用全球标识符代替 ID
例如
Get https://api.softlayer.com/rest/v3.1/SoftLayer_Hardware/$GloblalIdentifier/getObject
Note: replace the $GloblalIdentifier
不显示id的原因是服务器还没有创建,你的订单需要审核,配置结束时会显示id,同时配置时可以使用全局标识符结束你将能够看到id
问候
这里 SoftLayer_Hardware::createObject 说:
To determine when the server is available you can poll the server via
SoftLayer_Hardware::getObject,
checking the provisionDate property. When provisionDate is not null,
the server will be ready. Be sure to use the globalIdentifier as your
initialization parameter
.
请看这个例子:
https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Hardware/[globalIdentifier_value]/getObject
Method: GET
此外,您可以使用 SoftLayer_Account::getHardware 和一些过滤器来获取 Bare Metal
信息:
https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Account/getHardware?objectFilter={"hardware":{"hostname":{"operation": "myhostname"}, "domain":{"operation": "mydomain"}}}&objectMask=mask[id,fullyQualifiedDomainName,provisionDate]
Method: GET
注意:您可以添加一些掩码以获得比默认情况更多的信息,即在之前的请求中您可以看到provisionDate
(当provisionDate 不为空时,服务器将准备就绪)。
列出 Bare metal
个服务器,按 username
创建者过滤:
https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Account/getHardware?objectFilter={ "hardware": { "billingItem": { "orderItem": { "order": { "userRecord": { "username": { "operation": "myusername" } } } } } } }&objectMask=mask[id,fullyQualifiedDomainName,billingItem.orderItem.order.userRecord.username,provisionDate]
Method: GET
您还可以评论:
感谢您的回答。不幸的是,这是一个 chicken/egg 问题。发送 API 调用后,我得到一个 GloblalIdentifier 但不是 id。
如果我请求这个 GlobalIdentifier,我会得到一个 id 为 null 的响应
如果我获得硬件服务器列表,我会看到新机器在那里,有一个 ID,但 GlobalIdentifier 是 None。
没有意义。
我正在使用 'SoftLayer_Hardware'、'createObject' 来部署新服务器,但是这个调用 returns 没有 ID,如 http://sldn.softlayer.com/reference/services/SoftLayer_Hardware/createObject[=12= 上的示例]
所以,如果我没有 ID,我该如何查询该服务器的信息?我注意到有一个 globalIdentifier 变量,但完全没有提及它是什么以及如何使用它
您可以在请求中使用全球标识符代替 ID
例如
Get https://api.softlayer.com/rest/v3.1/SoftLayer_Hardware/$GloblalIdentifier/getObject
Note: replace the $GloblalIdentifier
不显示id的原因是服务器还没有创建,你的订单需要审核,配置结束时会显示id,同时配置时可以使用全局标识符结束你将能够看到id
问候
这里 SoftLayer_Hardware::createObject 说:
To determine when the server is available you can poll the server via SoftLayer_Hardware::getObject, checking the provisionDate property. When provisionDate is not null, the server will be ready.
Be sure to use the globalIdentifier as your initialization parameter
.
请看这个例子:
https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Hardware/[globalIdentifier_value]/getObject
Method: GET
此外,您可以使用 SoftLayer_Account::getHardware 和一些过滤器来获取 Bare Metal
信息:
https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Account/getHardware?objectFilter={"hardware":{"hostname":{"operation": "myhostname"}, "domain":{"operation": "mydomain"}}}&objectMask=mask[id,fullyQualifiedDomainName,provisionDate]
Method: GET
注意:您可以添加一些掩码以获得比默认情况更多的信息,即在之前的请求中您可以看到provisionDate
(当provisionDate 不为空时,服务器将准备就绪)。
列出 Bare metal
个服务器,按 username
创建者过滤:
https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Account/getHardware?objectFilter={ "hardware": { "billingItem": { "orderItem": { "order": { "userRecord": { "username": { "operation": "myusername" } } } } } } }&objectMask=mask[id,fullyQualifiedDomainName,billingItem.orderItem.order.userRecord.username,provisionDate]
Method: GET
您还可以评论:
感谢您的回答。不幸的是,这是一个 chicken/egg 问题。发送 API 调用后,我得到一个 GloblalIdentifier 但不是 id。
如果我请求这个 GlobalIdentifier,我会得到一个 id 为 null 的响应
如果我获得硬件服务器列表,我会看到新机器在那里,有一个 ID,但 GlobalIdentifier 是 None。
没有意义。