Class: Puppet::Provider::MistralWorkflowRequester
- Inherits:
-
Openstack
- Object
- Openstack
- Puppet::Provider::MistralWorkflowRequester
- Defined in:
- lib/puppet/provider/mistral_workflow_requester.rb
Direct Known Subclasses
Class Method Summary collapse
-
.request(service, action, properties, credentials = nil, options = {}) ⇒ Object
Returns an array of hashes, where the keys are the downcased CSV headers with underscores instead of spaces.
Class Method Details
.request(service, action, properties, credentials = nil, options = {}) ⇒ Object
Returns an array of hashes, where the keys are the downcased CSV headers with underscores instead of spaces
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/puppet/provider/mistral_workflow_requester.rb', line 19 def self.request(service, action, properties, credentials=nil, ={}) env = credentials ? credentials.to_env : {} # We only need to override the create action if action != 'create' return super end Puppet::Util.withenv(env) do rv = nil begin # shell output is: # ID,Name,Description,Enabled response = openstack(service, action, '--quiet', '--format', 'csv', properties) response = parse_csv(response) keys = response.delete_at(0) if response.collect.length > 1 definition_file = properties[-1] Puppet.warning("#{definition_file} creates more than one workflow, only the first one will be returned after the request.") end rv = response.collect do |line| hash = {} keys.each_index do |index| key = keys[index].downcase.gsub(/ /, '_').to_sym hash[key] = line[index] end hash end rescue Puppet::ExecutionFailure => exception raise Puppet::Error::OpenstackUnauthorizedError, 'Could not authenticate' if exception. =~ /HTTP 40[13]/ raise end end return rv end |