cf 4.2.4 → 4.2.5
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/cf.rb +1 -1
- data/lib/cf/version.rb +1 -1
- data/lib/console/plugin.rb +2 -0
- data/lib/manifests/plugin.rb +13 -15
- data/spec/manifests/plugin_spec.rb +25 -1
- metadata +4 -5
- data/lib/manifests/README.md +0 -13
data/lib/cf.rb
CHANGED
@@ -9,8 +9,8 @@ Dir[File.expand_path(command_files, __FILE__)].each do |file|
|
|
9
9
|
require file unless File.basename(file) == 'base.rb'
|
10
10
|
end
|
11
11
|
|
12
|
+
require "manifests/plugin"
|
12
13
|
require "admin/plugin"
|
13
14
|
require "console/plugin"
|
14
15
|
require "tunnel/plugin"
|
15
|
-
require "manifests/plugin"
|
16
16
|
require "micro/plugin"
|
data/lib/cf/version.rb
CHANGED
data/lib/console/plugin.rb
CHANGED
data/lib/manifests/plugin.rb
CHANGED
@@ -5,23 +5,21 @@ require "manifests/manifests"
|
|
5
5
|
class ManifestsPlugin < CF::App::Base
|
6
6
|
include CFManifests
|
7
7
|
|
8
|
-
|
9
|
-
|
8
|
+
def self.default_to_app_from_manifest(command, fail_without_app)
|
9
|
+
name_made_optional = change_argument(command, :app, :optional)
|
10
|
+
around(command) do |cmd, input|
|
11
|
+
wrap_with_optional_name(name_made_optional, cmd, input, fail_without_app)
|
12
|
+
end
|
13
|
+
end
|
10
14
|
|
15
|
+
option :manifest, :aliases => "-m", :value => :file, :desc => "Path to manifest file to use"
|
11
16
|
|
12
|
-
[ :start, :restart, :instances, :logs, :env, :health, :stats,
|
13
|
-
:scale, :app, :stop, :delete, :events
|
14
|
-
].each do |wrap|
|
15
|
-
name_made_optional = change_argument(wrap, :app, :optional)
|
16
17
|
|
17
|
-
|
18
|
-
|
19
|
-
end
|
18
|
+
[:start, :restart, :instances, :logs, :env, :health, :stats, :scale, :app, :stop, :delete, :events].each do |command|
|
19
|
+
::ManifestsPlugin.default_to_app_from_manifest command, true
|
20
20
|
end
|
21
21
|
|
22
|
-
|
23
|
-
add_input :push, :reset, :desc => "Reset to values in the manifest",
|
24
|
-
:default => false
|
22
|
+
add_input :push, :reset, :desc => "Reset to values in the manifest", :default => false
|
25
23
|
|
26
24
|
around(:push) do |push, input|
|
27
25
|
wrap_push(push, input)
|
@@ -29,12 +27,12 @@ class ManifestsPlugin < CF::App::Base
|
|
29
27
|
|
30
28
|
private
|
31
29
|
|
32
|
-
def wrap_with_optional_name(name_made_optional, cmd, input)
|
30
|
+
def wrap_with_optional_name(name_made_optional, cmd, input, fail_without_app)
|
33
31
|
return cmd.call if input[:all]
|
34
32
|
|
35
33
|
unless manifest
|
36
34
|
# if the command knows how to handle this
|
37
|
-
if input.has?(:app) || !name_made_optional
|
35
|
+
if input.has?(:app) || !name_made_optional || !fail_without_app
|
38
36
|
return cmd.call
|
39
37
|
else
|
40
38
|
return no_apps
|
@@ -55,7 +53,7 @@ class ManifestsPlugin < CF::App::Base
|
|
55
53
|
internal = internal.collect { |app| app[:name] }
|
56
54
|
|
57
55
|
apps = internal + external
|
58
|
-
return no_apps if apps.empty?
|
56
|
+
return no_apps if fail_without_app && apps.empty?
|
59
57
|
|
60
58
|
apps.each.with_index do |app, num|
|
61
59
|
line unless quiet? || num == 0
|
@@ -18,11 +18,27 @@ describe ManifestsPlugin do
|
|
18
18
|
plugin.stub(:client) { client }
|
19
19
|
end
|
20
20
|
|
21
|
+
describe ".use_manifest_for_app_input" do
|
22
|
+
it "makes the app argument optional and wraps it in an around that gets the app from the manifest" do
|
23
|
+
command = described_class.commands[:app]
|
24
|
+
command.instance_variable_set(:@arguments, [{:name => :app, :type => :required, :value => nil}])
|
25
|
+
|
26
|
+
expect(command.arguments).to eq [{:name => :app, :type => :required, :value => nil}]
|
27
|
+
expect(command.around.size).to eq 1
|
28
|
+
|
29
|
+
described_class.default_to_app_from_manifest :app, false
|
30
|
+
|
31
|
+
expect(command.arguments).to eq [{:name => :app, :type => :optional, :value => nil}]
|
32
|
+
expect(command.around.size).to eq 2
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
21
36
|
describe "#wrap_with_optional_name" do
|
22
37
|
let(:name_made_optional) { true }
|
38
|
+
let(:fail_without_app) { true }
|
23
39
|
let(:wrapped) { double(:wrapped).as_null_object }
|
24
40
|
|
25
|
-
subject { plugin.send(:wrap_with_optional_name, name_made_optional, wrapped, inputs) }
|
41
|
+
subject { plugin.send(:wrap_with_optional_name, name_made_optional, wrapped, inputs, fail_without_app) }
|
26
42
|
|
27
43
|
context "when --all is given" do
|
28
44
|
let(:inputs_hash) { { :all => true } }
|
@@ -55,6 +71,14 @@ describe ManifestsPlugin do
|
|
55
71
|
plugin.should_receive(:no_apps)
|
56
72
|
subject
|
57
73
|
end
|
74
|
+
|
75
|
+
context "when it is not supposed to fail" do
|
76
|
+
let(:fail_without_app) { false }
|
77
|
+
it "doesnt fail" do
|
78
|
+
plugin.should_not_receive(:no_apps)
|
79
|
+
subject
|
80
|
+
end
|
81
|
+
end
|
58
82
|
end
|
59
83
|
|
60
84
|
context "and we did NOT make it optional" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.2.
|
4
|
+
version: 4.2.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-07-
|
13
|
+
date: 2013-07-19 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: addressable
|
@@ -429,7 +429,6 @@ files:
|
|
429
429
|
- lib/manifests/loader.rb
|
430
430
|
- lib/manifests/manifests.rb
|
431
431
|
- lib/manifests/plugin.rb
|
432
|
-
- lib/manifests/README.md
|
433
432
|
- lib/micro/errors.rb
|
434
433
|
- lib/micro/micro.rb
|
435
434
|
- lib/micro/plugin.rb
|
@@ -614,7 +613,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
614
613
|
version: '0'
|
615
614
|
segments:
|
616
615
|
- 0
|
617
|
-
hash: -
|
616
|
+
hash: -2757679513979336961
|
618
617
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
619
618
|
none: false
|
620
619
|
requirements:
|
@@ -623,7 +622,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
623
622
|
version: '0'
|
624
623
|
segments:
|
625
624
|
- 0
|
626
|
-
hash: -
|
625
|
+
hash: -2757679513979336961
|
627
626
|
requirements: []
|
628
627
|
rubyforge_project: cf
|
629
628
|
rubygems_version: 1.8.25
|
data/lib/manifests/README.md
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
[![Build Status](https://travis-ci.org/cloudfoundry/manifests-cf-plugin.png)](https://travis-ci.org/cloudfoundry/manifests-cf-plugin)
|
2
|
-
[![Gem Version](https://badge.fury.io/rb/manifests-cf-plugin.png)](http://badge.fury.io/rb/manifests-cf-plugin)
|
3
|
-
[![Code Climate](https://codeclimate.com/github/cloudfoundry/manifests-cf-plugin.png)](https://codeclimate.com/github/cloudfoundry/manifests-cf-plugin)
|
4
|
-
|
5
|
-
## Manifests
|
6
|
-
### Info
|
7
|
-
With this plugin enabled, any configuration changes you make using the CF `start`, `restart`, `instances`, `logs`, `env`, `health`, `stats`, `scale`, and `app` commands will be saved to a file called *manifest.yml*.
|
8
|
-
|
9
|
-
### Installation
|
10
|
-
```
|
11
|
-
gem install manifests-cf-plugin
|
12
|
-
```
|
13
|
-
|