hammer_cli_csv 0.0.6 → 1.0.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 +8 -8
- data/lib/hammer_cli_csv/activation_keys.rb +57 -65
- data/lib/hammer_cli_csv/base.rb +62 -58
- data/lib/hammer_cli_csv/compute_profiles.rb +13 -15
- data/lib/hammer_cli_csv/compute_resources.rb +13 -15
- data/lib/hammer_cli_csv/content_hosts.rb +105 -86
- data/lib/hammer_cli_csv/content_view_filters.rb +73 -31
- data/lib/hammer_cli_csv/content_views.rb +109 -26
- data/lib/hammer_cli_csv/export.rb +64 -18
- data/lib/hammer_cli_csv/host_collections.rb +35 -33
- data/lib/hammer_cli_csv/hosts.rb +20 -20
- data/lib/hammer_cli_csv/i18n.rb +24 -0
- data/lib/hammer_cli_csv/lifecycle_environments.rb +28 -34
- data/lib/hammer_cli_csv/operating_systems.rb +17 -35
- data/lib/hammer_cli_csv/organizations.rb +13 -7
- data/lib/hammer_cli_csv/products.rb +46 -55
- data/lib/hammer_cli_csv/provisioning_templates.rb +41 -49
- data/lib/hammer_cli_csv/puppet_reports.rb +43 -52
- data/lib/hammer_cli_csv/reports.rb +23 -27
- data/lib/hammer_cli_csv/roles.rb +25 -25
- data/lib/hammer_cli_csv/smart_proxies.rb +13 -15
- data/lib/hammer_cli_csv/subnets.rb +16 -18
- data/lib/hammer_cli_csv/subscriptions.rb +35 -34
- data/lib/hammer_cli_csv/version.rb +1 -1
- data/test/content_hosts_test.rb +61 -0
- data/test/csv_test_helper.rb +22 -3
- data/test/data/activation-keys.csv +118 -118
- data/test/helpers/command.rb +4 -4
- data/test/helpers/resource_disabled.rb +3 -3
- data/test/hosts_test.rb +1 -1
- data/test/roles_test.rb +2 -2
- data/test/setup_test.rb +14 -14
- metadata +19 -4
- data/test/systems_test.rb +0 -71
data/test/helpers/command.rb
CHANGED
@@ -2,14 +2,14 @@
|
|
2
2
|
module CommandTestHelper
|
3
3
|
|
4
4
|
def with_params(params, &block)
|
5
|
-
context "with params "+params.to_s do
|
5
|
+
context "with params " + params.to_s do
|
6
6
|
let(:with_params) { params }
|
7
|
-
self.instance_eval
|
7
|
+
self.instance_eval(&block)
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
11
|
def it_should_call_action(action, params)
|
12
|
-
it "should call action "+action.to_s do
|
12
|
+
it "should call action " + action.to_s do
|
13
13
|
arguments ||= respond_to?(:with_params) ? with_params : []
|
14
14
|
cmd.resource.resource_class.expects_with(action, params)
|
15
15
|
cmd.run(arguments)
|
@@ -33,7 +33,7 @@ module CommandTestHelper
|
|
33
33
|
arguments ||= respond_to?(:with_params) ? with_params : []
|
34
34
|
|
35
35
|
cmd.stubs(:context).returns({ :adapter => :test })
|
36
|
-
proc { cmd.run(arguments) }.must_output
|
36
|
+
proc { cmd.run(arguments) }.must_output(/.*##{column_name}#.*/)
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
@@ -6,12 +6,12 @@ module CommandTestHelper
|
|
6
6
|
def with_params(params, &block)
|
7
7
|
context "with params "+params.to_s do
|
8
8
|
let(:with_params) { params }
|
9
|
-
self.instance_eval
|
9
|
+
self.instance_eval(&block)
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
13
|
def it_should_call_action(action, params)
|
14
|
-
it "should call action "+action.to_s do
|
14
|
+
it "should call action " + action.to_s do
|
15
15
|
arguments ||= respond_to?(:with_params) ? with_params : []
|
16
16
|
cmd.resource.resource_class.expects_with(action, params)
|
17
17
|
cmd.run(arguments)
|
@@ -35,7 +35,7 @@ module CommandTestHelper
|
|
35
35
|
arguments ||= respond_to?(:with_params) ? with_params : []
|
36
36
|
|
37
37
|
cmd.stubs(:context).returns({ :adapter => :test })
|
38
|
-
proc { cmd.run(arguments) }.must_output
|
38
|
+
proc { cmd.run(arguments) }.must_output(/.*##{column_name}#.*/)
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
data/test/hosts_test.rb
CHANGED
data/test/roles_test.rb
CHANGED
@@ -41,13 +41,13 @@ describe 'roles tests' do
|
|
41
41
|
}
|
42
42
|
lines = stdout.split("\n")
|
43
43
|
lines.length.must_equal 5
|
44
|
-
lines[3].must_match
|
44
|
+
lines[3].must_match(/.*damon.dials@megacorp\.com.*/)
|
45
45
|
|
46
46
|
id = lines[3].split(' ')[0]
|
47
47
|
stdout,stderr = capture {
|
48
48
|
hammer.run(%W{activation-key info --id #{id}}).must_equal HammerCLI::EX_OK
|
49
49
|
}
|
50
|
-
stdout.split("\n")[0].must_match
|
50
|
+
stdout.split("\n")[0].must_match(/.*damon.dials@megacorp.com/)
|
51
51
|
end
|
52
52
|
|
53
53
|
end
|
data/test/setup_test.rb
CHANGED
@@ -14,7 +14,7 @@ describe 'setup' do
|
|
14
14
|
hammer.run(%W{csv organizations -v --csv-file test/data/organizations.csv})
|
15
15
|
}
|
16
16
|
stderr.must_equal ''
|
17
|
-
stdout.must_match
|
17
|
+
stdout.must_match(/.*organization 'Mega Corporation'.*/)
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
@@ -24,7 +24,7 @@ describe 'setup' do
|
|
24
24
|
hammer.run(%W{csv locations -v --csv-file test/data/locations.csv})
|
25
25
|
}
|
26
26
|
stderr.must_equal ''
|
27
|
-
stdout.must_match
|
27
|
+
stdout.must_match(/.*Asia Pacific.*/)
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
@@ -34,7 +34,7 @@ describe 'setup' do
|
|
34
34
|
hammer.run(%W{csv operating-systems -v --csv-file test/data/operatingsystems.csv})
|
35
35
|
}
|
36
36
|
stderr.must_equal ''
|
37
|
-
stdout.must_match
|
37
|
+
stdout.must_match(/.*operating system 'Fedora 18'.*/)
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
@@ -44,7 +44,7 @@ describe 'setup' do
|
|
44
44
|
hammer.run(%W{csv architectures -v --csv-file test/data/architectures.csv})
|
45
45
|
}
|
46
46
|
stderr.must_equal ''
|
47
|
-
stdout.must_match
|
47
|
+
stdout.must_match(/.*architecture 'x86_64'.*/)
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
@@ -54,7 +54,7 @@ describe 'setup' do
|
|
54
54
|
hammer.run(%W{csv partition-tables -v --csv-file test/data/partitiontables.csv})
|
55
55
|
}
|
56
56
|
stderr.must_equal ''
|
57
|
-
stdout.must_match
|
57
|
+
stdout.must_match(/.*ptable 'ext4 default'.*/)
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
@@ -64,7 +64,7 @@ describe 'setup' do
|
|
64
64
|
hammer.run(%W{csv domains -v --csv-file test/data/domains.csv})
|
65
65
|
}
|
66
66
|
stderr.must_equal ''
|
67
|
-
stdout.must_match
|
67
|
+
stdout.must_match(/.*domain 'megacorp.com'.*/)
|
68
68
|
end
|
69
69
|
end
|
70
70
|
|
@@ -74,7 +74,7 @@ describe 'setup' do
|
|
74
74
|
hammer.run(%W{csv puppet-environments -v --csv-file test/data/puppetenvironments.csv})
|
75
75
|
}
|
76
76
|
stderr.must_equal ''
|
77
|
-
stdout.must_match
|
77
|
+
stdout.must_match(/.*environment 'Development'.*/)
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
@@ -85,7 +85,7 @@ describe 'setup' do
|
|
85
85
|
}
|
86
86
|
stderr.must_equal ''
|
87
87
|
stdout.split("\n").length.must_equal 255
|
88
|
-
stdout.must_match
|
88
|
+
stdout.must_match(/.*host 'dhcp129-000\.megacorp\.com'.*/)
|
89
89
|
end
|
90
90
|
end
|
91
91
|
|
@@ -95,7 +95,7 @@ describe 'setup' do
|
|
95
95
|
hammer.run(%W{csv puppet-facts -v --csv-file test/data/puppetfacts.csv})
|
96
96
|
}
|
97
97
|
stderr.must_equal ''
|
98
|
-
stdout.must_match
|
98
|
+
stdout.must_match(/.*puppetfacts 'dhcp129-000.megacorp.com'.*/)
|
99
99
|
end
|
100
100
|
end
|
101
101
|
|
@@ -117,7 +117,7 @@ describe 'setup' do
|
|
117
117
|
hammer.run(%W{csv products -v --csv-file test/data/products.csv})
|
118
118
|
}
|
119
119
|
stderr.must_equal ''
|
120
|
-
stdout.must_match
|
120
|
+
stdout.must_match(/.*product 'Point of Sale'.*/)
|
121
121
|
end
|
122
122
|
end
|
123
123
|
|
@@ -127,7 +127,7 @@ describe 'setup' do
|
|
127
127
|
hammer.run(%W{csv lifecycle-environments -v --csv-file test/data/lifecycleenvironments.csv})
|
128
128
|
}
|
129
129
|
stderr.must_equal ''
|
130
|
-
stdout.must_match
|
130
|
+
stdout.must_match(/.*environment 'Development'.*/)
|
131
131
|
end
|
132
132
|
end
|
133
133
|
|
@@ -137,7 +137,7 @@ describe 'setup' do
|
|
137
137
|
hammer.run(%W{csv system-groups -v --csv-file test/data/systemgroups.csv})
|
138
138
|
}
|
139
139
|
stderr.must_equal ''
|
140
|
-
stdout.must_match
|
140
|
+
stdout.must_match(/.*system group 'Mega Corp HQ'.*/)
|
141
141
|
end
|
142
142
|
end
|
143
143
|
|
@@ -147,7 +147,7 @@ describe 'setup' do
|
|
147
147
|
hammer.run(%W{csv systems -v --csv-file test/data/systems.csv})
|
148
148
|
}
|
149
149
|
stderr.must_equal ''
|
150
|
-
stdout.must_match
|
150
|
+
stdout.must_match(/.*system 'host0'.*/)
|
151
151
|
end
|
152
152
|
end
|
153
153
|
|
@@ -157,7 +157,7 @@ describe 'setup' do
|
|
157
157
|
hammer.run(%W{csv activation-keys -v --csv-file test/data/activationkeys.csv})
|
158
158
|
}
|
159
159
|
stderr.must_equal ''
|
160
|
-
stdout.must_match
|
160
|
+
stdout.must_match(/.*activation key 'damon\.dials@megacorp\.com'.*/)
|
161
161
|
end
|
162
162
|
end
|
163
163
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hammer_cli_csv
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tom McKay
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-03-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hammer_cli_katello
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ! '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: gettext
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '2.0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '2.0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: rubocop
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -62,6 +76,7 @@ files:
|
|
62
76
|
- lib/hammer_cli_csv/headpin_api.rb
|
63
77
|
- lib/hammer_cli_csv/host_collections.rb
|
64
78
|
- lib/hammer_cli_csv/hosts.rb
|
79
|
+
- lib/hammer_cli_csv/i18n.rb
|
65
80
|
- lib/hammer_cli_csv/import.rb
|
66
81
|
- lib/hammer_cli_csv/installation_medias.rb
|
67
82
|
- lib/hammer_cli_csv/lifecycle_environments.rb
|
@@ -84,6 +99,7 @@ files:
|
|
84
99
|
- test/activation_keys_test.rb
|
85
100
|
- test/apipie_resource_mock.rb
|
86
101
|
- test/config.template.yml
|
102
|
+
- test/content_hosts_test.rb
|
87
103
|
- test/csv_test_helper.rb
|
88
104
|
- test/data/activation-keys.csv
|
89
105
|
- test/data/architectures.csv
|
@@ -113,7 +129,6 @@ files:
|
|
113
129
|
- test/organizations_test.rb
|
114
130
|
- test/roles_test.rb
|
115
131
|
- test/setup_test.rb
|
116
|
-
- test/systems_test.rb
|
117
132
|
- test/users_test.rb
|
118
133
|
homepage: http://github.com/Katello/hammer-cli-csv
|
119
134
|
licenses:
|
@@ -143,6 +158,7 @@ test_files:
|
|
143
158
|
- test/activation_keys_test.rb
|
144
159
|
- test/apipie_resource_mock.rb
|
145
160
|
- test/config.template.yml
|
161
|
+
- test/content_hosts_test.rb
|
146
162
|
- test/csv_test_helper.rb
|
147
163
|
- test/data/activation-keys.csv
|
148
164
|
- test/data/architectures.csv
|
@@ -172,5 +188,4 @@ test_files:
|
|
172
188
|
- test/organizations_test.rb
|
173
189
|
- test/roles_test.rb
|
174
190
|
- test/setup_test.rb
|
175
|
-
- test/systems_test.rb
|
176
191
|
- test/users_test.rb
|
data/test/systems_test.rb
DELETED
@@ -1,71 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), 'csv_test_helper')
|
2
|
-
|
3
|
-
describe 'systems' do
|
4
|
-
|
5
|
-
extend CommandTestHelper
|
6
|
-
|
7
|
-
before :each do
|
8
|
-
HammerCLI::Settings.load_from_file 'test/config.yml'
|
9
|
-
|
10
|
-
@api = ApipieBindings::API.new({
|
11
|
-
:uri => HammerCLI::Settings.get(:csv, :host),
|
12
|
-
:username => HammerCLI::Settings.get(:csv, :username),
|
13
|
-
:password => HammerCLI::Settings.get(:csv, :password),
|
14
|
-
:api_version => 2
|
15
|
-
})
|
16
|
-
|
17
|
-
end
|
18
|
-
|
19
|
-
context "import" do
|
20
|
-
|
21
|
-
# TODO: Bug #4922 - system facts not updating via API
|
22
|
-
# http://projects.theforeman.org/issues/4922
|
23
|
-
it "update system facts" do
|
24
|
-
|
25
|
-
hostname = "host#{rand(10000)}"
|
26
|
-
|
27
|
-
# Create system
|
28
|
-
file = Tempfile.new('systems_test')
|
29
|
-
file.write("Name,Count,Organization,Environment,Content View,System Groups,Virtual,Host,OS,Arch,Sockets,RAM,Cores,SLA,Products,Subscriptions\n")
|
30
|
-
file.write("#{hostname},1,Mega Corporation,Library,Default Organization View,Mega Corp HQ,No,,RHEL 6.4,x86_64,1,4,1,Standard,,\n")
|
31
|
-
file.rewind
|
32
|
-
|
33
|
-
stdout,stderr = capture {
|
34
|
-
hammer.run(%W{-v csv:systems --csv-file #{file.path}})
|
35
|
-
}
|
36
|
-
stderr.must_equal ''
|
37
|
-
stdout[0..-2].must_equal "Creating system '#{hostname}'...done\nUpdating host and guest associations...done"
|
38
|
-
file.unlink
|
39
|
-
|
40
|
-
# Update system
|
41
|
-
file = Tempfile.new('systems_test')
|
42
|
-
file.write("Name,Count,Organization,Environment,Content View,System Groups,Virtual,Host,OS,Arch,Sockets,RAM,Cores,SLA,Products,Subscriptions\n")
|
43
|
-
file.write("#{hostname},1,Mega Corporation,Library,Default Organization View,Mega Corp HQ,No,,RHEL 6.4,x86_64,1,8,1,Standard,,\n")
|
44
|
-
file.rewind
|
45
|
-
|
46
|
-
stdout,stderr = capture {
|
47
|
-
hammer.run(%W{-v csv:systems --csv-file #{file.path}})
|
48
|
-
}
|
49
|
-
stderr.must_equal ''
|
50
|
-
stdout[0..-2].must_equal "Updating system '#{hostname}'...done\nUpdating host and guest associations...done"
|
51
|
-
file.unlink
|
52
|
-
|
53
|
-
# Verify system
|
54
|
-
system = @api.resource(:systems).call(:index, {
|
55
|
-
'organization_id' => 'megacorp',
|
56
|
-
'search' => "name=\"#{hostname}\""
|
57
|
-
})['results']
|
58
|
-
system.wont_be_nil
|
59
|
-
system.wont_be_empty
|
60
|
-
system[0]['name'].must_equal hostname
|
61
|
-
|
62
|
-
# Clean up
|
63
|
-
# TODO: Bug #4921 - bulk remove systems error "user not set"
|
64
|
-
# http://projects.theforeman.org/issues/4921
|
65
|
-
@api.resource(:systems).call(:destroy, {
|
66
|
-
'id' => system[0]['id']
|
67
|
-
})
|
68
|
-
end
|
69
|
-
|
70
|
-
end
|
71
|
-
end
|