Sha256: bd05a9e39cc9527d2b0fd292fbc1f5737d8339c96907d43aa03476bbd8ebbe07

Contents?: true

Size: 1.64 KB

Versions: 1

Compression:

Stored size: 1.64 KB

Contents

module Fog
  module Terremark
    module Shared
      module Real

        # Get list of organizations
        #
        # ==== Returns
        # * response<~Excon::Response>:
        #   * body<~Array>:
        #     * 'description'<~String> - Description of organization
        #     * 'links'<~Array> - An array of links to entities in the organization
        #     * 'name'<~String> - Name of organization
        def get_organizations
          request({
            :expects  => 200,
            :headers  => {
              'Authorization' => "Basic #{Base64.encode64("#{@terremark_username}:#{@terremark_password}").chomp!}",
              # Terremark said they're going to remove passing in the Content-Type to login in a future release
              'Content-Type'  => "application/vnd.vmware.vcloud.orgList+xml"
            },
            :method   => 'POST',
            :parser   => Fog::Parsers::Terremark::Shared::GetOrganizations.new,
            :path     => 'login'
          })
        end

      end

      module Mock

        def get_organizations
          response = Excon::Response.new
          org_list = @data[:organizations].map do |organization|
            { "name" => organization[:info][:name],
              "href" => "https://services.enterprisecloud.terremark.com/api/v0.8a-ext2.0/org/#{organization[:info][:id]}",
              "type" => "application/vnd.vmware.vcloud.org+xml"
            }
          end
          response.body = { "OrgList" => org_list }
          response.headers = Fog::Terremark::Shared::Mock.headers(response.body, "application/vnd.vmware.vcloud.orgList+xml")
          response
        end

      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fog-0.0.84 lib/fog/terremark/requests/shared/get_organizations.rb