when you call the getHardware method returns all bare metal servers, the reason why you are seeing several "Vyatta" servers is because they are bare metal servers as well,but with a "Vyatta" operating system.
you can use the http://sldn.softlayer.com/reference/services/SoftLayer_Search/advancedSearch method to get and filter your data, that is the method that the portal uses.
here some examples:
List hardwares:
# Get Hardware list using SoftLayer_Search::advancedSearch
#
# Important manual pages:
# see http://sldn.softlayer.com/reference/services/SoftLayer_Search/advancedSearch
#
# license <http://sldn.softlayer.com/article/License>
# author SoftLayer Technologies, Inc. <[email protected]>
require 'rubygems'
require 'softlayer_api'
# Your SoftLayer API username.
SL_API_USERNAME = 'set me'
# Your SoftLayer API key.
SL_API_KEY = 'set me'
# Softlayer API public endpoint
API_PUBLIC_ENDPOINT = 'https://api.softlayer.com/xmlrpc/v3.1/'
softlayer_client = SoftLayer::Client.new(username: SL_API_USERNAME,
api_key: SL_API_KEY,
endpoint_url: API_PUBLIC_ENDPOINT)
search_service = softlayer_client.service_named('SoftLayer_Search')
filter_data = 'networkGatewayMemberFlag:0 _objectType:SoftLayer_Hardware'
begin
# Display Hardware items same as Portal > Device List
result = search_service.advancedSearch(filter_data)
puts 'Process finished successfully'
p result
rescue StandardError => e
raise e
end
List gateway members:
# Get Gateway Member list using SoftLayer_Search::advancedSearch
#
# Important manual pages:
# see http://sldn.softlayer.com/reference/services/SoftLayer_Search/advancedSearch
#
# license <http://sldn.softlayer.com/article/License>
# author SoftLayer Technologies, Inc. <[email protected]>
require 'rubygems'
require 'softlayer_api'
# Your SoftLayer API username.
SL_API_USERNAME = 'set me'
# Your SoftLayer API key.
SL_API_KEY = 'set me'
# Softlayer API public endpoint
API_PUBLIC_ENDPOINT = 'https://api.softlayer.com/xmlrpc/v3.1/'
softlayer_client = SoftLayer::Client.new(username: SL_API_USERNAME,
api_key: SL_API_KEY,
endpoint_url: API_PUBLIC_ENDPOINT)
search_service = softlayer_client.service_named('SoftLayer_Search')
filter_data = 'networkGatewayMemberFlag:1 _objectType:SoftLayer_Hardware'
begin
# Display Gateway Member items same as Portal > Device List
result = search_service.advancedSearch(filter_data)
puts 'Process finished successfully'
p result
rescue StandardError => e
raise e
end
List netscalers:
# Get Netscaler list using SoftLayer_Search::advancedSearch
#
# Important manual pages:
# see http://sldn.softlayer.com/reference/services/SoftLayer_Search/advancedSearch
#
# license <http://sldn.softlayer.com/article/License>
# author SoftLayer Technologies, Inc. <[email protected]>
require 'rubygems'
require 'softlayer_api'
# Your SoftLayer API username.
SL_API_USERNAME = 'set me'
# Your SoftLayer API key.
SL_API_KEY = 'set me'
# Softlayer API public endpoint
API_PUBLIC_ENDPOINT = 'https://api.softlayer.com/xmlrpc/v3.1/'
softlayer_client = SoftLayer::Client.new(username: SL_API_USERNAME,
api_key: SL_API_KEY,
endpoint_url: API_PUBLIC_ENDPOINT)
search_service = softlayer_client.service_named('SoftLayer_Search')
filter_data = '_objectType:SoftLayer_Network_Application_Delivery_Controller'
begin
# Display Netscaler items same as Portal > Device List
result = search_service.advancedSearch(filter_data)
puts 'Process finished successfully'
p result
rescue StandardError => e
raise e
end
List Firewalls:
# Get Firewall list using SoftLayer_Search::advancedSearch
#
# Important manual pages:
# see http://sldn.softlayer.com/reference/services/SoftLayer_Search/advancedSearch
#
# license <http://sldn.softlayer.com/article/License>
# author SoftLayer Technologies, Inc. <[email protected]>
require 'rubygems'
require 'softlayer_api'
# Your SoftLayer API username.
SL_API_USERNAME = 'set me'
# Your SoftLayer API key.
SL_API_KEY = 'set me'
# Softlayer API public endpoint
API_PUBLIC_ENDPOINT = 'https://api.softlayer.com/xmlrpc/v3.1/'
softlayer_client = SoftLayer::Client.new(username: SL_API_USERNAME,
api_key: SL_API_KEY,
endpoint_url: API_PUBLIC_ENDPOINT)
search_service = softlayer_client.service_named('SoftLayer_Search')
filter_data = '_objectType:SoftLayer_Network_Vlan_Firewall'
begin
# Display Firewall items same as Portal > Device List
result = search_service.advancedSearch(filter_data)
puts 'Process finished successfully'
p result
rescue StandardError => e
raise e
end
List all devices:
# Get all items from Device list.
#
# Important manual pages:
#
# see http://sldn.softlayer.com/reference/services/SoftLayer_Search/advancedSearch
# license <http://sldn.softlayer.com/article/License>
# author SoftLayer Technologies, Inc. <[email protected]>
require 'rubygems'
require 'softlayer_api'
# Your SoftLayer API username.
SL_API_USERNAME = 'set me'
# Your SoftLayer API key.
SL_API_KEY = 'set me'
# Softlayer API public endpoint
API_PUBLIC_ENDPOINT = 'https://api.softlayer.com/xmlrpc/v3.1/'
softlayer_client = SoftLayer::Client.new(username: SL_API_USERNAME,
api_key: SL_API_KEY,
endpoint_url: API_PUBLIC_ENDPOINT)
search_service = softlayer_client.service_named('SoftLayer_Search')
# The items with the following Device types should be displayed
# using the below filter:
# Bare Metal Server, Virtual Server, Firewall, Gateway Member, Netscaler,KVM/IP
filter_data = '_objectType:SoftLayer_Hardware,'\
'SoftLayer_Virtual_Guest,SoftLayer_Network_Vlan_Firewall,'\
'SoftLayer_Network_Application_Delivery_Controller '
begin
# Display all items same as Portal > Device List
result = search_service.advancedSearch(filter_data)
puts 'Process finished successfully'
p result
rescue StandardError => e
raise e
end