Class: SoftLayer::Account

Inherits:
ModelBase show all
Includes:
DynamicAttribute
Defined in:
lib/softlayer/Account.rb

Instance Attribute Summary

Attributes inherited from ModelBase

#softlayer_client

Class Method Summary collapse

Instance Method Summary collapse

Methods included from DynamicAttribute

included

Methods inherited from ModelBase

#[], #has_sl_property?, #initialize, #refresh_details, sl_attr, #to_ary

Constructor Details

This class inherits a constructor from SoftLayer::ModelBase

Class Method Details

.account_for_client(client = nil) ⇒ Object

Using the login credentials in the client, retrieve the account associated with those credentials.


223
224
225
226
227
228
229
230
# File 'lib/softlayer/Account.rb', line 223

def self.(client = nil)
  softlayer_client = client || Client.default_client
  raise "#{__method__} requires a client but none was given and Client::default_client is not set" if !softlayer_client

   = softlayer_client[:Account]
  network_hash = .getObject()
  new(softlayer_client, network_hash)
end

Instance Method Details

#address1Object

:attr_reader: The first address line for the primary contact's address


29
# File 'lib/softlayer/Account.rb', line 29

sl_attr :address1

#address2Object

:attr_reader: The second address line (if any, may be nil) for the primary contact's address


34
# File 'lib/softlayer/Account.rb', line 34

sl_attr :address2

#bare_metal_serversObject

The Bare Metal Servers (physical hardware) associated with the account. Unless you force these to update, they will be refreshed every five minutes. :call-seq:

bare_metal_servers(force_update=false)

70
71
72
73
74
75
76
77
78
79
80
# File 'lib/softlayer/Account.rb', line 70

sl_dynamic_attr :bare_metal_servers do |bare_metal|
  bare_metal.should_update? do
    @last_bare_metal_update ||= Time.at(0)
    (Time.now - @last_bare_metal_update) > 5 * 60  # update every 5 minutes
  end

  bare_metal.to_update do
    @last_bare_metal_update = Time.now
    BareMetalServer.find_servers(:client => self.softlayer_client)
  end
end

#cityObject

:attr_reader: The city stored as part of the primary contact's address


39
# File 'lib/softlayer/Account.rb', line 39

sl_attr :city

#companyNameObject

:attr_reader: The company name of the primary contact


14
# File 'lib/softlayer/Account.rb', line 14

sl_attr :companyName

#countryObject

:attr_reader: The country stored as part of the primary contact's address


52
# File 'lib/softlayer/Account.rb', line 52

sl_attr :country

#evault_master_usersObject

Retrieve an account's master EVault user. This is only used when an account has an EVault service.


85
86
87
88
89
90
91
92
93
94
# File 'lib/softlayer/Account.rb', line 85

sl_dynamic_attr :evault_master_users do |evault_users|
  evault_users.should_update? do
    @evault_master_users == nil
  end

  evault_users.to_update do
    evault_user_passwords = self.service.object_mask(AccountPassword.default_object_mask).getEvaultMasterUsers
    evault_user_passwords.collect { |evault_user_password| AccountPassword.new(softlayer_client, evault_user_password) unless evault_user_password.empty? }.compact
  end
end

#find_VLAN_with_number(vlan_number) ⇒ Object

Searches the account's list of VLANs for the ones with the given vlan number. This may return multiple results because a VLAN can span different routers and you will get a separate segment for each router.

The IDs of the different segments can be helpful for ordering firewalls.


210
211
212
213
214
215
216
217
# File 'lib/softlayer/Account.rb', line 210

def find_VLAN_with_number(vlan_number)
  filter = SoftLayer::ObjectFilter.new() { |filter|
    filter.accept('networkVlans.vlanNumber').when_it is vlan_number
  }

  vlan_data = self.service.object_mask("mask[id,vlanNumber,primaryRouter,networkSpace]").object_filter(filter).getNetworkVlans
  return vlan_data
end

#firstNameObject

:attr_reader: The given name name of the primary contact


19
# File 'lib/softlayer/Account.rb', line 19

sl_attr :firstName

#image_templatesObject

Retrieve an account's image templates


98
99
100
101
102
103
104
105
106
107
108
# File 'lib/softlayer/Account.rb', line 98

sl_dynamic_attr :image_templates do |image_templates|
  image_templates.should_update? do
    @last_image_template_update ||= Time.at(0)
    (Time.now - @last_image_template_update) > 5 * 60  # update every 5 minutes
  end

  image_templates.to_update do
    @last_image_template_update ||= Time.now
    ImageTemplate.find_private_templates(:client => self.softlayer_client)
  end
end

#lastNameObject

:attr_reader: The surname of the primary contact


24
# File 'lib/softlayer/Account.rb', line 24

sl_attr :lastName

#network_message_delivery_accountsObject

Retrieve an account's network message delivery acounts.


112
113
114
115
116
117
118
119
120
121
# File 'lib/softlayer/Account.rb', line 112

sl_dynamic_attr :network_message_delivery_accounts do |net_msg_deliv_accts|
  net_msg_deliv_accts.should_update? do
    @network_message_delivery_accounts == nil
  end

  net_msg_deliv_accts.to_update do
    network_message_delivery_accounts = self.service.object_mask(NetworkMessageDelivery.default_object_mask).getNetworkMessageDeliveryAccounts
    network_message_delivery_accounts.collect { |net_msg_deliv_acct| NetworkMessageDelivery.new(softlayer_client, net_msg_deliv_acct) unless net_msg_deliv_acct.empty? }.compact
  end
end

#network_storage_groupsObject

Retrieve an account's network storage groups.


125
126
127
128
129
130
131
132
133
134
# File 'lib/softlayer/Account.rb', line 125

sl_dynamic_attr :network_storage_groups do |net_stor_groups|
  net_stor_groups.should_update? do
    @network_storage_groups == nil
  end

  net_stor_groups.to_update do
    network_storage_groups = self.service.object_mask(NetworkStorageGroup.default_object_mask).getNetworkStorageGroups
    network_storage_groups.collect { |net_stor_group| NetworkStorageGroup.new(softlayer_client, net_stor_group) unless net_stor_group.empty? }.compact
  end
end

#officePhoneObject

:attr_reader: The office phone nubmer listed for the primary contact


62
# File 'lib/softlayer/Account.rb', line 62

sl_attr :officePhone

#open_ticketsObject

Retrieve an account's open tickets


138
139
140
141
142
143
144
145
146
147
148
149
# File 'lib/softlayer/Account.rb', line 138

sl_dynamic_attr :open_tickets do |open_tickets|
  open_tickets.should_update? do
    @last_open_tickets_update ||= Time.at(0)
    (Time.now - @last_open_tickets_update) > 5 * 60  # update every 5 minutes
  end

  open_tickets.to_update do
    @last_open_tickets_update ||= Time.now
    open_tickets_data = self.service.object_mask(SoftLayer::Ticket.default_object_mask).getOpenTickets
    open_tickets_data.collect { |ticket_data| SoftLayer::Ticket.new(self.softlayer_client, ticket_data) }
  end
end

#postalCodeObject

:attr_reader: The postal code (in the US, aka. zip code) of the primary contact's address


57
# File 'lib/softlayer/Account.rb', line 57

sl_attr :postalCode

#serversObject

Get a list of the servers for the account. The list returned includes both bare metal and virtual servers


235
236
237
# File 'lib/softlayer/Account.rb', line 235

def servers
  return self.bare_metal_servers + self.virtual_servers
end

#serviceObject


197
198
199
# File 'lib/softlayer/Account.rb', line 197

def service
  softlayer_client[:Account].object_with_id(self.id)
end

#stateObject

:attr_reader: The two character abbreviation for the state, province, or other similar national division that is part of the address of the primary contact. For addresses outside of the US and Canada, where there may not be an equivalent to a state, this may be 'NA' (for not applicable)


47
# File 'lib/softlayer/Account.rb', line 47

sl_attr :state

#usersObject

Retrieve an account's portal users.


153
154
155
156
157
158
159
160
161
162
# File 'lib/softlayer/Account.rb', line 153

sl_dynamic_attr :users do |users|
  users.should_update? do
    @users == nil
  end

  users.to_update do
     = self.service.object_mask(UserCustomer.default_object_mask).getUsers
    .collect { || UserCustomer.new(softlayer_client, ) unless .empty? }.compact
  end
end

#virtual_disk_imagesObject

Retrieve an account's virtual disk images


166
167
168
169
170
171
172
173
174
175
176
177
# File 'lib/softlayer/Account.rb', line 166

sl_dynamic_attr :virtual_disk_images do |virtual_disk_images|
  virtual_disk_images.should_update? do
    @last_virtual_disk_images_update ||= Time.at(0)
    (Time.now - @last_virtual_disk_images_update) > 5 * 60  # update every 5 minutes
  end

  virtual_disk_images.to_update do
    @last_virtual_disk_images_update ||= Time.now
    virtual_disk_images_data = self.service.object_mask(SoftLayer::VirtualDiskImage.default_object_mask).getVirtualDiskImages
    virtual_disk_images_data.collect { |virtual_disk_image| SoftLayer::VirtualDiskImage.new(softlayer_client, virtual_disk_image) }
  end
end

#virtual_serversObject

The virtual servers (aka. CCIs or Virtual_Guests) associated with the account. Unless you force these to update, they will be refreshed every five minutes. :call-seq:

virtual_servers(force_update=false)

185
186
187
188
189
190
191
192
193
194
195
# File 'lib/softlayer/Account.rb', line 185

sl_dynamic_attr :virtual_servers do |virtual_servers|
  virtual_servers.should_update? do
    @last_virtual_server_update ||= Time.at(0)
    (Time.now - @last_virtual_server_update) > 5 * 60  # update every 5 minutes
  end

  virtual_servers.to_update do
    @last_virtual_server_update = Time.now
    VirtualServer.find_servers(:client => self.softlayer_client)
  end
end