class Fog::OpenStack::Orchestration::Real
Public Class Methods
# File lib/fog/openstack/orchestration.rb, line 128 def self.not_found_class Fog::OpenStack::Orchestration::NotFound end
Public Instance Methods
# File lib/fog/openstack/orchestration/requests/abandon_stack.rb, line 5 def abandon_stack(stack) request( :expects => [200], :method => 'DELETE', :path => "stacks/#{stack.stack_name}/#{stack.id}/abandon" ) end
# File lib/fog/openstack/orchestration/requests/build_info.rb, line 5 def build_info request( :expects => [200], :method => 'GET', :path => 'build_info' ) end
# File lib/fog/openstack/orchestration/requests/cancel_update.rb, line 6 def cancel_update(stack) request( :expects => 200, :method => 'POST', :path => "stacks/#{stack.stack_name}/#{stack.id}/actions", :body => Fog::JSON.encode('cancel_update' => nil) ) end
Create a stack.
-
options [Hash]:
-
:stack_name [String] Name of the stack to create.
-
:template [String] Structure containing the template body.
or (one of the two
Template
parameters is required)-
:template_url [String] URL of file containing the template body.
-
:files [Hash] Hash with files resources.
-
:disable_rollback [Boolean] Controls rollback on stack creation failure, defaults to false.
-
:parameters [Hash] Hash of providers to supply to template
-
:timeout_mins [Integer] Minutes to wait before status is set to CREATE_FAILED
-
@see developer.openstack.org/api-ref-orchestration-v1.html
# File lib/fog/openstack/orchestration/requests/create_stack.rb, line 20 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 # Templates should always: # - be strings # - contain URI references instead of relative paths. # Passing :template_url may not work well with `get_file` and remote `type`: # the python client implementation in shade retrieves from :template_uri # and replaces it with :template. # see https://github.com/openstack-infra/shade/blob/master/shade/openstackcloud.py#L1201 # see https://developer.openstack.org/api-ref/orchestration/v1/index.html#create-stack file_resolver = Util::RecursiveHotFileLoader.new(options[:template] || options[:template_url], options[:files]) options[:template] = file_resolver.template options[:files] = file_resolver.files unless file_resolver.files.empty? request( :expects => 201, :path => 'stacks', :method => 'POST', :body => Fog::JSON.encode(options) ) end
# File lib/fog/openstack/orchestration.rb, line 132 def default_service_type %w[orchestration] end
Delete a stack.
@param [Stack] Stack
to be deleted
@return [Excon::Response]
@see developer.openstack.org/api-ref-orchestration-v1.html
# File lib/fog/openstack/orchestration/requests/delete_stack.rb, line 13 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 request( :expects => 204, :path => "stacks/#{stack_name}/#{stack_id}", :method => 'DELETE' ) end
# File lib/fog/openstack/orchestration/requests/get_stack_template.rb, line 5 def get_stack_template(stack) request( :method => 'GET', :path => "stacks/#{stack.stack_name}/#{stack.id}/template", :expects => 200 ) end
# File lib/fog/openstack/orchestration/requests/list_events.rb, line 5 def list_events(options = {}) if !options.key?(:stack) && !(options.key?(:stack_name) && options.key?(:stack_id)) raise(ArgumentError, "Missing required options keys: :stack or :stack_name and :stack_id, while calling "\ " .list_events(options)") end stack = options.delete(:stack) stack_name = options.delete(:stack_name) stack_name ||= stack.stack_name if stack && stack.respond_to?(:stack_name) stack_id = options.delete(:stack_id) stack_id ||= stack.id if stack && stack.respond_to?(:id) resource = options.delete(:resource) resource_name = options.delete(:resource_name) resource_name ||= resource.resource_name if resource && resource.respond_to?(:resource_name) path = if resource_name "stacks/#{stack_name}/#{stack_id}/resources/#{resource_name}/events" else "stacks/#{stack_name}/#{stack_id}/events" end request(:method => 'GET', :path => path, :expects => 200, :query => options) end
# File lib/fog/openstack/orchestration/requests/list_resource_events.rb, line 5 def list_resource_events(stack, resource, options = {}) Fog::Logger.deprecation('Calling OpenStack[:orchestration].list_resource_events(stack, resource, options)'\ ' is deprecated, call .list_events(:stack => stack, :resource => resource) or '\ ' .list_events(:stack_name => value, :stack_id => value, :resource_name => value)'\ ' instead') uri = "stacks/#{stack.stack_name}/#{stack.id}/resources/#{resource.resource_name}/events" request(:method => 'GET', :path => uri, :expects => 200, :query => options) end
# File lib/fog/openstack/orchestration/requests/list_resource_types.rb, line 5 def list_resource_types(_options = {}) request( :method => 'GET', :path => "resource_types", :expects => 200, :query => {} ) end
# File lib/fog/openstack/orchestration/requests/list_resources.rb, line 5 def list_resources(options = {}, options_deprecated = {}) if options.kind_of?(Hash) if !options.key?(:stack) && !(options.key?(:stack_name) && options.key?(:stack_id)) raise(ArgumentError, "Missing required options keys: :stack or :stack_name and :stack_id, while calling "\ " .list_resources(options)") end stack = options.delete(:stack) stack_name = options.delete(:stack_name) stack_name ||= stack.stack_name if stack && stack.respond_to?(:stack_name) stack_id = options.delete(:stack_id) stack_id ||= stack.id if stack && stack.respond_to?(:id) path = "stacks/#{stack_name}/#{stack_id}/resources" params = options else Fog::Logger.deprecation('Calling OpenStack[:orchestration].list_resources(stack, options) is deprecated, '\ ' call .list_resources(:stack => stack) or '\ ' .list_resources(:stack_name => value, :stack_id => value) instead') path = "stacks/#{options.stack_name}/#{options.id}/resources" params = options_deprecated end request(:method => 'GET', :path => path, :expects => 200, :query => params) end
# File lib/fog/openstack/orchestration/requests/list_stack_data.rb, line 5 def list_stack_data(options = {}) request( :method => 'GET', :path => 'stacks', :expects => 200, :query => options ) end
# File lib/fog/openstack/orchestration/requests/list_stack_data_detailed.rb, line 5 def list_stack_data_detailed(options = {}) request( :method => 'GET', :path => 'stacks/detail', :expects => 200, :query => options ) end
# File lib/fog/openstack/orchestration/requests/list_stack_events.rb, line 5 def list_stack_events(stack, options = {}) Fog::Logger.deprecation('Calling OpenStack[:orchestration].list_stack_events(stack, options)'\ ' is deprecated, call .list_events(:stack => stack) or '\ ' .list_events(:stack_name => value, :stack_id => value) instead') uri = "stacks/#{stack.stack_name}/#{stack.id}/events" request(:method => 'GET', :path => uri, :expects => 200, :query => options) end
patch a stack.
@param [Fog::OpenStack::Orchestration::Stack] the stack to patch. @param [Hash] options
* :template [String] Structure containing the template body. or (one of the two Template parameters is required) * :template_url [String] URL of file containing the template body. * :parameters [Hash] Hash of providers to supply to template.
# File lib/fog/openstack/orchestration/requests/patch_stack.rb, line 14 def patch_stack(stack, options = {}) stack_name = stack.stack_name stack_id = stack.id request( :expects => 202, :path => "stacks/#{stack_name}/#{stack_id}", :method => 'PATCH', :body => Fog::JSON.encode(options) ) end
# File lib/fog/openstack/orchestration/requests/preview_stack.rb, line 5 def preview_stack(options = {}) request( :body => Fog::JSON.encode(options), :expects => [200], :method => 'POST', :path => 'stacks/preview' ) end
# File lib/fog/openstack/orchestration/requests/show_event_details.rb, line 5 def show_event_details(stack, resource, event_id) request( :method => 'GET', :path => "stacks/#{stack.stack_name}/#{stack.id}/resources/#{resource.resource_name}/events/#{event_id}", :expects => 200 ) end
# File lib/fog/openstack/orchestration/requests/show_resource_data.rb, line 5 def show_resource_data(stack_name, stack_id, resource_name) request( :method => 'GET', :path => "stacks/#{stack_name}/#{stack_id}/resources/#{resource_name}", :expects => 200 ) end
# File lib/fog/openstack/orchestration/requests/show_resource_metadata.rb, line 5 def show_resource_metadata(stack, resource_name) request( :method => 'GET', :path => "stacks/#{stack.stack_name}/#{stack.id}/resources/#{resource_name}/metadata", :expects => 200 ) end
# File lib/fog/openstack/orchestration/requests/show_resource_schema.rb, line 5 def show_resource_schema(name) request( :method => 'GET', :path => "resource_types/#{name}", :expects => 200 ) end
# File lib/fog/openstack/orchestration/requests/show_resource_template.rb, line 5 def show_resource_template(name) request( :method => 'GET', :path => "resource_types/#{name}/template", :expects => 200 ) end
# File lib/fog/openstack/orchestration/requests/show_stack.rb, line 5 def show_stack(id) request( :method => 'GET', :path => "stacks/#{id}", :expects => 200 ) end
# File lib/fog/openstack/orchestration/requests/show_stack_details.rb, line 5 def show_stack_details(name, id) request( :method => 'GET', :path => "stacks/#{name}/#{id}", :expects => 200 ) end
Update a stack.
@param [Fog::OpenStack::Orchestration::Stack] the stack to update. @param [Hash] options
* :template [String] Structure containing the template body. or (one of the two Template parameters is required) * :template_url [String] URL of file containing the template body. * :parameters [Hash] Hash of providers to supply to template. * :files [Hash] Hash with files resources.
# File lib/fog/openstack/orchestration/requests/update_stack.rb, line 15 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 # Templates should always: # - be strings # - contain URI references instead of relative paths. # Passing :template_url may not work well with `get_file` and remote `type`: # the python client implementation in shade retrieves from :template_uri # and replaces it with :template. # see https://github.com/openstack-infra/shade/blob/master/shade/openstackcloud.py#L1201 # see https://developer.openstack.org/api-ref/orchestration/v1/index.html#create-stack file_resolver = Util::RecursiveHotFileLoader.new(options[:template] || options[:template_url], options[:files]) options[:template] = file_resolver.template options[:files] = file_resolver.files unless file_resolver.files.empty? request( :expects => 202, :path => "stacks/#{stack_name}/#{stack_id}", :method => 'PUT', :body => Fog::JSON.encode(options) ) end
# File lib/fog/openstack/orchestration/requests/validate_template.rb, line 5 def validate_template(options = {}) request( :body => Fog::JSON.encode(options), :expects => [200], :method => 'POST', :path => 'validate' ) end