Sha256: 5f1b7ad097d0aabf73fc43f00b14fea166669fff3474de5740aaafcffe8b48ce

Contents?: true

Size: 1.95 KB

Versions: 1

Compression:

Stored size: 1.95 KB

Contents

module Fog
  module Terremark
    class Real

      # Reserve requested resources and deploy vApp
      #
      # ==== Parameters
      # * service_id<~String> - Id of service to add node to
      # * ip<~String> - Private ip of server to add to node
      # * name<~String> - Name of service
      # * port<~Integer> - Port of service
      # * options<~Hash>:
      #   * Enabled<~Boolean>: defaults to true
      #   * Description<~String>: optional description
      #
      # ==== Returns
      # * response<~Excon::Response>:
      #   * body<~Hash>:
      #     * 'endTime'<~String> - endTime of task
      #     * 'href'<~String> - link to task
      #     * 'startTime'<~String> - startTime of task
      #     * 'status'<~String> - status of task
      #     * 'type'<~String> - type of task
      #     * 'Owner'<~String> -
      #       * 'href'<~String> - href of owner
      #       * 'name'<~String> - name of owner
      #       * 'type'<~String> - type of owner
      def add_node_service(service_id, ip, name, port, options = {})
        unless options.has_key?('Enabled')
          options['Enabled'] = true
        end
        data = <<-DATA
<NodeService xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:tmrk:vCloudExpress-1.0:request:createNodeService">
  <IpAddress>#{ip}</IpAddress>
  <Name>#{name}</Name>
  <Port>#{port}</Port>
  <Enabled>#{options['Enabled']}</Enabled>
  <Description>#{options['Description']}</Description>
</NodeService>
DATA
        request(
          :body     => data,
          :expects  => 200,
          :headers  => {'Content-Type' => 'application/xml'},
          :method   => 'POST',
          :parser   => Fog::Parsers::Terremark::InternetService.new,
          :path     => "internetServices/#{service_id}/nodes"
        )
      end

    end

    class Mock

      def add_node_service(ip)
        raise MockNotImplemented.new("Contributions welcome!")
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fog-0.0.73 lib/fog/terremark/requests/add_node_service.rb