specinfra 2.42.1 → 2.42.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 211b97ff28d60bfeda6954c6e605af14e4cd12ec
4
- data.tar.gz: 93c326f9dc28ff0c2698ca9f774d0f5717ea14db
3
+ metadata.gz: 4ea31c3d4e34d354e605356de9b60c1775c637e9
4
+ data.tar.gz: c3f7cd796806023a44a23d1deb6ab105aecb2377
5
5
  SHA512:
6
- metadata.gz: 277f327b85a7fe633f67683b7b75c2528cb4c02cd17d747aa0d91cba93ef82c4057cf05c6fe1a642296f76effdc335c7e3d5a902006c8b9a2b8d134994056640
7
- data.tar.gz: a380d86cc801f2e6a0a132b652ce652839ce2aabd0a001a0f5bc6d0de32dd58e9ea004c54ad9c6c2ee10295b3f6c7f2f4a5a39564132fd9042f65f09dc4ccdab
6
+ metadata.gz: 68ebe02f33132a5862ec46f503ab75748415ec423f7261e234e7901ad6481c77496ff550634cf0eedcd19fe68153d5727a3adafa7c0ea8cac582470682051259
7
+ data.tar.gz: 2c5c00f86f0020a6c69241aaa79cd5e37ce6d91887ad8eed33e8eda45f120f0cbba7ac0f3f81bb3122940cdef0370fab68b3f87e15ab32e6c9d1f22f3ccaa5c6
@@ -144,10 +144,12 @@ require 'specinfra/command/darwin'
144
144
  require 'specinfra/command/darwin/base'
145
145
  require 'specinfra/command/darwin/base/file'
146
146
  require 'specinfra/command/darwin/base/host'
147
+ require 'specinfra/command/darwin/base/interface'
147
148
  require 'specinfra/command/darwin/base/inventory'
148
149
  require 'specinfra/command/darwin/base/service'
149
150
  require 'specinfra/command/darwin/base/package'
150
151
  require 'specinfra/command/darwin/base/port'
152
+ require 'specinfra/command/darwin/base/process'
151
153
  require 'specinfra/command/darwin/base/user'
152
154
 
153
155
  # Debian (inherit Linux)
@@ -3,7 +3,7 @@ class Specinfra::Command::Darwin::Base::Host < Specinfra::Command::Base::Host
3
3
  def check_is_resolvable(name, type)
4
4
  if type == "dns"
5
5
  ## try to resolve either A or AAAA record; grep is used to return the appropriate exit code
6
- %Q{dig +short +time=1 -q #{escape(name)} a #{escape(name)} aaaa | grep -qie '^[0-9a-f:.]*$'}
6
+ %Q{dig +search +short +time=1 -q #{escape(name)} a #{escape(name)} aaaa | grep -qie '^[0-9a-f:.]*$'}
7
7
  elsif type == "hosts"
8
8
  "sed 's/#.*$//' /etc/hosts | grep -w -- #{escape(name)}"
9
9
  else
@@ -0,0 +1,42 @@
1
+ class Specinfra::Command::Darwin::Base::Interface < Specinfra::Command::Base::Interface
2
+ class << self
3
+ def check_exists(name)
4
+ "ifconfig #{name}"
5
+ end
6
+
7
+ def check_has_ipv4_address(interface, ip_address)
8
+ ip_address = ip_address.dup
9
+ if ip_address =~ /\/\d+$/
10
+ # remove the prefix - better would be to calculate the netmask
11
+ ip_address.gsub!(/\/\d+$/, "")
12
+ end
13
+ ip_address << " "
14
+ ip_address.gsub!(".", "\\.")
15
+ "ifconfig #{interface} inet | grep 'inet #{ip_address}'"
16
+ end
17
+
18
+ def check_has_ipv6_address(interface, ip_address)
19
+ ip_address = ip_address.dup
20
+ (ip_address, prefixlen) = ip_address.split(/\//)
21
+ ip_address.downcase!
22
+ if ip_address =~ /^fe80::/i
23
+ # link local needs the scope (interface) appended
24
+ ip_address << "%#{interface}"
25
+ end
26
+ unless prefixlen.to_s.empty?
27
+ # append prefixlen
28
+ ip_address << " prefixlen #{prefixlen}"
29
+ else
30
+ ip_address << " "
31
+ end
32
+ "ifconfig #{interface} inet6 | grep 'inet6 #{ip_address}'"
33
+ end
34
+
35
+ def get_link_state(interface)
36
+ # Checks if interfaces is administratively up with the -u arg.
37
+ # L1 check via status. Virtual interfaces like tapX missing the status will report up.
38
+ # Emulates operstate in linux with exception of the unknown status.
39
+ %Q{ifconfig -u #{interface} 2>&1 | awk -v s=up '/status:/ && $2 != "active" { s="down" }; END {print s}'}
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,7 @@
1
+ class Specinfra::Command::Darwin::Base::Process < Specinfra::Command::Base::Process
2
+ class << self
3
+ def get(process, opts)
4
+ "ps -A -c -o #{opts[:format]},command | grep -E -m 1 ^\\ *[0-9]+\\ +#{escape(process)}$ | awk '{print $1}'"
5
+ end
6
+ end
7
+ end
@@ -1,11 +1,11 @@
1
1
  class Specinfra::Command::Ubuntu::Base::Ppa < Specinfra::Command::Debian::Base::Ppa
2
2
  class << self
3
3
  def check_exists(package)
4
- %Q{find /etc/apt/ -name \*.list | xargs grep -o -E "deb +[\"']?http://ppa.launchpad.net/#{to_apt_line_uri(package)}"}
4
+ %Q{find /etc/apt/ -name \*.list | xargs grep -o -E "deb +[\\"']?http://ppa.launchpad.net/#{to_apt_line_uri(package)}"}
5
5
  end
6
6
 
7
7
  def check_is_enabled(package)
8
- %Q{find /etc/apt/ -name \*.list | xargs grep -o -E "^deb +[\"']?http://ppa.launchpad.net/#{to_apt_line_uri(package)}"}
8
+ %Q{find /etc/apt/ -name \*.list | xargs grep -o -E "^deb +[\\"']?http://ppa.launchpad.net/#{to_apt_line_uri(package)}"}
9
9
  end
10
10
 
11
11
  private
@@ -1,3 +1,3 @@
1
1
  module Specinfra
2
- VERSION = "2.42.1"
2
+ VERSION = "2.42.2"
3
3
  end
@@ -12,6 +12,10 @@ describe Specinfra::Backend::Exec do
12
12
  it 'should escape special chars' do
13
13
  expect(Specinfra.backend.build_command('test ! -f /etc/selinux/config || (getenforce | grep -i -- disabled && grep -i -- ^SELINUX=disabled$ /etc/selinux/config)')).to eq '/bin/sh -c test\ \!\ -f\ /etc/selinux/config\ \|\|\ \(getenforce\ \|\ grep\ -i\ --\ disabled\ \&\&\ grep\ -i\ --\ \^SELINUX\=disabled\$\ /etc/selinux/config\)'
14
14
  end
15
+
16
+ it 'should escape quotes' do
17
+ expect(Specinfra.backend.build_command(%Q{find /etc/apt/ -name \*.list | xargs grep -o -E "^deb +[\\"']?http://ppa.launchpad.net/gluster/glusterfs-3.7"})).to eq('/bin/sh -c find\ /etc/apt/\ -name\ \*.list\ \|\ xargs\ grep\ -o\ -E\ \"\^deb\ \+\[\\\\\"\\\'\]\?http://ppa.launchpad.net/gluster/glusterfs-3.7\"')
18
+ end
15
19
  end
16
20
 
17
21
  context 'with custom shell' do
@@ -4,7 +4,7 @@ property[:os] = nil
4
4
  set :os, :family => 'darwin'
5
5
 
6
6
  describe get_command(:check_host_is_resolvable, 'pink.unicorn.com', 'dns') do
7
- it { should eq "dig +short +time=1 -q pink.unicorn.com a pink.unicorn.com aaaa | grep -qie '^[0-9a-f:.]*$'" }
7
+ it { should eq "dig +search +short +time=1 -q pink.unicorn.com a pink.unicorn.com aaaa | grep -qie '^[0-9a-f:.]*$'" }
8
8
  end
9
9
 
10
10
  describe get_command(:check_host_is_resolvable, 'pink.unicorn.com', 'hosts') do
@@ -0,0 +1,38 @@
1
+ require 'spec_helper'
2
+
3
+ property[:os] = nil
4
+ set :os, :family => 'darwin'
5
+
6
+
7
+ describe get_command(:check_interface_exists, 'en0') do
8
+ it { should eq "ifconfig en0" }
9
+ end
10
+
11
+ describe get_command(:check_interface_has_ipv6_address, 'en0', '2001:0db8:bd05:01d2:288a:1fc0:0001:10ee') do
12
+ it { should eq "ifconfig en0 inet6 | grep 'inet6 2001:0db8:bd05:01d2:288a:1fc0:0001:10ee '" }
13
+ end
14
+
15
+ describe get_command(:check_interface_has_ipv6_address, 'en0', '2001:0db8:bd05:01d2:288a:1fc0:0001:10ee/64') do
16
+ it { should eq "ifconfig en0 inet6 | grep 'inet6 2001:0db8:bd05:01d2:288a:1fc0:0001:10ee prefixlen 64'" }
17
+ end
18
+
19
+ describe get_command(:check_interface_has_ipv6_address, 'en0', 'fe80::5054:ff:fe01:10ee/64') do
20
+ it { should eq "ifconfig en0 inet6 | grep 'inet6 fe80::5054:ff:fe01:10ee%en0 prefixlen 64'" }
21
+ end
22
+
23
+ describe get_command(:check_interface_has_ipv6_address, 'en0', 'fe80::5054:ff:fe01:10ee') do
24
+ it { should eq "ifconfig en0 inet6 | grep 'inet6 fe80::5054:ff:fe01:10ee%en0 '" }
25
+ end
26
+
27
+ describe get_command(:check_interface_has_ipv4_address, 'en0', '192.168.0.123') do
28
+ it { should eq "ifconfig en0 inet | grep 'inet 192\\.168\\.0\\.123 '" }
29
+ end
30
+
31
+ describe get_command(:check_interface_has_ipv4_address, 'en0', '192.168.0.123/24') do
32
+ it { should eq "ifconfig en0 inet | grep 'inet 192\\.168\\.0\\.123 '" }
33
+ end
34
+
35
+ describe get_command(:get_interface_link_state, 'en0') do
36
+ it { should eq %Q{ifconfig -u en0 2>&1 | awk -v s=up '/status:/ && $2 != "active" { s="down" }; END {print s}'} }
37
+ end
38
+
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ set :os, { :family => 'darwin' }
4
+
5
+ describe get_command(:get_process, 'Google Chrome', :format => 'pid=') do
6
+ it { should eq "ps -A -c -o pid=,command | grep -E -m 1 ^\\ *[0-9]+\\ +Google\\ Chrome$ | awk '{print $1}'" }
7
+ end
@@ -4,9 +4,9 @@ property[:os] = nil
4
4
  set :os, :family => 'ubuntu'
5
5
 
6
6
  describe get_command(:check_ppa_exists, 'nginx/stable') do
7
- it { should eq %(find /etc/apt/ -name *.list | xargs grep -o -E "deb +["']?http://ppa.launchpad.net/nginx/stable") }
7
+ it { should eq %(find /etc/apt/ -name *.list | xargs grep -o -E "deb +[\\\"']?http://ppa.launchpad.net/nginx/stable") }
8
8
  end
9
9
 
10
10
  describe get_command(:check_ppa_is_enabled, 'nginx/stable') do
11
- it { should eq %(find /etc/apt/ -name *.list | xargs grep -o -E "^deb +["']?http://ppa.launchpad.net/nginx/stable") }
11
+ it { should eq %(find /etc/apt/ -name *.list | xargs grep -o -E "^deb +[\\\"']?http://ppa.launchpad.net/nginx/stable") }
12
12
  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.42.1
4
+ version: 2.42.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gosuke Miyashita
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-26 00:00:00.000000000 Z
11
+ date: 2015-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-scp
@@ -229,9 +229,11 @@ files:
229
229
  - lib/specinfra/command/darwin/base.rb
230
230
  - lib/specinfra/command/darwin/base/file.rb
231
231
  - lib/specinfra/command/darwin/base/host.rb
232
+ - lib/specinfra/command/darwin/base/interface.rb
232
233
  - lib/specinfra/command/darwin/base/inventory.rb
233
234
  - lib/specinfra/command/darwin/base/package.rb
234
235
  - lib/specinfra/command/darwin/base/port.rb
236
+ - lib/specinfra/command/darwin/base/process.rb
235
237
  - lib/specinfra/command/darwin/base/service.rb
236
238
  - lib/specinfra/command/darwin/base/user.rb
237
239
  - lib/specinfra/command/debian.rb
@@ -467,6 +469,8 @@ files:
467
469
  - spec/command/base/user_spec.rb
468
470
  - spec/command/darwin/file_spec.rb
469
471
  - spec/command/darwin/host_spec.rb
472
+ - spec/command/darwin/interface_spec.rb
473
+ - spec/command/darwin/process_spec.rb
470
474
  - spec/command/darwin/user_spec.rb
471
475
  - spec/command/debian/service_spec.rb
472
476
  - spec/command/esxi/package_spec.rb
@@ -565,6 +569,8 @@ test_files:
565
569
  - spec/command/base/user_spec.rb
566
570
  - spec/command/darwin/file_spec.rb
567
571
  - spec/command/darwin/host_spec.rb
572
+ - spec/command/darwin/interface_spec.rb
573
+ - spec/command/darwin/process_spec.rb
568
574
  - spec/command/darwin/user_spec.rb
569
575
  - spec/command/debian/service_spec.rb
570
576
  - spec/command/esxi/package_spec.rb
@@ -620,4 +626,3 @@ test_files:
620
626
  - spec/host_inventory/openbsd/filesystem_spec.rb
621
627
  - spec/host_inventory/solaris/filesystem_spec.rb
622
628
  - spec/spec_helper.rb
623
- has_rdoc: