hammer_cli_csv 2.0.0 → 2.1.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 +5 -13
- data/config/cli_config.yml +9 -24
- data/lib/hammer_cli_csv/activation_keys.rb +220 -95
- data/lib/hammer_cli_csv/architectures.rb +7 -11
- data/lib/hammer_cli_csv/base.rb +67 -41
- data/lib/hammer_cli_csv/compute_profiles.rb +11 -15
- data/lib/hammer_cli_csv/compute_resources.rb +11 -15
- data/lib/hammer_cli_csv/containers.rb +10 -12
- data/lib/hammer_cli_csv/content_hosts.rb +285 -203
- data/lib/hammer_cli_csv/content_view_filters.rb +32 -36
- data/lib/hammer_cli_csv/content_views.rb +33 -37
- data/lib/hammer_cli_csv/csv.rb +17 -1
- data/lib/hammer_cli_csv/domains.rb +15 -19
- data/lib/hammer_cli_csv/export.rb +13 -5
- data/lib/hammer_cli_csv/host_collections.rb +20 -22
- data/lib/hammer_cli_csv/host_groups.rb +73 -65
- data/lib/hammer_cli_csv/hosts.rb +30 -34
- data/lib/hammer_cli_csv/import.rb +24 -10
- data/lib/hammer_cli_csv/installation_media.rb +74 -0
- data/lib/hammer_cli_csv/job_templates.rb +37 -41
- data/lib/hammer_cli_csv/lifecycle_environments.rb +15 -19
- data/lib/hammer_cli_csv/locations.rb +4 -6
- data/lib/hammer_cli_csv/operating_systems.rb +17 -21
- data/lib/hammer_cli_csv/organizations.rb +11 -13
- data/lib/hammer_cli_csv/partition_tables.rb +17 -21
- data/lib/hammer_cli_csv/products.rb +200 -92
- data/lib/hammer_cli_csv/provisioning_templates.rb +19 -23
- data/lib/hammer_cli_csv/puppet_environments.rb +8 -12
- data/lib/hammer_cli_csv/puppet_facts.rb +20 -24
- data/lib/hammer_cli_csv/puppet_reports.rb +47 -51
- data/lib/hammer_cli_csv/reports.rb +6 -10
- data/lib/hammer_cli_csv/roles.rb +12 -16
- data/lib/hammer_cli_csv/settings.rb +8 -6
- data/lib/hammer_cli_csv/smart_proxies.rb +9 -13
- data/lib/hammer_cli_csv/splice.rb +1 -3
- data/lib/hammer_cli_csv/subnets.rb +24 -28
- data/lib/hammer_cli_csv/subscriptions.rb +39 -91
- data/lib/hammer_cli_csv/sync_plans.rb +20 -24
- data/lib/hammer_cli_csv/users.rb +25 -29
- data/lib/hammer_cli_csv/utils/subscriptions.rb +130 -0
- data/lib/hammer_cli_csv/version.rb +1 -1
- data/lib/hammer_cli_csv.rb +2 -2
- data/test/csv_test.rb +32 -0
- data/test/csv_test_helper.rb +17 -2
- data/test/data/content-hosts.csv +3 -2
- data/test/data/hosts.csv +0 -11
- data/test/data/settings.csv +1 -0
- data/test/data/setup/content-hosts.csv +1 -0
- data/test/data/setup/content-views.csv +2 -0
- data/test/data/setup/lifecycle-environments.csv +5 -0
- data/test/data/setup/locations.csv +6 -0
- data/test/data/setup/organizations.csv +2 -0
- data/test/data/setup/subscriptions.csv +5 -0
- data/test/data/subscriptions.csv +15 -17
- data/test/export_test.rb +27 -0
- data/test/fixtures/vcr_cassettes/apipie.yml +18528 -0
- data/test/fixtures/vcr_cassettes/resources/activation_keys_import/create_and_update.yml +38033 -0
- data/test/fixtures/vcr_cassettes/resources/content_hosts_export/export.yml +18846 -0
- data/test/fixtures/vcr_cassettes/resources/content_hosts_export/export_subscriptions.yml +323 -0
- data/test/fixtures/vcr_cassettes/resources/content_hosts_import/create_and_update.yml +41884 -0
- data/test/fixtures/vcr_cassettes/resources/content_hosts_import/import_single_line.yml +38248 -0
- data/test/fixtures/vcr_cassettes/resources/settings_import/update_settings.yml +18832 -0
- data/test/fixtures/vcr_cassettes/resources/settings_import/update_settings_continue.yml +316 -0
- data/test/fixtures/vcr_cassettes/resources/subscriptions_import/manifest_does_not_exist.yml +18785 -0
- data/test/fixtures/vcr_cassettes/setup/setup_content_views/setup.yml +19090 -0
- data/test/fixtures/vcr_cassettes/setup/setup_lifecycle_environments/setup.yml +924 -0
- data/test/fixtures/vcr_cassettes/setup/setup_locations/setup.yml +21102 -0
- data/test/fixtures/vcr_cassettes/setup/setup_organizations/setup.yml +19278 -0
- data/test/fixtures/vcr_cassettes/setup/setup_subscriptions/setup.yml +419 -0
- data/test/import_test.rb +20 -25
- data/test/resources/activation_keys_test.rb +72 -0
- data/test/resources/content_hosts_test.rb +132 -0
- data/test/resources/settings_test.rb +81 -0
- data/test/resources/subscriptions_test.rb +56 -0
- data/test/setup/setup_content_views.rb +17 -0
- data/test/setup/setup_lifecycle_environments.rb +17 -0
- data/test/setup/setup_locations.rb +17 -0
- data/test/setup/setup_organizations.rb +17 -0
- data/test/setup/setup_subscriptions.rb +20 -0
- data/test/setup/setup_test.rb +10 -0
- data/test/test_runner.rb +175 -0
- data/test/vcr_setup.rb +54 -0
- metadata +77 -13
- data/lib/hammer_cli_csv/exception_handler.rb +0 -42
- data/lib/hammer_cli_csv/installation_medias.rb +0 -77
- data/test/content_hosts_test.rb +0 -61
- data/test/settings_test.rb +0 -30
data/lib/hammer_cli_csv.rb
CHANGED
|
@@ -6,7 +6,7 @@ module HammerCLICsv
|
|
|
6
6
|
require 'hammer_cli_foreman_tasks'
|
|
7
7
|
|
|
8
8
|
require 'hammer_cli_csv/base'
|
|
9
|
-
require 'hammer_cli_csv/
|
|
9
|
+
require 'hammer_cli_csv/utils/subscriptions'
|
|
10
10
|
|
|
11
11
|
require 'hammer_cli_csv/csv'
|
|
12
12
|
require 'hammer_cli_csv/activation_keys'
|
|
@@ -23,7 +23,7 @@ module HammerCLICsv
|
|
|
23
23
|
require 'hammer_cli_csv/hosts'
|
|
24
24
|
require 'hammer_cli_csv/host_groups'
|
|
25
25
|
require 'hammer_cli_csv/import'
|
|
26
|
-
require 'hammer_cli_csv/
|
|
26
|
+
require 'hammer_cli_csv/installation_media'
|
|
27
27
|
require 'hammer_cli_csv/job_templates'
|
|
28
28
|
require 'hammer_cli_csv/lifecycle_environments'
|
|
29
29
|
require 'hammer_cli_csv/locations'
|
data/test/csv_test.rb
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'csv_test_helper')
|
|
2
|
+
|
|
3
|
+
describe 'csv' do
|
|
4
|
+
extend CommandTestHelper
|
|
5
|
+
|
|
6
|
+
context "help" do
|
|
7
|
+
it "displays supported options" do
|
|
8
|
+
set_user 'admin'
|
|
9
|
+
|
|
10
|
+
stdout,stderr = capture {
|
|
11
|
+
hammer.run(%W{csv --help})
|
|
12
|
+
}
|
|
13
|
+
stderr.must_equal ''
|
|
14
|
+
stdout.must_equal <<-HELP
|
|
15
|
+
Usage:
|
|
16
|
+
csv [OPTIONS] SUBCOMMAND [ARG] ...
|
|
17
|
+
|
|
18
|
+
Parameters:
|
|
19
|
+
SUBCOMMAND subcommand
|
|
20
|
+
[ARG] ... subcommand arguments
|
|
21
|
+
|
|
22
|
+
Subcommands:
|
|
23
|
+
export export into directory
|
|
24
|
+
import import by directory
|
|
25
|
+
settings import or export settings
|
|
26
|
+
|
|
27
|
+
Options:
|
|
28
|
+
-h, --help print help
|
|
29
|
+
HELP
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
data/test/csv_test_helper.rb
CHANGED
|
@@ -16,14 +16,16 @@ require 'minitest/spec'
|
|
|
16
16
|
require "minitest-spec-context"
|
|
17
17
|
require "mocha/setup"
|
|
18
18
|
|
|
19
|
+
require './test/test_runner'
|
|
20
|
+
|
|
19
21
|
require 'hammer_cli'
|
|
20
22
|
require 'hammer_cli_foreman/commands'
|
|
21
23
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
VCR.insert_cassette("apipie", {})
|
|
24
25
|
require 'hammer_cli_csv'
|
|
25
26
|
require 'hammer_cli_foreman'
|
|
26
27
|
require 'hammer_cli_katello'
|
|
28
|
+
VCR.eject_cassette
|
|
27
29
|
|
|
28
30
|
module HammerCLIForeman
|
|
29
31
|
def self.clear_credentials
|
|
@@ -88,6 +90,19 @@ def set_user(username, password='changeme')
|
|
|
88
90
|
})
|
|
89
91
|
end
|
|
90
92
|
|
|
93
|
+
def host_delete(hostname)
|
|
94
|
+
stdout,stderr = capture {
|
|
95
|
+
hammer.run(%W(host list --search #{hostname}))
|
|
96
|
+
}
|
|
97
|
+
lines = stdout.split("\n")
|
|
98
|
+
if lines.length == 5
|
|
99
|
+
id = stdout.split("\n")[3].split(" ")[0]
|
|
100
|
+
stdout,stderr = capture {
|
|
101
|
+
hammer.run(%W(host delete --id #{id}))
|
|
102
|
+
}
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
|
|
91
106
|
require File.join(File.dirname(__FILE__), 'apipie_resource_mock')
|
|
92
107
|
require File.join(File.dirname(__FILE__), 'helpers/command')
|
|
93
108
|
require File.join(File.dirname(__FILE__), 'helpers/resource_disabled')
|
data/test/data/content-hosts.csv
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
Name,Count,Organization,Environment,Content View,Host Collections,Virtual,Host,OS,Arch,Sockets,RAM,Cores,SLA,Products,Subscriptions
|
|
2
|
-
host%d,1,Mega Corporation,Library,Default Organization View,"Mega Corp HQ",No,,RHEL 6.4,x86_64,1,4 GB,1,Standard,"69|Red Hat Enterprise Linux Server",
|
|
2
|
+
host%d,1,Mega Corporation,Library,Default Organization View,"Mega Corp HQ",No,,RHEL 6.4,x86_64,1,4 GB,1,Standard,"69|Red Hat Enterprise Linux Server,83|Red Hat Enterprise Linux High Availability (for RHEL Server)",
|
|
3
3
|
guest%d,4,Mega Corporation,Library,Default Organization View,"Mega Corp HQ,Accounting",Yes,host0,RHEL 6.4,x86_64,1,4 GB,1,Standard,"69|Red Hat Enterprise Linux Server",
|
|
4
|
-
|
|
4
|
+
xyz%d,4,Mega Corporation,Library,Default Organization View,"Mega Corp HQ,Accounting",Yes,,RHEL 6.4,x86_64,1,4 GB,1,Standard,"69|Red Hat Enterprise Linux Server",
|
|
5
|
+
|
data/test/data/hosts.csv
CHANGED
|
@@ -1,12 +1 @@
|
|
|
1
1
|
Name,Count,Organization,Location,Puppet Environment,Operating System,Architecture,MAC Address,Domain,Partition Table
|
|
2
|
-
dhcp130-%03d.megacorp.com,255,Mega Corporation,Asia Pacific,Development,RHEL 6.4,x86_64,"02:FE:B5:E0:70:%02x",megacorp.com,RedHat default
|
|
3
|
-
dhcp129-%03d.megacorp.com,255,Mega Corporation,Development,RHEL 6.4,x86_64,"01:FE:B5:E0:70:%02x",megacorp.com,RedHat default
|
|
4
|
-
# dhcp129-1%02d.megacorp.com,255,Mega Corporation,Development,RHEL 6.4,x86_64,"01:FE:B5:E1:70:%02x",megacorp.com,RedHat default
|
|
5
|
-
# dhcp129-2%02d.megacorp.com,255,Mega Corporation,Development,RHEL 6.4,x86_64,"01:FE:B5:E2:70:%02x",megacorp.com,RedHat default
|
|
6
|
-
# dhcp129-3%02d.megacorp.com,255,Mega Corporation,Development,RHEL 6.4,x86_64,"01:FE:B5:E3:70:%02x",megacorp.com,RedHat default
|
|
7
|
-
# dhcp129-4%02d.megacorp.com,255,Mega Corporation,Development,RHEL 6.3,x86_64,"01:54:00:E4:83:%02x",megacorp.com,RedHat default
|
|
8
|
-
# dhcp129-5%02d.megacorp.com,255,Mega Corporation,Development,RHEL 6.3,x86_64,"01:54:00:E5:83:%02x",megacorp.com,RedHat default
|
|
9
|
-
# dhcp129-6%02d.megacorp.com,255,Mega Corporation,Development,RHEL 6.3,x86_64,"01:54:00:E6:83:%02x",megacorp.com,RedHat default
|
|
10
|
-
# dhcp129-7%02d.megacorp.com,255,Mega Corporation,Development,RHEL 6.3,x86_64,"01:54:00:E7:83:%02x",megacorp.com,RedHat default
|
|
11
|
-
# dhcp129-8%02d.megacorp.com,255,Mega Corporation,Development,RHEL 6.3,x86_64,"01:54:00:E8:83:%02x",megacorp.com,RedHat default
|
|
12
|
-
# dhcp129-9%02d.megacorp.com,255,Mega Corporation,Development,RHEL 6.3,x86_64,"01:54:00:E9:83:%02x",megacorp.com,RedHat default
|
data/test/data/settings.csv
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Name,Organization,Environment,Content View,Host Collections,Virtual,Host,OS,Arch,Sockets,RAM,Cores,SLA,Products,Subscriptions
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
Name,Organization,Prior Environment,Description
|
|
2
|
+
Development,Test Corporation,Library,"Development, automated promotes from Library"
|
|
3
|
+
Test,Test Corporation,Development,"Test, manual promotions from Development"
|
|
4
|
+
Production,Test Corporation,Test,"Production, manual promotions from Test"
|
|
5
|
+
Archive,Test Corporation,Production,"Archive, no longer in Production"
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
Name,Organization,Manifest File,Subscription Name,Quantity,Product SKU,Contract Number,Account Number
|
|
2
|
+
# Manifest Name,Test Corporation,TestCorp
|
|
3
|
+
# Manifest URL,Test Corporation,https://access.stage.redhat.com/management/distributors/d45ac754-56e8-425e-a6ef-2028953f6f2c
|
|
4
|
+
# Subscription,Test Corporation,,"Red Hat Enterprise Linux for Virtual Datacenters, Standard",1,RH00002,10999110,5700573,2016-06-20T04:00:00.000+0000,2017-06-20T03:59:59.000+0000
|
|
5
|
+
# Subscription,Test Corporation,,"Red Hat Enterprise Linux for Virtual Datacenters, Premium",1,RH00001,10999116,5700573,2016-06-20T04:00:00.000+0000,2017-06-20T03:59:59.000+0000
|
data/test/data/subscriptions.csv
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
Name,
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
Red Hat Enterprise Linux Server,1,Mega Corporation,,Red Hat Enterprise Linux 7 Server (Kickstart),x86_64,7.0
|
|
17
|
-
|
|
1
|
+
Name,Organization,Manifest File,Subscription Name,Quantity,Product SKU,Contract Number,Account Number
|
|
2
|
+
Manifest,Mega Corporation,./test/data/megacorp.zip
|
|
3
|
+
# Manifest Name,Mega Corporation,MegaCorp
|
|
4
|
+
# Manifest URL,Mega Corporation,https://access.stage.redhat.com/management/distributors/c319a1d8-4b30-44cd-b2cf-2ccba4b9a8db
|
|
5
|
+
# Guest Subscription for Host 'host0',Mega Corporation,,"Red Hat Enterprise Linux for Virtual Datacenters, Standard",Unlimited,RH00002,10999110,5700573
|
|
6
|
+
# Subscription,Mega Corporation,,"OpenShift Enterprise Premium, 2 Cores",2,MCT2735,10999111,5700573
|
|
7
|
+
# Subscription,Mega Corporation,,"Red Hat Enterprise Linux for Virtual Datacenters, Premium",1,RH00001,10999116,5700573
|
|
8
|
+
# Subscription,Mega Corporation,,"Red Hat Enterprise Linux for Virtual Datacenters, Standard",1,RH00002,10999110,5700573
|
|
9
|
+
# Subscription,Mega Corporation,,"Red Hat Enterprise Linux Server, Standard (Physical or Virtual Nodes)",200,RH00004,10999113,5700573
|
|
10
|
+
# Subscription,Mega Corporation,,High Availability for Unlimited Guests,4,RH00059,10999359,5700573
|
|
11
|
+
# Subscription,Mega Corporation,,"Red Hat Enterprise Linux Server, Premium (8 sockets) (Up to 4 guests)",4,RH0103708,10999114,5700573
|
|
12
|
+
# Guest Subscription for Host 'host1',Mega Corporation,,High Availability for Unlimited Guests,Unlimited,RH00059,10999359,5700573
|
|
13
|
+
# Guest Subscription for Host 'host1',Mega Corporation,,"Red Hat Enterprise Linux for Virtual Datacenters, Premium",Unlimited,RH00001,10999116,5700573
|
|
14
|
+
# Subscription,Mega Corporation,,Red Hat Satellite,2,MCT0370,10999112,5700573
|
|
15
|
+
# Subscription,Mega Corporation,,Red Hat Satellite Beta,2,MCT3097,11001608,5700573
|
data/test/export_test.rb
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'csv_test_helper')
|
|
2
|
+
|
|
3
|
+
describe 'export' do
|
|
4
|
+
extend CommandTestHelper
|
|
5
|
+
|
|
6
|
+
context "help" do
|
|
7
|
+
it "displays supported options" do
|
|
8
|
+
set_user 'admin'
|
|
9
|
+
|
|
10
|
+
stdout,stderr = capture {
|
|
11
|
+
hammer.run(%W{csv export --help})
|
|
12
|
+
}
|
|
13
|
+
stderr.must_equal ''
|
|
14
|
+
stdout.must_equal <<-HELP
|
|
15
|
+
Usage:
|
|
16
|
+
csv export [OPTIONS]
|
|
17
|
+
|
|
18
|
+
Options:
|
|
19
|
+
--dir DIRECTORY directory to export to
|
|
20
|
+
--organization ORGANIZATION Only process organization matching this name
|
|
21
|
+
--settings FILE csv file for settings
|
|
22
|
+
-h, --help print help
|
|
23
|
+
-v, --verbose be verbose
|
|
24
|
+
HELP
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|