specinfra 2.82.17 → 2.82.22
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.
- checksums.yaml +5 -5
- data/lib/specinfra/backend/powershell/support/find_installed_gem.ps1 +21 -0
- data/lib/specinfra/backend/powershell/support/is_port_listening.ps1 +2 -1
- data/lib/specinfra/command/darwin/base/service.rb +8 -0
- data/lib/specinfra/command/module/ss.rb +9 -1
- data/lib/specinfra/command/windows/base/package.rb +8 -0
- data/lib/specinfra/host_inventory/virtualization.rb +1 -1
- data/lib/specinfra/version.rb +1 -1
- data/spec/command/module/ss_spec.rb +5 -5
- metadata +7 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: de49bdd9fd6857b6cf500325aacc404eaf0c9eac696ff6b4a72d3b22aa5adf14
|
|
4
|
+
data.tar.gz: 5f047ed2ddc78b139f15fc29531b8ae52fdf184c87abd3011e35280d8fcf851b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7cc5c36ee688c840f61f65e6e2b5776393cd539df7bc505eca2ce533bfb9eb01ee739bfcecae8a17bb710f3384a35c983a3f8194f4edf5acfdbe4566dee01cd6
|
|
7
|
+
data.tar.gz: 761f275ff8a9e0fa09b6b9dc28984bdcb2b0263e29c2254112b3814e9c1dd2750f8a9b997665846964928614bb997adb4f1469dfc35ba6dd114777f22bc15214
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
function FindInstalledGem
|
|
2
|
+
{
|
|
3
|
+
param($gemName, $gemVersion)
|
|
4
|
+
|
|
5
|
+
$nameVer = $(Invoke-Expression "gem list --local" | Select-String "^$gemName").Line
|
|
6
|
+
if ($nameVer.StartsWith($gemName)) {
|
|
7
|
+
if ($gemVersion) {
|
|
8
|
+
$versions = ($nameVer -split { $_ -eq "(" -or $_ -eq ")"})[1].split(" ")
|
|
9
|
+
if ($versions.Contains($gemVersion)) {
|
|
10
|
+
$true
|
|
11
|
+
} else {
|
|
12
|
+
$false
|
|
13
|
+
}
|
|
14
|
+
} else {
|
|
15
|
+
$true
|
|
16
|
+
}
|
|
17
|
+
} else {
|
|
18
|
+
$false
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
@@ -6,9 +6,10 @@ function IsPortListening
|
|
|
6
6
|
[array] $networkIPs += "0.0.0.0"
|
|
7
7
|
[array] $networkIPs += "127.0.0.1"
|
|
8
8
|
[array] $networkIPs += "[::1]"
|
|
9
|
+
[array] $networkIPs += "[::]"
|
|
9
10
|
foreach ($ipaddress in $networkIPs)
|
|
10
11
|
{
|
|
11
|
-
$matchExpression = ("$ipaddress" + ":" + $portNumber + ".*LISTENING")
|
|
12
|
+
$matchExpression = ("$ipaddress" + ":" + $portNumber + ".*(LISTENING|\*:\*)")
|
|
12
13
|
if ($protocol) { $matchExpression = ($protocol.toUpper() + "\s+$matchExpression") }
|
|
13
14
|
if ($netstatOutput -match $matchExpression) { return $true }
|
|
14
15
|
}
|
|
@@ -4,8 +4,16 @@ class Specinfra::Command::Darwin::Base::Service < Specinfra::Command::Base::Serv
|
|
|
4
4
|
"launchctl list | grep #{escape(service)}"
|
|
5
5
|
end
|
|
6
6
|
|
|
7
|
+
def check_is_enabled_under_homebrew(service)
|
|
8
|
+
"brew services list | grep #{escape(service)}"
|
|
9
|
+
end
|
|
10
|
+
|
|
7
11
|
def check_is_running(service)
|
|
8
12
|
"launchctl list | grep #{escape(service)} | grep -E '^[0-9]+'"
|
|
9
13
|
end
|
|
14
|
+
|
|
15
|
+
def check_is_running_under_homebrew(service)
|
|
16
|
+
"brew services list | grep #{escape(service)} | grep 'started'"
|
|
17
|
+
end
|
|
10
18
|
end
|
|
11
19
|
end
|
|
@@ -22,7 +22,15 @@ module Specinfra
|
|
|
22
22
|
if local_address == '0.0.0.0'
|
|
23
23
|
[ '\*' , '0\.0\.0\.0' ]
|
|
24
24
|
else
|
|
25
|
-
[ local_address ]
|
|
25
|
+
[ fix_format_if_ipv6(local_address) ]
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def fix_format_if_ipv6(local_address)
|
|
30
|
+
if local_address =~ /.*:.*/
|
|
31
|
+
"\\[#{local_address}\\]"
|
|
32
|
+
else
|
|
33
|
+
local_address
|
|
26
34
|
end
|
|
27
35
|
end
|
|
28
36
|
|
|
@@ -7,5 +7,13 @@ class Specinfra::Command::Windows::Base::Package < Specinfra::Command::Windows::
|
|
|
7
7
|
exec "(FindInstalledApplication -appName '#{package}' #{version_selection}) -eq $true"
|
|
8
8
|
end
|
|
9
9
|
end
|
|
10
|
+
|
|
11
|
+
def check_is_installed_by_gem(name, version=nil, gem_binary="gem")
|
|
12
|
+
version_selection = version.nil? ? "" : "-gemVersion '#{version}'"
|
|
13
|
+
Backend::PowerShell::Command.new do
|
|
14
|
+
using 'find_installed_gem.ps1'
|
|
15
|
+
exec "(FindInstalledGem -gemName '#{name}' #{version_selection}) -eq $true"
|
|
16
|
+
end
|
|
17
|
+
end
|
|
10
18
|
end
|
|
11
19
|
end
|
data/lib/specinfra/version.rb
CHANGED
|
@@ -14,15 +14,15 @@ describe Specinfra::Command::Module::Ss do
|
|
|
14
14
|
|
|
15
15
|
it { expect(klass.check_is_listening('80', options={:local_address => '0.0.0.0'})).to eq 'ss -tunl | grep -E -- \ \\\\\*:80\ \\|\\ 0\\\\.0\\\\.0\\\\.0:80\\ ' }
|
|
16
16
|
it { expect(klass.check_is_listening('80', options={:local_address => '0.0.0.0', :protocol => 'tcp'})).to eq 'ss -tnl4 | grep -E -- \ \\\\\*:80\ \\|\\ 0\\\\.0\\\\.0\\\\.0:80\\ ' }
|
|
17
|
-
it { expect(klass.check_is_listening('80', options={:local_address => '
|
|
17
|
+
it { expect(klass.check_is_listening('80', options={:local_address => '::', :protocol => 'tcp6'})).to eq 'ss -tnl6 | grep -E -- \ \\\\\\[::\\\\\\]:80\ ' }
|
|
18
18
|
it { expect(klass.check_is_listening('80', options={:local_address => '0.0.0.0', :protocol => 'udp'})).to eq 'ss -unl4 | grep -E -- \ \\\\\*:80\ \\|\\ 0\\\\.0\\\\.0\\\\.0:80\\ ' }
|
|
19
|
-
it { expect(klass.check_is_listening('80', options={:local_address => '
|
|
19
|
+
it { expect(klass.check_is_listening('80', options={:local_address => '::', :protocol => 'udp6'})).to eq 'ss -unl6 | grep -E -- \ \\\\\\[::\\\\\\]:80\ ' }
|
|
20
20
|
|
|
21
21
|
it { expect(klass.check_is_listening('80', options={:local_address => '1.2.3.4'})).to eq 'ss -tunl | grep -E -- \ 1.2.3.4:80\ ' }
|
|
22
|
-
it { expect(klass.check_is_listening('80', options={:local_address => '1.2.3.4', :protocol => 'tcp'})).to eq 'ss -tnl4 | grep -E --
|
|
23
|
-
it { expect(klass.check_is_listening('80', options={:local_address => '1
|
|
22
|
+
it { expect(klass.check_is_listening('80', options={:local_address => '1.2.3.4', :protocol => 'tcp'})).to eq 'ss -tnl4 | grep -E -- \\ 1.2.3.4:80\ ' }
|
|
23
|
+
it { expect(klass.check_is_listening('80', options={:local_address => '2001:db8:dead:beef::1', :protocol => 'tcp6'})).to eq 'ss -tnl6 | grep -E -- \ \\\\\\[2001:db8:dead:beef::1\\\\\\]:80\ ' }
|
|
24
24
|
it { expect(klass.check_is_listening('80', options={:local_address => '1.2.3.4', :protocol => 'udp'})).to eq 'ss -unl4 | grep -E -- \ 1.2.3.4:80\ ' }
|
|
25
|
-
it { expect(klass.check_is_listening('80', options={:local_address => '1
|
|
25
|
+
it { expect(klass.check_is_listening('80', options={:local_address => '2001:db8:dead:beef::1', :protocol => 'udp6'})).to eq 'ss -unl6 | grep -E -- \ \\\\\\[2001:db8:dead:beef::1\\\\\\]:80\ ' }
|
|
26
26
|
|
|
27
27
|
it { expect{klass.check_is_listening('80', options={:protocol => 'bad_proto'})}.to raise_error(ArgumentError, 'Unknown protocol [bad_proto]') }
|
|
28
28
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: specinfra
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.82.
|
|
4
|
+
version: 2.82.22
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Gosuke Miyashita
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-
|
|
11
|
+
date: 2020-10-23 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: net-scp
|
|
@@ -135,6 +135,7 @@ files:
|
|
|
135
135
|
- lib/specinfra/backend/powershell/support/find_group.ps1
|
|
136
136
|
- lib/specinfra/backend/powershell/support/find_iis_component.ps1
|
|
137
137
|
- lib/specinfra/backend/powershell/support/find_installed_application.ps1
|
|
138
|
+
- lib/specinfra/backend/powershell/support/find_installed_gem.ps1
|
|
138
139
|
- lib/specinfra/backend/powershell/support/find_installed_hot_fix.ps1
|
|
139
140
|
- lib/specinfra/backend/powershell/support/find_scheduled_task.ps1
|
|
140
141
|
- lib/specinfra/backend/powershell/support/find_service.ps1
|
|
@@ -613,7 +614,7 @@ homepage: https://github.com/mizzy/specinfra
|
|
|
613
614
|
licenses:
|
|
614
615
|
- MIT
|
|
615
616
|
metadata: {}
|
|
616
|
-
post_install_message:
|
|
617
|
+
post_install_message:
|
|
617
618
|
rdoc_options: []
|
|
618
619
|
require_paths:
|
|
619
620
|
- lib
|
|
@@ -628,9 +629,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
628
629
|
- !ruby/object:Gem::Version
|
|
629
630
|
version: '0'
|
|
630
631
|
requirements: []
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
signing_key:
|
|
632
|
+
rubygems_version: 3.1.2
|
|
633
|
+
signing_key:
|
|
634
634
|
specification_version: 4
|
|
635
635
|
summary: Common layer for serverspec and itamae
|
|
636
636
|
test_files:
|