0

取得しているデータに 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

「マシン」を印刷すると、すべてのフィールドが印刷されます。よろしくお願いします。

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

2 に答える 2

1

「BareMetalServer.find_servers」でマスクを使用して特定のアイテムを取得することはできませんでしたが、以下に別の Ruby の例を示します。

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

参考文献:

http://sldn.softlayer.com/reference/services/SoftLayer_Account/getHardware    
https://softlayer.github.io/ruby/token_auth/
https://softlayer.github.io/ruby/find_my_vms/
https://softlayer.github.io/ruby/
https://www.omniref.com/ruby/gems/softlayer_api/2.1.0
https://github.com/softlayer/softlayer-ruby/blob/master/lib/softlayer/BareMetalServer.rb
于 2015-12-16T00:42:24.423 に答える
0

現在、メソッド find_servers の ojectMask はフィールドを制限しません。オブジェクト マスクのフィールドを結果に追加します。

フィールドを制限する必要がある場合は、「マップ」を使用して、関心のあるフィールドだけを含む配列を作成できます。

于 2015-12-16T16:37:10.293 に答える