Module: Chef::Knife::RdsBase

Constant Summary collapse

APPLY_METHODS =
['immediate', 'pending-reboot']

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/chef/knife/rds_base.rb', line 12

def self.included(base)
  base.class_eval do

    option :aws_access_key_id,
       :short => "-A ID",
       :long => "--aws-access-key-id ID",
       :description => "Your AWS Access Key ID",
       :proc => Proc.new { |key| Chef::Config[:knife][:aws_access_key_id] = key }

     option :aws_secret_access_key,
       :short => "-K SECRET",
       :long => "--aws-secret-access-key SECRET",
       :description => "Your AWS API Secret Access Key",
       :proc => Proc.new { |key| Chef::Config[:knife][:aws_secret_access_key] = key }

  end
end

Instance Method Details

#assert_name_args_at_least!(num, error = 'Incorrect number of name args.') ⇒ Object



32
33
34
35
36
37
38
# File 'lib/chef/knife/rds_base.rb', line 32

def assert_name_args_at_least!(num, error = 'Incorrect number of name args.')
  unless name_args.size >= num
    ui.fatal(error)
    show_usage
    exit 1
  end
end

#assert_valid_apply_method!Object

Assert user supplied apply method is valid



58
59
60
61
62
63
# File 'lib/chef/knife/rds_base.rb', line 58

def assert_valid_apply_method!
  unless APPLY_METHODS.include?(config[:apply_method])
    ui.fatal("Unknown type of apply method #{config[:apply_method]}")
    exit 1
  end
end

#authenticate!(required = [:aws_access_key_id, :aws_secret_access_key]) ⇒ Object

Ensure user is authenticated before proceededing

Raises ArgumentError



43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/chef/knife/rds_base.rb', line 43

def authenticate!(required = [:aws_access_key_id, :aws_secret_access_key])
  errors = []
  required.each do |k|
    if Chef::Config[:knife][k].nil?
      errors << "A valid #{k} is required."
    end
  end
  unless errors.empty?
    errors.each { |e| ui.error(e) }
    exit 1
  end
  connect!
end

#connect!Object



69
70
71
# File 'lib/chef/knife/rds_base.rb', line 69

def connect!
  AWS.config(aws_access_key_id: config[:aws_access_key_id], aws_secret_access_key: config[:aws_secret_access_key])
end

#rdsObject



65
66
67
# File 'lib/chef/knife/rds_base.rb', line 65

def rds
  AWS::RDS.new
end