class Fog::OpenStack::Planning::Mock

Public Class Methods

data() click to toggle source
# File lib/fog/openstack/planning.rb, line 44
def self.data
  @data ||= {}
end
new(options = {}) click to toggle source
# File lib/fog/openstack/planning.rb, line 52
def initialize(options = {})
  @openstack_username = options[:openstack_username]
  @openstack_tenant   = options[:openstack_tenant]
  @openstack_auth_uri = URI.parse(options[:openstack_auth_url])

  @auth_token = Fog::Mock.random_base64(64)
  @auth_token_expiration = (Time.now.utc + 86400).iso8601

  management_url = URI.parse(options[:openstack_auth_url])
  management_url.port = 9292
  management_url.path = '/v1'
  @openstack_management_url = management_url.to_s

  @data ||= {:users => {}}
  unless @data[:users].find { |u| u['name'] == options[:openstack_username] }
    id = Fog::Mock.random_numbers(6).to_s
    @data[:users][id] = {
      'id'       => id,
      'name'     => options[:openstack_username],
      'email'    => "#{options[:openstack_username]}@mock.com",
      'tenantId' => Fog::Mock.random_numbers(6).to_s,
      'enabled'  => true
    }
  end
end
reset() click to toggle source
# File lib/fog/openstack/planning.rb, line 48
def self.reset
  @data = nil
end

Public Instance Methods

add_role_to_plan(_plan_uuid, _role_uuid) click to toggle source
# File lib/fog/openstack/planning/requests/add_role_to_plan.rb, line 16
def add_role_to_plan(_plan_uuid, _role_uuid)
  response = Excon::Response.new
  response.status = 201
  response.body = {
    "created_at"  => "2014-09-26T20:23:14.222815",
    "description" => "Development testing cloud",
    "name"        => "dev-cloud",
    "parameters"  => [],
    "roles"       => [
      {
        "description" => "OpenStack hypervisor node. Can be wrapped in a ResourceGroup for scaling.\n",
        "name"        => "compute",
        "uuid"        => "f72c0656-5696-4c66-81a5-d6d88a48e385",
        "version"     => 1
      }
    ],
    "updated_at"  => nil,
    "uuid"        => "53268a27-afc8-4b21-839f-90227dd7a001"
  }
  response
end
create_plan(_parameters) click to toggle source
# File lib/fog/openstack/planning/requests/create_plan.rb, line 16
def create_plan(_parameters)
  response = Excon::Response.new
  response.status = 201
  response.body = {
    "created_at"  => "2014-09-26T20:23:14.222815",
    "description" => "Development testing cloud",
    "name"        => "dev-cloud",
    "parameters"  => [],
    "roles"       => [],
    "updated_at"  => nil,
    "uuid"        => "53268a27-afc8-4b21-839f-90227dd7a001"
  }
  response
end
credentials() click to toggle source
# File lib/fog/openstack/planning.rb, line 86
def credentials
  {:provider                 => 'openstack',
   :openstack_auth_url       => @openstack_auth_uri.to_s,
   :openstack_auth_token     => @auth_token,
   :openstack_region         => @openstack_region,
   :openstack_management_url => @openstack_management_url}
end
data() click to toggle source
# File lib/fog/openstack/planning.rb, line 78
def data
  self.class.data[@openstack_username]
end
delete_plan(_plan_uuid) click to toggle source
# File lib/fog/openstack/planning/requests/delete_plan.rb, line 15
def delete_plan(_plan_uuid)
  response = Excon::Response.new
  response.status = 204
  response
end
get_plan(_parameters = nil) click to toggle source
# File lib/fog/openstack/planning/requests/get_plan.rb, line 15
def get_plan(_parameters = nil)
  response = Excon::Response.new
  response.status = [200, 204][rand(2)]
  response.body = {
    "created_at"  => "2014-09-26T20:23:14.222815",
    "description" => "Development testing cloud",
    "name"        => "dev-cloud",
    "parameters"  =>
                     [
                       {
                         "default"     => "guest",
                         "description" => "The password for RabbitMQ",
                         "hidden"      => true,
                         "label"       => nil,
                         "name"        => "compute-1 => =>RabbitPassword",
                         "value"       => "secret-password"
                       },
                       {
                         "default"     => "default",
                         "description" => "description",
                         "hidden"      => true,
                         "label"       => nil,
                         "name"        => "name",
                         "value"       => "value"
                       },
                     ],
    "roles"       =>
                     [
                       {
                         "description" => "OpenStack hypervisor node. Can be wrapped in a ResourceGroup for scaling.\n",
                         "name"        => "compute",
                         "uuid"        => "b7b1583c-5c80-481f-a25b-708ed4a39734",
                         "version"     => 1
                       }
                     ],
    "updated_at"  => nil,
    "uuid"        => "53268a27-afc8-4b21-839f-90227dd7a001"
  }
  response
end
get_plan_templates(_plan_uuid) click to toggle source
# File lib/fog/openstack/planning/requests/get_plan_templates.rb, line 15
def get_plan_templates(_plan_uuid)
  response = Excon::Response.new
  response.status = [200, 204][rand(2)]
  response.body = {
    "environment.yaml"        => "... content of template file ...",
    "plan.yaml"               => "... content of template file ...",
    "provider-compute-1.yaml" => "... content of template file ..."
  }
  response
end
list_plans(_options = {}) click to toggle source
# File lib/fog/openstack/planning/requests/list_plans.rb, line 16
def list_plans(_options = {})
  response = Excon::Response.new
  response.status = [200, 204][rand(2)]
  response.body = [
    {
      "created_at"  => "2014-09-26T20:23:14.222815",
      "description" => "Development testing cloud",
      "name"        => "dev-cloud",
      "parameters"  =>
                       [
                         {
                           "default"     => "guest",
                           "description" => "The password for RabbitMQ",
                           "hidden"      => true,
                           "label"       => nil,
                           "name"        => "compute-1 => =>RabbitPassword",
                           "value"       => "secret-password"
                         },
                         {
                           "default"     => "default",
                           "description" => "description",
                           "hidden"      => true,
                           "label"       => nil,
                           "name"        => "name",
                           "value"       => "value"
                         },
                       ],
      "roles"       =>
                       [
                         {
                           "description" => "OpenStack hypervisor node. Can be wrapped in a ResourceGroup for scaling.\n",
                           "name"        => "compute",
                           "uuid"        => "b7b1583c-5c80-481f-a25b-708ed4a39734",
                           "version"     => 1
                         }
                       ],
      "updated_at"  => nil,
      "uuid"        => "53268a27-afc8-4b21-839f-90227dd7a001"
    }
  ]
  response
end
list_roles(_options = {}) click to toggle source
# File lib/fog/openstack/planning/requests/list_roles.rb, line 16
def list_roles(_options = {})
  response = Excon::Response.new
  response.status = [200, 204][rand(2)]
  response.body = [
    {
      "description" => "OpenStack hypervisor node. Can be wrapped in a ResourceGroup for scaling.\n",
      "name"        => "compute",
      "uuid"        => "f72c0656-5696-4c66-81a5-d6d88a48e385",
      "version"     => 1
    }
  ]
  response
end
patch_plan(_plan_uuid, _parameters) click to toggle source
# File lib/fog/openstack/planning/requests/patch_plan.rb, line 16
def patch_plan(_plan_uuid, _parameters)
  response = Excon::Response.new
  response.status = 201
  response.body = {
    "created_at"  => "2014-09-26T20:23:14.222815",
    "description" => "Development testing cloud",
    "name"        => "dev-cloud",
    "parameters"  =>
                     [
                       {
                         "default"     => "guest",
                         "description" => "The password for RabbitMQ",
                         "hidden"      => true,
                         "label"       => nil,
                         "name"        => "compute-1::RabbitPassword",
                         "value"       => "secret-password"
                       }
                     ],
    "roles"       =>
                     [
                       {
                         "description" => "OpenStack hypervisor node. Can be wrapped in a ResourceGroup for scaling.\n",
                         "name"        => "compute",
                         "uuid"        => "b7b1583c-5c80-481f-a25b-708ed4a39734",
                         "version"     => 1
                       }
                     ],
    "updated_at"  => nil,
    "uuid"        => "53268a27-afc8-4b21-839f-90227dd7a001"
  }
  response
end
remove_role_from_plan(_plan_uuid, _role_uuid) click to toggle source
# File lib/fog/openstack/planning/requests/remove_role_from_plan.rb, line 15
def remove_role_from_plan(_plan_uuid, _role_uuid)
  response = Excon::Response.new
  response.status = 200
  response.body = {
    "created_at"  => "2014-09-26T20:23:14.222815",
    "description" => "Development testing cloud",
    "name"        => "dev-cloud",
    "parameters"  => [],
    "roles"       => [],
    "updated_at"  => nil,
    "uuid"        => "53268a27-afc8-4b21-839f-90227dd7a001"
  }
  response
end
reset_data() click to toggle source
# File lib/fog/openstack/planning.rb, line 82
def reset_data
  self.class.data.delete(@openstack_username)
end