the-maestro 0.2.0

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.
Files changed (60) hide show
  1. data/.document +5 -0
  2. data/.gitignore +25 -0
  3. data/LICENSE +23 -0
  4. data/README.rdoc +378 -0
  5. data/Rakefile +116 -0
  6. data/VERSION +1 -0
  7. data/lib/maestro.rb +354 -0
  8. data/lib/maestro/cloud.rb +384 -0
  9. data/lib/maestro/cloud/aws.rb +1231 -0
  10. data/lib/maestro/dsl_property.rb +15 -0
  11. data/lib/maestro/log4r/console_formatter.rb +18 -0
  12. data/lib/maestro/log4r/file_formatter.rb +24 -0
  13. data/lib/maestro/node.rb +123 -0
  14. data/lib/maestro/operating_system.rb +53 -0
  15. data/lib/maestro/operating_system/cent_os.rb +23 -0
  16. data/lib/maestro/operating_system/debian.rb +40 -0
  17. data/lib/maestro/operating_system/fedora.rb +23 -0
  18. data/lib/maestro/operating_system/ubuntu.rb +100 -0
  19. data/lib/maestro/role.rb +36 -0
  20. data/lib/maestro/tasks.rb +52 -0
  21. data/lib/maestro/validator.rb +32 -0
  22. data/rails/init.rb +1 -0
  23. data/test/integration/base_aws.rb +156 -0
  24. data/test/integration/fixtures/config/maestro/cookbooks/emacs/metadata.json +41 -0
  25. data/test/integration/fixtures/config/maestro/cookbooks/emacs/metadata.rb +3 -0
  26. data/test/integration/fixtures/config/maestro/cookbooks/emacs/recipes/default.rb +21 -0
  27. data/test/integration/fixtures/config/maestro/roles/default.json +9 -0
  28. data/test/integration/fixtures/config/maestro/roles/web.json +9 -0
  29. data/test/integration/helper.rb +8 -0
  30. data/test/integration/test_aws_cloud.rb +805 -0
  31. data/test/integration/test_cent_os.rb +104 -0
  32. data/test/integration/test_debian.rb +119 -0
  33. data/test/integration/test_fedora.rb +104 -0
  34. data/test/integration/test_ubuntu.rb +149 -0
  35. data/test/unit/fixtures/invalid-clouds-not-a-directory/config/maestro/clouds +1 -0
  36. data/test/unit/fixtures/invalid-cookbooks-not-a-directory/config/maestro/cookbooks +0 -0
  37. data/test/unit/fixtures/invalid-maestro-not-a-directory/config/maestro +0 -0
  38. data/test/unit/fixtures/invalid-missing-cookbooks/config/maestro/clouds/valid.yml +21 -0
  39. data/test/unit/fixtures/invalid-missing-roles/config/maestro/clouds/valid.yml +21 -0
  40. data/test/unit/fixtures/invalid-roles-not-a-directory/config/maestro/roles +1 -0
  41. data/test/unit/fixtures/ssh/id_rsa-maestro-test-keypair +27 -0
  42. data/test/unit/helper.rb +6 -0
  43. data/test/unit/test_aws_cloud.rb +133 -0
  44. data/test/unit/test_aws_ec2_node.rb +76 -0
  45. data/test/unit/test_aws_elb_node.rb +221 -0
  46. data/test/unit/test_aws_rds_node.rb +380 -0
  47. data/test/unit/test_cent_os.rb +28 -0
  48. data/test/unit/test_cloud.rb +142 -0
  49. data/test/unit/test_debian.rb +62 -0
  50. data/test/unit/test_fedora.rb +28 -0
  51. data/test/unit/test_invalid_mode.rb +11 -0
  52. data/test/unit/test_maestro.rb +140 -0
  53. data/test/unit/test_node.rb +50 -0
  54. data/test/unit/test_operating_system.rb +19 -0
  55. data/test/unit/test_rails_mode.rb +77 -0
  56. data/test/unit/test_role.rb +59 -0
  57. data/test/unit/test_standalone_mode.rb +75 -0
  58. data/test/unit/test_ubuntu.rb +95 -0
  59. data/the-maestro.gemspec +150 -0
  60. metadata +228 -0
@@ -0,0 +1,75 @@
1
+ require 'helper'
2
+
3
+ # Unit tests for standalone mode
4
+ class TestStandaloneMode < Test::Unit::TestCase
5
+
6
+ context "Standalone mode" do
7
+ teardown do
8
+ ENV.delete Maestro::MAESTRO_DIR_ENV_VAR
9
+ end
10
+
11
+ should "be invalid due to missing maestro directory env var" do
12
+ result = Maestro.validate_configs
13
+ assert !result[0], result[1]
14
+ assert result[1].any? {|message| !message.index("Maestro not configured correctly").nil? }
15
+ end
16
+
17
+ should "be invalid due to missing maestro directory" do
18
+ ENV[Maestro::MAESTRO_DIR_ENV_VAR] = File.join(File.dirname(File.expand_path(__FILE__)), 'fixtures', 'invalid-missing-maestro')
19
+ result = Maestro.validate_configs
20
+ assert !result[0], result[1]
21
+ assert result[1].any? {|message| !message.index("Maestro config directory does not exist").nil? }
22
+ end
23
+
24
+ should "be invalid due to maestro not a directory" do
25
+ ENV[Maestro::MAESTRO_DIR_ENV_VAR] = File.join(File.dirname(File.expand_path(__FILE__)), 'fixtures', 'invalid-maestro-not-a-directory')
26
+ result = Maestro.validate_configs
27
+ assert !result[0], result[1]
28
+ assert result[1].any? {|message| !message.index("Maestro config directory is not a directory").nil? }
29
+ end
30
+
31
+ should "be invalid due to missing clouds directory" do
32
+ ENV[Maestro::MAESTRO_DIR_ENV_VAR] = File.join(File.dirname(File.expand_path(__FILE__)), 'fixtures', 'invalid-missing-clouds')
33
+ result = Maestro.validate_configs
34
+ assert !result[0], result[1]
35
+ assert result[1].any? {|message| !message.index("Maestro clouds config directory does not exist").nil? }
36
+ end
37
+
38
+ should "be invalid due to clouds not a directory" do
39
+ ENV[Maestro::MAESTRO_DIR_ENV_VAR] = File.join(File.dirname(File.expand_path(__FILE__)), 'fixtures', 'invalid-clouds-not-a-directory')
40
+ result = Maestro.validate_configs
41
+ assert !result[0], result[1]
42
+ assert result[1].any? {|message| !message.index("Maestro clouds config directory is not a directory").nil? }
43
+ end
44
+
45
+ should "be invalid due to missing cookbooks directory" do
46
+ ENV[Maestro::MAESTRO_DIR_ENV_VAR] = File.join(File.dirname(File.expand_path(__FILE__)), 'fixtures', 'invalid-missing-cookbooks')
47
+ result = Maestro.validate_configs
48
+ assert !result[0], result[1]
49
+ assert result[1].any? {|message| !message.index("Chef cookbooks directory does not exist").nil? }
50
+ end
51
+
52
+ should "be invalid due to cookbooks not a directory" do
53
+ ENV[Maestro::MAESTRO_DIR_ENV_VAR] = File.join(File.dirname(File.expand_path(__FILE__)), 'fixtures', 'invalid-cookbooks-not-a-directory')
54
+ result = Maestro.validate_configs
55
+ assert !result[0], result[1]
56
+ assert result[1].any? {|message| !message.index("Chef cookbooks directory is not a directory").nil? }
57
+ end
58
+
59
+ should "be invalid due to missing roles directory" do
60
+ ENV[Maestro::MAESTRO_DIR_ENV_VAR] = File.join(File.dirname(File.expand_path(__FILE__)), 'fixtures', 'invalid-missing-roles')
61
+ result = Maestro.validate_configs
62
+ assert !result[0], result[1]
63
+ assert result[1].any? {|message| !message.index("Chef roles directory does not exist").nil? }
64
+ end
65
+
66
+ should "be invalid due to roles not a directory" do
67
+ ENV[Maestro::MAESTRO_DIR_ENV_VAR] = File.join(File.dirname(File.expand_path(__FILE__)), 'fixtures', 'invalid-roles-not-a-directory')
68
+ result = Maestro.validate_configs
69
+ assert !result[0], result[1]
70
+ assert result[1].any? {|message| !message.index("Chef roles directory is not a directory").nil? }
71
+ end
72
+
73
+ end
74
+
75
+ end
@@ -0,0 +1,95 @@
1
+ require 'helper'
2
+
3
+ # Unit tests for Maestro::OperatingSystem::Ubuntu
4
+ class TestUbuntu < Test::Unit::TestCase
5
+
6
+ context "Maestro::OperatingSystem::Ubuntu" do
7
+ setup do
8
+ end
9
+
10
+ context "Ubuntu 9.10" do
11
+ should "create from etc/issue string" do
12
+ os = Maestro::OperatingSystem.create_from_etc_issue("Ubuntu 9.10")
13
+ assert os.instance_of? Maestro::OperatingSystem::Ubuntu910
14
+ end
15
+
16
+ should "respond to chef_install_script" do
17
+ os = Maestro::OperatingSystem.create_from_etc_issue("Ubuntu 9.10")
18
+ assert os.respond_to? :chef_install_script
19
+ end
20
+
21
+ should "respond to etc_issue_str" do
22
+ os = Maestro::OperatingSystem.create_from_etc_issue("Ubuntu 9.10")
23
+ assert os.respond_to? :etc_issue_string
24
+ end
25
+ end
26
+
27
+ context "Ubuntu 9.04" do
28
+ should "create from etc/issue string" do
29
+ os = Maestro::OperatingSystem.create_from_etc_issue("Ubuntu 9.04")
30
+ assert os.instance_of? Maestro::OperatingSystem::Ubuntu904
31
+ end
32
+
33
+ should "respond to chef_install_script" do
34
+ os = Maestro::OperatingSystem.create_from_etc_issue("Ubuntu 9.04")
35
+ assert os.respond_to? :chef_install_script
36
+ end
37
+
38
+ should "respond to etc_issue_str" do
39
+ os = Maestro::OperatingSystem.create_from_etc_issue("Ubuntu 9.04")
40
+ assert os.respond_to? :etc_issue_string
41
+ end
42
+ end
43
+
44
+ context "Ubuntu 8.10" do
45
+ should "create from etc/issue string" do
46
+ os = Maestro::OperatingSystem.create_from_etc_issue("Ubuntu 8.10")
47
+ assert os.instance_of? Maestro::OperatingSystem::Ubuntu810
48
+ end
49
+
50
+ should "respond to chef_install_script" do
51
+ os = Maestro::OperatingSystem.create_from_etc_issue("Ubuntu 8.10")
52
+ assert os.respond_to? :chef_install_script
53
+ end
54
+
55
+ should "respond to etc_issue_str" do
56
+ os = Maestro::OperatingSystem.create_from_etc_issue("Ubuntu 8.10")
57
+ assert os.respond_to? :etc_issue_string
58
+ end
59
+ end
60
+
61
+ context "Ubuntu 8.04" do
62
+ should "create from etc/issue string" do
63
+ os = Maestro::OperatingSystem.create_from_etc_issue("Ubuntu 8.04")
64
+ assert os.instance_of? Maestro::OperatingSystem::Ubuntu804
65
+ end
66
+
67
+ should "respond to chef_install_script" do
68
+ os = Maestro::OperatingSystem.create_from_etc_issue("Ubuntu 8.04")
69
+ assert os.respond_to? :chef_install_script
70
+ end
71
+
72
+ should "respond to etc_issue_str" do
73
+ os = Maestro::OperatingSystem.create_from_etc_issue("Ubuntu 8.04")
74
+ assert os.respond_to? :etc_issue_string
75
+ end
76
+ end
77
+
78
+ context "Ubuntu" do
79
+ should "create from etc/issue string" do
80
+ os = Maestro::OperatingSystem.create_from_etc_issue("Ubuntu")
81
+ assert os.instance_of? Maestro::OperatingSystem::Ubuntu
82
+ end
83
+
84
+ should "respond to chef_install_script" do
85
+ os = Maestro::OperatingSystem.create_from_etc_issue("Ubuntu")
86
+ assert os.respond_to? :chef_install_script
87
+ end
88
+
89
+ should "respond to etc_issue_str" do
90
+ os = Maestro::OperatingSystem.create_from_etc_issue("Ubuntu")
91
+ assert os.respond_to? :etc_issue_string
92
+ end
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,150 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{the-maestro}
8
+ s.version = "0.2.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Brian Ploetz"]
12
+ s.date = %q{2010-05-21}
13
+ s.description = %q{Maestro is a cloud provisioning, configuration, and deployment utility for your Ruby and Ruby On Rails applications.}
14
+ s.extra_rdoc_files = [
15
+ "LICENSE",
16
+ "README.rdoc"
17
+ ]
18
+ s.files = [
19
+ ".document",
20
+ ".gitignore",
21
+ "LICENSE",
22
+ "README.rdoc",
23
+ "Rakefile",
24
+ "VERSION",
25
+ "lib/maestro.rb",
26
+ "lib/maestro/cloud.rb",
27
+ "lib/maestro/cloud/aws.rb",
28
+ "lib/maestro/dsl_property.rb",
29
+ "lib/maestro/log4r/console_formatter.rb",
30
+ "lib/maestro/log4r/file_formatter.rb",
31
+ "lib/maestro/node.rb",
32
+ "lib/maestro/operating_system.rb",
33
+ "lib/maestro/operating_system/cent_os.rb",
34
+ "lib/maestro/operating_system/debian.rb",
35
+ "lib/maestro/operating_system/fedora.rb",
36
+ "lib/maestro/operating_system/ubuntu.rb",
37
+ "lib/maestro/role.rb",
38
+ "lib/maestro/tasks.rb",
39
+ "lib/maestro/validator.rb",
40
+ "rails/init.rb",
41
+ "test/integration/base_aws.rb",
42
+ "test/integration/fixtures/config/maestro/cookbooks/emacs/metadata.json",
43
+ "test/integration/fixtures/config/maestro/cookbooks/emacs/metadata.rb",
44
+ "test/integration/fixtures/config/maestro/cookbooks/emacs/recipes/default.rb",
45
+ "test/integration/fixtures/config/maestro/roles/default.json",
46
+ "test/integration/fixtures/config/maestro/roles/web.json",
47
+ "test/integration/helper.rb",
48
+ "test/integration/test_aws_cloud.rb",
49
+ "test/integration/test_cent_os.rb",
50
+ "test/integration/test_debian.rb",
51
+ "test/integration/test_fedora.rb",
52
+ "test/integration/test_ubuntu.rb",
53
+ "test/unit/fixtures/invalid-clouds-not-a-directory/config/maestro/clouds",
54
+ "test/unit/fixtures/invalid-cookbooks-not-a-directory/config/maestro/cookbooks",
55
+ "test/unit/fixtures/invalid-maestro-not-a-directory/config/maestro",
56
+ "test/unit/fixtures/invalid-missing-cookbooks/config/maestro/clouds/valid.yml",
57
+ "test/unit/fixtures/invalid-missing-roles/config/maestro/clouds/valid.yml",
58
+ "test/unit/fixtures/invalid-roles-not-a-directory/config/maestro/roles",
59
+ "test/unit/fixtures/ssh/id_rsa-maestro-test-keypair",
60
+ "test/unit/helper.rb",
61
+ "test/unit/test_aws_cloud.rb",
62
+ "test/unit/test_aws_ec2_node.rb",
63
+ "test/unit/test_aws_elb_node.rb",
64
+ "test/unit/test_aws_rds_node.rb",
65
+ "test/unit/test_cent_os.rb",
66
+ "test/unit/test_cloud.rb",
67
+ "test/unit/test_debian.rb",
68
+ "test/unit/test_fedora.rb",
69
+ "test/unit/test_invalid_mode.rb",
70
+ "test/unit/test_maestro.rb",
71
+ "test/unit/test_node.rb",
72
+ "test/unit/test_operating_system.rb",
73
+ "test/unit/test_rails_mode.rb",
74
+ "test/unit/test_role.rb",
75
+ "test/unit/test_standalone_mode.rb",
76
+ "test/unit/test_ubuntu.rb",
77
+ "the-maestro.gemspec"
78
+ ]
79
+ s.homepage = %q{http://github.com/bploetz/maestro}
80
+ s.rdoc_options = ["--charset=UTF-8"]
81
+ s.require_paths = ["lib"]
82
+ s.rubygems_version = %q{1.3.5}
83
+ s.summary = %q{Maestro: Conduct your clouds.}
84
+ s.test_files = [
85
+ "test/integration/base_aws.rb",
86
+ "test/integration/fixtures/config/maestro/cookbooks/emacs/metadata.rb",
87
+ "test/integration/fixtures/config/maestro/cookbooks/emacs/recipes/default.rb",
88
+ "test/integration/helper.rb",
89
+ "test/integration/test_aws_cloud.rb",
90
+ "test/integration/test_cent_os.rb",
91
+ "test/integration/test_debian.rb",
92
+ "test/integration/test_fedora.rb",
93
+ "test/integration/test_ubuntu.rb",
94
+ "test/unit/helper.rb",
95
+ "test/unit/test_aws_cloud.rb",
96
+ "test/unit/test_aws_ec2_node.rb",
97
+ "test/unit/test_aws_elb_node.rb",
98
+ "test/unit/test_aws_rds_node.rb",
99
+ "test/unit/test_cent_os.rb",
100
+ "test/unit/test_cloud.rb",
101
+ "test/unit/test_debian.rb",
102
+ "test/unit/test_fedora.rb",
103
+ "test/unit/test_invalid_mode.rb",
104
+ "test/unit/test_maestro.rb",
105
+ "test/unit/test_node.rb",
106
+ "test/unit/test_operating_system.rb",
107
+ "test/unit/test_rails_mode.rb",
108
+ "test/unit/test_role.rb",
109
+ "test/unit/test_standalone_mode.rb",
110
+ "test/unit/test_ubuntu.rb"
111
+ ]
112
+
113
+ if s.respond_to? :specification_version then
114
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
115
+ s.specification_version = 3
116
+
117
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
118
+ s.add_development_dependency(%q<thoughtbot-shoulda>, ["= 2.10.2"])
119
+ s.add_runtime_dependency(%q<net-ssh>, ["= 2.0.15"])
120
+ s.add_runtime_dependency(%q<net-scp>, ["= 1.0.2"])
121
+ s.add_runtime_dependency(%q<net-ssh-multi>, ["= 1.0.1"])
122
+ s.add_runtime_dependency(%q<net-ssh-gateway>, ["= 1.0.1"])
123
+ s.add_runtime_dependency(%q<archive-tar-minitar>, ["= 0.5.2"])
124
+ s.add_runtime_dependency(%q<amazon-ec2>, ["= 0.9.11"])
125
+ s.add_runtime_dependency(%q<aws-s3>, ["= 0.6.2"])
126
+ s.add_runtime_dependency(%q<log4r>, ["= 1.1.7"])
127
+ else
128
+ s.add_dependency(%q<thoughtbot-shoulda>, ["= 2.10.2"])
129
+ s.add_dependency(%q<net-ssh>, ["= 2.0.15"])
130
+ s.add_dependency(%q<net-scp>, ["= 1.0.2"])
131
+ s.add_dependency(%q<net-ssh-multi>, ["= 1.0.1"])
132
+ s.add_dependency(%q<net-ssh-gateway>, ["= 1.0.1"])
133
+ s.add_dependency(%q<archive-tar-minitar>, ["= 0.5.2"])
134
+ s.add_dependency(%q<amazon-ec2>, ["= 0.9.11"])
135
+ s.add_dependency(%q<aws-s3>, ["= 0.6.2"])
136
+ s.add_dependency(%q<log4r>, ["= 1.1.7"])
137
+ end
138
+ else
139
+ s.add_dependency(%q<thoughtbot-shoulda>, ["= 2.10.2"])
140
+ s.add_dependency(%q<net-ssh>, ["= 2.0.15"])
141
+ s.add_dependency(%q<net-scp>, ["= 1.0.2"])
142
+ s.add_dependency(%q<net-ssh-multi>, ["= 1.0.1"])
143
+ s.add_dependency(%q<net-ssh-gateway>, ["= 1.0.1"])
144
+ s.add_dependency(%q<archive-tar-minitar>, ["= 0.5.2"])
145
+ s.add_dependency(%q<amazon-ec2>, ["= 0.9.11"])
146
+ s.add_dependency(%q<aws-s3>, ["= 0.6.2"])
147
+ s.add_dependency(%q<log4r>, ["= 1.1.7"])
148
+ end
149
+ end
150
+
metadata ADDED
@@ -0,0 +1,228 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: the-maestro
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Brian Ploetz
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-05-21 00:00:00 -04:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: thoughtbot-shoulda
17
+ type: :development
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - "="
22
+ - !ruby/object:Gem::Version
23
+ version: 2.10.2
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: net-ssh
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "="
32
+ - !ruby/object:Gem::Version
33
+ version: 2.0.15
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: net-scp
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "="
42
+ - !ruby/object:Gem::Version
43
+ version: 1.0.2
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: net-ssh-multi
47
+ type: :runtime
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "="
52
+ - !ruby/object:Gem::Version
53
+ version: 1.0.1
54
+ version:
55
+ - !ruby/object:Gem::Dependency
56
+ name: net-ssh-gateway
57
+ type: :runtime
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "="
62
+ - !ruby/object:Gem::Version
63
+ version: 1.0.1
64
+ version:
65
+ - !ruby/object:Gem::Dependency
66
+ name: archive-tar-minitar
67
+ type: :runtime
68
+ version_requirement:
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "="
72
+ - !ruby/object:Gem::Version
73
+ version: 0.5.2
74
+ version:
75
+ - !ruby/object:Gem::Dependency
76
+ name: amazon-ec2
77
+ type: :runtime
78
+ version_requirement:
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "="
82
+ - !ruby/object:Gem::Version
83
+ version: 0.9.11
84
+ version:
85
+ - !ruby/object:Gem::Dependency
86
+ name: aws-s3
87
+ type: :runtime
88
+ version_requirement:
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - "="
92
+ - !ruby/object:Gem::Version
93
+ version: 0.6.2
94
+ version:
95
+ - !ruby/object:Gem::Dependency
96
+ name: log4r
97
+ type: :runtime
98
+ version_requirement:
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "="
102
+ - !ruby/object:Gem::Version
103
+ version: 1.1.7
104
+ version:
105
+ description: Maestro is a cloud provisioning, configuration, and deployment utility for your Ruby and Ruby On Rails applications.
106
+ email:
107
+ executables: []
108
+
109
+ extensions: []
110
+
111
+ extra_rdoc_files:
112
+ - LICENSE
113
+ - README.rdoc
114
+ files:
115
+ - .document
116
+ - .gitignore
117
+ - LICENSE
118
+ - README.rdoc
119
+ - Rakefile
120
+ - VERSION
121
+ - lib/maestro.rb
122
+ - lib/maestro/cloud.rb
123
+ - lib/maestro/cloud/aws.rb
124
+ - lib/maestro/dsl_property.rb
125
+ - lib/maestro/log4r/console_formatter.rb
126
+ - lib/maestro/log4r/file_formatter.rb
127
+ - lib/maestro/node.rb
128
+ - lib/maestro/operating_system.rb
129
+ - lib/maestro/operating_system/cent_os.rb
130
+ - lib/maestro/operating_system/debian.rb
131
+ - lib/maestro/operating_system/fedora.rb
132
+ - lib/maestro/operating_system/ubuntu.rb
133
+ - lib/maestro/role.rb
134
+ - lib/maestro/tasks.rb
135
+ - lib/maestro/validator.rb
136
+ - rails/init.rb
137
+ - test/integration/base_aws.rb
138
+ - test/integration/fixtures/config/maestro/cookbooks/emacs/metadata.json
139
+ - test/integration/fixtures/config/maestro/cookbooks/emacs/metadata.rb
140
+ - test/integration/fixtures/config/maestro/cookbooks/emacs/recipes/default.rb
141
+ - test/integration/fixtures/config/maestro/roles/default.json
142
+ - test/integration/fixtures/config/maestro/roles/web.json
143
+ - test/integration/helper.rb
144
+ - test/integration/test_aws_cloud.rb
145
+ - test/integration/test_cent_os.rb
146
+ - test/integration/test_debian.rb
147
+ - test/integration/test_fedora.rb
148
+ - test/integration/test_ubuntu.rb
149
+ - test/unit/fixtures/invalid-clouds-not-a-directory/config/maestro/clouds
150
+ - test/unit/fixtures/invalid-cookbooks-not-a-directory/config/maestro/cookbooks
151
+ - test/unit/fixtures/invalid-maestro-not-a-directory/config/maestro
152
+ - test/unit/fixtures/invalid-missing-cookbooks/config/maestro/clouds/valid.yml
153
+ - test/unit/fixtures/invalid-missing-roles/config/maestro/clouds/valid.yml
154
+ - test/unit/fixtures/invalid-roles-not-a-directory/config/maestro/roles
155
+ - test/unit/fixtures/ssh/id_rsa-maestro-test-keypair
156
+ - test/unit/helper.rb
157
+ - test/unit/test_aws_cloud.rb
158
+ - test/unit/test_aws_ec2_node.rb
159
+ - test/unit/test_aws_elb_node.rb
160
+ - test/unit/test_aws_rds_node.rb
161
+ - test/unit/test_cent_os.rb
162
+ - test/unit/test_cloud.rb
163
+ - test/unit/test_debian.rb
164
+ - test/unit/test_fedora.rb
165
+ - test/unit/test_invalid_mode.rb
166
+ - test/unit/test_maestro.rb
167
+ - test/unit/test_node.rb
168
+ - test/unit/test_operating_system.rb
169
+ - test/unit/test_rails_mode.rb
170
+ - test/unit/test_role.rb
171
+ - test/unit/test_standalone_mode.rb
172
+ - test/unit/test_ubuntu.rb
173
+ - the-maestro.gemspec
174
+ has_rdoc: true
175
+ homepage: http://github.com/bploetz/maestro
176
+ licenses: []
177
+
178
+ post_install_message:
179
+ rdoc_options:
180
+ - --charset=UTF-8
181
+ require_paths:
182
+ - lib
183
+ required_ruby_version: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: "0"
188
+ version:
189
+ required_rubygems_version: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ version: "0"
194
+ version:
195
+ requirements: []
196
+
197
+ rubyforge_project:
198
+ rubygems_version: 1.3.5
199
+ signing_key:
200
+ specification_version: 3
201
+ summary: "Maestro: Conduct your clouds."
202
+ test_files:
203
+ - test/integration/base_aws.rb
204
+ - test/integration/fixtures/config/maestro/cookbooks/emacs/metadata.rb
205
+ - test/integration/fixtures/config/maestro/cookbooks/emacs/recipes/default.rb
206
+ - test/integration/helper.rb
207
+ - test/integration/test_aws_cloud.rb
208
+ - test/integration/test_cent_os.rb
209
+ - test/integration/test_debian.rb
210
+ - test/integration/test_fedora.rb
211
+ - test/integration/test_ubuntu.rb
212
+ - test/unit/helper.rb
213
+ - test/unit/test_aws_cloud.rb
214
+ - test/unit/test_aws_ec2_node.rb
215
+ - test/unit/test_aws_elb_node.rb
216
+ - test/unit/test_aws_rds_node.rb
217
+ - test/unit/test_cent_os.rb
218
+ - test/unit/test_cloud.rb
219
+ - test/unit/test_debian.rb
220
+ - test/unit/test_fedora.rb
221
+ - test/unit/test_invalid_mode.rb
222
+ - test/unit/test_maestro.rb
223
+ - test/unit/test_node.rb
224
+ - test/unit/test_operating_system.rb
225
+ - test/unit/test_rails_mode.rb
226
+ - test/unit/test_role.rb
227
+ - test/unit/test_standalone_mode.rb
228
+ - test/unit/test_ubuntu.rb