rig 0.3.5 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
data/lib/rig/command.rb CHANGED
@@ -10,6 +10,8 @@ require 'rig/command/options'
10
10
 
11
11
  require 'rig/command/main'
12
12
  require 'rig/command/ssh'
13
+ require 'rig/command/account'
14
+ require 'rig/command/config'
13
15
 
14
16
  require 'rig/command/environment/main'
15
17
  require 'rig/command/environment/list'
@@ -22,23 +22,36 @@ module Rig
22
22
  puts table(columns, *rows)
23
23
  end
24
24
 
25
- def instance_list(list)
25
+ def instance_list(list, detailed=false)
26
26
  rows = []
27
27
  list.each do |server|
28
28
  r = []
29
29
  r << server.tags['Name']
30
30
  r << server.tags['Environment']
31
31
  r << server.tags['Role']
32
- r << (server.tags['Protected'] ? '*' : '')
32
+ r << (server.tags['Protected'] ? 'true' : '')
33
33
  r << server.public_ip_address.to_s
34
- r << server.private_ip_address.to_s
34
+ if detailed
35
+ r << server.private_ip_address.to_s
36
+ end
35
37
  r << server.flavor_id.to_s
36
38
  r << server.id.to_s
37
39
  r << server.state.to_s.downcase
38
40
  rows << r
39
41
  end
40
42
 
41
- print_table(%w{Name Environment Role Pr PublicIP PrivateIP Size InstanceID State}, rows)
43
+ cols = []
44
+ cols << "Name"
45
+ cols << "Environment"
46
+ cols << "Role"
47
+ cols << "Protected"
48
+ cols << "Public IP"
49
+ cols << "Private IP" if detailed
50
+ cols << "Size"
51
+ cols << "Instance ID"
52
+ cols << "State"
53
+
54
+ print_table(cols, rows)
42
55
  end
43
56
 
44
57
  def execute
@@ -0,0 +1,48 @@
1
+ module Rig
2
+ module Command
3
+ module Account
4
+ class List < Abstract
5
+ def execute
6
+ list = Rig::Model::Account.list
7
+ rows = []
8
+ list.each do |n, f|
9
+ rows << [(Rig.config.default_account == n.to_s), (Rig.account.name == n.to_s), n, f]
10
+ end
11
+ print_table(%w{Default Current Name Location}, rows)
12
+ end
13
+ end
14
+
15
+ # TODO: figure out how to make this work with YAML references
16
+ #class Change < Abstract
17
+ # PROPS = %w{awsid awskey dnszone region}
18
+ # parameter "PROPERTY", "the property of config to change, must be one of #{PROPS.inspect}"
19
+ # parameter "VALUE", "the value to set for the property"
20
+ # def execute
21
+ # case property
22
+ # when "awsid"
23
+ # Rig.account.common.aws_access_key_id = value
24
+ # Rig.save_account
25
+ # when "awskey"
26
+ # Rig.account.common.aws_secret_access_key = value
27
+ # Rig.save_account
28
+ # when "dnszone"
29
+ # Rig.account.dns_zone = value
30
+ # Rig.save_account
31
+ # when "region"
32
+ # Rig.account.region = value
33
+ # Rig.save_account
34
+ # else
35
+ # puts "Property #{property} not supported"
36
+ # end
37
+ # end
38
+ #end
39
+
40
+ class Main < Abstract
41
+ subcommand "list", "list the accounts available", List
42
+ #subcommand "change", "change account configuration values", Change
43
+ self.default_subcommand = "list"
44
+ end
45
+ end
46
+ end
47
+ end
48
+ Rig::Command::Main.subcommand "account", "manage rig account files", Rig::Command::Account::Main
@@ -0,0 +1,37 @@
1
+ module Rig
2
+ module Command
3
+ module Config
4
+ class Change < Abstract
5
+ PROPS = %w{knife user}
6
+ parameter "PROPERTY", "the property of config to change, must be one of #{PROPS.inspect}"
7
+ parameter "VALUE", "the value to set for the property"
8
+ def execute
9
+ case property
10
+ when "knife"
11
+ Rig.config.chef.knife = value
12
+ Rig.save_configuration
13
+ when "user"
14
+ Rig.config.ssh.user = value
15
+ Rig.save_configuration
16
+ else
17
+ puts "Property #{property} not supported"
18
+ end
19
+ end
20
+ end
21
+
22
+ class Dump < Abstract
23
+ def execute
24
+ puts "Rig Version: #{Rig::Version::STRING}"
25
+ puts Rig.config.to_yaml
26
+ end
27
+ end
28
+
29
+ class Main < Abstract
30
+ subcommand "dump", "dump configuration as yaml", Dump
31
+ subcommand "change", "Change configuration values from the command line", Change
32
+ self.default_subcommand = "dump"
33
+ end
34
+ end
35
+ end
36
+ end
37
+ Rig::Command::Main.subcommand "config", "manage rig configuration file", Rig::Command::Config::Main
@@ -6,6 +6,7 @@ module Rig
6
6
  class List < Abstract
7
7
  include Options::ShowAll
8
8
 
9
+ option %w{-d --detailed}, :flag, "show more information in table"
9
10
  parameter "[ENV]", "environment"
10
11
 
11
12
  def execute
@@ -15,7 +16,7 @@ module Rig
15
16
  filters["tag:Environment"] = env if env
16
17
 
17
18
  list = connection.servers.all(filters)
18
- instance_list(list)
19
+ instance_list(list, detailed?)
19
20
  end
20
21
  end
21
22
  end
@@ -3,22 +3,6 @@ require 'awesome_print'
3
3
  module Rig
4
4
  module Command
5
5
  class Main < Abstract
6
- option %w{--config}, :flag, "print configuration and exit" do |c|
7
- puts "Rig Version: #{Rig::Version::STRING}"
8
- puts Rig.config.to_yaml
9
- exit(0)
10
- end
11
-
12
- subcommand "accounts", "show account list" do
13
- def execute
14
- list = Rig::Model::Account.list
15
- rows = []
16
- list.each do |n, f|
17
- rows << [(Rig.config.default_account == n.to_s), (Rig.account.name == n.to_s), n, f]
18
- end
19
- print_table(%w{Default Current Name Location}, rows)
20
- end
21
- end
22
6
 
23
7
  subcommand "chef", "test chef configuration" do
24
8
  def execute
data/lib/rig/config.rb CHANGED
@@ -23,10 +23,27 @@ module Rig
23
23
  end
24
24
  end
25
25
 
26
+ def save_configuration
27
+ yaml = config.to_yaml
28
+ file = "#{configdir}/config.yml"
29
+ back = "#{file}.#{Time.now.to_i}"
30
+ puts "backing up configuration -> #{back}"
31
+ FileUtils.cp(file, back)
32
+ File.open(file, "w") {|f| f.write(yaml+"\n")}
33
+ puts "new configuration saved."
34
+ end
35
+
26
36
  def account(name=get_account)
27
- a = Rig::Model::Account.load(name)
28
- a.name = name
29
- a
37
+ @account ||= begin
38
+ a = Rig::Model::Account.load(name)
39
+ a.name = name
40
+ a
41
+ end
42
+ end
43
+
44
+ def save_account
45
+ name = Rig.account.name
46
+ Rig::Model::Account.save(name, Rig.account)
30
47
  end
31
48
 
32
49
  def get_config(name)
@@ -15,6 +15,16 @@ module Rig
15
15
  end
16
16
  end
17
17
 
18
+ def save(name, data)
19
+ yaml = data.to_yaml
20
+ file = "#{dir}/#{name}.yml"
21
+ back = "#{file}.#{Time.now.to_i}"
22
+ puts "backing up configuration -> #{back}"
23
+ FileUtils.cp(file, back)
24
+ File.open(file, "w") {|f| f.write(yaml+"\n")}
25
+ puts "new configuration saved."
26
+ end
27
+
18
28
  private
19
29
  def dir
20
30
  "#{Rig.configdir}/accounts"
data/lib/rig/version.rb CHANGED
@@ -3,7 +3,7 @@ unless defined?(Rig::Version)
3
3
  module Version
4
4
  MAJOR = 0
5
5
  MINOR = 3
6
- TINY = 5
6
+ TINY = 6
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rig
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 31
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 5
10
- version: 0.3.5
9
+ - 6
10
+ version: 0.3.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Shawn Catanzarite
@@ -126,10 +126,12 @@ files:
126
126
  - lib/rig/chef.rb
127
127
  - lib/rig/command.rb
128
128
  - lib/rig/command/abstract.rb
129
+ - lib/rig/command/account.rb
129
130
  - lib/rig/command/balancer/destroy.rb
130
131
  - lib/rig/command/balancer/list.rb
131
132
  - lib/rig/command/balancer/main.rb
132
133
  - lib/rig/command/balancer/view.rb
134
+ - lib/rig/command/config.rb
133
135
  - lib/rig/command/dns/create.rb
134
136
  - lib/rig/command/dns/destroy.rb
135
137
  - lib/rig/command/dns/edit.rb