object_mask不适用于Ruby SoftLayer API调用SoftLayer :: BareMetalServer.find_servers

时间:2015-12-15 21:09:20

标签: ruby ibm-cloud-infrastructure

我无法将object_mask应用于我正在检索的数据。以下是我正在做的事情的片段:

client = SoftLayer::Client.new(<...hidden...>)

<BREAK>

if (item["hostName"])
  machines = SoftLayer::BareMetalServer.find_servers({ :client => client, :hostname => item["hostName"], :object_mask => "[id,hostname,tagReferences]"})

    machines.each do |machine|
    pp machine
  end
end

当我打印&#34;机器&#34;它仍在打印所有字段。提前感谢您的帮助。

$ ruby -v
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]

2 个答案:

答案 0 :(得分:1)

我无法使用带有“BareMetalServer.find_servers”的掩码获取特定项目,但下面是另一个可以帮助您的红宝石示例:

timeScale.tickFormat()

<强>参考文献:

require 'rubygems'
require 'softlayer_api'

# Your SoftLayer API username.
SL_API_USERNAME = 'set me'

# Your SoftLayer API key.
SL_API_KEY = 'set me'

softlayer_client = SoftLayer::Client.new(:username => SL_API_USERNAME,
                                         :api_key => SL_API_KEY)

account_service = softlayer_client.service_named('SoftLayer_Account')

# Create an object mask to get more information than by default
mask = 'mask[id,hostname]'

begin
  result = account_service.object_mask(mask).getHardware
  puts 'Process finished successfully'
  p result
rescue Exception => e
  raise e
end

答案 1 :(得分:0)

目前,方法find_servers的ojectMask不限制字段,它会将对象掩码的字段添加到结果中。

如果您需要限制字段,可以使用“map”创建一个只包含您感兴趣的字段的数组。