Sha256: a4b3dc96c1f9bb4aceacd6385f08a76eb637e3ba3fc84ea8578091a20807e6d7
Contents?: true
Size: 1.34 KB
Versions: 10
Compression:
Stored size: 1.34 KB
Contents
module Fog module Compute class Ecloud module Shared def validate_create_server_options_identical(template_uri, options) required_opts = [:name, :row, :group, :source] unless required_opts.all? { |opt| options.key?(opt) } raise ArgumentError.new("Required data missing: #{(required_opts - options.keys).map(&:inspect).join(", ")}") end options end def build_request_body_identical(options) xml = Builder::XmlMarkup.new xml.CopyIdenticalVirtualMachine(:name => options[:name]) do xml.Source(:href => options[:source], :type => "application/vnd.tmrk.cloud.virtualMachine") xml.Layout do xml.NewRow options[:row] xml.NewGroup options[:group] end xml.Description options[:description] end end end class Real def virtual_machine_copy_identical(template_uri, options) options = validate_create_server_options_identical(template_uri, options) body = build_request_body_identical(options) request( :expects => 201, :method => "POST", :headers => {}, :body => body, :uri => template_uri, :parse => true ) end end end end end
Version data entries
10 entries across 8 versions & 3 rubygems