specinfra 2.58.0 → 2.59.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b96d6c291a4ad614c1fb935b276b60a48712c2de
4
- data.tar.gz: 7d06566103e0dadc909f8a60a6d329db5326dc19
3
+ metadata.gz: 210fcf5adc3d236c053cc1fba165798c36229b5b
4
+ data.tar.gz: 05f2723bb8a523c802db1b9f624095a9f56f2e7a
5
5
  SHA512:
6
- metadata.gz: 8a604b92ac11245c1a1812b1cbbdb946ff7378d714c040839e85b54d84cc27195adfd6e35e44a966e8b1efa46d67d79a273ff7fdd4777f3bafd2346dc78f7e40
7
- data.tar.gz: 40a5677d5ca94efcc1e3af7852391830a6ebaa152191b32ff6bc42aee9b412ba71057979364b43fdbad5ce3be37b06dce23ee58483a9be54dbc95f51a1c380a3
6
+ metadata.gz: 52574f4fb340b334b5e0fbd55b3cab6157ac2f726e9f2be1e8aaed6deef86db9bc3be3259f48d4093c8a358510c5434d71a6c2e6a5d0f410397c06b2c5c29358
7
+ data.tar.gz: def2c971e0393aabfa5e5f8414b042a1a1ce7d70441a1cf06433608fc3cd752a9c9329fb328a734ef5b9090553b47d0381b1b3958258839d58d48a6be7848c44
@@ -3,5 +3,9 @@ class Specinfra::Command::Base::Inventory < Specinfra::Command::Base
3
3
  def get_user
4
4
  'getent passwd'
5
5
  end
6
+
7
+ def get_group
8
+ 'getent group'
9
+ end
6
10
  end
7
11
  end
@@ -14,6 +14,7 @@ module Specinfra
14
14
  kernel
15
15
  block_device
16
16
  user
17
+ group
17
18
  }
18
19
 
19
20
  include Enumerable
@@ -0,0 +1,34 @@
1
+ module Specinfra
2
+ class HostInventory
3
+ class Group < Base
4
+ def get
5
+ cmd = backend.command.get(:get_inventory_group)
6
+ ret = backend.run_command(cmd)
7
+ if ret.exit_status == 0
8
+ parse(ret.stdout)
9
+ else
10
+ nil
11
+ end
12
+ end
13
+
14
+ def parse(cmd_ret)
15
+ groups = {}
16
+ lines = cmd_ret.split(/\n/)
17
+ lines.each do |line|
18
+ group = line.split(':')
19
+ members = if group[3]
20
+ group[3].split(',')
21
+ else
22
+ []
23
+ end
24
+ groups[group[0]] = {
25
+ 'name' => group[0],
26
+ 'gid' => group[2],
27
+ 'members' => members
28
+ }
29
+ end
30
+ groups
31
+ end
32
+ end
33
+ end
34
+ end
@@ -19,7 +19,13 @@ module Specinfra
19
19
  ret = backend.run_command(cmd)
20
20
  if ret.exit_status == 0
21
21
  res[:system] = parse_system_product_name(ret.stdout)
22
- end
22
+ return res
23
+ end
24
+
25
+ ret = backend.run_command('systemd-detect-virt')
26
+ if ret.success?
27
+ res[:system] = parse_systemd_detect_virt_output(ret.stdout)
28
+ end
23
29
 
24
30
  res
25
31
  end
@@ -40,6 +46,17 @@ module Specinfra
40
46
  product_name
41
47
  end
42
48
 
49
+ def parse_systemd_detect_virt_output(ret)
50
+ detected = ret.strip
51
+
52
+ case detected
53
+ when 'vmware', 'kvm'
54
+ detected
55
+ when 'oracle'
56
+ 'vbox'
57
+ end
58
+ end
59
+
43
60
  end
44
61
  end
45
62
  end
@@ -1,3 +1,3 @@
1
1
  module Specinfra
2
- VERSION = "2.58.0"
2
+ VERSION = "2.59.0"
3
3
  end
@@ -0,0 +1,97 @@
1
+ require 'spec_helper'
2
+
3
+ str = <<-EOH
4
+ root:x:0:
5
+ bin:x:1:
6
+ daemon:x:2:
7
+ sys:x:3:
8
+ adm:x:4:
9
+ tty:x:5:
10
+ disk:x:6:
11
+ lp:x:7:
12
+ mem:x:8:
13
+ kmem:x:9:
14
+ wheel:x:10:hoge
15
+ cdrom:x:11:
16
+ mail:x:12:postfix
17
+ man:x:15:
18
+ dialout:x:18:
19
+ floppy:x:19:
20
+ games:x:20:
21
+ tape:x:30:
22
+ video:x:39:
23
+ ftp:x:50:
24
+ lock:x:54:
25
+ audio:x:63:
26
+ nobody:x:99:
27
+ users:x:100:
28
+ avahi-autoipd:x:170:
29
+ utmp:x:22:
30
+ utempter:x:35:
31
+ ssh_keys:x:999:
32
+ input:x:998:
33
+ systemd-journal:x:190:
34
+ systemd-bus-proxy:x:997:
35
+ systemd-network:x:996:
36
+ dbus:x:81:
37
+ polkitd:x:995:
38
+ dip:x:40:
39
+ tss:x:59:
40
+ postdrop:x:90:
41
+ postfix:x:89:
42
+ sshd:x:74:
43
+ ntp:x:38:
44
+ hoge:x:1000:
45
+ EOH
46
+
47
+ describe Specinfra::HostInventory::Group do
48
+ let(:host_inventory) { nil }
49
+ describe 'Example of CentOS Linux release 7.2.1511' do
50
+ ret = Specinfra::HostInventory::Group.new(host_inventory).parse(str)
51
+ example do
52
+ expect(ret).to include(
53
+ 'adm' => {'name'=>'adm', 'gid'=>'4', 'members'=>[]},
54
+ 'audio' => {'name'=>'audio', 'gid'=>'63', 'members'=>[]},
55
+ 'avahi-autoipd' => {'name'=>'avahi-autoipd', 'gid'=>'170', 'members'=>[]},
56
+ 'bin' => {'name'=>'bin', 'gid'=>'1', 'members'=>[]},
57
+ 'cdrom' => {'name'=>'cdrom', 'gid'=>'11', 'members'=>[]},
58
+ 'daemon' => {'name'=>'daemon', 'gid'=>'2', 'members'=>[]},
59
+ 'dbus' => {'name'=>'dbus', 'gid'=>'81', 'members'=>[]},
60
+ 'dialout' => {'name'=>'dialout', 'gid'=>'18', 'members'=>[]},
61
+ 'dip' => {'name'=>'dip', 'gid'=>'40', 'members'=>[]},
62
+ 'disk' => {'name'=>'disk', 'gid'=>'6', 'members'=>[]},
63
+ 'floppy' => {'name'=>'floppy', 'gid'=>'19', 'members'=>[]},
64
+ 'ftp' => {'name'=>'ftp', 'gid'=>'50', 'members'=>[]},
65
+ 'games' => {'name'=>'games', 'gid'=>'20', 'members'=>[]},
66
+ 'hoge' => {'name'=>'hoge', 'gid'=>'1000', 'members'=>[]},
67
+ 'input' => {'name'=>'input', 'gid'=>'998', 'members'=>[]},
68
+ 'kmem' => {'name'=>'kmem', 'gid'=>'9', 'members'=>[]},
69
+ 'lock' => {'name'=>'lock', 'gid'=>'54', 'members'=>[]},
70
+ 'lp' => {'name'=>'lp', 'gid'=>'7', 'members'=>[]},
71
+ 'mail' => {'name'=>'mail', 'gid'=>'12', 'members'=>['postfix']},
72
+ 'man' => {'name'=>'man', 'gid'=>'15', 'members'=>[]},
73
+ 'mem' => {'name'=>'mem', 'gid'=>'8', 'members'=>[]},
74
+ 'nobody' => {'name'=>'nobody', 'gid'=>'99', 'members'=>[]},
75
+ 'ntp' => {'name'=>'ntp', 'gid'=>'38', 'members'=>[]},
76
+ 'polkitd' => {'name'=>'polkitd', 'gid'=>'995', 'members'=>[]},
77
+ 'postdrop' => {'name'=>'postdrop', 'gid'=>'90', 'members'=>[]},
78
+ 'postfix' => {'name'=>'postfix', 'gid'=>'89', 'members'=>[]},
79
+ 'root' => {'name'=>'root', 'gid'=>'0', 'members'=>[]},
80
+ 'ssh_keys' => {'name'=>'ssh_keys', 'gid'=>'999', 'members'=>[]},
81
+ 'sshd' => {'name'=>'sshd', 'gid'=>'74', 'members'=>[]},
82
+ 'sys' => {'name'=>'sys', 'gid'=>'3', 'members'=>[]},
83
+ 'systemd-bus-proxy' => {'name'=>'systemd-bus-proxy', 'gid'=>'997', 'members'=>[]},
84
+ 'systemd-journal' => {'name'=>'systemd-journal', 'gid'=>'190', 'members'=>[]},
85
+ 'systemd-network' => {'name'=>'systemd-network', 'gid'=>'996', 'members'=>[]},
86
+ 'tape' => {'name'=>'tape', 'gid'=>'30', 'members'=>[]},
87
+ 'tss' => {'name'=>'tss', 'gid'=>'59', 'members'=>[]},
88
+ 'tty' => {'name'=>'tty', 'gid'=>'5', 'members'=>[]},
89
+ 'users' => {'name'=>'users', 'gid'=>'100', 'members'=>[]},
90
+ 'utempter' => {'name'=>'utempter', 'gid'=>'35', 'members'=>[]},
91
+ 'utmp' => {'name'=>'utmp', 'gid'=>'22', 'members'=>[]},
92
+ 'video' => {'name'=>'video', 'gid'=>'39', 'members'=>[]},
93
+ 'wheel' => {'name'=>'wheel', 'gid'=>'10', 'members'=>['hoge']}
94
+ )
95
+ end
96
+ end
97
+ 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.58.0
4
+ version: 2.59.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gosuke Miyashita
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-03 00:00:00.000000000 Z
11
+ date: 2016-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-scp
@@ -456,6 +456,7 @@ files:
456
456
  - lib/specinfra/host_inventory/ec2.rb
457
457
  - lib/specinfra/host_inventory/filesystem.rb
458
458
  - lib/specinfra/host_inventory/fqdn.rb
459
+ - lib/specinfra/host_inventory/group.rb
459
460
  - lib/specinfra/host_inventory/hostname.rb
460
461
  - lib/specinfra/host_inventory/kernel.rb
461
462
  - lib/specinfra/host_inventory/memory.rb
@@ -539,6 +540,7 @@ files:
539
540
  - spec/helper/properties_spec.rb
540
541
  - spec/helper/set_spec.rb
541
542
  - spec/host_inventory/aix/filesystem_spec.rb
543
+ - spec/host_inventory/base/group_spec.rb
542
544
  - spec/host_inventory/base/user_spec.rb
543
545
  - spec/host_inventory/darwin/filesystem_spec.rb
544
546
  - spec/host_inventory/freebsd/filesystem_spec.rb
@@ -651,6 +653,7 @@ test_files:
651
653
  - spec/helper/properties_spec.rb
652
654
  - spec/helper/set_spec.rb
653
655
  - spec/host_inventory/aix/filesystem_spec.rb
656
+ - spec/host_inventory/base/group_spec.rb
654
657
  - spec/host_inventory/base/user_spec.rb
655
658
  - spec/host_inventory/darwin/filesystem_spec.rb
656
659
  - spec/host_inventory/freebsd/filesystem_spec.rb