class Fog::OpenStack::Orchestration::Mock

Attributes

auth_token[R]
auth_token_expiration[R]
current_tenant[R]
current_user[R]

Public Class Methods

data() click to toggle source
# File lib/fog/openstack/orchestration.rb, line 82
def self.data
  @data ||= Hash.new do |hash, key|
    hash[key] = {
      :stacks => {}
    }
  end
end
new(options = {}) click to toggle source
# File lib/fog/openstack/orchestration.rb, line 94
def initialize(options = {})
  @openstack_username = options[:openstack_username]
  @openstack_auth_uri = URI.parse(options[:openstack_auth_url])

  @current_tenant = options[:openstack_tenant]

  @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 = 8774
  management_url.path = '/v1'
  @openstack_management_url = management_url.to_s
end
reset() click to toggle source
# File lib/fog/openstack/orchestration.rb, line 90
def self.reset
  @data = nil
end

Public Instance Methods

cancel_update(_) click to toggle source
# File lib/fog/openstack/orchestration/requests/cancel_update.rb, line 17
def cancel_update(_)
  response = Excon::Response.new
  response.status = 200
  response.body = {}
  response
end
create_stack(arg1, arg2 = nil) click to toggle source
# File lib/fog/openstack/orchestration/requests/create_stack.rb, line 54
def create_stack(arg1, arg2 = nil)
  if arg1.kind_of?(Hash)
    # Normal use: create_stack(options)
    options = arg1
  else
    # Deprecated: create_stack(stack_name, options = {})
    Fog::Logger.deprecation("#create_stack(stack_name, options) is deprecated, use #create_stack(options) instead [light_black](#{caller.first})[/]")
    options = {
      :stack_name => arg1
    }.merge(arg2.nil? ? {} : arg2)
  end

  stack_id = Fog::Mock.random_hex(32)
  stack = data[:stacks][stack_id] = {
    'id'                  => stack_id,
    'stack_name'          => options[:stack_name],
    'links'               => [],
    'description'         => options[:description],
    'stack_status'        => 'CREATE_COMPLETE',
    'stack_status_reason' => 'Stack successfully created',
    'creation_time'       => Time.now,
    'updated_time'        => Time.now
  }

  response = Excon::Response.new
  response.status = 201
  response.body = {
    'id'    => stack_id,
    'links' => [{"href" => "http://localhost:8004/v1/fake_tenant_id/stacks/#{options[:stack_name]}/#{stack_id}", "rel" => "self"}]
  }

  if options.key?(:files)
    response.body['files'] = {'foo.sh' => 'hello'}
  end

  if options.key?(:template) || options.key?(:template_url)
    file_resolver = OrchestrationUtil::RecursiveHotFileLoader.new(options[:template] || options[:template_url], options[:files])
    response.body['files'] = file_resolver.files unless file_resolver.files.empty?
  end

  response
end
credentials() click to toggle source
# File lib/fog/openstack/orchestration.rb, line 117
def credentials
  {:provider                    => 'openstack',
   :openstack_auth_url          => @openstack_auth_uri.to_s,
   :openstack_auth_token        => @auth_token,
   :openstack_management_url    => @openstack_management_url}
end
data() click to toggle source
# File lib/fog/openstack/orchestration.rb, line 109
def data
  self.class.data["#{@openstack_username}-#{@current_tenant}"]
end
delete_stack(arg1, arg2 = nil) click to toggle source
# File lib/fog/openstack/orchestration/requests/delete_stack.rb, line 35
def delete_stack(arg1, arg2 = nil)
  if arg1.kind_of?(Stack)
    # Normal use: delete_stack(stack)
    stack = arg1
    stack_name = stack.stack_name
    stack_id = stack.id
  else
    # Deprecated: delete_stack(stack_name, stack_id)
    Fog::Logger.deprecation("#delete_stack(stack_name, stack_id) is deprecated, use #delete_stack(stack) instead [light_black](#{caller.first})[/]")
    stack_name = arg1
    stack_id = arg2
  end

  data[:stacks].delete(stack_id)

  response = Excon::Response.new
  response.status = 204
  response.body = {}
  response
end
get_stack_template(stack) click to toggle source
# File lib/fog/openstack/orchestration/requests/get_stack_template.rb, line 15
def get_stack_template(stack)
end
list_events(_options = {}) click to toggle source
# File lib/fog/openstack/orchestration/requests/list_events.rb, line 35
def list_events(_options = {})
  events = data[:events].values

  Excon::Response.new(
    :body   => {'events' => events},
    :status => 200
  )
end
list_resource_events(_stack, _resource, _options = {}) click to toggle source
# File lib/fog/openstack/orchestration/requests/list_resource_events.rb, line 17
def list_resource_events(_stack, _resource, _options = {})
  events = data[:events].values

  Excon::Response.new(
    :body   => {'events' => events},
    :status => 200
  )
end
list_resource_types() click to toggle source
# File lib/fog/openstack/orchestration/requests/list_resource_types.rb, line 16
def list_resource_types
  resources = data[:resource_types].values

  Excon::Response.new(
    :body   => {'resource_types' => resources},
    :status => 200
  )
end
list_resources(_options = {}, _options_deprecated = {}) click to toggle source
# File lib/fog/openstack/orchestration/requests/list_resources.rb, line 35
def list_resources(_options = {}, _options_deprecated = {})
  resources = data[:resources].values

  Excon::Response.new(
    :body   => {'resources' => resources},
    :status => 200
  )
end
list_stack_data(_options = {}) click to toggle source
# File lib/fog/openstack/orchestration/requests/list_stack_data.rb, line 16
def list_stack_data(_options = {})
  stacks = data[:stacks].values

  Excon::Response.new(
    :body   => {'stacks' => stacks},
    :status => 200
  )
end
list_stack_data_detailed(_options = {}) click to toggle source
# File lib/fog/openstack/orchestration/requests/list_stack_data_detailed.rb, line 16
def list_stack_data_detailed(_options = {})
  Excon::Response.new(
    :body   => {
      'stacks' =>
                  [{"parent"                => nil,
                    "disable_rollback"      => true,
                    "description"           => "No description",
                    "links"                 => [{"href" => "http://192.0.2.1:8004/v1/ae084f19a7974d5b95703f633e57fd64/stacks/overcloud/9ea5226f-0bb3-40bf-924b-f89ea11bb69c",
                                                 "rel"  => "self"}],
                    "stack_status_reason"   => "Stack CREATE completed successfully",
                    "stack_name"            => "overcloud",
                    "stack_user_project_id" => "ae084f19a7974d5b95703f633e57fd64",
                    "stack_owner"           => "admin",
                    "creation_time"         => "2015-06-24T07:19:01Z",
                    "capabilities"          => [],
                    "notification_topics"   => [],
                    "updated_time"          => nil,
                    "timeout_mins"          => nil,
                    "stack_status"          => "CREATE_COMPLETE",
                    "parameters"            => {"Controller-1::SSLKey"                  => "******",
                                                "Compute-1::RabbitClientUseSSL"         => "False",
                                                "Controller-1::KeystoneSSLCertificate"  => "",
                                                "Controller-1::CinderLVMLoopDeviceSize" => "5000"},
                    "id"                    => "9ea5226f-0bb3-40bf-924b-f89ea11bb69c",
                    "outputs"               => [],
                    "template_description"  => "No description"}]
    },
    :status => 200
  )
end
list_stack_events(_stack, _options = {}) click to toggle source
# File lib/fog/openstack/orchestration/requests/list_stack_events.rb, line 16
def list_stack_events(_stack, _options = {})
  events = data[:events].values

  Excon::Response.new(
    :body   => {'events' => events},
    :status => 200
  )
end
patch_stack(_stack, _options = {}) click to toggle source
# File lib/fog/openstack/orchestration/requests/patch_stack.rb, line 28
def patch_stack(_stack, _options = {})
  response = Excon::Response.new
  response.status = 202
  response.body = {}
  response
end
reset_data() click to toggle source
# File lib/fog/openstack/orchestration.rb, line 113
def reset_data
  self.class.data.delete("#{@openstack_username}-#{@current_tenant}")
end
show_event_details(_stack, _event) click to toggle source
# File lib/fog/openstack/orchestration/requests/show_event_details.rb, line 15
def show_event_details(_stack, _event)
  events = data[:events].values

  Excon::Response.new(
    :body   => {'events' => events},
    :status => 200
  )
end
show_resource_data(_stack_name, _stack_id, _resource_name) click to toggle source
# File lib/fog/openstack/orchestration/requests/show_resource_data.rb, line 15
def show_resource_data(_stack_name, _stack_id, _resource_name)
  resources = data[:resources].values

  Excon::Response.new(
    :body   => {'resources' => resources},
    :status => 200
  )
end
show_resource_metadata(_stack, _resource_name) click to toggle source
# File lib/fog/openstack/orchestration/requests/show_resource_metadata.rb, line 15
def show_resource_metadata(_stack, _resource_name)
  resources = data[:resources].values

  Excon::Response.new(
    :body   => {'resources' => resources},
    :status => 200
  )
end
show_resource_template(name) click to toggle source
# File lib/fog/openstack/orchestration/requests/show_resource_template.rb, line 15
def show_resource_template(name)
end
show_stack(_id) click to toggle source
# File lib/fog/openstack/orchestration/requests/show_stack.rb, line 15
def show_stack(_id)
  stack = data[:stack].values

  Excon::Response.new(
    :body   => {'stack' => stack},
    :status => 200
  )
end
show_stack_details(_name, _id) click to toggle source
# File lib/fog/openstack/orchestration/requests/show_stack_details.rb, line 15
def show_stack_details(_name, _id)
  stack = data[:stack].values

  Excon::Response.new(
    :body   => {'stack' => stack},
    :status => 200
  )
end
update_stack(arg1, arg2 = nil, arg3 = nil) click to toggle source
# File lib/fog/openstack/orchestration/requests/update_stack.rb, line 54
def update_stack(arg1, arg2 = nil, arg3 = nil)
  if arg1.kind_of?(Stack)
    # Normal use, update_stack(stack, options = {})
    stack = arg1
    stack_name = stack.stack_name
    stack_id = stack.id
    options = arg2.nil? ? {} : arg2
  else
    # Deprecated, update_stack(stack_id, stack_name, options = {})
    Fog::Logger.deprecation("#update_stack(stack_id, stack_name, options) is deprecated, use #update_stack(stack, options) instead [light_black](#{caller.first})[/]")
    stack_id = arg1
    stack_name = arg2
    options = {
      :stack_name => stack_name
    }.merge(arg3.nil? ? {} : arg3)
  end

  if options.key?(:files)
    response.body['files'] = {'foo.sh' => 'hello'}
  end

  if options.key?(:template) || options.key?(:template_url)
    file_resolver = Util::RecursiveHotFileLoader.new(options[:template] || options[:template_url], options[:files])
    response.body['files'] = file_resolver.files unless file_resolver.files.empty?
  end

  response = Excon::Response.new
  response.status = 202
  response.body = {}
  response
end