34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
# File 'lib/danarchy_sys/config_manager.rb', line 34
def self.new_config(danarchysys_cfg_path, config_json)
config = config_template
ssh_path = File.join(danarchysys_cfg_path, 'ssh')
puts "dAnarchy_sys config location: #{danarchysys_cfg_path}"
FileUtils.mkdir_p(danarchysys_cfg_path, mode: 0700) unless Dir.exist?(danarchysys_cfg_path)
print "Default ssh key location: #{ssh_path}. Is this location okay?: (Y/N) "
answer = gets.chomp
until answer =~ /^y(es)?$/i
print 'Enter a path for SSH keys: '
ssh_path = gets.chomp
print "Setting SSH key path to: #{ssh_path}. Is this location okay? (Y/N): "
answer = gets.chomp
end
puts "SSH key path set to: #{ssh_path}"
FileUtils.mkdir_p(ssh_path, mode: 0700) unless Dir.exist?(ssh_path)
global_setting_add(config, 'ssh_key_path', ssh_path)
provider = nil
if providers.count > 1
num_providers = Helpers.array_to_numhash(providers)
fields = PrintFormats.printf_hash(num_providers)
printf("#{fields}\n", 'Id', 'Provider')
num_providers.each do |k, v|
printf("#{fields}\n", "#{k}.", v)
end
provider = nil
until providers.include?(provider)
print 'Please choose a provider: '
provider = gets.chomp
if provider =~ /^[0-9]*$/
if num_providers.keys.include?(provider.to_i)
provider = num_providers[provider.to_i]
else
print "#{provider} is not a valid Id. "
end
end
if provider.empty? || providers.include?(provider) == false
print 'Invalid input! '
end
end
else
provider = providers[0] end
if provider == 'danarchy'
puts 'Need to implement setup for dAnarchy!'
elsif provider == 'openstack'
puts 'Adding a new OpenStack account!'
print 'Enter a provider name for this account: '
provider = gets.chomp
cfg_openstack = DanarchySys::ConfigManager::OpenStack.new(provider, config)
config = cfg_openstack.new_account_prompt
elsif provider == 'aws'
puts 'AWS not yet implemented!'
end
save(config_json, config)
puts "Configuration has been saved to #{config_json}"
puts "Copy any existing #{provider} SSH keys to: #{ssh_path}"
config
end
|