Sha256: 132e63cb4bc03609a31d63057a87cbf82c82aa846879b9860d09efd44b1d0b3d
Contents?: true
Size: 1.71 KB
Versions: 27
Compression:
Stored size: 1.71 KB
Contents
unless Fog.mocking? module Fog module Rackspace class Servers # Create an image from a running server # # ==== Parameters # * server_id<~Integer> - Id of server to create image from # * options<~Hash> - Name # # ==== Returns # * response<~Excon::Response>: # * 'image'<~Hash>: # * 'id'<~Integer> - Id of image # * 'name'<~String> - Name of image # * 'serverId'<~Integer> - Id of server def create_image(server_id, options = {}) data = { 'image' => { 'serverId' => server_id } } if options['name'] data['image']['name'] = options['name'] end request( :body => data.to_json, :expects => 202, :method => 'POST', :path => "images" ) end end end end else module Fog module Rackspace class Servers def create_image(server_id, options = {}) response = Excon::Response.new response.status = 202 now = Time.now data = { 'created' => now, 'id' => 123456, 'name' => options['name'] || '', 'serverId' => server_id, 'status' => 'SAVING', 'updated' => now, } Fog::Rackspace::Servers.data[:last_modified][:images][data['id']] = now Fog::Rackspace::Servers.data[:images][data['id']] = data response.body = { 'image' => data.reject {|key, value| !['id', 'name', 'serverId'].include?(key)} } response end end end end end
Version data entries
27 entries across 27 versions & 1 rubygems