danarchy_sys 0.2.11 → 0.2.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +6 -0
- data/README.txt +18 -9
- data/lib/danarchy_sys/aws/compute.rb +1 -1
- data/lib/danarchy_sys/cli/instance_manager.rb +27 -11
- data/lib/danarchy_sys/cli/menus.rb +1 -1
- data/lib/danarchy_sys/cli/providers.rb +1 -2
- data/lib/danarchy_sys/config_manager/aws.rb +22 -0
- data/lib/danarchy_sys/config_manager/openstack.rb +53 -0
- data/lib/danarchy_sys/config_manager.rb +99 -0
- data/lib/danarchy_sys/openstack/compute/instances.rb +8 -2
- data/lib/danarchy_sys/openstack/compute/tests/keypairs_test.rb +1 -1
- data/lib/danarchy_sys/openstack/compute.rb +4 -5
- data/lib/danarchy_sys/version.rb +1 -1
- data/lib/danarchy_sys.rb +1 -1
- metadata +5 -7
- data/bin/setup +0 -18
- data/bin/setup.rb +0 -86
- data/lib/danarchy_sys/config.rb +0 -66
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8c3d93b8a4b5dc2e84ea69b279f9cfa3a1d86768
|
4
|
+
data.tar.gz: c8a4a4278e5f6dada0b10fb7a49731e7392594ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f13481bf821158438c740efb0c6e36719a3bd0a8cf09d3fef172c8fcaf506a44bea1ad63daae5a4102ae0888a8c4808666d63fda5fe456ad007fc03a5179fe9
|
7
|
+
data.tar.gz: 78082c565241160b920d766334d9f1c01ef60265e2501074a53fbdb2a408dc736e35c4ea3506e83de99ec8b7f3dcfc4660899ad188a87a63503ba05588ab5f92
|
data/.gitignore
CHANGED
data/README.txt
CHANGED
@@ -4,12 +4,22 @@ Welcome to dAnarchy Systems! This gem will assist you in easing the setup of Ope
|
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
7
|
-
|
7
|
+
# Pull the gem from RubyGems.org
|
8
|
+
gem install danarchy_sys
|
8
9
|
|
9
|
-
|
10
|
-
|
10
|
+
# Run 'danarchy_sys' and a first-time setup will prompt you for your connection settings.
|
11
|
+
~ $ danarchy_sys
|
12
|
+
No existing configuration found!
|
13
|
+
Creating a new OpenStack connection!
|
14
|
+
OpenStack Auth URL (Example: http://openstack-host.com:5000/v2.0/tokens)
|
15
|
+
Enter URL: http://your_openstack_host.com:5000/v2.0/tokens
|
16
|
+
OpenStack Username: your_openstack_username
|
17
|
+
OpenStack API Key: your_openstack_api_key
|
18
|
+
OpenStack Tenant ID: your_openstack_tenant_id
|
19
|
+
Configuration has been saved!
|
11
20
|
|
12
|
-
|
21
|
+
|
22
|
+
dAnarchySys config file follows a YAML format like this:
|
13
23
|
|
14
24
|
:connections:
|
15
25
|
:your_connection:
|
@@ -17,15 +27,14 @@ dAnarchySys config setup will be located at danarchy_sys/config/danarchysys.yml
|
|
17
27
|
:openstack_username: openstack_username
|
18
28
|
:openstack_api_key: openstack_api_key
|
19
29
|
:openstack_tenant: openstack_tenant
|
20
|
-
:
|
21
|
-
:ssh_key_path: PATH_TO_SSH_KEYS
|
30
|
+
:general_settings:
|
31
|
+
:ssh_key_path: PATH_TO_SSH_KEYS (this is filled in by default)
|
22
32
|
|
33
|
+
# Once configuration finishes you will enter the main CLI for dAnarchy_sys.
|
23
34
|
|
24
35
|
## Usage
|
25
36
|
|
26
|
-
|
27
|
-
1. os_dreamcompute
|
28
|
-
Which provider should we use? (enter 'exit' to leave): 1
|
37
|
+
~ $ danarchy_sys
|
29
38
|
OpenStack -> os_dreamcompute
|
30
39
|
dAnarchy_sys main menu commands:
|
31
40
|
Enter 'help' to view available commands or 'exit' to leave.
|
@@ -4,7 +4,7 @@ require_relative 'instance_manager/instance_status'
|
|
4
4
|
class InstanceManager
|
5
5
|
def self.manager(os_compute)
|
6
6
|
comp_inst = os_compute.compute_instances
|
7
|
-
puts 'Instance Manager: enter \'help\' to view available commands or \'main\' for the main menu.'
|
7
|
+
puts 'Instance Manager: enter \'chooser\' to select an instance, \'help\' to view available commands or \'main\' for the main menu.'
|
8
8
|
menu = Menus.numbered_menu('instance')
|
9
9
|
instance = false
|
10
10
|
|
@@ -43,17 +43,33 @@ class InstanceManager
|
|
43
43
|
end
|
44
44
|
elsif cmd == 'status'
|
45
45
|
printf("%#{instance.name.size}s %0s %0s\n", instance.name, ' => ', instance.state)
|
46
|
-
elsif %w(
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
46
|
+
elsif %w(pause unpause suspend resume start stop).include?(cmd.to_s)
|
47
|
+
status = instance.state
|
48
|
+
|
49
|
+
if cmd =~ /e$/
|
50
|
+
print "#{cmd.gsub(/e$/, 'ing')} #{instance.name} ."
|
51
|
+
else
|
52
|
+
print "#{cmd}ing #{instance.name} ."
|
53
|
+
end
|
54
|
+
|
55
|
+
response = comp_inst.send(cmd.to_s, instance.name.to_s)
|
56
|
+
if response == false
|
57
|
+
puts "\nInvalid action for #{instance.name}'s current status!"
|
58
|
+
next
|
59
|
+
end
|
60
|
+
|
61
|
+
until status != instance.state
|
62
|
+
instance = os_compute.compute_instances.get_instance(instance.name)
|
63
|
+
sleep(3)
|
64
|
+
print ' .'
|
65
|
+
end
|
66
|
+
|
67
|
+
printf("\n%#{instance.name.size}s %0s %0s\n", instance.name, ' => ', instance.state)
|
68
|
+
elsif cmd == 'connect'
|
69
|
+
if instance.state == 'ACTIVE'
|
70
|
+
os_compute.compute_ssh(instance.name.to_s)
|
53
71
|
else
|
54
|
-
|
55
|
-
# Need to recheck/wait for status update
|
56
|
-
printf("%#{instance.name.size}s %0s %0s\n", instance.name, ' => ', instance.state)
|
72
|
+
puts "Unable to connect: #{instance.name} is not running!"
|
57
73
|
end
|
58
74
|
else
|
59
75
|
Menus.print_menu('instance')
|
@@ -31,7 +31,7 @@ class Menus
|
|
31
31
|
# print_menu(menu)
|
32
32
|
elsif menu == 'instance'
|
33
33
|
puts 'Instance Manager commands: '
|
34
|
-
puts 'Enter \'help\' to view available commands or \'
|
34
|
+
puts 'Enter \'help\' to view available commands or \'main\' for the main menu.'
|
35
35
|
# print_menu(menu)
|
36
36
|
elsif menu == 'keypair'
|
37
37
|
puts 'Keypair Manager commands: '
|
@@ -0,0 +1,22 @@
|
|
1
|
+
|
2
|
+
module DanarchySys::ConfigManagerNew
|
3
|
+
class AWS
|
4
|
+
def initialize(provider)
|
5
|
+
@provider = provider.to_sym
|
6
|
+
end
|
7
|
+
|
8
|
+
def add_connection(provider, aws_access_key_id, aws_secret_access_key)
|
9
|
+
# config = load
|
10
|
+
|
11
|
+
# config[:connections][provider.to_sym] = {
|
12
|
+
# aws_access_key_id: aws_access_key_id,
|
13
|
+
# aws_secret_access_key: aws_secret_access_key
|
14
|
+
}
|
15
|
+
end
|
16
|
+
|
17
|
+
def delete_connection(provider)
|
18
|
+
# config = load
|
19
|
+
# config[:connections].delete(provider.to_sym)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
|
2
|
+
module DanarchySys::ConfigManager
|
3
|
+
class OpenStack
|
4
|
+
def initialize(provider, config)
|
5
|
+
(@provider, @config) = provider, config
|
6
|
+
return
|
7
|
+
end
|
8
|
+
|
9
|
+
def add_connection(provider, openstack_auth_url, openstack_username, openstack_api_key, openstack_tenant)
|
10
|
+
@config[:connections][provider.to_sym] = {
|
11
|
+
openstack_auth_url: openstack_auth_url,
|
12
|
+
openstack_username: openstack_username,
|
13
|
+
openstack_api_key: openstack_api_key,
|
14
|
+
openstack_tenant: openstack_tenant,
|
15
|
+
}
|
16
|
+
end
|
17
|
+
|
18
|
+
def delete_connection
|
19
|
+
config = load
|
20
|
+
config.delete(@provider)
|
21
|
+
end
|
22
|
+
|
23
|
+
def add_setting(name, value)
|
24
|
+
config = load
|
25
|
+
# probably need to check if :settings exist first
|
26
|
+
config[@provider][:settings][name.to_sym] = value
|
27
|
+
end
|
28
|
+
|
29
|
+
def delete_setting(name)
|
30
|
+
config = load
|
31
|
+
# check if name exists
|
32
|
+
config[@provider][:settings].delete(name.to_sym)
|
33
|
+
end
|
34
|
+
|
35
|
+
def verify_connection
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
def new_connection_prompt
|
40
|
+
print "OpenStack Auth URL\t(Example: http://openstack-host.com:5000/v2.0/tokens)\nEnter URL: "
|
41
|
+
openstack_auth_url = gets.chomp
|
42
|
+
print 'OpenStack Username: '
|
43
|
+
openstack_username = gets.chomp
|
44
|
+
print 'OpenStack API Key: '
|
45
|
+
openstack_api_key = gets.chomp
|
46
|
+
print 'OpenStack Tenant ID: '
|
47
|
+
openstack_tenant = gets.chomp
|
48
|
+
|
49
|
+
add_connection(@provider, openstack_auth_url, openstack_username, openstack_api_key, openstack_tenant)
|
50
|
+
@config
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require_relative 'config_manager/openstack'
|
3
|
+
|
4
|
+
# dAnarchy_sys config management
|
5
|
+
module DanarchySys
|
6
|
+
module ConfigManager
|
7
|
+
class Config
|
8
|
+
def self.new
|
9
|
+
@danarchysys_path = File.realpath(File.join(File.dirname(__FILE__), '..', '..'))
|
10
|
+
@config_file = File.join(@danarchysys_path, 'config', 'danarchysys.yml')
|
11
|
+
|
12
|
+
if File.exists?(@config_file)
|
13
|
+
return YAML.load_file(@config_file)
|
14
|
+
else
|
15
|
+
puts 'No existing configuration found!'
|
16
|
+
return new_config
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.providers
|
21
|
+
['openstack'] # , 'aws']
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.config_template
|
25
|
+
config_template = {
|
26
|
+
global_settings: {
|
27
|
+
ssh_key_path: "#{@danarchysys_path}/config/ssh"
|
28
|
+
},
|
29
|
+
connections: {}
|
30
|
+
}
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.new_config
|
34
|
+
config = config_template
|
35
|
+
|
36
|
+
provider = nil
|
37
|
+
if providers.count > 1
|
38
|
+
num_providers = Helpers.array_to_numhash(providers)
|
39
|
+
fields = PrintFormats.printf_hash(num_providers)
|
40
|
+
|
41
|
+
printf("#{fields}\n", 'Id', 'Provider')
|
42
|
+
num_providers.each do |k, v|
|
43
|
+
printf("#{fields}\n", "#{k}.", v)
|
44
|
+
end
|
45
|
+
|
46
|
+
provider = nil
|
47
|
+
until providers.include?(provider)
|
48
|
+
print 'Please choose a provider: '
|
49
|
+
provider = gets.chomp
|
50
|
+
|
51
|
+
if provider =~ /^[0-9]*$/
|
52
|
+
if num_providers.keys.include?(provider)
|
53
|
+
provider = num_providers[provider]
|
54
|
+
else
|
55
|
+
print "#{provider} is not a valid Id. "
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
if provider.empty? || providers.include?(provider) == false
|
60
|
+
print 'Invalid input! '
|
61
|
+
end
|
62
|
+
end
|
63
|
+
else
|
64
|
+
provider = providers[0]
|
65
|
+
end
|
66
|
+
|
67
|
+
if provider == 'openstack'
|
68
|
+
puts 'Creating a new OpenStack connection!'
|
69
|
+
print 'Enter a provider name for this connection: '
|
70
|
+
provider = gets.chomp
|
71
|
+
cfg_os = DanarchySys::ConfigManager::OpenStack.new(provider, config)
|
72
|
+
config = cfg_os.new_connection_prompt
|
73
|
+
elsif provider == 'aws'
|
74
|
+
# Placeholder
|
75
|
+
puts 'AWS not yet implemented!'
|
76
|
+
end
|
77
|
+
|
78
|
+
save(config)
|
79
|
+
puts 'Configuration has been saved!'
|
80
|
+
config
|
81
|
+
end
|
82
|
+
|
83
|
+
def self.save(param_hash)
|
84
|
+
File.write(@config_file, param_hash.to_yaml)
|
85
|
+
end
|
86
|
+
|
87
|
+
|
88
|
+
def self.global_setting_add(name, value)
|
89
|
+
config = load
|
90
|
+
config[:global_settings][name.to_sym] = value
|
91
|
+
end
|
92
|
+
|
93
|
+
def self.global_setting_delete(name)
|
94
|
+
config = load
|
95
|
+
config[:global_settings].delete(name.to_sym)
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
@@ -48,9 +48,15 @@ class ComputeInstances
|
|
48
48
|
|
49
49
|
def get_addresses(instance_name)
|
50
50
|
instance = get_instance(instance_name)
|
51
|
+
(ipv6, ipv4) = nil, nil
|
52
|
+
addresses = instance.addresses['public']
|
51
53
|
|
52
|
-
addresses
|
53
|
-
|
54
|
+
addresses.each do |i|
|
55
|
+
ipv4 = i['addr'] if i['addr'].include?('.')
|
56
|
+
ipv6 = i['addr'] if i['addr'].include?(':')
|
57
|
+
end
|
58
|
+
|
59
|
+
return ipv4, ipv6
|
54
60
|
end
|
55
61
|
|
56
62
|
def pause(instance_name)
|
@@ -7,10 +7,9 @@ module DanarchySys
|
|
7
7
|
module OpenStack
|
8
8
|
class Compute
|
9
9
|
def initialize(provider)
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
@settings = danarchysys_config[:settings]
|
10
|
+
danarchysys_config = DanarchySys::ConfigManager::Config.new
|
11
|
+
connection = danarchysys_config[:connections][provider.to_sym]
|
12
|
+
@settings = danarchysys_config[:global_settings]
|
14
13
|
@compute = Fog::Compute::OpenStack.new(connection)
|
15
14
|
end
|
16
15
|
|
@@ -49,7 +48,7 @@ module DanarchySys
|
|
49
48
|
user = image.name.downcase.split('-')[0]
|
50
49
|
end
|
51
50
|
|
52
|
-
ipv4 = comp_inst.get_addresses(instance_name)
|
51
|
+
ipv4, ipv6 = comp_inst.get_addresses(instance_name)
|
53
52
|
|
54
53
|
ssh = "ssh #{user}@#{ipv4} -i '#{pemfile}'"
|
55
54
|
system(ssh)
|
data/lib/danarchy_sys/version.rb
CHANGED
data/lib/danarchy_sys.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
require 'fog/openstack'
|
3
3
|
require_relative 'danarchy_sys/version'
|
4
4
|
require_relative 'danarchy_sys/helpers'
|
5
|
-
require_relative 'danarchy_sys/
|
5
|
+
require_relative 'danarchy_sys/config_manager'
|
6
6
|
require_relative 'danarchy_sys/printformats'
|
7
7
|
|
8
8
|
module DanarchySys
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: danarchy_sys
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan James
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-07-
|
11
|
+
date: 2017-07-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fog-openstack
|
@@ -79,8 +79,6 @@ email:
|
|
79
79
|
executables:
|
80
80
|
- console
|
81
81
|
- danarchy_sys
|
82
|
-
- setup
|
83
|
-
- setup.rb
|
84
82
|
extensions: []
|
85
83
|
extra_rdoc_files: []
|
86
84
|
files:
|
@@ -93,8 +91,6 @@ files:
|
|
93
91
|
- Rakefile
|
94
92
|
- bin/console
|
95
93
|
- bin/danarchy_sys
|
96
|
-
- bin/setup
|
97
|
-
- bin/setup.rb
|
98
94
|
- config/.gitignore
|
99
95
|
- danarchy_sys.gemspec
|
100
96
|
- lib/danarchy_sys.rb
|
@@ -106,7 +102,9 @@ files:
|
|
106
102
|
- lib/danarchy_sys/cli/instance_manager/prompts_create_instance.rb
|
107
103
|
- lib/danarchy_sys/cli/menus.rb
|
108
104
|
- lib/danarchy_sys/cli/providers.rb
|
109
|
-
- lib/danarchy_sys/
|
105
|
+
- lib/danarchy_sys/config_manager.rb
|
106
|
+
- lib/danarchy_sys/config_manager/aws.rb
|
107
|
+
- lib/danarchy_sys/config_manager/openstack.rb
|
110
108
|
- lib/danarchy_sys/helpers.rb
|
111
109
|
- lib/danarchy_sys/openstack.rb
|
112
110
|
- lib/danarchy_sys/openstack/compute.rb
|
data/bin/setup
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
#!/usr/bin/env bash
|
2
|
-
set -euo pipefail
|
3
|
-
IFS=$'\n\t'
|
4
|
-
set -vx
|
5
|
-
|
6
|
-
bundle install
|
7
|
-
|
8
|
-
# Do any other automated setup that you need to do here
|
9
|
-
PATH=$(pwd)
|
10
|
-
|
11
|
-
if [[ $PATH =~ danarchy_sys/bin$ ]]; then
|
12
|
-
/usr/bin/ruby $PATH/setup.rb
|
13
|
-
elif [[ $PATH =~ danarchy_sys$ ]]; then
|
14
|
-
/usr/bin/ruby $PATH/bin/setup.rb
|
15
|
-
else
|
16
|
-
echo "Unable to find danarchy_sys/bin/setup.rb!"
|
17
|
-
echo "Please run it manually: /usr/bin/ruby danarchy_sys/bin/setup.rb"
|
18
|
-
fi
|
data/bin/setup.rb
DELETED
@@ -1,86 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
require 'fileutils'
|
3
|
-
require_relative '../lib/danarchy_sys'
|
4
|
-
|
5
|
-
# dAanarchySys config file setup
|
6
|
-
class DanarchySysConfig
|
7
|
-
def initialize
|
8
|
-
@config_mgr = ConfigMgr.new
|
9
|
-
end
|
10
|
-
|
11
|
-
def load_config
|
12
|
-
@config_mgr.load
|
13
|
-
end
|
14
|
-
|
15
|
-
def ssh_key_path
|
16
|
-
danarchysys_config = load_config
|
17
|
-
|
18
|
-
ssh_key_path = "#{File.expand_path('..', File.dirname(__FILE__))}/config/ssh"
|
19
|
-
FileUtils.mkdir_p(ssh_key_path) unless Dir.exist?(ssh_key_path)
|
20
|
-
danarchysys_config[:settings][:ssh_key_path] = ssh_key_path
|
21
|
-
|
22
|
-
@config_mgr.save(danarchysys_config)
|
23
|
-
end
|
24
|
-
|
25
|
-
def new_connection
|
26
|
-
danarchysys_config = load_config
|
27
|
-
|
28
|
-
if danarchysys_config[:connections].count.zero?
|
29
|
-
puts 'Creating a new configuration.'
|
30
|
-
else
|
31
|
-
puts 'Adding a new OpenStack connection to existing configuration.'
|
32
|
-
end
|
33
|
-
|
34
|
-
print 'Provider name: '
|
35
|
-
provider_name = gets.chomp
|
36
|
-
print "OpenStack Auth URL\t(Example: http://openstack-host.com:5000/v2.0/tokens)\nEnter URL: "
|
37
|
-
openstack_auth_url = gets.chomp
|
38
|
-
print 'OpenStack Username: '
|
39
|
-
openstack_username = gets.chomp
|
40
|
-
print 'OpenStack API Key: '
|
41
|
-
openstack_api_key = gets.chomp
|
42
|
-
print 'OpenStack Tenant ID: '
|
43
|
-
openstack_tenant = gets.chomp
|
44
|
-
|
45
|
-
danarchysys_config[:connections][provider_name.to_sym] = {
|
46
|
-
openstack_auth_url: openstack_auth_url,
|
47
|
-
openstack_username: openstack_username,
|
48
|
-
openstack_api_key: openstack_api_key,
|
49
|
-
openstack_tenant: openstack_tenant
|
50
|
-
}
|
51
|
-
|
52
|
-
@config_mgr.save(danarchysys_config)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
config = DanarchySysConfig.new
|
57
|
-
danarchysys_config = config.load_config
|
58
|
-
puts 'Beginning danarchysys configuration setup.'
|
59
|
-
|
60
|
-
if danarchysys_config[:connections].count.zero?
|
61
|
-
config.new_connection
|
62
|
-
else
|
63
|
-
puts 'Available OpenStack Connections: '
|
64
|
-
danarchysys_config[:connections].each_key { |k| puts k }
|
65
|
-
end
|
66
|
-
|
67
|
-
continue = false
|
68
|
-
until continue == true
|
69
|
-
print 'Should we add another connection? (Y/N): '
|
70
|
-
|
71
|
-
if gets.chomp =~ /^y(es)?$/i
|
72
|
-
config.new_connection
|
73
|
-
else
|
74
|
-
continue = true
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
config.ssh_key_path
|
79
|
-
|
80
|
-
danarchysys_config = config.load_config
|
81
|
-
|
82
|
-
puts 'Available OpenStack Connections: '
|
83
|
-
danarchysys_config[:connections].each_key { |k| puts k }
|
84
|
-
puts "SSH key location: #{danarchysys_config[:settings][:ssh_key_path]}"
|
85
|
-
puts "Config saved to: #{File.expand_path('..', File.dirname(__FILE__))}/config/danarchysys.yml"
|
86
|
-
puts "dAnarchySys setup is finished. Run \'/usr/bin/ruby danarchy_sys/bin/danarchy_sys\' to begin!"
|
data/lib/danarchy_sys/config.rb
DELETED
@@ -1,66 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'yaml'
|
3
|
-
|
4
|
-
# dAnarchy_sys config management
|
5
|
-
class ConfigMgr
|
6
|
-
def initialize
|
7
|
-
@danarchysys_path = File.realpath(File.join(File.dirname(__FILE__), '..', '..'))
|
8
|
-
@config_file = File.join(@danarchysys_path, 'config', 'danarchysys.yml')
|
9
|
-
end
|
10
|
-
|
11
|
-
def config_template
|
12
|
-
config_template = {
|
13
|
-
:connections => {},
|
14
|
-
:settings => {}
|
15
|
-
}
|
16
|
-
end
|
17
|
-
|
18
|
-
def load
|
19
|
-
if File.exists?(@config_file)
|
20
|
-
return YAML.load_file(@config_file)
|
21
|
-
else
|
22
|
-
return config_template
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
def save(param_hash)
|
27
|
-
File.write(@config_file, param_hash.to_yaml)
|
28
|
-
end
|
29
|
-
|
30
|
-
def connection_add(provider, openstack_auth_url, openstack_username, openstack_api_key, openstack_tenant)
|
31
|
-
danarchysys_config = load
|
32
|
-
|
33
|
-
danarchysys_config[:connections][provider.to_sym] = {
|
34
|
-
openstack_auth_url: openstack_auth_url,
|
35
|
-
openstack_username: openstack_username,
|
36
|
-
openstack_api_key: openstack_api_key,
|
37
|
-
openstack_tenant: openstack_tenant
|
38
|
-
}
|
39
|
-
|
40
|
-
danarchysys_config
|
41
|
-
end
|
42
|
-
|
43
|
-
def connection_delete(provider)
|
44
|
-
danarchysys_config = load
|
45
|
-
|
46
|
-
danarchysys_config[:connections].delete(provider.to_sym)
|
47
|
-
|
48
|
-
danarchysys_config
|
49
|
-
end
|
50
|
-
|
51
|
-
def setting_add(name, value)
|
52
|
-
danarchysys_config = load
|
53
|
-
|
54
|
-
danarchysys_config[:settings][name.to_sym] = value
|
55
|
-
|
56
|
-
danarchysys_config
|
57
|
-
end
|
58
|
-
|
59
|
-
def setting_delete(name)
|
60
|
-
danarchysys_config = load
|
61
|
-
|
62
|
-
danarchysys_config[:settings].delete(name.to_sym)
|
63
|
-
|
64
|
-
danarchysys_config
|
65
|
-
end
|
66
|
-
end
|