auser-poolparty 1.1.7 → 1.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.
- data/History.txt +3 -0
- data/README.txt +10 -7
- data/Rakefile +0 -1
- data/VERSION.yml +2 -2
- data/bin/cloud-osxcopy +1 -1
- data/bin/cloud-setup-dev +1 -1
- data/bin/cloud-spec +0 -1
- data/bin/cloud-terminate +7 -1
- data/bin/cloud-verify +30 -0
- data/examples/basic.rb +3 -6
- data/examples/fairchild.rb +17 -21
- data/examples/maize.rb +37 -0
- data/lib/poolparty/base_packages/haproxy.rb +6 -6
- data/lib/poolparty/base_packages/heartbeat.rb +1 -43
- data/lib/poolparty/base_packages/poolparty.rb +1 -3
- data/lib/poolparty/modules/cloud_dsl.rb +10 -2
- data/lib/poolparty/modules/cloud_resourcer.rb +0 -4
- data/lib/poolparty/net/init.rb +1 -1
- data/lib/poolparty/net/remote_instance.rb +0 -27
- data/lib/poolparty/net/remoter/cloud_control.rb +0 -177
- data/lib/poolparty/net/remoter/interactive.rb +5 -16
- data/lib/poolparty/net/remoter_bases/ec2/ec2.rb +1 -10
- data/lib/poolparty/plugins/apache2.rb +53 -0
- data/lib/poolparty/plugins/deploy_directory.rb +16 -14
- data/lib/poolparty/plugins/gem_package.rb +24 -0
- data/lib/poolparty/plugins/line_in_file.rb +16 -0
- data/lib/poolparty/poolparty/plugin.rb +8 -6
- data/lib/poolparty/provision/dr_configure.rb +1 -0
- data/lib/poolparty/resources.rb +42 -0
- data/lib/poolparty/resources/cron.rb +30 -1
- data/lib/poolparty/resources/directory.rb +23 -0
- data/lib/poolparty/resources/exec.rb +22 -0
- data/lib/poolparty/resources/file.rb +28 -0
- data/lib/poolparty/resources/host.rb +22 -1
- data/lib/poolparty/resources/mount.rb +24 -0
- data/lib/poolparty/resources/package.rb +29 -13
- data/lib/poolparty/resources/remote_file.rb +32 -0
- data/lib/poolparty/resources/service.rb +20 -0
- data/lib/poolparty/resources/sshkey.rb +22 -0
- data/lib/poolparty/resources/symlink.rb +30 -0
- data/lib/poolparty/resources/variable.rb +25 -0
- data/lib/poolparty/templates/php.ini.erb +1253 -0
- data/lib/poolparty/verification/verifiers/ping.rb +5 -0
- data/lib/poolparty/verification/verify.rb +2 -0
- data/spec/bin/fixtures/bin_cloud_for_test.rb +0 -6
- data/spec/poolparty/dependency_resolver/chef_resolver_spec.rb +0 -6
- data/spec/poolparty/net/remoter_bases/ec2_remote_instance_spec.rb +0 -10
- data/spec/poolparty/spec_helper.rb +0 -1
- data/tasks/spec.rake +2 -0
- data/test/poolparty/dependency_resolver/puppet_resolver_test.rb +0 -10
- data/test/poolparty/verification/verify_test.rb +3 -3
- data/vendor/chef/apache2/attributes/apache.rb +1 -1
- data/vendor/gems/parenting/Manifest.txt +2 -1
- data/vendor/gems/parenting/lib/parenting.rb +1 -1
- data/vendor/gems/parenting/parenting.gemspec +2 -2
- metadata +8 -70
- data/bin/messenger-get-current-nodes +0 -14
- data/bin/server-become-master +0 -24
- data/bin/server-build-messenger +0 -28
- data/bin/server-clean-cert-for +0 -15
- data/bin/server-provision +0 -32
- data/bin/server-start-agent +0 -15
- data/bin/server-start-client +0 -29
- data/bin/server-start-master +0 -26
- data/bin/server-start-node +0 -32
- data/bin/server-stop-client +0 -3
- data/bin/server-stop-master +0 -3
- data/bin/server-stop-node +0 -3
- data/bin/server-update-hosts +0 -49
- data/lib/poolparty/capistrano.rb +0 -54
- data/lib/poolparty/capistrano/cloud_tasks.rb +0 -10
- data/lib/poolparty/config/postlaunchmessage.txt +0 -5
- data/lib/poolparty/net/messenger.rb +0 -57
- data/lib/poolparty/plugins/rsyncmirror.rb +0 -28
- data/lib/poolparty/services/conditional.rb +0 -46
- data/lib/poolparty/spec.rb +0 -31
- data/lib/poolparty/spec/core/string.rb +0 -18
- data/lib/poolparty/spec/matchers/a_spec_extensions_base.rb +0 -26
- data/lib/poolparty/spec/matchers/have_cron.rb +0 -28
- data/lib/poolparty/spec/matchers/have_deploydirectory.rb +0 -15
- data/lib/poolparty/spec/matchers/have_directory.rb +0 -31
- data/lib/poolparty/spec/matchers/have_exec.rb +0 -28
- data/lib/poolparty/spec/matchers/have_file.rb +0 -28
- data/lib/poolparty/spec/matchers/have_gempackage.rb +0 -28
- data/lib/poolparty/spec/matchers/have_git.rb +0 -28
- data/lib/poolparty/spec/matchers/have_host.rb +0 -28
- data/lib/poolparty/spec/matchers/have_mount.rb +0 -28
- data/lib/poolparty/spec/matchers/have_package.rb +0 -28
- data/lib/poolparty/spec/matchers/have_remotefile.rb +0 -28
- data/lib/poolparty/spec/matchers/have_rsyncmirror.rb +0 -28
- data/lib/poolparty/spec/matchers/have_service.rb +0 -28
- data/lib/poolparty/spec/matchers/have_sshkey.rb +0 -28
- data/lib/poolparty/spec/matchers/have_symlink.rb +0 -28
- data/lib/poolparty/spec/matchers/have_variable.rb +0 -32
- data/lib/poolparty/spec/spec/dynamic_matchers.rb +0 -63
- data/lib/poolparty/spec/spec/ensure_matchers_exist.rb +0 -7
- data/lib/poolparty/spec/templates/have_base.rb +0 -28
- data/spec/poolparty/net/messenger_spec.rb +0 -16
- data/spec/poolparty/services/conditional_spec.rb +0 -52
- data/spec/poolparty/spec/core/string_spec.rb +0 -57
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
class String
|
|
2
|
-
def grab_entry_for(type, name)
|
|
3
|
-
begin
|
|
4
|
-
matches = self.match(/#{type}(.*)\{(.*)"#{name}":(.*)(#{_allowed})*\}/)[0]
|
|
5
|
-
rescue
|
|
6
|
-
""
|
|
7
|
-
end
|
|
8
|
-
end
|
|
9
|
-
def _allowed
|
|
10
|
-
/[ \$\._\*\-\[\]\n\t\\\/&,\(\)"',|:=\>\<A-Za-z0-9]/
|
|
11
|
-
end
|
|
12
|
-
def _grab_key_value_for(type, name, key)
|
|
13
|
-
grab_entry_for(type, name).scan(/#{key}[ =>]*(.*)[,?]?$/).flatten.first rescue ""
|
|
14
|
-
end
|
|
15
|
-
def grab_key_value_for(ty, name, key)
|
|
16
|
-
_grab_key_value_for(ty,name,key).gsub(/,/, '') rescue ""
|
|
17
|
-
end
|
|
18
|
-
end
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
module Spec
|
|
2
|
-
module Matchers
|
|
3
|
-
module SpecExtensions
|
|
4
|
-
# Mainly extensions, these methods are inherent in all of the matchers
|
|
5
|
-
# and are intended for helping parse the final manifest for spec'ing purposes.
|
|
6
|
-
class SpecExtensionsBase
|
|
7
|
-
def ensured_as(ensured="present")
|
|
8
|
-
str = "ensure => '#{ensured}'"
|
|
9
|
-
!grab_entry.scan(/#{str}/).empty?
|
|
10
|
-
end
|
|
11
|
-
def is_present?
|
|
12
|
-
!grab_entry.empty? && is_valid_resource?
|
|
13
|
-
end
|
|
14
|
-
def grab_entry
|
|
15
|
-
@target.grab_entry_for(type, @expected)
|
|
16
|
-
end
|
|
17
|
-
def type
|
|
18
|
-
"file"
|
|
19
|
-
end
|
|
20
|
-
def is_valid_resource?
|
|
21
|
-
grab_entry.split(/\n/).select {|l| nil unless l.match(/(.*)=>([\n\t ]*),$/) }.empty?
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
module Spec
|
|
2
|
-
module Matchers
|
|
3
|
-
module SpecExtensions
|
|
4
|
-
class HaveCron < SpecExtensionsBase
|
|
5
|
-
def initialize(expected,extra="")
|
|
6
|
-
@expected = expected
|
|
7
|
-
@extra = extra
|
|
8
|
-
end
|
|
9
|
-
def matches?(target)
|
|
10
|
-
@target = target
|
|
11
|
-
is_present?
|
|
12
|
-
end
|
|
13
|
-
def failure_message
|
|
14
|
-
"expected #{@target.inspect} to have cron #{@expected}"
|
|
15
|
-
end
|
|
16
|
-
def negative_failure_message
|
|
17
|
-
"expected #{@target.inspect} not to have cron #{@expected}"
|
|
18
|
-
end
|
|
19
|
-
def type
|
|
20
|
-
"cron"
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
def have_cron(name, extra="")
|
|
25
|
-
SpecExtensions::HaveCron.new(name, extra)
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
module PoolParty
|
|
2
|
-
class SpecCore
|
|
3
|
-
# dynamic_matcher_for(:deploydirectory) do
|
|
4
|
-
# it "should have the directory" do
|
|
5
|
-
# @manifest.should have_directory(@to)
|
|
6
|
-
# end
|
|
7
|
-
# it "should have the rsyncmirror" do
|
|
8
|
-
# @manifest.should have_rsyncmirror("deploydirectory-#{@to}")
|
|
9
|
-
# end
|
|
10
|
-
# it "should have the exec to unpack the archive" do
|
|
11
|
-
# @manifest.should have_exec("deploy-directory-#{@to}")
|
|
12
|
-
# end
|
|
13
|
-
# end
|
|
14
|
-
end
|
|
15
|
-
end
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
module Spec
|
|
2
|
-
module Matchers
|
|
3
|
-
module SpecExtensions
|
|
4
|
-
class HaveDirectory < SpecExtensionsBase
|
|
5
|
-
def initialize(expected,extra="")
|
|
6
|
-
@expected = expected
|
|
7
|
-
@extra = extra
|
|
8
|
-
end
|
|
9
|
-
def matches?(target)
|
|
10
|
-
@target = target
|
|
11
|
-
is_present? && is_a_directory?
|
|
12
|
-
end
|
|
13
|
-
def is_a_directory?
|
|
14
|
-
ensured_as("directory")
|
|
15
|
-
end
|
|
16
|
-
def failure_message
|
|
17
|
-
"expected #{@target.inspect} to have directory #{@expected}"
|
|
18
|
-
end
|
|
19
|
-
def negative_failure_message
|
|
20
|
-
"expected #{@target.inspect} not to have directory #{@expected}"
|
|
21
|
-
end
|
|
22
|
-
def type
|
|
23
|
-
"file"
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
def have_directory(name, extra="")
|
|
28
|
-
SpecExtensions::HaveDirectory.new(name, extra)
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
module Spec
|
|
2
|
-
module Matchers
|
|
3
|
-
module SpecExtensions
|
|
4
|
-
class HaveExec < SpecExtensionsBase
|
|
5
|
-
def initialize(expected,extra="")
|
|
6
|
-
@expected = expected
|
|
7
|
-
@extra = extra
|
|
8
|
-
end
|
|
9
|
-
def matches?(target)
|
|
10
|
-
@target = target
|
|
11
|
-
is_present?
|
|
12
|
-
end
|
|
13
|
-
def failure_message
|
|
14
|
-
"expected #{@target.inspect} to have exec #{@expected}"
|
|
15
|
-
end
|
|
16
|
-
def negative_failure_message
|
|
17
|
-
"expected #{@target.inspect} not to have exec #{@expected}"
|
|
18
|
-
end
|
|
19
|
-
def type
|
|
20
|
-
"exec"
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
def have_exec(name, extra="")
|
|
25
|
-
SpecExtensions::HaveExec.new(name, extra)
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
module Spec
|
|
2
|
-
module Matchers
|
|
3
|
-
module SpecExtensions
|
|
4
|
-
class HaveFile < SpecExtensionsBase
|
|
5
|
-
def initialize(expected,extra="")
|
|
6
|
-
@expected = expected
|
|
7
|
-
@extra = extra
|
|
8
|
-
end
|
|
9
|
-
def matches?(target)
|
|
10
|
-
@target = target
|
|
11
|
-
is_present?
|
|
12
|
-
end
|
|
13
|
-
def failure_message
|
|
14
|
-
"expected #{@target.inspect} to have file #{@expected}"
|
|
15
|
-
end
|
|
16
|
-
def negative_failure_message
|
|
17
|
-
"expected #{@target.inspect} not to have file #{@expected}"
|
|
18
|
-
end
|
|
19
|
-
def type
|
|
20
|
-
"file"
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
def have_file(name, extra="")
|
|
25
|
-
SpecExtensions::HaveFile.new(name, extra)
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
module Spec
|
|
2
|
-
module Matchers
|
|
3
|
-
module SpecExtensions
|
|
4
|
-
class HaveGempackage < SpecExtensionsBase
|
|
5
|
-
def initialize(expected,extra="")
|
|
6
|
-
@expected = expected
|
|
7
|
-
@extra = extra
|
|
8
|
-
end
|
|
9
|
-
def matches?(target)
|
|
10
|
-
@target = target
|
|
11
|
-
is_present?
|
|
12
|
-
end
|
|
13
|
-
def failure_message
|
|
14
|
-
"expected #{@target.inspect} to have gempackage #{@expected}"
|
|
15
|
-
end
|
|
16
|
-
def negative_failure_message
|
|
17
|
-
"expected #{@target.inspect} not to have gempackage #{@expected}"
|
|
18
|
-
end
|
|
19
|
-
def type
|
|
20
|
-
"exec"
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
def have_gempackage(name, extra="")
|
|
25
|
-
SpecExtensions::HaveGempackage.new(name, extra)
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
module Spec
|
|
2
|
-
module Matchers
|
|
3
|
-
module SpecExtensions
|
|
4
|
-
class HaveGit < SpecExtensionsBase
|
|
5
|
-
def initialize(expected,extra="")
|
|
6
|
-
@expected = expected
|
|
7
|
-
@extra = extra
|
|
8
|
-
end
|
|
9
|
-
def matches?(target)
|
|
10
|
-
@target = target
|
|
11
|
-
is_present?
|
|
12
|
-
end
|
|
13
|
-
def failure_message
|
|
14
|
-
"expected #{@target.inspect} to have git #{@expected}"
|
|
15
|
-
end
|
|
16
|
-
def negative_failure_message
|
|
17
|
-
"expected #{@target.inspect} not to have git #{@expected}"
|
|
18
|
-
end
|
|
19
|
-
def type
|
|
20
|
-
"git"
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
def have_git(name, extra="")
|
|
25
|
-
SpecExtensions::HaveGit.new(name, extra)
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
module Spec
|
|
2
|
-
module Matchers
|
|
3
|
-
module SpecExtensions
|
|
4
|
-
class HaveHost < SpecExtensionsBase
|
|
5
|
-
def initialize(expected,extra="")
|
|
6
|
-
@expected = expected
|
|
7
|
-
@extra = extra
|
|
8
|
-
end
|
|
9
|
-
def matches?(target)
|
|
10
|
-
@target = target
|
|
11
|
-
is_present?
|
|
12
|
-
end
|
|
13
|
-
def failure_message
|
|
14
|
-
"expected #{@target.inspect} to have host #{@expected}"
|
|
15
|
-
end
|
|
16
|
-
def negative_failure_message
|
|
17
|
-
"expected #{@target.inspect} not to have host #{@expected}"
|
|
18
|
-
end
|
|
19
|
-
def type
|
|
20
|
-
"host"
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
def have_host(name, extra="")
|
|
25
|
-
SpecExtensions::HaveHost.new(name, extra)
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
module Spec
|
|
2
|
-
module Matchers
|
|
3
|
-
module SpecExtensions
|
|
4
|
-
class HaveMount < SpecExtensionsBase
|
|
5
|
-
def initialize(expected,extra="")
|
|
6
|
-
@expected = expected
|
|
7
|
-
@extra = extra
|
|
8
|
-
end
|
|
9
|
-
def matches?(target)
|
|
10
|
-
@target = target
|
|
11
|
-
is_present?
|
|
12
|
-
end
|
|
13
|
-
def failure_message
|
|
14
|
-
"expected #{@target.inspect} to have mount #{@expected}"
|
|
15
|
-
end
|
|
16
|
-
def negative_failure_message
|
|
17
|
-
"expected #{@target.inspect} not to have mount #{@expected}"
|
|
18
|
-
end
|
|
19
|
-
def type
|
|
20
|
-
"mount"
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
def have_mount(name, extra="")
|
|
25
|
-
SpecExtensions::HaveMount.new(name, extra)
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
module Spec
|
|
2
|
-
module Matchers
|
|
3
|
-
module SpecExtensions
|
|
4
|
-
class HavePackage < SpecExtensionsBase
|
|
5
|
-
def initialize(expected,extra="")
|
|
6
|
-
@expected = expected
|
|
7
|
-
@extra = extra
|
|
8
|
-
end
|
|
9
|
-
def matches?(target)
|
|
10
|
-
@target = target
|
|
11
|
-
is_present?
|
|
12
|
-
end
|
|
13
|
-
def failure_message
|
|
14
|
-
"expected #{@target.inspect} to have package #{@expected}"
|
|
15
|
-
end
|
|
16
|
-
def negative_failure_message
|
|
17
|
-
"expected #{@target.inspect} not to have package #{@expected}"
|
|
18
|
-
end
|
|
19
|
-
def type
|
|
20
|
-
"package"
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
def have_package(name, extra="")
|
|
25
|
-
SpecExtensions::HavePackage.new(name, extra)
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
module Spec
|
|
2
|
-
module Matchers
|
|
3
|
-
module SpecExtensions
|
|
4
|
-
class HaveRemotefile < SpecExtensionsBase
|
|
5
|
-
def initialize(expected,extra="")
|
|
6
|
-
@expected = expected
|
|
7
|
-
@extra = extra
|
|
8
|
-
end
|
|
9
|
-
def matches?(target)
|
|
10
|
-
@target = target
|
|
11
|
-
is_present?
|
|
12
|
-
end
|
|
13
|
-
def failure_message
|
|
14
|
-
"expected #{@target.inspect} to have remotefile #{@expected}"
|
|
15
|
-
end
|
|
16
|
-
def negative_failure_message
|
|
17
|
-
"expected #{@target.inspect} not to have remotefile #{@expected}"
|
|
18
|
-
end
|
|
19
|
-
def type
|
|
20
|
-
"remotefile"
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
def have_remotefile(name, extra="")
|
|
25
|
-
SpecExtensions::HaveRemotefile.new(name, extra)
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
module Spec
|
|
2
|
-
module Matchers
|
|
3
|
-
module SpecExtensions
|
|
4
|
-
class HaveRsyncmirror < SpecExtensionsBase
|
|
5
|
-
def initialize(expected,extra="")
|
|
6
|
-
@expected = expected
|
|
7
|
-
@extra = extra
|
|
8
|
-
end
|
|
9
|
-
def matches?(target)
|
|
10
|
-
@target = target
|
|
11
|
-
is_present?
|
|
12
|
-
end
|
|
13
|
-
def failure_message
|
|
14
|
-
"expected #{@target.inspect} to have rsyncmirror #{@expected}"
|
|
15
|
-
end
|
|
16
|
-
def negative_failure_message
|
|
17
|
-
"expected #{@target.inspect} not to have rsyncmirror #{@expected}"
|
|
18
|
-
end
|
|
19
|
-
def type
|
|
20
|
-
"rsyncmirror"
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
def have_rsyncmirror(name, extra="")
|
|
25
|
-
SpecExtensions::HaveRsyncmirror.new(name, extra)
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
module Spec
|
|
2
|
-
module Matchers
|
|
3
|
-
module SpecExtensions
|
|
4
|
-
class HaveService < SpecExtensionsBase
|
|
5
|
-
def initialize(expected,extra="")
|
|
6
|
-
@expected = expected
|
|
7
|
-
@extra = extra
|
|
8
|
-
end
|
|
9
|
-
def matches?(target)
|
|
10
|
-
@target = target
|
|
11
|
-
is_present?
|
|
12
|
-
end
|
|
13
|
-
def failure_message
|
|
14
|
-
"expected #{@target.inspect} to have service #{@expected}"
|
|
15
|
-
end
|
|
16
|
-
def negative_failure_message
|
|
17
|
-
"expected #{@target.inspect} not to have service #{@expected}"
|
|
18
|
-
end
|
|
19
|
-
def type
|
|
20
|
-
"service"
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
def have_service(name, extra="")
|
|
25
|
-
SpecExtensions::HaveService.new(name, extra)
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
module Spec
|
|
2
|
-
module Matchers
|
|
3
|
-
module SpecExtensions
|
|
4
|
-
class HaveSshkey < SpecExtensionsBase
|
|
5
|
-
def initialize(expected,extra="")
|
|
6
|
-
@expected = expected
|
|
7
|
-
@extra = extra
|
|
8
|
-
end
|
|
9
|
-
def matches?(target)
|
|
10
|
-
@target = target
|
|
11
|
-
is_present?
|
|
12
|
-
end
|
|
13
|
-
def failure_message
|
|
14
|
-
"expected #{@target.inspect} to have sshkey #{@expected}"
|
|
15
|
-
end
|
|
16
|
-
def negative_failure_message
|
|
17
|
-
"expected #{@target.inspect} not to have sshkey #{@expected}"
|
|
18
|
-
end
|
|
19
|
-
def type
|
|
20
|
-
"sshkey"
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
def have_sshkey(name, extra="")
|
|
25
|
-
SpecExtensions::HaveSshkey.new(name, extra)
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|