Sha256: 42249e47329b36e88efaa06704a5a0864b7d27655b745e68ab0f50e708f0b87d

Contents?: true

Size: 1.64 KB

Versions: 8

Compression:

Stored size: 1.64 KB

Contents

module Fog
  class Vcloud
    module Terremark
      class Ecloud
        class Real

          def configure_node(node_uri, node_data)
            validate_node_data(node_data, true)

            request(
              :body     => generate_configure_node_request(node_data),
              :expects  => 200,
              :headers  => {'Content-Type' => 'application/vnd.tmrk.ecloud.nodeService+xml'},
              :method   => 'PUT',
              :uri      => node_uri,
              :parse    => true
            )
          end

          private

          def generate_configure_node_request(node_data)
            builder = Builder::XmlMarkup.new
            builder.NodeService(:"xmlns:i" => "http://www.w3.org/2001/XMLSchema-instance",
                                    :xmlns => "urn:tmrk:eCloudExtensions-2.0") {
              builder.Name(node_data[:name])
              builder.Enabled(node_data[:enabled].to_s)
              builder.Description(node_data[:description])
            }
          end

        end

        class Mock

          def configure_node(node_uri, node_data)
            node_uri = ensure_unparsed(node_uri)

            validate_node_data(node_data, true)

            if node = mock_node_from_url(node_uri)
              node[:name] = node_data[:name]
              node[:enabled] = node_data[:enabled]
              node[:description] = node_data[:description]
              mock_it 200, mock_node_service_response(node, ecloud_xmlns), { 'Content-Type' => 'application/vnd.tmrk.ecloud.nodeService+xml' }
            else
              mock_error 200, "401 Unauthorized"
            end
          end
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
fog-0.3.7 lib/fog/vcloud/terremark/ecloud/requests/configure_node.rb
fog-0.3.6 lib/fog/vcloud/terremark/ecloud/requests/configure_node.rb
fog-0.3.5 lib/fog/vcloud/terremark/ecloud/requests/configure_node.rb
fog-0.3.4 lib/fog/vcloud/terremark/ecloud/requests/configure_node.rb
fog-0.3.3 lib/fog/vcloud/terremark/ecloud/requests/configure_node.rb
fog-0.3.2 lib/fog/vcloud/terremark/ecloud/requests/configure_node.rb
fog-0.3.1 lib/fog/vcloud/terremark/ecloud/requests/configure_node.rb
fog-0.3.0 lib/fog/vcloud/terremark/ecloud/requests/configure_node.rb