Sha256: c440341b63bff794a83964339c39a0a4abe844ceaca0fa1beae34fe2f351cb2c

Contents?: true

Size: 1.78 KB

Versions: 29

Compression:

Stored size: 1.78 KB

Contents

module Fog
  module Vcloud
    module Terremark
      module Ecloud
        module Real

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

          def configure_network(network_uri, network_data)
            validate_network_data(network_data)

            request(
              :body     => generate_configure_network_request(network_data),
              :expects  => 200,
              :headers  => {'Content-Type' => 'application/vnd.tmrk.ecloud.networkService+xml'},
              :method   => 'PUT',
              :uri      => network_uri,
              :parse    => true
            )
          end

          private

          def generate_configure_network_request(network_data)
            builder = Builder::XmlMarkup.new
            builder.Network(:"xmlns:i" => "http://www.w3.org/2001/XMLSchema-instance",
                            :xmlns => "urn:tmrk:eCloudExtensions-2.3") {
              builder.Id(network_data[:id])
              builder.Href(network_data[:href])
              builder.Name(network_data[:name])
              builder.RnatAddress(network_data[:rnat])
              builder.Address(network_data[:address])
              builder.BroadcastAddress(network_data[:broadcast])
              builder.GatewayAddress(network_data[:gateway])
            }
          end

        end

        module Mock

          def configure_network(network_uri, network_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.rb
fog-0.2.28 lib/fog/vcloud/terremark/ecloud/requests/configure_network.rb
fog-0.2.27 lib/fog/vcloud/terremark/ecloud/requests/configure_network.rb
fog-0.2.26 lib/fog/vcloud/terremark/ecloud/requests/configure_network.rb
fog-0.2.25 lib/fog/vcloud/terremark/ecloud/requests/configure_network.rb
fog-0.2.24 lib/fog/vcloud/terremark/ecloud/requests/configure_network.rb
tecnh-fog-0.2.23.vpc lib/fog/vcloud/terremark/ecloud/requests/configure_network.rb
fog-0.2.23 lib/fog/vcloud/terremark/ecloud/requests/configure_network.rb
fog-0.2.22 lib/fog/vcloud/terremark/ecloud/requests/configure_network.rb
fog-0.2.21 lib/fog/vcloud/terremark/ecloud/requests/configure_network.rb
fog-0.2.20 lib/fog/vcloud/terremark/ecloud/requests/configure_network.rb
fog-0.2.19 lib/fog/vcloud/terremark/ecloud/requests/configure_network.rb
fog-0.2.18 lib/fog/vcloud/terremark/ecloud/requests/configure_network.rb
fog-0.2.17 lib/fog/vcloud/terremark/ecloud/requests/configure_network.rb
fog-0.2.16 lib/fog/vcloud/terremark/ecloud/requests/configure_network.rb
fog-0.2.15 lib/fog/vcloud/terremark/ecloud/requests/configure_network.rb
fog-0.2.14 lib/fog/vcloud/terremark/ecloud/requests/configure_network.rb
fog-0.2.13 lib/fog/vcloud/terremark/ecloud/requests/configure_network.rb
fog-0.2.12 lib/fog/vcloud/terremark/ecloud/requests/configure_network.rb
fog-0.2.11 lib/fog/vcloud/terremark/ecloud/requests/configure_network.rb