cluster_bomb 0.2.6
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.
- data/bin/cb +3 -0
- data/lib/cluster_bomb/actest.rb +63 -0
- data/lib/cluster_bomb/bomb.rb +256 -0
- data/lib/cluster_bomb/bomb_shell.rb +325 -0
- data/lib/cluster_bomb/cli.rb +82 -0
- data/lib/cluster_bomb/cluster.rb +298 -0
- data/lib/cluster_bomb/configuration.rb +83 -0
- data/lib/cluster_bomb/dispatcher.rb +110 -0
- data/lib/cluster_bomb/history.rb +42 -0
- data/lib/cluster_bomb/logging.rb +35 -0
- data/lib/cluster_bomb/roles.rb +56 -0
- data/lib/cluster_bomb/shawties.rb +46 -0
- data/lib/cluster_bomb/stdtasks.rb +16 -0
- metadata +122 -0
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'cluster_bomb/configuration.rb'
|
2
|
+
module ClusterBomb
|
3
|
+
module Shawties
|
4
|
+
SHAWTIES_FILE_NAME=File.join(Configuration::HOME,'shawties')
|
5
|
+
|
6
|
+
def define_shawtie(name, command)
|
7
|
+
@shawties ||={}
|
8
|
+
unless command.nil?
|
9
|
+
@shawties[name]=command
|
10
|
+
else
|
11
|
+
@shawties.delete name
|
12
|
+
end
|
13
|
+
save_shawties
|
14
|
+
end
|
15
|
+
def get_shawtie(name)
|
16
|
+
@shawties[name]
|
17
|
+
end
|
18
|
+
def load_shawties!
|
19
|
+
@shawties ||={}
|
20
|
+
Configuration.check_dir
|
21
|
+
begin
|
22
|
+
buf = File.read(SHAWTIES_FILE_NAME)
|
23
|
+
rescue
|
24
|
+
`touch #{SHAWTIES_FILE_NAME}`
|
25
|
+
buf = File.read(SHAWTIES_FILE_NAME)
|
26
|
+
end
|
27
|
+
unless buf.empty?
|
28
|
+
@shawties = YAML.load(buf)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
def save_shawties
|
32
|
+
Configuration::check_dir
|
33
|
+
File.open(SHAWTIES_FILE_NAME,"w") {|f| f.write(@shawties.to_yaml)}
|
34
|
+
end
|
35
|
+
def shawtie_names
|
36
|
+
(@shawties.keys + ['d','l']).sort
|
37
|
+
end
|
38
|
+
def shawties_list
|
39
|
+
keys = @shawties.keys.sort
|
40
|
+
puts "Available shorts:"
|
41
|
+
keys.each do |k|
|
42
|
+
puts "#{k}\n #{@shawties[k]}"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
group "Built in tasks"
|
2
|
+
desc "Quick help"
|
3
|
+
task :help do
|
4
|
+
puts <<-EOHELP
|
5
|
+
syntax: cb <task> [options]
|
6
|
+
options:
|
7
|
+
cp status roles=<role list> ex. roles=database,webservers
|
8
|
+
EOHELP
|
9
|
+
end
|
10
|
+
|
11
|
+
desc "BombShell -- the cluster bomb shell interface."
|
12
|
+
task :shell do
|
13
|
+
require 'cluster_bomb/bomb_shell'
|
14
|
+
b = ClusterBomb::BombShell.new(self)
|
15
|
+
b.loop
|
16
|
+
end
|
metadata
ADDED
@@ -0,0 +1,122 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cluster_bomb
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 2
|
8
|
+
- 6
|
9
|
+
version: 0.2.6
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- hayzeus
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2011-11-10 00:00:00 -06:00
|
18
|
+
default_executable: cb
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: net-ssh
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
segments:
|
29
|
+
- 2
|
30
|
+
- 0
|
31
|
+
- 0
|
32
|
+
version: 2.0.0
|
33
|
+
type: :runtime
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: net-scp
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
segments:
|
44
|
+
- 1
|
45
|
+
- 0
|
46
|
+
- 0
|
47
|
+
version: 1.0.0
|
48
|
+
type: :runtime
|
49
|
+
version_requirements: *id002
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
name: net-sftp
|
52
|
+
prerelease: false
|
53
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
segments:
|
59
|
+
- 2
|
60
|
+
- 0
|
61
|
+
- 0
|
62
|
+
version: 2.0.0
|
63
|
+
type: :runtime
|
64
|
+
version_requirements: *id003
|
65
|
+
description: Capistrano-like multi-host shell and task execution
|
66
|
+
email: mikey@swampgas.com
|
67
|
+
executables:
|
68
|
+
- cb
|
69
|
+
extensions: []
|
70
|
+
|
71
|
+
extra_rdoc_files: []
|
72
|
+
|
73
|
+
files:
|
74
|
+
- bin/cb
|
75
|
+
- lib/cluster_bomb/actest.rb
|
76
|
+
- lib/cluster_bomb/bomb.rb
|
77
|
+
- lib/cluster_bomb/bomb_shell.rb
|
78
|
+
- lib/cluster_bomb/cli.rb
|
79
|
+
- lib/cluster_bomb/cluster.rb
|
80
|
+
- lib/cluster_bomb/configuration.rb
|
81
|
+
- lib/cluster_bomb/dispatcher.rb
|
82
|
+
- lib/cluster_bomb/history.rb
|
83
|
+
- lib/cluster_bomb/logging.rb
|
84
|
+
- lib/cluster_bomb/roles.rb
|
85
|
+
- lib/cluster_bomb/shawties.rb
|
86
|
+
- lib/cluster_bomb/stdtasks.rb
|
87
|
+
has_rdoc: true
|
88
|
+
homepage: http://www.swampgas.com
|
89
|
+
licenses: []
|
90
|
+
|
91
|
+
post_install_message:
|
92
|
+
rdoc_options: []
|
93
|
+
|
94
|
+
require_paths:
|
95
|
+
- lib
|
96
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ">="
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
segments:
|
102
|
+
- 1
|
103
|
+
- 8
|
104
|
+
- 6
|
105
|
+
version: 1.8.6
|
106
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
107
|
+
none: false
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
segments:
|
112
|
+
- 0
|
113
|
+
version: "0"
|
114
|
+
requirements: []
|
115
|
+
|
116
|
+
rubyforge_project:
|
117
|
+
rubygems_version: 1.3.7.1
|
118
|
+
signing_key:
|
119
|
+
specification_version: 3
|
120
|
+
summary: Do stuff across clusters
|
121
|
+
test_files: []
|
122
|
+
|