Class: Chef::Knife

Inherits:
Object
  • Object
show all
Defined in:
lib/chef/knife/cfn_base.rb,
lib/chef/knife/cfn_create.rb,
lib/chef/knife/cfn_delete.rb,
lib/chef/knife/cfn_events.rb,
lib/chef/knife/cfn_update.rb,
lib/chef/knife/cfn_outputs.rb,
lib/chef/knife/cfn_describe.rb,
lib/chef/knife/cfn_validate.rb,
lib/chef/knife/cfn_resources.rb

Direct Known Subclasses

CfnBase

Defined Under Namespace

Classes: CfnBase, CfnCreate, CfnDelete, CfnDescribe, CfnEvents, CfnOutputs, CfnResources, CfnUpdate, CfnValidate

Instance Method Summary collapse

Instance Method Details

#create_create_defObject



145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
# File 'lib/chef/knife/cfn_create.rb', line 145

def create_create_def
  create_def = {}
  template_file = locate_config_value(:template_file)
  if template_file != nil and template_file != ""
    doc = File.open(template_file, 'rb') { |file| file.read }
    create_def['TemplateBody'] = doc
  end
  create_def['TemplateURL'] = locate_config_value(:template_url)
  create_def['Capabilities'] = locate_config_value(:capabilities)
  create_def['DisableRollback'] = locate_config_value(:disable_rollback)
  create_def['NotificationARNs'] = locate_config_value(:notification_arns)
  hashed_parameters={}
  parameters = locate_config_value(:parameters)
  parameters.map{ |t| key,val=t.split('='); hashed_parameters[key]=val} unless parameters.nil?
  create_def['Parameters'] = hashed_parameters
  create_def['TimeoutInMinutes'] = locate_config_value(:timeout)
  create_def
end

#create_update_defObject



145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
# File 'lib/chef/knife/cfn_update.rb', line 145

def create_update_def
  create_def = {}
  template_file = locate_config_value(:template_file)
  if template_file != nil and template_file != ""
    doc = File.open(template_file, 'rb') { |file| file.read }
    create_def['TemplateBody'] = doc
  end
  create_def['TemplateURL'] = locate_config_value(:template_url)
  create_def['Capabilities'] = locate_config_value(:capabilities)
  create_def['DisableRollback'] = locate_config_value(:disable_rollback)
  create_def['NotificationARNs'] = locate_config_value(:notification_arns)
  hashed_parameters={}
  parameters = locate_config_value(:parameters)
  parameters.map{ |t| key,val=t.split('='); hashed_parameters[key]=val} unless parameters.nil?
  create_def['Parameters'] = hashed_parameters
  create_def['TimeoutInMinutes'] = locate_config_value(:timeout)
  create_def
end

#iam_name_from_profile(profile) ⇒ Object



151
152
153
154
155
156
157
# File 'lib/chef/knife/cfn_base.rb', line 151

def iam_name_from_profile(profile)
  # The IAM profile object only contains the name as part of the arn
  if profile && profile.key?('arn')
    name = profile['arn'].split('/')[-1]
  end
  name ||= ''
end

#ini_parse(file) ⇒ Object



159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
# File 'lib/chef/knife/cfn_base.rb', line 159

def ini_parse(file)
  current_section = {}
  map = {}
  file.each_line do |line|
    line = line.split(/^|\s;/).first # remove comments
    section = line.match(/^\s*\[([^\[\]]+)\]\s*$/) unless line.nil?
    if section
      current_section = section[1]
    elsif current_section
      item = line.match(/^\s*(.+?)\s*=\s*(.+?)\s*$/) unless line.nil?
      if item
        map[current_section] ||= {}
        map[current_section][item[1]] = item[2]
      end
    end
  end
  map
end