Sha256: 8ad5b4efa20f33beca80b538a310e9ca8bd35a8432ebf9bbb8afa6dcc13ec51c

Contents?: true

Size: 1.75 KB

Versions: 29

Compression:

Stored size: 1.75 KB

Contents

module Fog
  module Vcloud
    module Terremark
      module Ecloud
        module Real

          def validate_network_ip_data(network_ip_data, configure=false)
            valid_opts = [:id, :href, :name, :status, :server, :rnat]
            unless valid_opts.all? { |opt| network_ip_data.keys.include?(opt) }
              raise ArgumentError.new("Required data missing: #{(valid_opts - network_ip_data.keys).map(&:inspect).join(", ")}")
            end
          end

          def configure_network_ip(network_ip_uri, network_ip_data)
            validate_network_ip_data(network_ip_data)

            request(
              :body     => generate_configure_network_ip_request(network_ip_data),
              :expects  => 200,
              :headers  => {'Content-Type' => 'application/vnd.tmrk.ecloud.ip+xml' },
              :method   => 'PUT',
              :uri      => network_ip_uri,
              :parse    => true
            )
          end

          private

          def generate_configure_network_ip_request(network_ip_data)
            builder = Builder::XmlMarkup.new
            builder.IpAddress(:"xmlns:i" => "http://www.w3.org/2001/XMLSchema-instance",
                              :xmlns => "urn:tmrk:eCloudExtensions-2.3") {
              builder.Id(network_ip_data[:id])
              builder.Href(network_ip_data[:href])
              builder.Name(network_ip_data[:name])
              builder.Status(network_ip_data[:status])
              builder.Server(network_ip_data[:server])
              builder.RnatAddress(network_ip_data[:rnat])
            }
          end

        end

        module Mock

          def configure_network_ip(network_ip_uri, network_ip_data)
            Fog::Mock.not_implemented
          end
        end
      end
    end
  end
end

Version data entries

29 entries across 29 versions & 2 rubygems

Version Path
fog-0.2.30 lib/fog/vcloud/terremark/ecloud/requests/configure_network_ip.rb
fog-0.2.28 lib/fog/vcloud/terremark/ecloud/requests/configure_network_ip.rb
fog-0.2.27 lib/fog/vcloud/terremark/ecloud/requests/configure_network_ip.rb
fog-0.2.26 lib/fog/vcloud/terremark/ecloud/requests/configure_network_ip.rb
fog-0.2.25 lib/fog/vcloud/terremark/ecloud/requests/configure_network_ip.rb
fog-0.2.24 lib/fog/vcloud/terremark/ecloud/requests/configure_network_ip.rb
tecnh-fog-0.2.23.vpc lib/fog/vcloud/terremark/ecloud/requests/configure_network_ip.rb
fog-0.2.23 lib/fog/vcloud/terremark/ecloud/requests/configure_network_ip.rb
fog-0.2.22 lib/fog/vcloud/terremark/ecloud/requests/configure_network_ip.rb
fog-0.2.21 lib/fog/vcloud/terremark/ecloud/requests/configure_network_ip.rb
fog-0.2.20 lib/fog/vcloud/terremark/ecloud/requests/configure_network_ip.rb
fog-0.2.19 lib/fog/vcloud/terremark/ecloud/requests/configure_network_ip.rb
fog-0.2.18 lib/fog/vcloud/terremark/ecloud/requests/configure_network_ip.rb
fog-0.2.17 lib/fog/vcloud/terremark/ecloud/requests/configure_network_ip.rb
fog-0.2.16 lib/fog/vcloud/terremark/ecloud/requests/configure_network_ip.rb
fog-0.2.15 lib/fog/vcloud/terremark/ecloud/requests/configure_network_ip.rb
fog-0.2.14 lib/fog/vcloud/terremark/ecloud/requests/configure_network_ip.rb
fog-0.2.13 lib/fog/vcloud/terremark/ecloud/requests/configure_network_ip.rb
fog-0.2.12 lib/fog/vcloud/terremark/ecloud/requests/configure_network_ip.rb
fog-0.2.11 lib/fog/vcloud/terremark/ecloud/requests/configure_network_ip.rb