softlayer_api 3.0.2 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.textile +3 -0
  3. data/lib/softlayer/Account.rb +85 -8
  4. data/lib/softlayer/AccountPassword.rb +49 -49
  5. data/lib/softlayer/BareMetalServer.rb +33 -43
  6. data/lib/softlayer/BareMetalServerOrder.rb +17 -8
  7. data/lib/softlayer/BareMetalServerOrder_Package.rb +25 -7
  8. data/lib/softlayer/Client.rb +7 -7
  9. data/lib/softlayer/Config.rb +105 -49
  10. data/lib/softlayer/Datacenter.rb +10 -2
  11. data/lib/softlayer/DynamicAttribute.rb +1 -1
  12. data/lib/softlayer/ImageTemplate.rb +44 -61
  13. data/lib/softlayer/ModelBase.rb +2 -2
  14. data/lib/softlayer/NetworkComponent.rb +25 -3
  15. data/lib/softlayer/NetworkMessageDelivery.rb +25 -5
  16. data/lib/softlayer/NetworkMonitor.rb +333 -0
  17. data/lib/softlayer/NetworkService.rb +6 -4
  18. data/lib/softlayer/NetworkStorage.rb +42 -29
  19. data/lib/softlayer/NetworkStorageAllowedHost.rb +9 -3
  20. data/lib/softlayer/NetworkStorageCredential.rb +44 -29
  21. data/lib/softlayer/NetworkStorageGroup.rb +42 -10
  22. data/lib/softlayer/ObjectFilter.rb +54 -4
  23. data/lib/softlayer/ObjectMaskParser.rb +1 -1
  24. data/lib/softlayer/ProductItemCategory.rb +34 -5
  25. data/lib/softlayer/ProductPackage.rb +11 -7
  26. data/lib/softlayer/Server.rb +77 -5
  27. data/lib/softlayer/ServerFirewall.rb +12 -11
  28. data/lib/softlayer/Service.rb +1 -1
  29. data/lib/softlayer/Software.rb +35 -50
  30. data/lib/softlayer/SoftwarePassword.rb +92 -107
  31. data/lib/softlayer/Ticket.rb +37 -28
  32. data/lib/softlayer/UserCustomer.rb +56 -13
  33. data/lib/softlayer/UserCustomerExternalBinding.rb +18 -5
  34. data/lib/softlayer/VLANFirewall.rb +40 -9
  35. data/lib/softlayer/VLANFirewallOrder.rb +1 -1
  36. data/lib/softlayer/VirtualDiskImage.rb +38 -10
  37. data/lib/softlayer/VirtualServer.rb +75 -48
  38. data/lib/softlayer/VirtualServerOrder.rb +15 -8
  39. data/lib/softlayer/VirtualServerOrder_Package.rb +25 -7
  40. data/lib/softlayer/VirtualServerUpgradeOrder.rb +1 -1
  41. data/lib/softlayer/base.rb +1 -1
  42. data/lib/softlayer/object_mask_helpers.rb +1 -1
  43. data/lib/softlayer_api.rb +2 -0
  44. metadata +4 -3
@@ -84,6 +84,12 @@ module SoftLayer
84
84
  attr_accessor :private_vlan_id
85
85
 
86
86
  # String, The URI of a post provisioning script to run on this server once it is created
87
+ attr_accessor :provision_script_uri
88
+
89
+ # String, The URI of a post provisioning script to run on this server once it is created
90
+ #
91
+ # DEPRECATION WARNING: This attribute is deprecated in favor of provision_script_uri
92
+ # and will be removed in the next major release.
87
93
  attr_accessor :provision_script_URI
88
94
 
89
95
  # Integer, The id of the public VLAN this server should join
@@ -102,7 +108,7 @@ module SoftLayer
102
108
  # Corresponds to +primaryBackendNetworkComponent.networkVlan.id+ in the +createObject+ documentation
103
109
  attr_accessor :user_metadata
104
110
 
105
- # Create a new order that works thorugh the given client connection
111
+ # Create a new order that works through the given client connection
106
112
  def initialize (client = nil)
107
113
  @softlayer_client = client || Client.default_client
108
114
  raise "#{__method__} requires a client but none was given and Client::default_client is not set" if !@softlayer_client
@@ -156,13 +162,14 @@ module SoftLayer
156
162
  template['dedicatedAccountHostOnlyFlag'] = true if @dedicated_host_only
157
163
  template['privateNetworkOnlyFlag'] = true if @private_network_only
158
164
 
159
- template['datacenter'] = {"name" => @datacenter.name} if @datacenter
160
- template['userData'] = [{'value' => @user_metadata}] if @user_metadata
161
- template['networkComponents'] = [{'maxSpeed'=> @max_port_speed}] if @max_port_speed
162
- template['postInstallScriptUri'] = @provision_script_URI.to_s if @provision_script_URI
163
- template['sshKeys'] = @ssh_key_ids.collect { |ssh_key_id| {'id'=> ssh_key_id.to_i } } if @ssh_key_ids
164
- template['primaryNetworkComponent'] = { "networkVlan" => { "id" => @public_vlan_id.to_i } } if @public_vlan_id
165
+ template['datacenter'] = {"name" => @datacenter.name} if @datacenter
166
+ template['userData'] = [{'value' => @user_metadata}] if @user_metadata
167
+ template['networkComponents'] = [{'maxSpeed'=> @max_port_speed}] if @max_port_speed
168
+ template['postInstallScriptUri'] = @provision_script_URI.to_s if @provision_script_URI
169
+ template['postInstallScriptUri'] = @provision_script_uri.to_s if @provision_script_uri
170
+ template['primaryNetworkComponent'] = { "networkVlan" => { "id" => @public_vlan_id.to_i } } if @public_vlan_id
165
171
  template['primaryBackendNetworkComponent'] = { "networkVlan" => {"id" => @private_vlan_id.to_i } } if @private_vlan_id
172
+ template['sshKeys'] = @ssh_key_ids.collect { |ssh_key_id| {'id'=> ssh_key_id.to_i } } if @ssh_key_ids
166
173
 
167
174
  if @image_template
168
175
  template['blockDeviceTemplateGroup'] = {"globalIdentifier" => @image_template.global_id}
@@ -232,7 +239,7 @@ module SoftLayer
232
239
  end
233
240
 
234
241
  ##
235
- # Returns a list of the valid :os_refrence_codes
242
+ # Returns a list of the valid :os_reference_codes
236
243
  def self.os_reference_code_options(client = nil)
237
244
  create_object_options(client)['operatingSystems'].collect { |os_spec| os_spec['template']['operatingSystemReferenceCode'] }.uniq.sort!
238
245
  end
@@ -42,14 +42,14 @@ module SoftLayer
42
42
  # The domain of the server being created (i.e. 'softlayer.com' is the domain of sldn.softlayer.com)
43
43
  attr_accessor :domain
44
44
 
45
- # The value of this property should be a hash. The keys of the hash are ProdcutItemCategory
45
+ # The value of this property should be a hash. The keys of the hash are ProductItemCategory
46
46
  # codes (like 'os' and 'ram') while the values may be Integers or Objects. The Integer values
47
47
  # should be the +id+ of a +SoftLayer_Product_Item_Price+ representing the configuration option
48
48
  # chosen for that category. Objects must respond to the +price_id+ message and return an integer
49
49
  # that is the +id+ of a +SoftLayer_Product_Item_Price+. Instances of the ProductConfigurationOption
50
50
  # class behave this way.
51
51
  #
52
- # At a minimum, the configuation_options should include entries for each of the categories
52
+ # At a minimum, the configuration_options should include entries for each of the categories
53
53
  # required by the package (i.e. those returned from ProductPackage#required_categories)
54
54
  attr_accessor :configuration_options
55
55
 
@@ -65,8 +65,23 @@ module SoftLayer
65
65
  # be installed on the server.
66
66
  attr_accessor :image_template
67
67
 
68
+ # Integer, The id of the public VLAN this server should join
69
+ # Corresponds to +primaryNetworkComponent.networkVlan.id+ in the +createObject+ documentation
70
+ attr_accessor :public_vlan_id
71
+
72
+ # Integer, The id of the private VLAN this server should join
73
+ # Corresponds to +primaryBackendNetworkComponent.networkVlan.id+ in the +createObject+ documentation
74
+ attr_accessor :private_vlan_id
75
+
76
+ # The URI of a script to execute on the server after it has been provisioned. This may be
77
+ # any object which accepts the to_s message. The resulting string will be passed to SoftLayer API.
78
+ attr_accessor :provision_script_uri
79
+
68
80
  # The URI of a script to execute on the server after it has been provisioned. This may be
69
81
  # any object which accepts the to_s message. The resulting string will be passed to SoftLayer API.
82
+ #
83
+ # DEPRECATION WARNING: This attribute is deprecated in favor of provision_script_uri
84
+ # and will be removed in the next major release.
70
85
  attr_accessor :provision_script_URI
71
86
 
72
87
  # An array of the ids of SSH keys to install on the server upon provisioning
@@ -139,11 +154,14 @@ module SoftLayer
139
154
 
140
155
  #Note that the use of image_template and SoftLayer::ProductPackage os/guest_diskX configuration category
141
156
  #item prices is mutually exclusive.
142
- product_order['imageTemplateGlobalIdentifier'] = @image_template.global_id if @image_template
143
- product_order['location'] = @datacenter.id if @datacenter
144
- product_order['provisionScripts'] = [@provision_script_URI.to_s] if @provision_script_URI
145
- product_order['sshKeys'] = [{ 'sshKeyIds' => @ssh_key_ids }] if @ssh_key_ids
146
- product_order['virtualGuests'][0]['userData'] = @user_metadata if @user_metadata
157
+ product_order['imageTemplateGlobalIdentifier'] = @image_template.global_id if @image_template
158
+ product_order['location'] = @datacenter.id if @datacenter
159
+ product_order['provisionScripts'] = [@provision_script_URI.to_s] if @provision_script_URI
160
+ product_order['provisionScripts'] = [@provision_script_uri.to_s] if @provision_script_uri
161
+ product_order['sshKeys'] = [{ 'sshKeyIds' => @ssh_key_ids }] if @ssh_key_ids
162
+ product_order['virtualGuests'][0]['userData'] = @user_metadata if @user_metadata
163
+ product_order['primaryNetworkComponent'] = { "networkVlan" => { "id" => @public_vlan_id.to_i } } if @public_vlan_id
164
+ product_order['primaryBackendNetworkComponent'] = { "networkVlan" => {"id" => @private_vlan_id.to_i } } if @private_vlan_id
147
165
 
148
166
  product_order['prices'] = @configuration_options.collect do |key, value|
149
167
  if value.respond_to?(:price_id)
@@ -108,7 +108,7 @@ module SoftLayer
108
108
  end
109
109
 
110
110
  ##
111
- # Searches through the upgrade items pricess known to this server for the one that is in a particular category
111
+ # Searches through the upgrade items prices known to this server for the one that is in a particular category
112
112
  # and whose capacity matches the value given. Returns the item_price or nil
113
113
  #
114
114
  def _item_price_with_capacity(which_category, capacity)
@@ -12,7 +12,7 @@ require 'rubygems'
12
12
  module SoftLayer
13
13
  # The version number (including major, minor, and bugfix numbers)
14
14
  # This should change in accordance with the concept of Semantic Versioning
15
- VERSION = "3.0.2" # version history in the CHANGELOG.textile file at the root of the source
15
+ VERSION = "3.1.0" # version history in the CHANGELOG.textile file at the root of the source
16
16
 
17
17
  # The base URL of the SoftLayer API available to the public internet.
18
18
  API_PUBLIC_ENDPOINT = 'https://api.softlayer.com/xmlrpc/v3/'
@@ -68,7 +68,7 @@ end
68
68
  # object masks
69
69
  class Array
70
70
  # Returns a string representing the object mask content represented by the
71
- # Array. Each value in the array is converted to its object mask eqivalent
71
+ # Array. Each value in the array is converted to its object mask equivalent
72
72
  # This routine is an implementation detail used in the conversion of hashes
73
73
  # to object mask strings. You should not have to call this method directly.
74
74
  def _to_sl_object_mask_property()
data/lib/softlayer_api.rb CHANGED
@@ -5,6 +5,7 @@
5
5
  #++
6
6
 
7
7
  # requirements from the core libraries
8
+ require 'date'
8
9
  require 'time'
9
10
 
10
11
  # Requirements for the Foundation Layer
@@ -23,6 +24,7 @@ require 'softlayer/Datacenter'
23
24
  require 'softlayer/DynamicAttribute'
24
25
  require 'softlayer/Account'
25
26
  require 'softlayer/AccountPassword'
27
+ require 'softlayer/NetworkMonitor'
26
28
  require 'softlayer/Server'
27
29
  require 'softlayer/BareMetalServer'
28
30
  require 'softlayer/BareMetalServerOrder'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: softlayer_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.2
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - SoftLayer Development Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-31 00:00:00.000000000 Z
11
+ date: 2015-07-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: configparser
@@ -130,6 +130,7 @@ files:
130
130
  - lib/softlayer/ModelBase.rb
131
131
  - lib/softlayer/NetworkComponent.rb
132
132
  - lib/softlayer/NetworkMessageDelivery.rb
133
+ - lib/softlayer/NetworkMonitor.rb
133
134
  - lib/softlayer/NetworkService.rb
134
135
  - lib/softlayer/NetworkStorage.rb
135
136
  - lib/softlayer/NetworkStorageAllowedHost.rb
@@ -182,7 +183,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
182
183
  version: '0'
183
184
  requirements: []
184
185
  rubyforge_project:
185
- rubygems_version: 2.2.2
186
+ rubygems_version: 2.4.6
186
187
  signing_key:
187
188
  specification_version: 4
188
189
  summary: Library for accessing the SoftLayer API