stackfu 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest +2 -2
- data/Rakefile +1 -1
- data/lib/stackfu/commands/deploy_command.rb +4 -2
- data/lib/stackfu/commands/generate_command.rb +1 -1
- data/lib/stackfu.rb +1 -1
- data/spec/fixtures/scripts/firewall/deploy.json +12 -0
- data/spec/fixtures/scripts/mongo/deploy.json +12 -0
- data/spec/stackfu/commands/deploy_command_spec.rb +22 -6
- data/spec/stackfu/commands/generate_command_spec.rb +5 -0
- data/stackfu.gemspec +3 -3
- metadata +6 -6
- data/Gemfile +0 -4
- data/spec/fixtures/servers/webbynode/deploy.json +0 -12
data/Manifest
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
CHANGELOG
|
2
|
-
Gemfile
|
3
2
|
Manifest
|
4
3
|
README
|
5
4
|
README.md
|
@@ -37,7 +36,9 @@ spec/fixtures/scripts/all.json
|
|
37
36
|
spec/fixtures/scripts/create.json
|
38
37
|
spec/fixtures/scripts/delete.json
|
39
38
|
spec/fixtures/scripts/firewall.json
|
39
|
+
spec/fixtures/scripts/firewall/deploy.json
|
40
40
|
spec/fixtures/scripts/mongo.json
|
41
|
+
spec/fixtures/scripts/mongo/deploy.json
|
41
42
|
spec/fixtures/scripts/none.json
|
42
43
|
spec/fixtures/scripts/not_found.json
|
43
44
|
spec/fixtures/scripts/password.json
|
@@ -47,7 +48,6 @@ spec/fixtures/servers/cannot_deploy.json
|
|
47
48
|
spec/fixtures/servers/none.json
|
48
49
|
spec/fixtures/servers/not_found.json
|
49
50
|
spec/fixtures/servers/webbynode.json
|
50
|
-
spec/fixtures/servers/webbynode/deploy.json
|
51
51
|
spec/spec_helper.rb
|
52
52
|
spec/stackfu/api_hooks_spec.rb
|
53
53
|
spec/stackfu/commands/deploy_command_spec.rb
|
data/Rakefile
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
module StackFu::Commands
|
2
2
|
class DeployCommand < Command
|
3
3
|
include StackFu::ApiHooks
|
4
|
+
aliases :dep
|
4
5
|
|
5
6
|
# error_messages :missing_subcommand => "You have to tell what you want to deploy and to which server."
|
6
7
|
# subcommand :script, :required_parameters => [:plugin_name, :server]
|
@@ -94,7 +95,7 @@ module StackFu::Commands
|
|
94
95
|
server_id = server.id
|
95
96
|
server.id = server.slug
|
96
97
|
begin
|
97
|
-
deployment =
|
98
|
+
deployment = Script.new(:id => target.slug).post(:deploy, {}, { :server_ids => [server.slug], :params => params }.to_json)
|
98
99
|
rescue ActiveResource::ClientError
|
99
100
|
if $!.message =~ /406/
|
100
101
|
puts "Error: ".foreground(:red) + "Cannot deploy - there is another deploy queued or running for this server."
|
@@ -104,7 +105,8 @@ module StackFu::Commands
|
|
104
105
|
end
|
105
106
|
end
|
106
107
|
|
107
|
-
|
108
|
+
deployments = JSON.parse(deployment.body)
|
109
|
+
deployment = deployments.first
|
108
110
|
|
109
111
|
if options[:"no-follow"]
|
110
112
|
puts "Your deployment have been submitted"
|
data/lib/stackfu.rb
CHANGED
@@ -0,0 +1,12 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Etag: "b2d8ba4761967f030b2ea220620986b1"
|
3
|
+
Connection: Keep-Alive
|
4
|
+
Content-Type: application/json; charset=utf-8
|
5
|
+
Date: Sat, 04 Sep 2010 21:35:47 GMT
|
6
|
+
Server: WEBrick/1.3.1 (Ruby/1.8.7/2009-12-24)
|
7
|
+
X-Runtime: 0.313166
|
8
|
+
Content-Length: 1732
|
9
|
+
Cache-Control: max-age=0, private, must-revalidate
|
10
|
+
Set-Cookie: _stackfu_session=BAh7ByIPc2Vzc2lvbl9pZCIlYzZiMDZlNmJlZTgwZTU3ODA1NTgzMjk1YmI4N2FhN2EiGXdhcmRlbi51c2VyLnVzZXIua2V5WwciCVVzZXJvOhNCU09OOjpPYmplY3RJRAY6CkBkYXRhWxFpUWkBgml%2BaXNpAdRpAYlpAehpM2kBwWkAaQBpCA%3D%3D--b119069c65fff79fbc923dc31cc993334e278c79; path=/; HttpOnly
|
11
|
+
|
12
|
+
[{"stack":{"slug":null,"_id":"4c82bbb3d489e856ce000005","scripts":[{"slug":"firewall","name":"firewall","controls":[{"name":"Ports","label":"Ports","_id":"4c82796ed489e82ec1000005","_type":"Textbox","type":"Textbox","hint":"separate by comma's"}],"created_at":"2010-09-04T13:53:02-03:00","updated_at":"2010-09-04T13:53:02-03:00","_id":"4c82796ed489e82ec1000008","validations":[{"body":"test -x ufw","_id":"4c82796ed489e82ec1000002","_type":"ExecutableExists","params":{"data":"ufw"},"description":"File ufw exists and is executable"}],"user_id":"4c82796ed489e82ec1000003","requirements":[{"body":"test -x apt-get","_id":"4c82796ed489e82ec1000001","_type":"ExecutableExists","params":{"data":"apt-get"},"description":"File apt-get exists and is executable"}],"executions":[{"body":" # \n # configure_ufw.sh\n # Tue Dec 01 15:06:48 -0200 2009\n #\n\n apt-get update\n apt-get install -y ufw\n","_id":"4c82796ed489e82ec1000006","description":"Install Ufw","watching_user_ids":[]},{"body":" # \n # install_ufw.sh\n # Tue Dec 01 15:06:48 -0200 2009\n #\n\n ufw default deny\n <% ports.split(\",\").each do |port| %>\n ufw allow <%= port %> \n <% end %>\n","_id":"4c82796ed489e82ec1000007","description":"Configure Ufw","watching_user_ids":[]}],"description":"Set up a firewall for your server to improve security.\n Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n Praesent eget erat libero, id malesuada tortor.\n Donec pharetra sapien et nulla ultricies ac pharetra neque vulputate.","watching_user_ids":[]}]},"provider_id":null,"server_id":"4c82796ed489e82ec1000017","_id":"4c82bbb3d489e856ce000006","params":{"ports":"80,23,22"},"status":"queued"}]
|
@@ -0,0 +1,12 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Etag: "b2d8ba4761967f030b2ea220620986b1"
|
3
|
+
Connection: Keep-Alive
|
4
|
+
Content-Type: application/json; charset=utf-8
|
5
|
+
Date: Sat, 04 Sep 2010 21:35:47 GMT
|
6
|
+
Server: WEBrick/1.3.1 (Ruby/1.8.7/2009-12-24)
|
7
|
+
X-Runtime: 0.313166
|
8
|
+
Content-Length: 1732
|
9
|
+
Cache-Control: max-age=0, private, must-revalidate
|
10
|
+
Set-Cookie: _stackfu_session=BAh7ByIPc2Vzc2lvbl9pZCIlYzZiMDZlNmJlZTgwZTU3ODA1NTgzMjk1YmI4N2FhN2EiGXdhcmRlbi51c2VyLnVzZXIua2V5WwciCVVzZXJvOhNCU09OOjpPYmplY3RJRAY6CkBkYXRhWxFpUWkBgml%2BaXNpAdRpAYlpAehpM2kBwWkAaQBpCA%3D%3D--b119069c65fff79fbc923dc31cc993334e278c79; path=/; HttpOnly
|
11
|
+
|
12
|
+
[{"stack":{"slug":null,"_id":"4c82bbb3d489e856ce000005","scripts":[{"slug":"firewall","name":"firewall","controls":[{"name":"Ports","label":"Ports","_id":"4c82796ed489e82ec1000005","_type":"Textbox","type":"Textbox","hint":"separate by comma's"}],"created_at":"2010-09-04T13:53:02-03:00","updated_at":"2010-09-04T13:53:02-03:00","_id":"4c82796ed489e82ec1000008","validations":[{"body":"test -x ufw","_id":"4c82796ed489e82ec1000002","_type":"ExecutableExists","params":{"data":"ufw"},"description":"File ufw exists and is executable"}],"user_id":"4c82796ed489e82ec1000003","requirements":[{"body":"test -x apt-get","_id":"4c82796ed489e82ec1000001","_type":"ExecutableExists","params":{"data":"apt-get"},"description":"File apt-get exists and is executable"}],"executions":[{"body":" # \n # configure_ufw.sh\n # Tue Dec 01 15:06:48 -0200 2009\n #\n\n apt-get update\n apt-get install -y ufw\n","_id":"4c82796ed489e82ec1000006","description":"Install Ufw","watching_user_ids":[]},{"body":" # \n # install_ufw.sh\n # Tue Dec 01 15:06:48 -0200 2009\n #\n\n ufw default deny\n <% ports.split(\",\").each do |port| %>\n ufw allow <%= port %> \n <% end %>\n","_id":"4c82796ed489e82ec1000007","description":"Configure Ufw","watching_user_ids":[]}],"description":"Set up a firewall for your server to improve security.\n Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n Praesent eget erat libero, id malesuada tortor.\n Donec pharetra sapien et nulla ultricies ac pharetra neque vulputate.","watching_user_ids":[]}]},"provider_id":null,"server_id":"4c82796ed489e82ec1000017","_id":"4c82bbb3d489e856ce000006","params":{"ports":"80,23,22"},"status":"queued"}]
|
@@ -2,6 +2,22 @@
|
|
2
2
|
require File.join(File.expand_path(File.dirname(__FILE__)), '../..', 'spec_helper')
|
3
3
|
|
4
4
|
describe StackFu::Commands::DeployCommand do
|
5
|
+
context 'aliases' do
|
6
|
+
it "responds to dep command" do
|
7
|
+
prepare(:get, '/servers/webbynode.json')
|
8
|
+
prepare(:get, '/scripts/password.json')
|
9
|
+
|
10
|
+
when_asked " Password: ", :answer => "mama mia"
|
11
|
+
when_asked " Ports: ", :answer => "80,23,22"
|
12
|
+
|
13
|
+
disagree_of "Continue with script installation?\n"
|
14
|
+
|
15
|
+
command "dep password webbynode"
|
16
|
+
|
17
|
+
stdout.should =~ /Aborted./
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
5
21
|
context 'rendering controls do' do
|
6
22
|
it "tells the user if there is another deployment running" do
|
7
23
|
prepare(:get, '/servers/webbynode.json')
|
@@ -39,7 +55,7 @@ describe StackFu::Commands::DeployCommand do
|
|
39
55
|
it "tells the user if there is another deployment running" do
|
40
56
|
prepare(:get, '/servers/webbynode.json')
|
41
57
|
prepare(:get, '/scripts/firewall.json')
|
42
|
-
prepare_status(:post, '/
|
58
|
+
prepare_status(:post, '/scripts/firewall/deploy.json', [406, "This server already has a deployment queued or running"])
|
43
59
|
|
44
60
|
when_asked " Ports: ", :answer => "80,23,22"
|
45
61
|
|
@@ -54,7 +70,7 @@ describe StackFu::Commands::DeployCommand do
|
|
54
70
|
it "tells the user when an unexpected error occurs" do
|
55
71
|
prepare(:get, '/servers/webbynode.json')
|
56
72
|
prepare(:get, '/scripts/firewall.json')
|
57
|
-
prepare_status(:post, '/
|
73
|
+
prepare_status(:post, '/scripts/firewall/deploy.json', [500, "Server has received a roundhound kick!"])
|
58
74
|
|
59
75
|
when_asked " Ports: ", :answer => "80,23,22"
|
60
76
|
|
@@ -69,7 +85,7 @@ describe StackFu::Commands::DeployCommand do
|
|
69
85
|
it "deploys a server" do
|
70
86
|
prepare(:get, '/servers/webbynode.json')
|
71
87
|
prepare(:get, '/scripts/firewall.json')
|
72
|
-
prepare(:post, '/
|
88
|
+
prepare(:post, '/scripts/firewall/deploy.json')
|
73
89
|
|
74
90
|
prepare(:get, '/deployments/4c82bbb3d489e856ce000006/logs.json', '/deployments/logs.json')
|
75
91
|
prepare(:get, '/deployments/4c82bbb3d489e856ce000006/logs.json?from_id=4c866bb17d7c4261a3000104',
|
@@ -94,7 +110,7 @@ describe StackFu::Commands::DeployCommand do
|
|
94
110
|
it "asks no params when script has none" do
|
95
111
|
prepare(:get, '/servers/webbynode.json')
|
96
112
|
prepare(:get, '/scripts/mongo.json')
|
97
|
-
prepare(:post, '/
|
113
|
+
prepare(:post, '/scripts/mongo/deploy.json')
|
98
114
|
|
99
115
|
prepare(:get, '/deployments/4c82bbb3d489e856ce000006/logs.json', '/deployments/logs.json')
|
100
116
|
prepare(:get, '/deployments/4c82bbb3d489e856ce000006/logs.json?from_id=4c866bb17d7c4261a3000104',
|
@@ -116,7 +132,7 @@ describe StackFu::Commands::DeployCommand do
|
|
116
132
|
it "reports an installation failure" do
|
117
133
|
prepare(:get, '/servers/webbynode.json')
|
118
134
|
prepare(:get, '/scripts/firewall.json')
|
119
|
-
prepare(:post, '/
|
135
|
+
prepare(:post, '/scripts/firewall/deploy.json')
|
120
136
|
|
121
137
|
prepare(:get, '/deployments/4c82bbb3d489e856ce000006/logs.json', '/deployments/logs.json')
|
122
138
|
prepare(:get, '/deployments/4c82bbb3d489e856ce000006/logs.json?from_id=4c866bb17d7c4261a3000104',
|
@@ -155,7 +171,7 @@ describe StackFu::Commands::DeployCommand do
|
|
155
171
|
it "tells the user if there's a problem submitting the deployment" do
|
156
172
|
prepare(:get, '/scripts/firewall.json')
|
157
173
|
prepare(:get, '/servers/webbynode.json')
|
158
|
-
prepare_raise(:post, '/
|
174
|
+
prepare_raise(:post, '/scripts/firewall/deploy.json', Errno::ECONNREFUSED)
|
159
175
|
|
160
176
|
when_asked " Ports: ", :answer => "20,21,22"
|
161
177
|
|
@@ -52,6 +52,11 @@ describe StackFu::Commands::GenerateCommand do
|
|
52
52
|
stdout.should =~ /Don't know how to generate a script with abcdef. Use 'stackfu help generate' for more information./
|
53
53
|
end
|
54
54
|
|
55
|
+
it "aliases to gen" do
|
56
|
+
command "gen test abcdef"
|
57
|
+
stdout.should =~ /Don't know how to generate a script with abcdef. Use 'stackfu help generate' for more information./
|
58
|
+
end
|
59
|
+
|
55
60
|
it "raises an error message if one of the params is of invalid type" do
|
56
61
|
command "generate test yogurt:food"
|
57
62
|
stdout.should =~ /Don't know how to generate a script with food yogurt. Use 'stackfu help generate' for more information./
|
data/stackfu.gemspec
CHANGED
@@ -2,17 +2,17 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{stackfu}
|
5
|
-
s.version = "0.1.
|
5
|
+
s.version = "0.1.5"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Felipe Coury"]
|
9
|
-
s.date = %q{2010-09-
|
9
|
+
s.date = %q{2010-09-14}
|
10
10
|
s.default_executable = %q{stackfu}
|
11
11
|
s.description = %q{StackFu Backend}
|
12
12
|
s.email = %q{felipe@stackfu.com}
|
13
13
|
s.executables = ["stackfu"]
|
14
14
|
s.extra_rdoc_files = ["CHANGELOG", "README", "README.md", "bin/stackfu", "lib/stackfu.rb", "lib/stackfu/api_hooks.rb", "lib/stackfu/app.rb", "lib/stackfu/commands/command.rb", "lib/stackfu/commands/config_command.rb", "lib/stackfu/commands/deploy_command.rb", "lib/stackfu/commands/dump_command.rb", "lib/stackfu/commands/generate_command.rb", "lib/stackfu/commands/help_command.rb", "lib/stackfu/commands/list_command.rb", "lib/stackfu/commands/publish_command.rb", "lib/stackfu/commands/server_command.rb", "lib/stackfu/date_helper.rb", "lib/stackfu/helpers/providers_credentials.rb", "lib/stackfu/helpers/rendering.rb", "lib/stackfu/operating_systems.rb"]
|
15
|
-
s.files = ["CHANGELOG", "
|
15
|
+
s.files = ["CHANGELOG", "Manifest", "README", "README.md", "Rakefile", "autotest/discover.rb", "bin/stackfu", "firewall/config/01-controls.yml", "firewall/config/02-requirements.yml", "firewall/config/03-executions.yml", "firewall/config/04-validations.yml", "firewall/executables/configure_ufw.sh.erb", "firewall/executables/install_ufw.sh.erb", "firewall/script.yml", "lib/stackfu.rb", "lib/stackfu/api_hooks.rb", "lib/stackfu/app.rb", "lib/stackfu/commands/command.rb", "lib/stackfu/commands/config_command.rb", "lib/stackfu/commands/deploy_command.rb", "lib/stackfu/commands/dump_command.rb", "lib/stackfu/commands/generate_command.rb", "lib/stackfu/commands/help_command.rb", "lib/stackfu/commands/list_command.rb", "lib/stackfu/commands/publish_command.rb", "lib/stackfu/commands/server_command.rb", "lib/stackfu/date_helper.rb", "lib/stackfu/helpers/providers_credentials.rb", "lib/stackfu/helpers/rendering.rb", "lib/stackfu/operating_systems.rb", "spec/fixtures/deployments/logs.json", "spec/fixtures/deployments/logs_end.json", "spec/fixtures/deployments/logs_failed.json", "spec/fixtures/deployments/logs_middle.json", "spec/fixtures/scripts/all.json", "spec/fixtures/scripts/create.json", "spec/fixtures/scripts/delete.json", "spec/fixtures/scripts/firewall.json", "spec/fixtures/scripts/firewall/deploy.json", "spec/fixtures/scripts/mongo.json", "spec/fixtures/scripts/mongo/deploy.json", "spec/fixtures/scripts/none.json", "spec/fixtures/scripts/not_found.json", "spec/fixtures/scripts/password.json", "spec/fixtures/scripts/script_not_found.json", "spec/fixtures/servers/all.json", "spec/fixtures/servers/cannot_deploy.json", "spec/fixtures/servers/none.json", "spec/fixtures/servers/not_found.json", "spec/fixtures/servers/webbynode.json", "spec/spec_helper.rb", "spec/stackfu/api_hooks_spec.rb", "spec/stackfu/commands/deploy_command_spec.rb", "spec/stackfu/commands/dump_command_spec.rb", "spec/stackfu/commands/generate_command_spec.rb", "spec/stackfu/commands/list_command_spec.rb", "spec/stackfu/commands/publish_command_spec.rb", "spec/stackfu/rendering_spec.rb", "stackfu-installer/config/01-controls.yml", "stackfu-installer/config/02-requirements.yml", "stackfu-installer/config/03-executions.yml", "stackfu-installer/config/04-validations.yml", "stackfu-installer/script/dotfiles_installation.sh.erb", "stackfu-installer/script/github_credentials_setup.sh.erb", "stackfu-installer/script/nginx_and_passenger.sh.erb", "stackfu-installer/script/redis_installation.sh.erb", "stackfu-installer/script/resque_installation.sh.erb", "stackfu-installer/script/ruby_environment.sh.erb", "stackfu-installer/script/stackfu.sh.erb", "stackfu-installer/stack.yml", "templates/01-controls.yml.erb", "templates/02-requirements.yml.erb", "templates/03-executions.yml.erb", "templates/04-validations.yml.erb", "templates/script.sh.erb", "templates/stack.yml.erb", "test/fixtures/add_server_error", "test/fixtures/deployment_add", "test/fixtures/deployment_add_error", "test/fixtures/deployments", "test/fixtures/logs", "test/fixtures/logs_partial", "test/fixtures/plugin_add", "test/fixtures/plugin_add_error", "test/fixtures/plugin_deployment_add", "test/fixtures/plugin_not_found", "test/fixtures/plugin_unauthorized", "test/fixtures/plugins", "test/fixtures/plugins_by_name", "test/fixtures/plugins_by_name_other", "test/fixtures/plugins_empty", "test/fixtures/plugins_multiple", "test/fixtures/providers", "test/fixtures/providers_servers", "test/fixtures/server_add", "test/fixtures/server_add_dupe", "test/fixtures/server_add_error", "test/fixtures/server_delete", "test/fixtures/server_delete_error", "test/fixtures/servers", "test/fixtures/servers_by_name", "test/fixtures/servers_empty", "test/fixtures/servers_not_found", "test/fixtures/servers_unauthorized", "test/fixtures/servers_webbynode", "test/fixtures/stack/stackfu-installer/config/01-controls.yml", "test/fixtures/stack/stackfu-installer/config/02-requirements.yml", "test/fixtures/stack/stackfu-installer/config/03-scripts.yml", "test/fixtures/stack/stackfu-installer/config/04-validations.yml", "test/fixtures/stack/stackfu-installer/script/dotfiles_installation.sh.erb", "test/fixtures/stack/stackfu-installer/script/github_credentials_setup.sh.erb", "test/fixtures/stack/stackfu-installer/script/nginx_and_passenger.sh.erb", "test/fixtures/stack/stackfu-installer/script/redis_installation.sh.erb", "test/fixtures/stack/stackfu-installer/script/resque_installation.sh.erb", "test/fixtures/stack/stackfu-installer/script/ruby_environment.sh.erb", "test/fixtures/stack/stackfu-installer/script/stackfu.sh.erb", "test/fixtures/stack/stackfu-installer/stack.yml", "test/fixtures/stack_add", "test/fixtures/stack_add_error", "test/fixtures/stack_add_error_dupe", "test/fixtures/stack_adds_by_name", "test/fixtures/stack_delete_not_found", "test/fixtures/stacks", "test/fixtures/stacks_by_name", "test/fixtures/stacks_by_name_other", "test/fixtures/stacks_empty", "test/fixtures/stacks_multiple", "test/fixtures/stacks_not_found", "test/fixtures/stacks_realworld", "test/fixtures/stacks_stackfu-installer", "test/fixtures/stacks_unauthorized", "test/fixtures/stacks_with_controls", "test/fixtures/users", "test/fixtures/users_no_credentials", "test/fixtures/users_update", "test/support/custom_matchers.rb", "test/support/fixtures.rb", "test/support/io_stub.rb", "test/support/web_fixtures.rb", "test/test_helper.rb", "test/unit/commands/test_command.rb", "test/unit/commands/test_config_command.rb", "test/unit/commands/test_deploy_command.rb", "test/unit/commands/test_dump_command.rb", "test/unit/commands/test_generate_command.rb", "test/unit/commands/test_help_command.rb", "test/unit/commands/test_list_command.rb", "test/unit/commands/test_publish_command.rb", "test/unit/commands/test_server_command.rb", "test/unit/helpers/test_rendering.rb", "test/unit/test_array.rb", "test/unit/test_provider.rb", "test/unit/test_stackfu.rb", "stackfu.gemspec"]
|
16
16
|
s.homepage = %q{http://stackfu.com/cli}
|
17
17
|
s.post_install_message = %q{
|
18
18
|
--==-- StackFu - Server Deployment Engine --==--
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stackfu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 5
|
10
|
+
version: 0.1.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Felipe Coury
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-09-
|
18
|
+
date: 2010-09-14 00:00:00 -03:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -127,7 +127,6 @@ extra_rdoc_files:
|
|
127
127
|
- lib/stackfu/operating_systems.rb
|
128
128
|
files:
|
129
129
|
- CHANGELOG
|
130
|
-
- Gemfile
|
131
130
|
- Manifest
|
132
131
|
- README
|
133
132
|
- README.md
|
@@ -165,7 +164,9 @@ files:
|
|
165
164
|
- spec/fixtures/scripts/create.json
|
166
165
|
- spec/fixtures/scripts/delete.json
|
167
166
|
- spec/fixtures/scripts/firewall.json
|
167
|
+
- spec/fixtures/scripts/firewall/deploy.json
|
168
168
|
- spec/fixtures/scripts/mongo.json
|
169
|
+
- spec/fixtures/scripts/mongo/deploy.json
|
169
170
|
- spec/fixtures/scripts/none.json
|
170
171
|
- spec/fixtures/scripts/not_found.json
|
171
172
|
- spec/fixtures/scripts/password.json
|
@@ -175,7 +176,6 @@ files:
|
|
175
176
|
- spec/fixtures/servers/none.json
|
176
177
|
- spec/fixtures/servers/not_found.json
|
177
178
|
- spec/fixtures/servers/webbynode.json
|
178
|
-
- spec/fixtures/servers/webbynode/deploy.json
|
179
179
|
- spec/spec_helper.rb
|
180
180
|
- spec/stackfu/api_hooks_spec.rb
|
181
181
|
- spec/stackfu/commands/deploy_command_spec.rb
|
data/Gemfile
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
HTTP/1.1 200 OK
|
2
|
-
Etag: "b2d8ba4761967f030b2ea220620986b1"
|
3
|
-
Connection: Keep-Alive
|
4
|
-
Content-Type: application/json; charset=utf-8
|
5
|
-
Date: Sat, 04 Sep 2010 21:35:47 GMT
|
6
|
-
Server: WEBrick/1.3.1 (Ruby/1.8.7/2009-12-24)
|
7
|
-
X-Runtime: 0.313166
|
8
|
-
Content-Length: 1730
|
9
|
-
Cache-Control: max-age=0, private, must-revalidate
|
10
|
-
Set-Cookie: _stackfu_session=BAh7ByIPc2Vzc2lvbl9pZCIlYzZiMDZlNmJlZTgwZTU3ODA1NTgzMjk1YmI4N2FhN2EiGXdhcmRlbi51c2VyLnVzZXIua2V5WwciCVVzZXJvOhNCU09OOjpPYmplY3RJRAY6CkBkYXRhWxFpUWkBgml%2BaXNpAdRpAYlpAehpM2kBwWkAaQBpCA%3D%3D--b119069c65fff79fbc923dc31cc993334e278c79; path=/; HttpOnly
|
11
|
-
|
12
|
-
{"stack":{"slug":null,"_id":"4c82bbb3d489e856ce000005","scripts":[{"slug":"firewall","name":"firewall","controls":[{"name":"Ports","label":"Ports","_id":"4c82796ed489e82ec1000005","_type":"Textbox","type":"Textbox","hint":"separate by comma's"}],"created_at":"2010-09-04T13:53:02-03:00","updated_at":"2010-09-04T13:53:02-03:00","_id":"4c82796ed489e82ec1000008","validations":[{"body":"test -x ufw","_id":"4c82796ed489e82ec1000002","_type":"ExecutableExists","params":{"data":"ufw"},"description":"File ufw exists and is executable"}],"user_id":"4c82796ed489e82ec1000003","requirements":[{"body":"test -x apt-get","_id":"4c82796ed489e82ec1000001","_type":"ExecutableExists","params":{"data":"apt-get"},"description":"File apt-get exists and is executable"}],"executions":[{"body":" # \n # configure_ufw.sh\n # Tue Dec 01 15:06:48 -0200 2009\n #\n\n apt-get update\n apt-get install -y ufw\n","_id":"4c82796ed489e82ec1000006","description":"Install Ufw","watching_user_ids":[]},{"body":" # \n # install_ufw.sh\n # Tue Dec 01 15:06:48 -0200 2009\n #\n\n ufw default deny\n <% ports.split(\",\").each do |port| %>\n ufw allow <%= port %> \n <% end %>\n","_id":"4c82796ed489e82ec1000007","description":"Configure Ufw","watching_user_ids":[]}],"description":"Set up a firewall for your server to improve security.\n Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n Praesent eget erat libero, id malesuada tortor.\n Donec pharetra sapien et nulla ultricies ac pharetra neque vulputate.","watching_user_ids":[]}]},"provider_id":null,"server_id":"4c82796ed489e82ec1000017","_id":"4c82bbb3d489e856ce000006","params":{"ports":"80,23,22"},"status":"queued"}
|