openstack-compute 0.1.0 → 0.1.1

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
@@ -22,7 +22,7 @@ module Compute
22
22
  raise OpenStack::Compute::Exception::Connection, "Unable to connect to #{server}"
23
23
  end
24
24
  response = server.get(path,hdrhash)
25
- if (response.code == "204")
25
+ if (response.code =~ /^20./)
26
26
  connection.authtoken = response["x-auth-token"]
27
27
  connection.svrmgmthost = URI.parse(response["x-server-management-url"]).host
28
28
  connection.svrmgmtpath = URI.parse(response["x-server-management-url"]).path
@@ -79,7 +79,7 @@ module Compute
79
79
  retry
80
80
  rescue OpenStack::Compute::Exception::ExpiredAuthToken
81
81
  raise OpenStack::Compute::Exception::Connection, "Authentication token expired and you have requested not to retry" if @retry_auth == false
82
- CloudFiles::Authentication.new(self)
82
+ OpenStack::Compute::Authentication.new(self)
83
83
  retry
84
84
  end
85
85
 
@@ -228,47 +228,6 @@ module Compute
228
228
  end
229
229
  alias :flavor :get_flavor
230
230
 
231
- # Returns an array of hashes for all Shared IP Groups that are available. The :id key can be used to find that specific object.
232
- #
233
- # You can also provide :limit and :offset parameters to handle pagination.
234
- #
235
- # >> cs.list_shared_ip_groups
236
- # => [{:name=>"New Group", :id=>127}]
237
- def list_shared_ip_groups(options = {})
238
- path = OpenStack::Compute.paginate(options).empty? ? "#{svrmgmtpath}/shared_ip_groups/detail" : "#{svrmgmtpath}/shared_ip_groups/detail?#{OpenStack::Compute.paginate(options)}"
239
- response = csreq("GET",svrmgmthost,path,svrmgmtport,svrmgmtscheme)
240
- OpenStack::Compute::Exception.raise_exception(response) unless response.code.match(/^20.$/)
241
- OpenStack::Compute.symbolize_keys(JSON.parse(response.body)['sharedIpGroups'])
242
- end
243
- alias :shared_ip_groups :list_shared_ip_groups
244
-
245
- # Returns a OpenStack::Compute::SharedIPGroup object for the IP group identified by the provided ID.
246
- #
247
- # >> sig = cs.get_shared_ip_group(127)
248
- # => #<OpenStack::Compute::SharedIPGroup:0x10153ca30 ...>
249
- def get_shared_ip_group(id)
250
- OpenStack::Compute::SharedIPGroup.new(self,id)
251
- end
252
- alias :shared_ip_group :get_shared_ip_group
253
-
254
- # Creates a new Shared IP group. Takes a hash as an argument.
255
- #
256
- # Valid hash keys are :name (required) and :server (optional), which indicates the one server to place into this group by default.
257
- #
258
- # >> sig = cs.create_shared_ip_group(:name => "Production Web", :server => 110917)
259
- # => #<OpenStack::Compute::SharedIPGroup:0x101501d18 ...>
260
- # >> sig.name
261
- # => "Production Web"
262
- # >> sig.servers
263
- # => [110917]
264
- def create_shared_ip_group(options)
265
- data = JSON.generate(:sharedIpGroup => options)
266
- response = csreq("POST",svrmgmthost,"#{svrmgmtpath}/shared_ip_groups",svrmgmtport,svrmgmtscheme,{'content-type' => 'application/json'},data)
267
- OpenStack::Compute::Exception.raise_exception(response) unless response.code.match(/^20.$/)
268
- ip_group = JSON.parse(response.body)['sharedIpGroup']
269
- OpenStack::Compute::SharedIPGroup.new(self,ip_group['id'])
270
- end
271
-
272
231
  # Returns the current state of the programatic API limits. Each account has certain limits on the number of resources
273
232
  # allowed in the account, and a rate of API operations.
274
233
  #
@@ -322,7 +281,7 @@ module Compute
322
281
  end
323
282
  @http[server].start
324
283
  rescue
325
- raise ConnectionException, "Unable to connect to #{server}"
284
+ raise OpenStack::Compute::Exception::Connection, "Unable to connect to #{server}"
326
285
  end
327
286
  end
328
287
  end
@@ -38,7 +38,9 @@ module Compute
38
38
  @id = data['id']
39
39
  @name = data['name']
40
40
  @serverId = data['serverId']
41
- @updated = DateTime.parse(data['updated'])
41
+ if data['updated'] then
42
+ @updated = DateTime.parse(data['updated'])
43
+ end
42
44
  @created = DateTime.parse(data['created'])
43
45
  @status = data['status']
44
46
  @progress = data['progress']
@@ -11,7 +11,6 @@ module Compute
11
11
  attr_reader :hostId
12
12
  attr_reader :imageId
13
13
  attr_reader :flavorId
14
- attr_reader :metadata
15
14
  attr_accessor :adminPass
16
15
 
17
16
  # This class is the representation of a single Server object. The constructor finds the server identified by the specified
@@ -55,7 +54,6 @@ module Compute
55
54
  @hostId = data["hostId"]
56
55
  @imageId = data["imageId"]
57
56
  @flavorId = data["flavorId"]
58
- @metadata = data["metadata"]
59
57
  true
60
58
  end
61
59
  alias :refresh :populate
@@ -216,72 +214,6 @@ module Compute
216
214
  true
217
215
  end
218
216
 
219
- # Provides information about the backup schedule for this server. Returns a hash of the form
220
- # {"weekly" => state, "daily" => state, "enabled" => boolean}
221
- #
222
- # >> server.backup_schedule
223
- # => {"weekly"=>"THURSDAY", "daily"=>"H_0400_0600", "enabled"=>true}
224
- def backup_schedule
225
- response = @connection.csreq("GET",@svrmgmthost,"#{@svrmgmtpath}/servers/#{URI.encode(@id.to_s)}/backup_schedule",@svrmgmtport,@svrmgmtscheme)
226
- OpenStack::Compute::Exception.raise_exception(response) unless response.code.match(/^20.$/)
227
- JSON.parse(response.body)['backupSchedule']
228
- end
229
-
230
- # Updates the backup schedule for the server. Takes a hash of the form: {:weekly => state, :daily => state, :enabled => boolean} as an argument.
231
- # All three keys (:weekly, :daily, :enabled) must be provided or an exception will get raised.
232
- #
233
- # >> server.backup_schedule=({:weekly=>"THURSDAY", :daily=>"H_0400_0600", :enabled=>true})
234
- # => {:weekly=>"THURSDAY", :daily=>"H_0400_0600", :enabled=>true}
235
- def backup_schedule=(options)
236
- data = JSON.generate('backupSchedule' => options)
237
- response = @connection.csreq("POST",@svrmgmthost,"#{@svrmgmtpath}/servers/#{URI.encode(self.id.to_s)}/backup_schedule",@svrmgmtport,@svrmgmtscheme,{'content-type' => 'application/json'},data)
238
- OpenStack::Compute::Exception.raise_exception(response) unless response.code.match(/^20.$/)
239
- true
240
- end
241
-
242
- # Removes the existing backup schedule for the server, setting the backups to disabled.
243
- #
244
- # Returns true if the API call succeeds.
245
- #
246
- # >> server.disable_backup_schedule!
247
- # => true
248
- def disable_backup_schedule!
249
- response = @connection.csreq("DELETE",@svrmgmthost,"#{@svrmgmtpath}/servers/#{URI.encode(self.id.to_s)}/backup_schedule",@svrmgmtport,@svrmgmtscheme)
250
- OpenStack::Compute::Exception.raise_exception(response) unless response.code.match(/^20.$/)
251
- true
252
- end
253
-
254
- # Share IP between servers in Shared IP group.
255
- # Takes a hash of the form: {:sharedIpGroupId => "1234", :ipAddress => "67.23.10.132", :configureServer => false} as an argument.
256
- # The :sharedIpGroupId key is required.
257
- # The :ipAddress key is required.
258
- # The :configureServer key is optional and defaults to false.
259
- #
260
- # >> server.share_ip(:sharedIpGroupId => 100, :ipAddress => "67.23.10.132")
261
- # => true
262
- def share_ip(options)
263
- raise OpenStack::Compute::Exception::MissingArgument, "Shared IP Group ID must be supplied" unless options[:sharedIpGroupId]
264
- raise OpenStack::Compute::Exception::MissingArgument, "Ip Address must be supplied" unless options[:ipAddress]
265
- options[:configureServer] = false if options[:configureServer].nil?
266
- data = JSON.generate(:shareIp => {:sharedIpGroupId => options[:sharedIpGroupId], :configureServer => options[:configureServer]})
267
- response = @connection.csreq("PUT",@svrmgmthost,"#{@svrmgmtpath}/servers/#{URI.encode(self.id.to_s)}/ips/public/#{options[:ipAddress]}",@svrmgmtport,@svrmgmtscheme,{'content-type' => 'application/json'},data)
268
- OpenStack::Compute::Exception.raise_exception(response) unless response.code.match(/^20.$/)
269
- true
270
- end
271
-
272
- # Unshare an IP address.
273
- # Takes a hash of the form: {:ipAddress => "67.23.10.132"} as an argument.
274
- # The :ipAddress key is required.
275
- #
276
- # >> server.unshare_ip(:ipAddress => "67.23.10.132")
277
- # => true
278
- def unshare_ip(options)
279
- raise OpenStack::Compute::Exception::MissingArgument, "Ip Address must be supplied" unless options[:ipAddress]
280
- response = @connection.csreq("DELETE",@svrmgmthost,"#{@svrmgmtpath}/servers/#{URI.encode(self.id.to_s)}/ips/public/#{options[:ipAddress]}",@svrmgmtport,@svrmgmtscheme)
281
- OpenStack::Compute::Exception.raise_exception(response) unless response.code.match(/^20.$/)
282
- true
283
- end
284
-
285
217
  end
286
218
  end
287
219
  end
@@ -32,7 +32,6 @@ module Compute
32
32
  require 'compute/server'
33
33
  require 'compute/image'
34
34
  require 'compute/flavor'
35
- require 'compute/shared_ip_group'
36
35
  require 'compute/exception'
37
36
 
38
37
  # Constants that set limits on server creation
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openstack-compute
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Dan Prince
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-02-02 00:00:00 -05:00
18
+ date: 2011-08-03 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -47,12 +47,10 @@ files:
47
47
  - lib/openstack/compute.rb
48
48
  - lib/openstack/compute/authentication.rb
49
49
  - lib/openstack/compute/connection.rb
50
- - lib/openstack/compute/entity_manager.rb
51
50
  - lib/openstack/compute/exception.rb
52
51
  - lib/openstack/compute/flavor.rb
53
52
  - lib/openstack/compute/image.rb
54
53
  - lib/openstack/compute/server.rb
55
- - lib/openstack/compute/shared_ip_group.rb
56
54
  has_rdoc: true
57
55
  homepage: https://launchpad.net/ruby-openstack-compute
58
56
  licenses: []
@@ -1,6 +0,0 @@
1
- module OpenStack
2
- module Compute
3
- class EntityManager
4
- end
5
- end
6
- end
@@ -1,54 +0,0 @@
1
- module OpenStack
2
- module Compute
3
- class SharedIPGroup
4
-
5
- attr_reader :id
6
- attr_reader :name
7
- attr_reader :servers
8
-
9
- # Creates a new Shared IP Group object, with information on the group identified by the ID number. Will most likely be called
10
- # by the get_shared_ip_group method on a OpenStack::Compute::Connection object.
11
- #
12
- # >> sig = cs.get_shared_ip_group(127)
13
- # => #<OpenStack::Compute::SharedIPGroup:0x101513798 ...>
14
- # >> sig.name
15
- # => "New Group"
16
- def initialize(connection,id)
17
- @connection = connection
18
- @id = id
19
- populate
20
- end
21
-
22
- # Makes the API call that populates the OpenStack::Compute::SharedIPGroup object with information on the group. Can also be called directly on
23
- # an existing object to update its information.
24
- #
25
- # Returns true if the API call succeeds.
26
- #
27
- # >> sig.populate
28
- # => true
29
- def populate
30
- response = @connection.csreq("GET",@connection.svrmgmthost,"#{@connection.svrmgmtpath}/shared_ip_groups/#{URI.escape(self.id.to_s)}",@connection.svrmgmtport,@connection.svrmgmtscheme)
31
- OpenStack::Compute::Exception.raise_exception(response) unless response.code.match(/^20.$/)
32
- data = JSON.parse(response.body)['sharedIpGroup']
33
- @id = data['id']
34
- @name = data['name']
35
- @servers = data['servers']
36
- true
37
- end
38
- alias :refresh :populate
39
-
40
- # Deletes the Shared IP Group identified by the current object.
41
- #
42
- # Returns true if the API call succeeds.
43
- #
44
- # >> sig.delete!
45
- # => true
46
- def delete!
47
- response = @connection.csreq("DELETE",@connection.svrmgmthost,"#{@connection.svrmgmtpath}/shared_ip_groups/#{URI.escape(self.id.to_s)}",@connection.svrmgmtport,@connection.svrmgmtscheme)
48
- OpenStack::Compute::Exception.raise_exception(response) unless response.code.match(/^20.$/)
49
- true
50
- end
51
-
52
- end
53
- end
54
- end