rubyipmi 0.6.0 → 0.7.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 +15 -0
- data/Gemfile +5 -3
- data/README.md +24 -14
- data/Rakefile +82 -4
- data/VERSION +1 -1
- data/lib/rubyipmi.rb +36 -14
- data/lib/rubyipmi/commands/basecommand.rb +57 -119
- data/lib/rubyipmi/freeipmi/commands/basecommand.rb +29 -25
- data/lib/rubyipmi/freeipmi/commands/bmc.rb +3 -3
- data/lib/rubyipmi/freeipmi/commands/bmcconfig.rb +6 -6
- data/lib/rubyipmi/freeipmi/commands/bmcinfo.rb +3 -23
- data/lib/rubyipmi/freeipmi/commands/fru.rb +117 -23
- data/lib/rubyipmi/freeipmi/commands/lan.rb +32 -37
- data/lib/rubyipmi/freeipmi/commands/power.rb +1 -1
- data/lib/rubyipmi/freeipmi/commands/sensors.rb +53 -50
- data/lib/rubyipmi/freeipmi/connection.rb +16 -2
- data/lib/rubyipmi/freeipmi/errorcodes.rb +25 -2
- data/lib/rubyipmi/ipmitool/commands/basecommand.rb +20 -37
- data/lib/rubyipmi/ipmitool/commands/bmc.rb +1 -24
- data/lib/rubyipmi/ipmitool/commands/chassis.rb +1 -0
- data/lib/rubyipmi/ipmitool/commands/fru.rb +112 -30
- data/lib/rubyipmi/ipmitool/commands/lan.rb +55 -77
- data/lib/rubyipmi/ipmitool/commands/power.rb +10 -4
- data/lib/rubyipmi/ipmitool/commands/sensors.rb +53 -80
- data/lib/rubyipmi/ipmitool/connection.rb +19 -3
- data/lib/rubyipmi/ipmitool/errorcodes.rb +51 -3
- data/rubyipmi.gemspec +73 -33
- data/spec/Vagrantfile +45 -0
- data/spec/fixtures/freeipmi/bmc_config.txt +317 -0
- data/spec/fixtures/freeipmi/bmc_config_lan_conf.txt +19 -0
- data/spec/fixtures/freeipmi/bmc_info.txt +32 -0
- data/spec/fixtures/freeipmi/errors.txt +3 -0
- data/spec/fixtures/freeipmi/fru.txt +13 -0
- data/spec/fixtures/freeipmi/sensors.txt +29 -0
- data/spec/fixtures/ipmitool/bmc_info.txt +20 -0
- data/spec/fixtures/ipmitool/errors.txt +10 -0
- data/spec/fixtures/ipmitool/fru.txt +96 -0
- data/spec/fixtures/ipmitool/lan.txt +17 -0
- data/spec/fixtures/ipmitool/sensors.txt +105 -0
- data/spec/integration/bmc_spec.rb +49 -0
- data/spec/{chassis_config_spec.rb → integration/chassis_config_spec.rb} +6 -6
- data/spec/integration/chassis_spec.rb +26 -0
- data/spec/integration/connection_spec.rb +35 -0
- data/spec/{fru_spec.rb → integration/fru_spec.rb} +11 -10
- data/spec/{lan_spec.rb → integration/lan_spec.rb} +9 -7
- data/spec/integration/power_spec.rb +40 -0
- data/spec/{rubyipmi_spec.rb → integration/rubyipmi_spec.rb} +7 -10
- data/spec/{sensor_spec.rb → integration/sensor_spec.rb} +5 -20
- data/spec/manifests/default.pp +50 -0
- data/spec/puppetmodules/archive/LICENSE-2.0.txt +202 -0
- data/spec/puppetmodules/archive/Modulefile +8 -0
- data/spec/puppetmodules/archive/README.md +40 -0
- data/spec/puppetmodules/archive/manifests/download.pp +157 -0
- data/spec/puppetmodules/archive/manifests/extract.pp +81 -0
- data/spec/puppetmodules/archive/manifests/init.pp +70 -0
- data/spec/puppetmodules/archive/manifests/tar-gz.pp +7 -0
- data/spec/puppetmodules/archive/manifests/zip.pp +7 -0
- data/spec/puppetmodules/archive/metadata.json +26 -0
- data/spec/spec_helper.rb +35 -3
- data/spec/unit/freeipmi/bmc-info_spec.rb +42 -0
- data/spec/unit/freeipmi/bmc_spec.rb +44 -0
- data/spec/unit/freeipmi/connection_spec.rb +56 -0
- data/spec/unit/freeipmi/errorcodes_spec.rb +34 -0
- data/spec/unit/freeipmi/fru_spec.rb +77 -0
- data/spec/unit/freeipmi/lan_spec.rb +0 -0
- data/spec/unit/freeipmi/sensors_spec.rb +83 -0
- data/spec/unit/ipmitool/bmc_spec.rb +78 -0
- data/spec/unit/ipmitool/connection_spec.rb +58 -0
- data/spec/unit/ipmitool/errorcodes_spec.rb +34 -0
- data/spec/unit/ipmitool/fru_spec.rb +77 -0
- data/spec/unit/ipmitool/lan_spec.rb +93 -0
- data/spec/unit/ipmitool/sensors_spec.rb +95 -0
- data/spec/unit/rubyipmi_spec.rb +31 -0
- data/spec/vagrant +27 -0
- data/spec/vagrant.pub +1 -0
- metadata +157 -106
- data/.document +0 -5
- data/.rspec +0 -1
- data/Gemfile.lock +0 -33
- data/spec/bmc_spec.rb +0 -46
- data/spec/chassis_spec.rb +0 -26
- data/spec/connection_spec.rb +0 -31
- data/spec/power_spec.rb +0 -42
@@ -0,0 +1,8 @@
|
|
1
|
+
name 'jproyo-archive'
|
2
|
+
version '0.0.4'
|
3
|
+
source 'https://github.com/mxhero/puppet-modules/tree/master/modules/archive'
|
4
|
+
author 'Juan Pablo Royo'
|
5
|
+
license 'Apache 2.0'
|
6
|
+
summary 'Archive download and extractor to manage tar, zip, tarballs, etc.'
|
7
|
+
description "Archive download and extractor to manage tar, zip, tarballs, etc."
|
8
|
+
project_page 'https://github.com/mxhero/puppet-modules/tree/master/modules/archive'
|
@@ -0,0 +1,40 @@
|
|
1
|
+
Archive Puppet Module
|
2
|
+
====================
|
3
|
+
|
4
|
+
Overview
|
5
|
+
--------
|
6
|
+
|
7
|
+
Puppet Module to download and extract tar and zip archives based on [camptocamp/puppet-archive](https://github.com/camptocamp/puppet-archive).
|
8
|
+
|
9
|
+
Supported archive types are:
|
10
|
+
|
11
|
+
- `tar.gz`, `tgz`
|
12
|
+
- `tar.bz2`, `tbz2`
|
13
|
+
- `tar.xz`, `txz`
|
14
|
+
- `zip`
|
15
|
+
|
16
|
+
Usage
|
17
|
+
-----
|
18
|
+
|
19
|
+
Example:
|
20
|
+
|
21
|
+
archive { 'apache-tomcat-6.0.26':
|
22
|
+
ensure => present,
|
23
|
+
url => 'http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.26/bin/apache-tomcat-6.0.26.tar.gz',
|
24
|
+
target => '/opt',
|
25
|
+
}
|
26
|
+
|
27
|
+
License
|
28
|
+
-------
|
29
|
+
|
30
|
+
Copyright (c) 2012 Camptocamp SA
|
31
|
+
|
32
|
+
This script is licensed under the Apache License, Version 2.0.
|
33
|
+
|
34
|
+
See http://www.apache.org/licenses/LICENSE-2.0.html for the full license text.
|
35
|
+
|
36
|
+
|
37
|
+
Support
|
38
|
+
-------
|
39
|
+
|
40
|
+
Please log tickets and issues at our [project site](https://github.com/camptocamp/puppet-archive/issues).
|
@@ -0,0 +1,157 @@
|
|
1
|
+
/*
|
2
|
+
|
3
|
+
== Definition: archive::download
|
4
|
+
|
5
|
+
Archive downloader with integrity verification.
|
6
|
+
|
7
|
+
Parameters:
|
8
|
+
|
9
|
+
- *$url:
|
10
|
+
- *$digest_url:
|
11
|
+
- *$digest_string: Default value ""
|
12
|
+
- *$digest_type: Default value "md5".
|
13
|
+
- *$timeout: Default value 120.
|
14
|
+
- *$src_target: Default value "/usr/src".
|
15
|
+
- *$allow_insecure: Default value false.
|
16
|
+
|
17
|
+
Example usage:
|
18
|
+
|
19
|
+
archive::download {"apache-tomcat-6.0.26.tar.gz":
|
20
|
+
ensure => present,
|
21
|
+
url => "http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.26/bin/apache-tomcat-6.0.26.tar.gz",
|
22
|
+
}
|
23
|
+
|
24
|
+
archive::download {"apache-tomcat-6.0.26.tar.gz":
|
25
|
+
ensure => present,
|
26
|
+
digest_string => "f9eafa9bfd620324d1270ae8f09a8c89",
|
27
|
+
url => "http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.26/bin/apache-tomcat-6.0.26.tar.gz",
|
28
|
+
}
|
29
|
+
|
30
|
+
*/
|
31
|
+
define archive::download (
|
32
|
+
$url,
|
33
|
+
$ensure=present,
|
34
|
+
$checksum=true,
|
35
|
+
$digest_url='',
|
36
|
+
$digest_string='',
|
37
|
+
$digest_type='md5',
|
38
|
+
$timeout=120,
|
39
|
+
$src_target='/usr/src',
|
40
|
+
$allow_insecure=false,
|
41
|
+
) {
|
42
|
+
|
43
|
+
$insecure_arg = $allow_insecure ? {
|
44
|
+
true => '-k',
|
45
|
+
default => '',
|
46
|
+
}
|
47
|
+
|
48
|
+
if !defined(Package['curl']) {
|
49
|
+
package{'curl':
|
50
|
+
ensure => present,
|
51
|
+
}
|
52
|
+
}
|
53
|
+
|
54
|
+
case $checksum {
|
55
|
+
true : {
|
56
|
+
case $digest_type {
|
57
|
+
'md5','sha1','sha224','sha256','sha384','sha512' : {
|
58
|
+
$checksum_cmd = "${digest_type}sum -c ${name}.${digest_type}"
|
59
|
+
}
|
60
|
+
default: { fail 'Unimplemented digest type' }
|
61
|
+
}
|
62
|
+
|
63
|
+
if $digest_url != '' and $digest_string != '' {
|
64
|
+
fail 'digest_url and digest_string should not be used together !'
|
65
|
+
}
|
66
|
+
|
67
|
+
if $digest_string == '' {
|
68
|
+
|
69
|
+
case $ensure {
|
70
|
+
present: {
|
71
|
+
|
72
|
+
if $digest_url == '' {
|
73
|
+
$digest_src = "${url}.${digest_type}"
|
74
|
+
} else {
|
75
|
+
$digest_src = $digest_url
|
76
|
+
}
|
77
|
+
|
78
|
+
exec {"download digest of archive $name":
|
79
|
+
command => "curl ${insecure_arg} -o ${src_target}/${name}.${digest_type} ${digest_src}",
|
80
|
+
creates => "${src_target}/${name}.${digest_type}",
|
81
|
+
timeout => $timeout,
|
82
|
+
notify => Exec["download archive $name and check sum"],
|
83
|
+
path => "/usr/local/bin:/usr/bin:/bin",
|
84
|
+
require => Package['curl'],
|
85
|
+
}
|
86
|
+
|
87
|
+
}
|
88
|
+
absent: {
|
89
|
+
file{"${src_target}/${name}.${digest_type}":
|
90
|
+
ensure => absent,
|
91
|
+
purge => true,
|
92
|
+
force => true,
|
93
|
+
}
|
94
|
+
}
|
95
|
+
}
|
96
|
+
}
|
97
|
+
|
98
|
+
if $digest_string != '' {
|
99
|
+
case $ensure {
|
100
|
+
present: {
|
101
|
+
file {"${src_target}/${name}.${digest_type}":
|
102
|
+
ensure => $ensure,
|
103
|
+
content => "${digest_string} *${name}",
|
104
|
+
notify => Exec["download archive $name and check sum"],
|
105
|
+
}
|
106
|
+
}
|
107
|
+
absent: {
|
108
|
+
file {"${src_target}/${name}.${digest_type}":
|
109
|
+
ensure => absent,
|
110
|
+
purge => true,
|
111
|
+
force => true,
|
112
|
+
}
|
113
|
+
}
|
114
|
+
}
|
115
|
+
}
|
116
|
+
}
|
117
|
+
false : { notice 'No checksum for this archive' }
|
118
|
+
default: { fail ( "Unknown checksum value: '${checksum}'" ) }
|
119
|
+
}
|
120
|
+
|
121
|
+
case $ensure {
|
122
|
+
present: {
|
123
|
+
exec {"download archive $name and check sum":
|
124
|
+
command => "curl ${insecure_arg} -o ${src_target}/${name} ${url}",
|
125
|
+
path => "/usr/local/bin:/usr/bin:/bin",
|
126
|
+
creates => "${src_target}/${name}",
|
127
|
+
logoutput => true,
|
128
|
+
timeout => $timeout,
|
129
|
+
require => Package['curl'],
|
130
|
+
notify => $checksum ? {
|
131
|
+
true => Exec["rm-on-error-${name}"],
|
132
|
+
default => undef,
|
133
|
+
},
|
134
|
+
refreshonly => $checksum ? {
|
135
|
+
true => true,
|
136
|
+
default => undef,
|
137
|
+
},
|
138
|
+
}
|
139
|
+
|
140
|
+
exec {"rm-on-error-${name}":
|
141
|
+
command => "rm -f ${src_target}/${name} ${src_target}/${name}.${digest_type} && exit 1",
|
142
|
+
unless => $checksum_cmd,
|
143
|
+
cwd => $src_target,
|
144
|
+
path => "/usr/local/bin:/usr/bin:/bin",
|
145
|
+
refreshonly => true,
|
146
|
+
}
|
147
|
+
}
|
148
|
+
absent: {
|
149
|
+
file {"${src_target}/${name}":
|
150
|
+
ensure => absent,
|
151
|
+
purge => true,
|
152
|
+
force => true,
|
153
|
+
}
|
154
|
+
}
|
155
|
+
default: { fail ( "Unknown ensure value: '${ensure}'" ) }
|
156
|
+
}
|
157
|
+
}
|
@@ -0,0 +1,81 @@
|
|
1
|
+
/*
|
2
|
+
|
3
|
+
== Definition: archive::extract
|
4
|
+
|
5
|
+
Archive extractor.
|
6
|
+
|
7
|
+
Parameters:
|
8
|
+
|
9
|
+
- *$target: Destination directory
|
10
|
+
- *$src_target: Default value "/usr/src".
|
11
|
+
- *$root_dir: Default value "".
|
12
|
+
- *$extension: Default value ".tar.gz".
|
13
|
+
- *$timeout: Default value 120.
|
14
|
+
|
15
|
+
Example usage:
|
16
|
+
|
17
|
+
archive::extract {"apache-tomcat-6.0.26":
|
18
|
+
ensure => present,
|
19
|
+
target => "/opt",
|
20
|
+
}
|
21
|
+
|
22
|
+
This means we want to extract the local archive
|
23
|
+
(maybe downloaded with archive::download)
|
24
|
+
'/usr/src/apache-tomcat-6.0.26.tar.gz' in '/src/apache-tomcat-6.0.26'
|
25
|
+
|
26
|
+
Warning:
|
27
|
+
|
28
|
+
The parameter *$root_dir* must be used if the root directory of the archive
|
29
|
+
is different from the name of the archive *$name*. To extract the name of
|
30
|
+
the root directory use the commands "tar tf archive.tar.gz" or
|
31
|
+
"unzip -l archive.zip"
|
32
|
+
|
33
|
+
*/
|
34
|
+
define archive::extract (
|
35
|
+
$target,
|
36
|
+
$ensure=present,
|
37
|
+
$src_target='/usr/src',
|
38
|
+
$root_dir='',
|
39
|
+
$extension='tar.gz',
|
40
|
+
$onlyif='true',
|
41
|
+
$timeout=120) {
|
42
|
+
|
43
|
+
if $root_dir != '' {
|
44
|
+
$extract_dir = "${target}/${root_dir}"
|
45
|
+
} else {
|
46
|
+
$extract_dir = "${target}/${name}"
|
47
|
+
}
|
48
|
+
|
49
|
+
case $ensure {
|
50
|
+
present: {
|
51
|
+
|
52
|
+
$extract_zip = "unzip -o ${src_target}/${name}.${extension} -d ${target}"
|
53
|
+
$extract_targz = "tar --no-same-owner --no-same-permissions -xzf ${src_target}/${name}.${extension} -C ${target}"
|
54
|
+
$extract_tarbz2 = "tar --no-same-owner --no-same-permissions -xjf ${src_target}/${name}.${extension} -C ${target}"
|
55
|
+
|
56
|
+
exec {"$name unpack":
|
57
|
+
command => $extension ? {
|
58
|
+
'zip' => "mkdir -p ${target} && ${extract_zip}",
|
59
|
+
'tar.gz' => "mkdir -p ${target} && ${extract_targz}",
|
60
|
+
'tgz' => "mkdir -p ${target} && ${extract_targz}",
|
61
|
+
'tar.bz2' => "mkdir -p ${target} && ${extract_tarbz2}",
|
62
|
+
'tgz2' => "mkdir -p ${target} && ${extract_tarbz2}",
|
63
|
+
default => fail ( "Unknown extension value '${extension}'" ),
|
64
|
+
},
|
65
|
+
path => "/usr/local/bin:/usr/bin:/bin",
|
66
|
+
creates => $extract_dir,
|
67
|
+
onlyif => $onlyif,
|
68
|
+
timeout => $timeout
|
69
|
+
}
|
70
|
+
}
|
71
|
+
absent: {
|
72
|
+
file {$extract_dir:
|
73
|
+
ensure => absent,
|
74
|
+
recurse => true,
|
75
|
+
purge => true,
|
76
|
+
force => true,
|
77
|
+
}
|
78
|
+
}
|
79
|
+
default: { err ( "Unknown ensure value: '${ensure}'" ) }
|
80
|
+
}
|
81
|
+
}
|
@@ -0,0 +1,70 @@
|
|
1
|
+
/*
|
2
|
+
|
3
|
+
== Definition: archive
|
4
|
+
|
5
|
+
Download and extract an archive.
|
6
|
+
|
7
|
+
Parameters:
|
8
|
+
|
9
|
+
- *$url:
|
10
|
+
- *$target: Destination directory
|
11
|
+
- *$checksum: Default value "true"
|
12
|
+
- *$digest_url: Default value ""
|
13
|
+
- *$digest_string: Default value ""
|
14
|
+
- *$digest_type: Default value "md5"
|
15
|
+
- *$src_target: Default value "/usr/src"
|
16
|
+
- *$root_dir: Default value ""
|
17
|
+
- *$extension: Default value ".tar.gz"
|
18
|
+
- *$timeout: Default value 120
|
19
|
+
- *$allow_insecure: Default value false
|
20
|
+
- *$onlyif: Expression console to test if we have to execute this class
|
21
|
+
|
22
|
+
Example usage:
|
23
|
+
|
24
|
+
archive {"apache-tomcat-6.0.26":
|
25
|
+
ensure => present,
|
26
|
+
url => "http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.26/bin/apache-tomcat-6.0.26.tar.gz",
|
27
|
+
target => "/opt",
|
28
|
+
}
|
29
|
+
|
30
|
+
*/
|
31
|
+
define archive (
|
32
|
+
$url,
|
33
|
+
$target,
|
34
|
+
$ensure=present,
|
35
|
+
$checksum=true,
|
36
|
+
$digest_url='',
|
37
|
+
$digest_string='',
|
38
|
+
$digest_type='md5',
|
39
|
+
$timeout=120,
|
40
|
+
$root_dir='',
|
41
|
+
$extension='tar.gz',
|
42
|
+
$src_target='/usr/src',
|
43
|
+
$allow_insecure=true,
|
44
|
+
$onlyif = "true",
|
45
|
+
) {
|
46
|
+
|
47
|
+
archive::download {"${name}.${extension}":
|
48
|
+
ensure => $ensure,
|
49
|
+
url => $url,
|
50
|
+
checksum => $checksum,
|
51
|
+
digest_url => $digest_url,
|
52
|
+
digest_string => $digest_string,
|
53
|
+
digest_type => $digest_type,
|
54
|
+
timeout => $timeout,
|
55
|
+
src_target => $src_target,
|
56
|
+
allow_insecure => $allow_insecure,
|
57
|
+
}
|
58
|
+
|
59
|
+
archive::extract {$name:
|
60
|
+
ensure => $ensure,
|
61
|
+
target => $target,
|
62
|
+
src_target => $src_target,
|
63
|
+
root_dir => $root_dir,
|
64
|
+
extension => $extension,
|
65
|
+
timeout => $timeout,
|
66
|
+
onlyif => $onlyif,
|
67
|
+
require => Archive::Download["${name}.${extension}"]
|
68
|
+
}
|
69
|
+
|
70
|
+
}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
define archive::zip($source, $target) {
|
2
|
+
exec {"$name unpack":
|
3
|
+
command => "TMPFILE=\$(mktemp); curl -o \${TMPFILE}.zip ${source} && unzip \${TMPFILE}.zip -d ${target} && rm \$TMPFILE && rm \${TMPFILE}.zip && touch ${name}",
|
4
|
+
creates => $name,
|
5
|
+
require => Package['unzip'],
|
6
|
+
}
|
7
|
+
}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
{
|
2
|
+
"name": "jproyo-archive",
|
3
|
+
"version": "0.0.4",
|
4
|
+
"source": "https://github.com/mxhero/puppet-modules/tree/master/modules/archive",
|
5
|
+
"author": "Juan Pablo Royo",
|
6
|
+
"license": "Apache 2.0",
|
7
|
+
"summary": "Archive download and extractor to manage tar, zip, tarballs, etc.",
|
8
|
+
"description": "Archive download and extractor to manage tar, zip, tarballs, etc.",
|
9
|
+
"project_page": "https://github.com/mxhero/puppet-modules/tree/master/modules/archive",
|
10
|
+
"dependencies": [
|
11
|
+
|
12
|
+
],
|
13
|
+
"types": [
|
14
|
+
|
15
|
+
],
|
16
|
+
"checksums": {
|
17
|
+
"LICENSE-2.0.txt": "3b83ef96387f14655fc854ddc3c6bd57",
|
18
|
+
"Modulefile": "a76a4c40cc1d9f180cc939b25ffef2d7",
|
19
|
+
"README.md": "4d073a0b89325bec1043077da735d2b6",
|
20
|
+
"manifests/download.pp": "4534c4e36c4c66709d6c7c2b81c0bb4d",
|
21
|
+
"manifests/extract.pp": "b71cf3b77a20be26f2955e16c4ddf322",
|
22
|
+
"manifests/init.pp": "7736371f5930f37ba1eadde4b3015c83",
|
23
|
+
"manifests/tar-gz.pp": "b5be6abbf6117ced47a607c44cb32bba",
|
24
|
+
"manifests/zip.pp": "6acec396618df9c492a576c1fb372b6c"
|
25
|
+
}
|
26
|
+
}
|
data/spec/spec_helper.rb
CHANGED
@@ -1,12 +1,44 @@
|
|
1
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '
|
1
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '../', 'lib'))
|
2
2
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
3
3
|
require 'rspec'
|
4
4
|
require 'rubyipmi'
|
5
5
|
|
6
6
|
# Requires supporting files with custom matchers and macros, etc,
|
7
7
|
# in ./support/ and its subdirectories.
|
8
|
-
|
8
|
+
|
9
|
+
#Dir["#{File.dirname(__FILE__)}/unit/**/*.rb"].each {|f| require f}
|
10
|
+
|
11
|
+
def command_is_eql?(source, expected)
|
12
|
+
src = source.split(' ')
|
13
|
+
exp = expected.split(' ')
|
14
|
+
return exp - src
|
15
|
+
end
|
16
|
+
|
17
|
+
def verify_freeipmi_command(cmdobj, exp_args_count, expcmd)
|
18
|
+
actual = cmdobj.lastcall
|
19
|
+
actual.scan(/(^#{Regexp.escape(expcmd)})/) do |cmd_match|
|
20
|
+
cmd_match.first.should eq(expcmd)
|
21
|
+
end
|
22
|
+
args_match = actual.scan(/(\-{2}[\w-]*=?[-\w\/]*)/)
|
23
|
+
# not sure how to exactly test for arguments since they could vary, so we will need to use count for now
|
24
|
+
#args_match.should =~ exp_args
|
25
|
+
args_match.count.should eq(exp_args_count)
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
def verify_ipmitool_command(cmdobj, exp_args_count, expcmd, required_args)
|
30
|
+
actual = cmdobj.lastcall
|
31
|
+
actual.scan(/(^#{Regexp.escape(expcmd)})/) do |cmd_match|
|
32
|
+
cmd_match.first.should eq(expcmd)
|
33
|
+
end
|
34
|
+
args_match = actual.scan(/(-\w\s[\w\d\S]*)/)
|
35
|
+
actual.include?(required_args).should be_true
|
36
|
+
# not sure how to exactly test for arguments since they could vary, so we will need to use count for now
|
37
|
+
#args_match.should =~ exp_args
|
38
|
+
args_match.count.should eq(exp_args_count)
|
39
|
+
end
|
40
|
+
|
9
41
|
|
10
42
|
RSpec.configure do |config|
|
11
|
-
|
43
|
+
|
12
44
|
end
|