danarchy_sys 0.4.3 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e3f76e6fb34f0feb1d9f1cf3d322682a57d7d750
4
- data.tar.gz: 9ddddfb4bc3c9736987becf0a56e1f866ecc85a6
3
+ metadata.gz: adecf679edce8c1ee9beb96a09bb6fcc2c0aa4e5
4
+ data.tar.gz: c4dc4fab6af857af55e3df53ffdef2e801047135
5
5
  SHA512:
6
- metadata.gz: 75cd4dbcac1d2079567ba80ebb59a22de3c9c4931440b55202c19f1165f6e2945ebae9387e9a968601a134ae50e72b676d9b3aae2429da530dd4d03040dbb024
7
- data.tar.gz: d28bd7ea89a6352b892ba4e86650aae633b81551dd5c3c039fc8156f50476c298bf7be6614273555a306f2cc8843b55f7d308a601aee842eed2590d0e6757e8d
6
+ metadata.gz: 2ca0a7287b20ed0e6c1f471a53c059cb65369f914a7f5c2cf48d8b7ce23550f3e9a1e4085dfe3d7290c86c2a5bc0dbfad56b2af442edc3f28f8285d68cf3e49d
7
+ data.tar.gz: 4e35702b99b60700de00d0a1ecb87bfa77f7e566dc8e94e845aedfc0a6524e1190b065b2a3bdd78a5abcf3aa1e8e2664852e214eb9ef2868fcabeb700d1c6106
@@ -7,13 +7,13 @@ module DanarchySys
7
7
  class CLI
8
8
  def initialize
9
9
  require_relative 'cli/menus'
10
- require_relative 'cli/providers'
10
+ require_relative 'cli/accounts'
11
11
  require_relative 'cli/instance_manager'
12
12
  require_relative 'cli/keypair_manager'
13
13
 
14
- provider = Providers.chooser
15
- puts "OpenStack -> #{provider}"
16
- @os_compute = DanarchySys::OpenStack::Compute.new provider
14
+ account = Accounts.chooser
15
+ puts "OpenStack -> #{account}"
16
+ @os_compute = DanarchySys::OpenStack::Compute.new account
17
17
  console
18
18
  end
19
19
 
@@ -0,0 +1,34 @@
1
+
2
+ class Accounts
3
+ def self.chooser
4
+ danarchysys_config = DanarchySys::ConfigManager::Config.new
5
+ accounts = Helpers.array_to_numhash(danarchysys_config[:accounts].keys)
6
+ account = 'nil'
7
+
8
+ if accounts.count == 1
9
+ account = accounts[1]
10
+ return account
11
+ end
12
+
13
+ fields = PrintFormats.printf_hash(accounts)
14
+ printf("#{fields}\n", 'Id', 'Account')
15
+ accounts.each do |id, account|
16
+ printf("#{fields}\n", "#{id}.", account)
17
+ end
18
+
19
+ until accounts.values.include?(account)
20
+ print 'Which account should we use? (enter \'exit\' to leave): '
21
+ account = gets.chomp
22
+
23
+ abort('Exiting') if account == 'exit'
24
+
25
+ if account =~ /^[0-9]*$/
26
+ account = accounts[account.to_i]
27
+ else
28
+ account = account.to_sym
29
+ end
30
+ end
31
+
32
+ account
33
+ end
34
+ end
@@ -1,5 +1,5 @@
1
1
  require 'fileutils'
2
- require 'yaml'
2
+ require 'json'
3
3
  require_relative 'config_manager/openstack'
4
4
 
5
5
  # dAnarchy_sys config management
@@ -8,13 +8,13 @@ module DanarchySys
8
8
  class Config
9
9
  def self.new
10
10
  danarchysys_cfg_path = File.join(File.realpath(ENV['HOME']), '.danarchy_sys')
11
- config_yml = File.join(danarchysys_cfg_path, 'danarchysys.yml')
11
+ config_json = File.join(danarchysys_cfg_path, 'danarchy_sys.json')
12
12
 
13
- if File.exists?(config_yml)
14
- return YAML.load_file(config_yml)
13
+ if File.exists?(config_json)
14
+ return JSON.parse(File.read(config_json), symbolize_names: true)
15
15
  else
16
16
  puts 'No existing configuration found!'
17
- return new_config(danarchysys_cfg_path, config_yml)
17
+ return new_config(danarchysys_cfg_path, config_json)
18
18
  end
19
19
  end
20
20
 
@@ -27,11 +27,11 @@ module DanarchySys
27
27
  global_settings: {
28
28
  ssh_key_path: nil
29
29
  },
30
- connections: {}
30
+ accounts: {}
31
31
  }
32
32
  end
33
33
 
34
- def self.new_config(danarchysys_cfg_path, config_yml)
34
+ def self.new_config(danarchysys_cfg_path, config_json)
35
35
  config = config_template
36
36
  ssh_path = File.join(danarchysys_cfg_path, 'ssh')
37
37
 
@@ -68,8 +68,8 @@ module DanarchySys
68
68
  provider = gets.chomp
69
69
 
70
70
  if provider =~ /^[0-9]*$/
71
- if num_providers.keys.include?(provider)
72
- provider = num_providers[provider]
71
+ if num_providers.keys.include?(provider.to_i)
72
+ provider = num_providers[provider.to_i]
73
73
  else
74
74
  print "#{provider} is not a valid Id. "
75
75
  end
@@ -80,28 +80,30 @@ module DanarchySys
80
80
  end
81
81
  end
82
82
  else
83
- provider = providers[0]
83
+ provider = providers[0] # default to OpenStack
84
84
  end
85
85
 
86
- if provider == 'openstack'
87
- puts 'Creating a new OpenStack connection!'
88
- print 'Enter a provider name for this connection: '
86
+ if provider == 'danarchy'
87
+ puts 'Need to implement setup for dAnarchy!'
88
+ elsif provider == 'openstack'
89
+ puts 'Adding a new OpenStack account!'
90
+ print 'Enter a provider name for this account: '
89
91
  provider = gets.chomp
90
- cfg_os = DanarchySys::ConfigManager::OpenStack.new(provider, config)
91
- config = cfg_os.new_connection_prompt
92
+ cfg_openstack = DanarchySys::ConfigManager::OpenStack.new(provider, config)
93
+ config = cfg_openstack.new_account_prompt
92
94
  elsif provider == 'aws'
93
95
  # Placeholder
94
96
  puts 'AWS not yet implemented!'
95
97
  end
96
98
 
97
- save(config_yml, config)
98
- puts "Configuration has been saved to #{config_yml}"
99
+ save(config_json, config)
100
+ puts "Configuration has been saved to #{config_json}"
99
101
  puts "Copy any existing #{provider} SSH keys to: #{ssh_path}"
100
102
  config
101
103
  end
102
104
 
103
105
  def self.save(config_file, param_hash)
104
- File.write(config_file, param_hash.to_yaml)
106
+ File.write(config_file, JSON.pretty_generate(param_hash))
105
107
  end
106
108
 
107
109
 
@@ -3,11 +3,10 @@ module DanarchySys::ConfigManager
3
3
  class OpenStack
4
4
  def initialize(provider, config)
5
5
  (@provider, @config) = provider, config
6
- return
7
6
  end
8
7
 
9
- def add_connection(provider, openstack_auth_url, openstack_username, openstack_api_key, openstack_tenant)
10
- @config[:connections][provider.to_sym] = {
8
+ def add_account(provider, openstack_auth_url, openstack_username, openstack_api_key, openstack_tenant)
9
+ @config[:accounts][provider.to_sym] = {
11
10
  openstack_auth_url: openstack_auth_url,
12
11
  openstack_username: openstack_username,
13
12
  openstack_api_key: openstack_api_key,
@@ -15,14 +14,14 @@ module DanarchySys::ConfigManager
15
14
  }
16
15
  end
17
16
 
18
- def delete_connection
17
+ def delete_account
19
18
  config = load
20
19
  config.delete(@provider)
21
20
  end
22
21
 
23
22
  def add_setting(name, value)
24
23
  config = load
25
- # probably need to check if :settings exist first
24
+ config[@provider][:settings] = {} if !config[@provider][:settings]
26
25
  config[@provider][:settings][name.to_sym] = value
27
26
  end
28
27
 
@@ -32,11 +31,11 @@ module DanarchySys::ConfigManager
32
31
  config[@provider][:settings].delete(name.to_sym)
33
32
  end
34
33
 
35
- def verify_connection
34
+ def verify_account
36
35
 
37
36
  end
38
37
 
39
- def new_connection_prompt
38
+ def new_account_prompt
40
39
  print "OpenStack Auth URL\t(Example: http://openstack-host.com:5000/v2.0/tokens)\nEnter URL: "
41
40
  openstack_auth_url = gets.chomp
42
41
  print 'OpenStack Username: '
@@ -46,7 +45,7 @@ module DanarchySys::ConfigManager
46
45
  print 'OpenStack Tenant ID: '
47
46
  openstack_tenant = gets.chomp
48
47
 
49
- add_connection(@provider, openstack_auth_url, openstack_username, openstack_api_key, openstack_tenant)
48
+ add_account(@provider, openstack_auth_url, openstack_username, openstack_api_key, openstack_tenant)
50
49
  @config
51
50
  end
52
51
  end
@@ -6,9 +6,9 @@ require_relative 'compute/flavors'
6
6
  module DanarchySys
7
7
  module OpenStack
8
8
  class Compute
9
- def initialize(provider)
9
+ def initialize(account)
10
10
  danarchysys_config = DanarchySys::ConfigManager::Config.new
11
- connection = danarchysys_config[:connections][provider.to_sym]
11
+ connection = danarchysys_config[:accounts][account.to_sym]
12
12
  @settings = danarchysys_config[:global_settings]
13
13
  @compute = Fog::Compute::OpenStack.new(connection)
14
14
  @instances = @compute.servers
@@ -1,3 +1,3 @@
1
1
  module DanarchySys
2
- VERSION = '0.4.3'
2
+ VERSION = '0.5.0'
3
3
  end
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.4.3
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan James
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-28 00:00:00.000000000 Z
11
+ date: 2018-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fog-openstack
@@ -94,13 +94,13 @@ files:
94
94
  - danarchy_sys.gemspec
95
95
  - lib/danarchy_sys.rb
96
96
  - lib/danarchy_sys/cli.rb
97
+ - lib/danarchy_sys/cli/accounts.rb
97
98
  - lib/danarchy_sys/cli/instance_manager.rb
98
99
  - lib/danarchy_sys/cli/instance_manager/instance_status.rb
99
100
  - lib/danarchy_sys/cli/instance_manager/prompts_create_instance.rb
100
101
  - lib/danarchy_sys/cli/keypair_manager.rb
101
102
  - lib/danarchy_sys/cli/keypair_manager/keypair_status.rb
102
103
  - lib/danarchy_sys/cli/menus.rb
103
- - lib/danarchy_sys/cli/providers.rb
104
104
  - lib/danarchy_sys/config_manager.rb
105
105
  - lib/danarchy_sys/config_manager/aws.rb
106
106
  - lib/danarchy_sys/config_manager/openstack.rb
@@ -1,34 +0,0 @@
1
-
2
- class Providers
3
- def self.chooser
4
- danarchysys_config = DanarchySys::ConfigManager::Config.new
5
- providers = Helpers.array_to_numhash(danarchysys_config[:connections].keys)
6
- provider = 'nil'
7
-
8
- if providers.count == 1
9
- provider = providers[1]
10
- return provider
11
- end
12
-
13
- fields = PrintFormats.printf_hash(providers)
14
- printf("#{fields}\n", 'Id', 'Provider')
15
- providers.each do |id, provider|
16
- printf("#{fields}\n", "#{id}.", provider)
17
- end
18
-
19
- until providers.values.include?(provider)
20
- print 'Which provider should we use? (enter \'exit\' to leave): '
21
- provider = gets.chomp
22
-
23
- abort('Exiting') if provider == 'exit'
24
-
25
- if provider =~ /^[0-9]*$/
26
- provider = providers[provider.to_i]
27
- else
28
- provider = provider.to_sym
29
- end
30
- end
31
-
32
- provider
33
- end
34
- end