Class/Module Index [+]

Quicksearch

Fog::Terremark::Shared::Mock

Public Class Methods

error_headers() click to toggle source
# File lib/fog/terremark/shared.rb, line 185
def self.error_headers
  {"X-Powered-By"=>"ASP.NET",
   "Date"=> Time.now.to_s,
   "Content-Type"=>"text/html",
   "Content-Length"=>"0",
   "Server"=>"Microsoft-IIS/7.0",
   "Cache-Control"=>"private"}
end
headers(body, content_type) click to toggle source
# File lib/fog/terremark/shared.rb, line 198
def self.headers(body, content_type)
  {"X-Powered-By"=>"ASP.NET",
   "Date"=> Time.now.to_s,
   "Content-Type"=> content_type,
   "Content-Length"=> body.to_s.length,
   "Server"=>"Microsoft-IIS/7.0",
   "Set-Cookie"=>"vcloud-token=ecb37bfc-56f0-421d-97e5-bf2gdf789457; path=/",
   "Cache-Control"=>"private"}
end
mock_data() click to toggle source
# File lib/fog/terremark/shared.rb, line 100
def self.mock_data
{
  :organizations =>
  [
    {
      :info => {
        :name => "Boom Inc.",
        :id => 1
      },
      :vdcs => [
        { :id => 21,
          :name => "Boomstick",
          :storage => { :used => 105, :allocated => 200 },
          :cpu => { :allocated => 10000 },
          :memory => { :allocated => 20480 },
          :networks => [
            { :id => 31,
              :name => "1.2.3.0/24",
              :subnet => "1.2.3.0/24",
              :gateway => "1.2.3.1",
              :netmask => "255.255.255.0",
              :fencemode => "isolated"
            },
            { :id => 32,
              :name => "4.5.6.0/24",
              :subnet => "4.5.6.0/24",
              :gateway => "4.5.6.1",
              :netmask => "255.255.255.0",
              :fencemode => "isolated"
            },
          ],
          :vms => [
            { :id => 41,
              :name => "Broom 1"
            },
            { :id => 42,
              :name => "Broom 2"
            },
            { :id => 43,
              :name => "Email!"
            }
          ],
          :public_ips => [
            { :id => 51,
              :name => "99.1.2.3"
            },
            { :id => 52,
              :name => "99.1.2.4"
            },
            { :id => 53,
              :name => "99.1.9.7"
            }
          ]
        },
        { :id => 22,
          :storage => { :used => 40, :allocated => 150 },
          :cpu => { :allocated => 1000 },
          :memory => { :allocated => 2048 },
          :name => "Rock-n-Roll",
          :networks => [
            { :id => 33,
              :name => "7.8.9.0/24",
              :subnet => "7.8.9.0/24",
              :gateway => "7.8.9.1",
              :netmask => "255.255.255.0",
              :fencemode => "isolated"
            }
          ],
          :vms => [
            { :id => 44,
              :name => "Master Blaster"
            }
          ],
          :public_ips => [
            { :id => 54,
              :name => "99.99.99.99"
            }
          ]
        }
      ]
    }
  ]
}
end
new(options={}) click to toggle source
# File lib/fog/terremark/shared.rb, line 212
def initialize(options={})
  self.class.instance_eval '
    def self.data
      @data ||= Hash.new do |hash, key|
        hash[key] = Fog::Terremark::Shared::Mock.mock_data
      end
    end'
  self.class.instance_eval '
    def self.reset
      @data = nil
    end

    def self.reset_data(keys=data.keys)
      for key in [*keys]
        data.delete(key)
      end
    end'
end
status() click to toggle source
# File lib/fog/terremark/shared.rb, line 208
def self.status
  200
end
unathorized_status() click to toggle source
# File lib/fog/terremark/shared.rb, line 194
def self.unathorized_status
  401
end

Public Instance Methods

addresses(options = {}) click to toggle source
# File lib/fog/terremark/models/shared/addresses.rb, line 6
def addresses(options = {})
  Fog::Terremark::Shared::Addresses.new(options.merge(:service => self))
end
get_network(network_id) click to toggle source
# File lib/fog/terremark/requests/shared/get_network.rb, line 28
def get_network(network_id)
  network_id = network_id.to_i
  response = Excon::Response.new
  if network = self.data[:organizations].map { |org| org[:vdcs].map { |vdc| vdc[:networks] } }.flatten.detect { |network| network[:id] == network_id }

    body = { "links" => [],
             "type" => "application/vnd.vmware.vcloud.network+xml",
             "href" => "#{@base_url}/network/#{network_id}" }

    network.each_key do |key|
      body[key.to_s] = network[key]
    end

    link = { "name" => "IP Addresses",
             "rel"  => "down",
             "type" => "application/xml" }
    link["href"] = case self
    when Fog::Terremark::Ecloud::Mock
      "#{@base_url}/extensions/network/#{network_id}/ips"
    when Fog::Terremark::Vcloud::Mock
      "#{@base_url}/network/#{network_id}/ipAddresses"
    end
    body["links"] << link

    response.status = 200
    response.body = body
    response.headers = Fog::Terremark::Shared::Mock.headers(response.body, 
      case self
      when Fog::Terremark::Ecloud::Mock
        "application/vnd.vmware.vcloud.network+xml"
      when Fog::Terremark::Vcloud::Mock
        "application/xml; charset=utf-8"
      end
    )
  else
    response.status = Fog::Terremark::Shared::Mock.unathorized_status
    response.headers = Fog::Terremark::Shared::Mock.error_headers
  end

  response
end
get_organization(organization_id) click to toggle source
# File lib/fog/terremark/requests/shared/get_organization.rb, line 35
def get_organization(organization_id)
  organization_id = organization_id.to_i
  response = Excon::Response.new

  if org = self.data[:organizations].detect { |org| org[:info][:id] == organization_id }

    body = { "name" => org[:info][:name],
             "href" => "#{@base_url}/org/#{org[:info][:id]}",
             "Links" => [] }

    body["Links"] = case self
    when Fog::Terremark::Vcloud::Mock
      _vdc_links(org[:vdcs][0])
    when Fog::Terremark::Ecloud::Mock
      org[:vdcs].map do |vdc|
        _vdc_links(vdc)
      end.flatten
    end

    response.status = 200
    response.body = body
    response.headers = Fog::Terremark::Shared::Mock.headers(response.body, "application/vnd.vmware.vcloud.org+xml")
  else
    response.status = Fog::Terremark::Shared::Mock.unathorized_status
    response.headers = Fog::Terremark::Shared::Mock.error_headers
  end

  response
end
get_organizations() click to toggle source
# File lib/fog/terremark/requests/shared/get_organizations.rb, line 32
def get_organizations
  response = Excon::Response.new
  org_list = self.data[:organizations].map do |organization|
    { "name" => organization[:info][:name],
      "href" => "#{@base_url}/org/#{organization[:info][:id]}",
      "type" => "application/vnd.vmware.vcloud.org+xml"
    }
  end
  response.body = { "OrgList" => org_list }
  response.status = 200
  response.headers = Fog::Terremark::Shared::Mock.headers(response.body, "application/vnd.vmware.vcloud.orgList+xml")
  response
end
get_public_ips(vdc_id) click to toggle source
# File lib/fog/terremark/requests/shared/get_public_ips.rb, line 34
def get_public_ips(vdc_id)
  vdc_id = vdc_id.to_i
  response = Excon::Response.new

  if vdc = self.data[:organizations].map { |org| org[:vdcs] }.flatten.detect { |vdc| vdc[:id] == vdc_id }
    body = { "PublicIpAddresses" => [] }
    vdc[:public_ips].each do |ip|
      ip = { "name" => ip[:name],
             "href" => case self
                        when Fog::Terremark::Ecloud::Mock
                          "#{@base_url}/extensions/publicIp/#{ip[:id]}"
                        when Fog::Terremark::Vcloud::Mock
                          "#{@base_url}/PublicIps/#{ip[:id]}"
                        end,
             "id"   => ip[:id].to_s }
      body["PublicIpAddresses"] << ip
    end
    response.status = 200
    response.body = body
    response.headers = Fog::Terremark::Shared::Mock.headers(response.body,
                      case self
                      when Fog::Terremark::Ecloud::Mock
                        "application/vnd.tmrk.ecloud.publicIpsList+xml"
                      when Fog::Terremark::Vcloud::Mock
                        "application/xml; charset=utf-8"
                      end
    )
  else
    response.status = Fog::Terremark::Shared::Mock.unathorized_status
    response.headers = Fog::Terremark::Shared::Mock.error_headers
  end

  response
end
get_vdc(vdc_id) click to toggle source
# File lib/fog/terremark/requests/shared/get_vdc.rb, line 36
def get_vdc(vdc_id)
  vdc_id = vdc_id.to_i
  response = Excon::Response.new

  if vdc = self.data[:organizations].map { |org| org[:vdcs] }.flatten.detect { |vdc| vdc[:id] == vdc_id }

    body = { "name" => vdc[:name],
             "href" => "#{@base_url}/vdc/#{vdc[:id]}",
             "StorageCapacity" => {},
             "ComputeCapacity" => { "InstantiatedVmsQuota" => {},
                                    "DeployedVmsQuota" => {},
                                    "Cpu" => {},
                                    "Memory" => {} },
             "ResourceEntities" => [],
             "AvailableNetworks" => [],
             "links" => [] }

    case self
    when Fog::Terremark::Ecloud::Mock
      body["StorageCapacity"] = { "Units" => "bytes * 10^9" }
      vdc[:storage].each { |k,v| body["StorageCapacity"][k.to_s.capitalize] = v.to_s }

      body["ComputeCapacity"] = { "InstantiatedVmsQuota" => {"Limit" => "-1", "Used" => "-1"},
                                   "DeployedVmsQuota" => {"Limit" => "-1", "Used" => "-1"},
                                   "Cpu" => { "Units" => "hz * 10^6" },
                                   "Memory" => { "Units" => "bytes * 2^20" } }

      [:cpu, :memory].each do |key|
        vdc[key].each { |k,v| body["ComputeCapacity"][key.to_s.capitalize][k.to_s.capitalize] = v.to_s }
      end

      body["links"] << { "name" => "Public IPs",
                         "href" => "#{@base_url}/extensions/vdc/#{vdc[:id]}/publicIps",
                         "rel"  => "down",
                         "type" => "application/vnd.tmrk.ecloud.publicIpsList+xml" }

      body["links"] << { "name" => "Internet Services",
                         "href" => "#{@base_url}/extensions/vdc/#{vdc[:id]}/internetServices",
                         "rel"  => "down",
                         "type" => "application/vnd.tmrk.ecloud.internetServicesList+xml" }

      body["links"] << { "name" => "Firewall Access List",
                         "href" => "#{@base_url}/extensions/vdc/#{vdc[:id]}/firewallAcls",
                         "rel"  => "down",
                         "type" => "application/vnd.tmrk.ecloud.firewallAclsList+xml" }

    when Fog::Terremark::Vcloud::Mock
      body["links"] << { "name" => "Public IPs",
                         "href" => "#{@base_url}/vdc/#{vdc[:id]}/publicIps",
                         "rel"  => "down",
                         "type" => "application/xml" }

      body["links"] << { "name" => "Internet Services",
                         "href" => "#{@base_url}/vdc/#{vdc[:id]}/internetServices",
                         "rel"  => "down",
                         "type" => "application/xml" }
    end

    vdc[:vms].each do |vm|
      body["ResourceEntities"] << { "name" => vm[:name],
                                    "href" => "#{@base_url}/vapp/#{vm[:id]}",
                                    "type" => "application/vnd.vmware.vcloud.vApp+xml" }
    end

    vdc[:networks].each do |network|
      body["AvailableNetworks"] << { "name" => network[:name],
                                     "href" => "#{@base_url}/network/#{network[:id]}",
                                     "type" => "application/vnd.vmware.vcloud.network+xml" }
    end

    body["links"] << { "name" => vdc[:name],
                       "href" => "#{@base_url}/vdc/#{vdc[:id]}/catalog",
                       "rel"  => "down",
                       "type" => "application/vnd.vmware.vcloud.catalog+xml" }

    response.status = 200
    response.body = body
    response.headers = Fog::Terremark::Shared::Mock.headers(response.body, "application/vnd.vmware.vcloud.org+xml")
  else
    response.status = Fog::Terremark::Shared::Mock.unathorized_status
    response.headers = Fog::Terremark::Shared::Mock.error_headers
  end

  response
end
images(options = {}) click to toggle source
# File lib/fog/terremark/models/shared/images.rb, line 10
def images(options = {})
  Fog::Terremark::Shared::Images.new(options.merge(:service => self))
end
internetservices(options = {}) click to toggle source
# File lib/fog/terremark/models/shared/internetservices.rb, line 9
def internetservices(options = {})
  Fog::Terremark::Shared::Servers.new(options.merge(:service => self))
end
networks(options = {}) click to toggle source
# File lib/fog/terremark/models/shared/networks.rb, line 6
def networks(options = {})
  Fog::Terremark::Shared::Networks.new(options.merge(:service => self))
end
nodeservices(options = {}) click to toggle source
# File lib/fog/terremark/models/shared/nodeservices.rb, line 9
def nodeservices(options = {})
  Fog::Terremark::Shared::Servers.new(options.merge(:service => self))
end
servers(options = {}) click to toggle source
# File lib/fog/terremark/models/shared/servers.rb, line 9
def servers(options = {})
  Fog::Terremark::Shared::Servers.new(options.merge(:service => self))
end
tasks() click to toggle source
# File lib/fog/terremark/models/shared/tasks.rb, line 9
def tasks
  Fog::Terremark::Shared::Tasks.new(:service => self)
end
vdcs(options = {}) click to toggle source
# File lib/fog/terremark/models/shared/vdcs.rb, line 6
def vdcs(options = {})
  Fog::Terremark::Shared::Vdcs.new(options.merge(:service => self))
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.