hammer_cli_foreman_virt_who_configure 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +7 -0
- data/config/foreman_virt_who_configure.yml +2 -0
- data/lib/hammer_cli_foreman_virt_who_configure.rb +9 -0
- data/lib/hammer_cli_foreman_virt_who_configure/config.rb +223 -0
- data/lib/hammer_cli_foreman_virt_who_configure/i18n.rb +29 -0
- data/lib/hammer_cli_foreman_virt_who_configure/system_caller.rb +20 -0
- data/lib/hammer_cli_foreman_virt_who_configure/version.rb +5 -0
- data/locale/Makefile +66 -0
- data/locale/README.md +18 -0
- data/locale/ca/LC_MESSAGES/hammer-cli-foreman-virt-who-configure.mo +0 -0
- data/locale/ca/hammer-cli-foreman-virt-who-configure.edit.po +170 -0
- data/locale/ca/hammer-cli-foreman-virt-who-configure.po +132 -0
- data/locale/ca/hammer-cli-foreman-virt-who-configure.po.time_stamp +0 -0
- data/locale/de/LC_MESSAGES/hammer-cli-foreman-virt-who-configure.mo +0 -0
- data/locale/de/hammer-cli-foreman-virt-who-configure.edit.po +170 -0
- data/locale/de/hammer-cli-foreman-virt-who-configure.po +132 -0
- data/locale/de/hammer-cli-foreman-virt-who-configure.po.time_stamp +0 -0
- data/locale/en/LC_MESSAGES/hammer-cli-foreman-virt-who-configure.mo +0 -0
- data/locale/en/hammer-cli-foreman-virt-who-configure.edit.po +170 -0
- data/locale/en/hammer-cli-foreman-virt-who-configure.po +132 -0
- data/locale/en/hammer-cli-foreman-virt-who-configure.po.time_stamp +0 -0
- data/locale/en_GB/LC_MESSAGES/hammer-cli-foreman-virt-who-configure.mo +0 -0
- data/locale/en_GB/hammer-cli-foreman-virt-who-configure.edit.po +170 -0
- data/locale/en_GB/hammer-cli-foreman-virt-who-configure.po +132 -0
- data/locale/en_GB/hammer-cli-foreman-virt-who-configure.po.time_stamp +0 -0
- data/locale/es/LC_MESSAGES/hammer-cli-foreman-virt-who-configure.mo +0 -0
- data/locale/es/hammer-cli-foreman-virt-who-configure.edit.po +170 -0
- data/locale/es/hammer-cli-foreman-virt-who-configure.po +132 -0
- data/locale/es/hammer-cli-foreman-virt-who-configure.po.time_stamp +0 -0
- data/locale/fr/LC_MESSAGES/hammer-cli-foreman-virt-who-configure.mo +0 -0
- data/locale/fr/hammer-cli-foreman-virt-who-configure.edit.po +170 -0
- data/locale/fr/hammer-cli-foreman-virt-who-configure.po +132 -0
- data/locale/fr/hammer-cli-foreman-virt-who-configure.po.time_stamp +0 -0
- data/locale/hammer-cli-foreman-virt-who-configure.pot +177 -0
- data/locale/it/LC_MESSAGES/hammer-cli-foreman-virt-who-configure.mo +0 -0
- data/locale/it/hammer-cli-foreman-virt-who-configure.edit.po +170 -0
- data/locale/it/hammer-cli-foreman-virt-who-configure.po +132 -0
- data/locale/it/hammer-cli-foreman-virt-who-configure.po.time_stamp +0 -0
- data/locale/ja/LC_MESSAGES/hammer-cli-foreman-virt-who-configure.mo +0 -0
- data/locale/ja/hammer-cli-foreman-virt-who-configure.edit.po +170 -0
- data/locale/ja/hammer-cli-foreman-virt-who-configure.po +132 -0
- data/locale/ja/hammer-cli-foreman-virt-who-configure.po.time_stamp +0 -0
- data/locale/ko/LC_MESSAGES/hammer-cli-foreman-virt-who-configure.mo +0 -0
- data/locale/ko/hammer-cli-foreman-virt-who-configure.edit.po +170 -0
- data/locale/ko/hammer-cli-foreman-virt-who-configure.po +132 -0
- data/locale/ko/hammer-cli-foreman-virt-who-configure.po.time_stamp +0 -0
- data/locale/pt_BR/LC_MESSAGES/hammer-cli-foreman-virt-who-configure.mo +0 -0
- data/locale/pt_BR/hammer-cli-foreman-virt-who-configure.edit.po +170 -0
- data/locale/pt_BR/hammer-cli-foreman-virt-who-configure.po +132 -0
- data/locale/pt_BR/hammer-cli-foreman-virt-who-configure.po.time_stamp +0 -0
- data/locale/ru/LC_MESSAGES/hammer-cli-foreman-virt-who-configure.mo +0 -0
- data/locale/ru/hammer-cli-foreman-virt-who-configure.edit.po +171 -0
- data/locale/ru/hammer-cli-foreman-virt-who-configure.po +133 -0
- data/locale/ru/hammer-cli-foreman-virt-who-configure.po.time_stamp +0 -0
- data/locale/zh_CN/LC_MESSAGES/hammer-cli-foreman-virt-who-configure.mo +0 -0
- data/locale/zh_CN/hammer-cli-foreman-virt-who-configure.edit.po +170 -0
- data/locale/zh_CN/hammer-cli-foreman-virt-who-configure.po +132 -0
- data/locale/zh_CN/hammer-cli-foreman-virt-who-configure.po.time_stamp +0 -0
- data/locale/zh_TW/LC_MESSAGES/hammer-cli-foreman-virt-who-configure.mo +0 -0
- data/locale/zh_TW/hammer-cli-foreman-virt-who-configure.edit.po +170 -0
- data/locale/zh_TW/hammer-cli-foreman-virt-who-configure.po +132 -0
- data/locale/zh_TW/hammer-cli-foreman-virt-who-configure.po.time_stamp +0 -0
- data/test/data/1.15/foreman_api.json +1 -0
- data/test/functional/config/config_create_test.rb +93 -0
- data/test/functional/config/config_deploy_test.rb +56 -0
- data/test/functional/config/config_fetch_test.rb +60 -0
- data/test/functional/config/config_info_test.rb +147 -0
- data/test/functional/config/config_list_test.rb +53 -0
- data/test/functional/config/config_update_test.rb +46 -0
- data/test/functional/test_helper.rb +60 -0
- data/test/test_helper.rb +15 -0
- data/test/unit/system_caller_test.rb +26 -0
- metadata +154 -0
@@ -0,0 +1,56 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
describe "virt-who-config" do
|
4
|
+
describe "deploy" do
|
5
|
+
class FakeSystemCaller
|
6
|
+
def initialize(output, result=true)
|
7
|
+
@output = output
|
8
|
+
@result = result
|
9
|
+
end
|
10
|
+
|
11
|
+
def system(script)
|
12
|
+
puts @output
|
13
|
+
@result
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
before do
|
18
|
+
@cmd = ["virt-who-config", "deploy"]
|
19
|
+
@params = ['--name=test']
|
20
|
+
@script = 'echo BASH SCRIPT'
|
21
|
+
end
|
22
|
+
|
23
|
+
it "sends the script to #system" do
|
24
|
+
api_expects_search(:configs, :name => 'test').returns(index_response([config]))
|
25
|
+
api_expects(:configs, :deploy_script, 'Get config script').returns({'virt_who_config_script' => @script})
|
26
|
+
|
27
|
+
system_caller = mock
|
28
|
+
system_caller.expects(:system).with(@script).returns(true)
|
29
|
+
|
30
|
+
result = run_cmd(@cmd + @params, { :system_caller => system_caller })
|
31
|
+
assert_cmd(CommandExpectation.new, result)
|
32
|
+
end
|
33
|
+
|
34
|
+
it "prints output of the script to stdout" do
|
35
|
+
api_expects_search(:configs, :name => 'test').returns(index_response([config]))
|
36
|
+
api_expects(:configs, :deploy_script, 'Get config script').returns({'virt_who_config_script' => @script})
|
37
|
+
|
38
|
+
system_caller = FakeSystemCaller.new('Script output...')
|
39
|
+
expected_result = CommandExpectation.new('Script output...' + "\n")
|
40
|
+
|
41
|
+
result = run_cmd(@cmd + @params, { :system_caller => system_caller })
|
42
|
+
assert_cmd(expected_result, result)
|
43
|
+
end
|
44
|
+
|
45
|
+
it "returns HammerCLI::EX_SOFTWARE on config failure" do
|
46
|
+
api_expects_search(:configs, :name => 'test').returns(index_response([config]))
|
47
|
+
api_expects(:configs, :deploy_script, 'Get config script').returns({'virt_who_config_script' => @script})
|
48
|
+
|
49
|
+
system_caller = FakeSystemCaller.new('Script output...', false)
|
50
|
+
expected_result = CommandExpectation.new('Script output...' + "\n", '', HammerCLI::EX_SOFTWARE)
|
51
|
+
|
52
|
+
result = run_cmd(@cmd + @params, { :system_caller => system_caller })
|
53
|
+
assert_cmd(expected_result, result)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
describe "virt-who-config" do
|
4
|
+
describe "fetch" do
|
5
|
+
before do
|
6
|
+
@cmd = ["virt-who-config", "fetch"]
|
7
|
+
@script = 'echo BASH SCRIPT'
|
8
|
+
end
|
9
|
+
|
10
|
+
it "prints script to stdout by default" do
|
11
|
+
params = ['--name=test']
|
12
|
+
|
13
|
+
api_expects_search(:configs, :name => 'test').returns(index_response([config]))
|
14
|
+
api_expects(:configs, :deploy_script, 'Get config script').returns({'virt_who_config_script' => @script})
|
15
|
+
|
16
|
+
expected_result = CommandExpectation.new(@script + "\n")
|
17
|
+
|
18
|
+
result = run_cmd(@cmd + params)
|
19
|
+
assert_cmd(expected_result, result)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "stores script into a file" do
|
23
|
+
file = Tempfile.new
|
24
|
+
file_path = file.path
|
25
|
+
file.unlink
|
26
|
+
begin
|
27
|
+
params = ['--name=test', '--output', file_path]
|
28
|
+
|
29
|
+
api_expects_search(:configs, :name => 'test').returns(index_response([config]))
|
30
|
+
api_expects(:configs, :deploy_script, 'Get config script').returns({'virt_who_config_script' => @script})
|
31
|
+
|
32
|
+
result = run_cmd(@cmd + params)
|
33
|
+
|
34
|
+
assert_cmd(CommandExpectation.new, result)
|
35
|
+
assert_equal(@script, File.read(file_path))
|
36
|
+
ensure
|
37
|
+
File.unlink(file_path)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
it "refuses to store the script into an existing file" do
|
42
|
+
file = Tempfile.new
|
43
|
+
begin
|
44
|
+
params = ['--name=test', '--output', file.path]
|
45
|
+
|
46
|
+
api_expects_search(:configs, :name => 'test').returns(index_response([config]))
|
47
|
+
api_expects(:configs, :deploy_script, 'Get config script').returns({'virt_who_config_script' => @script})
|
48
|
+
|
49
|
+
result = run_cmd(@cmd + params)
|
50
|
+
|
51
|
+
expected_result = CommandExpectation.new('', /File at .* already exists, please specify a different path/, HammerCLI::EX_USAGE)
|
52
|
+
|
53
|
+
assert_cmd(expected_result, result)
|
54
|
+
assert_equal('', file.read)
|
55
|
+
ensure
|
56
|
+
file.unlink
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,147 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
def expect_config_search(config)
|
4
|
+
api_expects_search(:configs, :name => config['name']).returns(index_response([config]))
|
5
|
+
api_expects(:configs, :show).with_params('id' => config['id']).returns(config)
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_output_field(cmd, config_modification, output_label, output_value)
|
9
|
+
expect_config_search(config(config_modification))
|
10
|
+
|
11
|
+
output = FieldMatcher.new(output_label, output_value)
|
12
|
+
|
13
|
+
result = run_cmd(cmd)
|
14
|
+
assert_cmd(success_result(output), result)
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_status_field(cmd, api_value, output_value)
|
18
|
+
test_output_field(cmd, { "status" => api_value }, 'Status', output_value)
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_interval_field(cmd, api_value, output_value)
|
22
|
+
test_output_field(cmd, { "interval" => api_value }, 'Interval', output_value)
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_filter_field(cmd, api_value, output_value)
|
26
|
+
test_output_field(cmd, { "filtering_mode" => api_value }, 'Filtering', output_value)
|
27
|
+
end
|
28
|
+
|
29
|
+
describe "virt-who-config" do
|
30
|
+
describe "info" do
|
31
|
+
before do
|
32
|
+
@cmd = ["virt-who-config", "info", '--name=test']
|
33
|
+
end
|
34
|
+
|
35
|
+
describe "interval formatting" do
|
36
|
+
it "formats 1 hour" do
|
37
|
+
test_interval_field(@cmd, 60, 'every hour')
|
38
|
+
end
|
39
|
+
|
40
|
+
it "formats 2 hours" do
|
41
|
+
test_interval_field(@cmd, 120, 'every 2 hours')
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
describe "status formatting" do
|
46
|
+
it "formats status unknown" do
|
47
|
+
test_status_field(@cmd, 'unknown', 'No Report Yet')
|
48
|
+
end
|
49
|
+
|
50
|
+
it "formats status ok" do
|
51
|
+
test_status_field(@cmd, 'ok', 'OK')
|
52
|
+
end
|
53
|
+
|
54
|
+
it "formats status out_of_date" do
|
55
|
+
test_status_field(@cmd, 'out_of_date', 'OK')
|
56
|
+
end
|
57
|
+
|
58
|
+
it "formats status error" do
|
59
|
+
test_status_field(@cmd, 'error', 'Error')
|
60
|
+
end
|
61
|
+
|
62
|
+
it "formats unknown status" do
|
63
|
+
test_status_field(@cmd, nil, 'Unknown configuration status')
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
describe "when filter is none" do
|
68
|
+
it "formats filter" do
|
69
|
+
test_filter_field(@cmd, 0, 'Unlimited')
|
70
|
+
end
|
71
|
+
it "hides whitelist field" do
|
72
|
+
expect_config_search(config("filtering_mode" => 0))
|
73
|
+
refute_match('Filtered hosts:', run_cmd(@cmd).out)
|
74
|
+
end
|
75
|
+
|
76
|
+
it "hides blacklist field" do
|
77
|
+
expect_config_search(config("filtering_mode" => 0))
|
78
|
+
refute_match('Excluded hosts:', run_cmd(@cmd).out)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
describe "when filter is whitelist" do
|
83
|
+
it "formats filter" do
|
84
|
+
test_filter_field(@cmd, 1, 'Whitelist')
|
85
|
+
end
|
86
|
+
|
87
|
+
it "shows whitelist field" do
|
88
|
+
expect_config_search(config("filtering_mode" => 1, 'whitelist' => 'host1,hostb'))
|
89
|
+
|
90
|
+
output = FieldMatcher.new('Filtered hosts', 'host1,hostb')
|
91
|
+
|
92
|
+
result = run_cmd(@cmd)
|
93
|
+
assert_cmd(success_result(output), result)
|
94
|
+
end
|
95
|
+
|
96
|
+
it "shows empty whitelist field" do
|
97
|
+
expect_config_search(config("filtering_mode" => 1, 'whitelist' => nil))
|
98
|
+
assert_match('Filtered hosts:', run_cmd(@cmd).out)
|
99
|
+
end
|
100
|
+
|
101
|
+
it "hides blacklist field" do
|
102
|
+
expect_config_search(config("filtering_mode" => 1))
|
103
|
+
refute_match('Excluded hosts:', run_cmd(@cmd).out)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
describe "when filter is blacklist" do
|
108
|
+
it "formats filter" do
|
109
|
+
test_filter_field(@cmd, 2, 'Blacklist')
|
110
|
+
end
|
111
|
+
|
112
|
+
it "shows blacklist field" do
|
113
|
+
expect_config_search(config("filtering_mode" => 2, 'blacklist' => 'host1,hostb'))
|
114
|
+
|
115
|
+
output = FieldMatcher.new('Excluded hosts', 'host1,hostb')
|
116
|
+
|
117
|
+
result = run_cmd(@cmd)
|
118
|
+
assert_cmd(success_result(output), result)
|
119
|
+
end
|
120
|
+
|
121
|
+
it "shows empty blacklist field" do
|
122
|
+
expect_config_search(config("filtering_mode" => 2, 'whitelist' => nil))
|
123
|
+
assert_match('Excluded hosts:', run_cmd(@cmd).out)
|
124
|
+
end
|
125
|
+
|
126
|
+
it "hides whitelist field" do
|
127
|
+
expect_config_search(config("filtering_mode" => 2))
|
128
|
+
refute_match('Filtered hosts:', run_cmd(@cmd).out)
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
describe "when filter is unknown value" do
|
133
|
+
it "formats filter" do
|
134
|
+
test_filter_field(@cmd, nil, 'Unknown listing mode')
|
135
|
+
end
|
136
|
+
it "hides whitelist field" do
|
137
|
+
expect_config_search(config("filtering_mode" => 0))
|
138
|
+
refute_match('Filtered hosts:', run_cmd(@cmd).out)
|
139
|
+
end
|
140
|
+
|
141
|
+
it "hides blacklist field" do
|
142
|
+
expect_config_search(config("filtering_mode" => 0))
|
143
|
+
refute_match('Excluded hosts:', run_cmd(@cmd).out)
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
147
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
describe "virt-who-config" do
|
4
|
+
describe "list" do
|
5
|
+
before do
|
6
|
+
@cmd = ["virt-who-config", "list"]
|
7
|
+
end
|
8
|
+
|
9
|
+
it "formats interval and status" do
|
10
|
+
configs = [
|
11
|
+
config,
|
12
|
+
config('status' => 'ok', 'interval' => 120),
|
13
|
+
config('status' => 'out_of_date', 'interval' => 240),
|
14
|
+
config('status' => 'error', 'interval' => 480),
|
15
|
+
]
|
16
|
+
|
17
|
+
api_expects(:configs, :index).returns(index_response(configs))
|
18
|
+
|
19
|
+
output = IndexMatcher.new([
|
20
|
+
['ID', 'NAME', 'INTERVAL', 'STATUS', 'LAST REPORT AT'],
|
21
|
+
['11', 'test', 'every hour', 'No Report Yet', ''],
|
22
|
+
['11', 'test', 'every 2 hours', 'OK', ''],
|
23
|
+
['11', 'test', 'every 4 hours', 'OK', ''],
|
24
|
+
['11', 'test', 'every 8 hours', 'Error', '']
|
25
|
+
])
|
26
|
+
|
27
|
+
result = run_cmd(@cmd)
|
28
|
+
assert_cmd(success_result(output), result)
|
29
|
+
end
|
30
|
+
|
31
|
+
it "supports pagination" do
|
32
|
+
params = ['--page=2', '--per-page=10', '--order', 'name ASC']
|
33
|
+
|
34
|
+
api_expects(:configs, :index).with_params(
|
35
|
+
'page' => '2',
|
36
|
+
'per_page' => '10',
|
37
|
+
'order' => 'name ASC',
|
38
|
+
).returns(index_response([]))
|
39
|
+
|
40
|
+
result = run_cmd(@cmd + params)
|
41
|
+
assert_cmd(success_result(/.*/), result)
|
42
|
+
end
|
43
|
+
|
44
|
+
it "supports search" do
|
45
|
+
params = ['--search', 'name ~ test']
|
46
|
+
|
47
|
+
api_expects(:configs, :index).with_params('search' => 'name ~ test').returns(index_response([]))
|
48
|
+
|
49
|
+
result = run_cmd(@cmd + params)
|
50
|
+
assert_cmd(success_result(/.*/), result)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
describe "virt-who-config" do
|
4
|
+
describe "update" do
|
5
|
+
before do
|
6
|
+
@cmd = ["virt-who-config", "update"]
|
7
|
+
@update_args = {
|
8
|
+
:name => 'test',
|
9
|
+
:new_name => 'test2',
|
10
|
+
:interval => 60,
|
11
|
+
:filtering_mode => 'blacklist',
|
12
|
+
:hypervisor_id => 'uuid',
|
13
|
+
:hypervisor_type => 'libvirt',
|
14
|
+
:hypervisor_server => 1,
|
15
|
+
:hypervisor_username => 1,
|
16
|
+
:satellite_url => 1,
|
17
|
+
:organization_id => 1
|
18
|
+
}
|
19
|
+
end
|
20
|
+
|
21
|
+
it "sends values to api" do
|
22
|
+
params = hash_to_opts(@update_args)
|
23
|
+
|
24
|
+
expected_result = success_result("Virt Who configuration [test] updated\n")
|
25
|
+
|
26
|
+
api_expects_search(:configs, :name => 'test').returns(index_response([config]))
|
27
|
+
api_expects(:configs, :update, 'Create configuration').with_params(
|
28
|
+
'id' => 11,
|
29
|
+
'foreman_virt_who_configure_config' => {
|
30
|
+
'name' => 'test2',
|
31
|
+
'interval' => '60',
|
32
|
+
'filtering_mode' => 2,
|
33
|
+
'hypervisor_id' => 'uuid',
|
34
|
+
'hypervisor_type' => 'libvirt',
|
35
|
+
'hypervisor_server' => '1',
|
36
|
+
'hypervisor_username' => '1',
|
37
|
+
'satellite_url' => '1',
|
38
|
+
'organization_id' => 1
|
39
|
+
}
|
40
|
+
).returns({:config => config})
|
41
|
+
|
42
|
+
result = run_cmd(@cmd + params)
|
43
|
+
assert_cmd(expected_result, result)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
require 'hammer_cli/testing/command_assertions'
|
4
|
+
require 'hammer_cli/testing/output_matchers'
|
5
|
+
|
6
|
+
include HammerCLI::Testing::CommandAssertions
|
7
|
+
include HammerCLI::Testing::OutputMatchers
|
8
|
+
|
9
|
+
def missing_arguments_result(argument_name)
|
10
|
+
HammerCLI::Testing::CommandAssertions::CommandExpectation.new('', /Missing arguments for.*\[#{argument_name}\]/, HammerCLI::EX_USAGE)
|
11
|
+
end
|
12
|
+
|
13
|
+
def assert_requires_argument(cmd, params, required_argument_name)
|
14
|
+
expected_result = missing_arguments_result(required_argument_name)
|
15
|
+
|
16
|
+
api_expects_no_call
|
17
|
+
result = run_cmd(cmd + params)
|
18
|
+
assert_cmd(expected_result, result)
|
19
|
+
end
|
20
|
+
|
21
|
+
def assert_usage_error(cmd, params, error_msg)
|
22
|
+
expected_result = usage_error_result(cmd,
|
23
|
+
error_msg,
|
24
|
+
"Could not create the Virt Who configuration")
|
25
|
+
|
26
|
+
api_expects_no_call
|
27
|
+
result = run_cmd(cmd + params)
|
28
|
+
assert_cmd(expected_result, result)
|
29
|
+
end
|
30
|
+
|
31
|
+
def hash_to_opts(hash, options={})
|
32
|
+
hash.reject do |k|
|
33
|
+
k == options[:reject]
|
34
|
+
end.map do |key, value|
|
35
|
+
"--#{key.to_s.gsub('_', '-')}=#{value}"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def config(attrs = {})
|
40
|
+
{
|
41
|
+
"name" => "test",
|
42
|
+
"interval" => 60,
|
43
|
+
"organization_id" => 1,
|
44
|
+
"whitelist" => "",
|
45
|
+
"blacklist" => "",
|
46
|
+
"hypervisor_id" => "hostname",
|
47
|
+
"hypervisor_type" => "libvirt",
|
48
|
+
"hypervisor_server" => "libvirt.test.org",
|
49
|
+
"hypervisor_username" => "user",
|
50
|
+
"debug" => false,
|
51
|
+
"satellite_url" => "10.34.131.166",
|
52
|
+
"proxy" => "",
|
53
|
+
"no_proxy" => "",
|
54
|
+
"status" => "unknown",
|
55
|
+
"last_report_at" => nil,
|
56
|
+
"out_of_date_at" => nil,
|
57
|
+
"filtering_mode" => 0,
|
58
|
+
"id" => 11
|
59
|
+
}.merge(attrs)
|
60
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'minitest/spec'
|
3
|
+
require "mocha/setup"
|
4
|
+
|
5
|
+
require 'hammer_cli'
|
6
|
+
require 'hammer_cli_foreman/testing/api_expectations'
|
7
|
+
|
8
|
+
FOREMAN_VERSION = Gem::Version.new(ENV['TEST_API_VERSION'] || '1.15')
|
9
|
+
|
10
|
+
include HammerCLIForeman::Testing::APIExpectations
|
11
|
+
HammerCLI.context[:api_connection].create('foreman') do
|
12
|
+
api_connection({}, FOREMAN_VERSION)
|
13
|
+
end
|
14
|
+
|
15
|
+
require 'hammer_cli_foreman_virt_who_configure'
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'hammer_cli_foreman_virt_who_configure/system_caller'
|
2
|
+
require_relative '../test_helper'
|
3
|
+
|
4
|
+
describe "SystemCaller" do
|
5
|
+
class CaptureContentTempfile < Tempfile
|
6
|
+
attr_accessor :contents
|
7
|
+
|
8
|
+
def write(data)
|
9
|
+
@contents ||= []
|
10
|
+
@contents << data
|
11
|
+
super
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
let(:script) { 'echo "Test"' }
|
16
|
+
|
17
|
+
it 'uses tempfile for executing the script' do
|
18
|
+
tmp_file = CaptureContentTempfile.new
|
19
|
+
Kernel.expects(:system).with("/usr/bin/bash #{tmp_file.path}")
|
20
|
+
|
21
|
+
sys_caller = HammerCLIForemanVirtWhoConfigure::SystemCaller.new(tmp_file)
|
22
|
+
sys_caller.system(script)
|
23
|
+
|
24
|
+
assert_equal([script], tmp_file.contents)
|
25
|
+
end
|
26
|
+
end
|