Softlayer Server_ID

时间:2016-02-29 20:42:06

标签: python-2.7 ibm-cloud-infrastructure

我正在尝试实施以下内容:

import SoftLayer.API
username = 'set me!'
apiKey = 'set me too!'
serverId = 1234       
client = SoftLayer.API.Client('SoftLayer_Hardware_Server', serverId, username, apiKey)

在这里,我真的不知道如何检索 serverId 。我怎么知道特定服务器的服务器ID。请帮忙。

1 个答案:

答案 0 :(得分:1)

SoftLayer_Account::getHardware检索有关硬件对象的信息,您可以在其中找到服务器上的serverIds。

试试这个python脚本:

"""
This script retrieves an account's associated hardware objects

Important manual pages:
http://sldn.softlayer.com/reference/services/SoftLayer_Account/getHardware

License: http://sldn.softlayer.com/article/License
Author: SoftLayer Technologies, Inc. <sldn@softlayer.com>
"""
# So we can talk to the SoftLayer API:
import SoftLayer.API

# For nice debug output:
from pprint import pprint as pp

# Your SoftLayer username and api key
API_USERNAME = 'set me'
API_KEY = 'set me'

# Creates a new connection to the API service.
client = SoftLayer.API.Client(username=API_USERNAME,api_key=API_KEY)

try:
    hardwareObjects = client['SoftLayer_Account'].getHardware()
    pp(hardwareObjects)

except SoftLayer.SoftLayerAPIError as e:
        pp('Unable to get hardware objects faultCode=%s, faultString=%s'
            % (e.faultCode, e.faultString))

此脚本将从您的服务器返回信息,其中“id”属性从您需要的服务器引用serverId。

但是,如果您希望检索特定服务器的信息,可以使用Object Filters完成,这里有一个示例:

"""
This script retrieves a hardware information for an specific hardware object.
It is only necessary to specify the hostname from the server.

Important manual pages:
http://sldn.softlayer.com/reference/services/SoftLayer_Account/getHardware
http://sldn.softlayer.com/article/object-filters

License: http://sldn.softlayer.com/article/License
Author: SoftLayer Technologies, Inc. <sldn@softlayer.com>
"""
# So we can talk to the SoftLayer API:
import SoftLayer.API

# For nice debug output:
from pprint import pprint as pp

# Your SoftLayer username and api key
API_USERNAME = 'set me'
API_KEY = 'set me'
# Define the hostname from the hardware object
hostname = 'hostnametest'

# Declare an object filter to get an specific hardware object
filterHardware = {
    'hardware': {
        'hostname': {
            'operation': hostname
        }
    }
}

# Creates a new connection to the API service.
client = SoftLayer.API.Client(username=API_USERNAME,api_key=API_KEY)

try:
    hardwareObjects = client['SoftLayer_Account'].getHardware(filter=filterHardware)
    pp(hardwareObjects)

except SoftLayer.SoftLayerAPIError as e:
        pp('Unable to get the hardware object faultCode=%s, faultString=%s'
            % (e.faultCode, e.faultString))

您需要从服务器指定“主机名”。响应中的“id”是指serverId。

一些参考文献: