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.
Files changed (87) hide show
  1. checksums.yaml +5 -13
  2. data/config/cli_config.yml +9 -24
  3. data/lib/hammer_cli_csv/activation_keys.rb +220 -95
  4. data/lib/hammer_cli_csv/architectures.rb +7 -11
  5. data/lib/hammer_cli_csv/base.rb +67 -41
  6. data/lib/hammer_cli_csv/compute_profiles.rb +11 -15
  7. data/lib/hammer_cli_csv/compute_resources.rb +11 -15
  8. data/lib/hammer_cli_csv/containers.rb +10 -12
  9. data/lib/hammer_cli_csv/content_hosts.rb +285 -203
  10. data/lib/hammer_cli_csv/content_view_filters.rb +32 -36
  11. data/lib/hammer_cli_csv/content_views.rb +33 -37
  12. data/lib/hammer_cli_csv/csv.rb +17 -1
  13. data/lib/hammer_cli_csv/domains.rb +15 -19
  14. data/lib/hammer_cli_csv/export.rb +13 -5
  15. data/lib/hammer_cli_csv/host_collections.rb +20 -22
  16. data/lib/hammer_cli_csv/host_groups.rb +73 -65
  17. data/lib/hammer_cli_csv/hosts.rb +30 -34
  18. data/lib/hammer_cli_csv/import.rb +24 -10
  19. data/lib/hammer_cli_csv/installation_media.rb +74 -0
  20. data/lib/hammer_cli_csv/job_templates.rb +37 -41
  21. data/lib/hammer_cli_csv/lifecycle_environments.rb +15 -19
  22. data/lib/hammer_cli_csv/locations.rb +4 -6
  23. data/lib/hammer_cli_csv/operating_systems.rb +17 -21
  24. data/lib/hammer_cli_csv/organizations.rb +11 -13
  25. data/lib/hammer_cli_csv/partition_tables.rb +17 -21
  26. data/lib/hammer_cli_csv/products.rb +200 -92
  27. data/lib/hammer_cli_csv/provisioning_templates.rb +19 -23
  28. data/lib/hammer_cli_csv/puppet_environments.rb +8 -12
  29. data/lib/hammer_cli_csv/puppet_facts.rb +20 -24
  30. data/lib/hammer_cli_csv/puppet_reports.rb +47 -51
  31. data/lib/hammer_cli_csv/reports.rb +6 -10
  32. data/lib/hammer_cli_csv/roles.rb +12 -16
  33. data/lib/hammer_cli_csv/settings.rb +8 -6
  34. data/lib/hammer_cli_csv/smart_proxies.rb +9 -13
  35. data/lib/hammer_cli_csv/splice.rb +1 -3
  36. data/lib/hammer_cli_csv/subnets.rb +24 -28
  37. data/lib/hammer_cli_csv/subscriptions.rb +39 -91
  38. data/lib/hammer_cli_csv/sync_plans.rb +20 -24
  39. data/lib/hammer_cli_csv/users.rb +25 -29
  40. data/lib/hammer_cli_csv/utils/subscriptions.rb +130 -0
  41. data/lib/hammer_cli_csv/version.rb +1 -1
  42. data/lib/hammer_cli_csv.rb +2 -2
  43. data/test/csv_test.rb +32 -0
  44. data/test/csv_test_helper.rb +17 -2
  45. data/test/data/content-hosts.csv +3 -2
  46. data/test/data/hosts.csv +0 -11
  47. data/test/data/settings.csv +1 -0
  48. data/test/data/setup/content-hosts.csv +1 -0
  49. data/test/data/setup/content-views.csv +2 -0
  50. data/test/data/setup/lifecycle-environments.csv +5 -0
  51. data/test/data/setup/locations.csv +6 -0
  52. data/test/data/setup/organizations.csv +2 -0
  53. data/test/data/setup/subscriptions.csv +5 -0
  54. data/test/data/subscriptions.csv +15 -17
  55. data/test/export_test.rb +27 -0
  56. data/test/fixtures/vcr_cassettes/apipie.yml +18528 -0
  57. data/test/fixtures/vcr_cassettes/resources/activation_keys_import/create_and_update.yml +38033 -0
  58. data/test/fixtures/vcr_cassettes/resources/content_hosts_export/export.yml +18846 -0
  59. data/test/fixtures/vcr_cassettes/resources/content_hosts_export/export_subscriptions.yml +323 -0
  60. data/test/fixtures/vcr_cassettes/resources/content_hosts_import/create_and_update.yml +41884 -0
  61. data/test/fixtures/vcr_cassettes/resources/content_hosts_import/import_single_line.yml +38248 -0
  62. data/test/fixtures/vcr_cassettes/resources/settings_import/update_settings.yml +18832 -0
  63. data/test/fixtures/vcr_cassettes/resources/settings_import/update_settings_continue.yml +316 -0
  64. data/test/fixtures/vcr_cassettes/resources/subscriptions_import/manifest_does_not_exist.yml +18785 -0
  65. data/test/fixtures/vcr_cassettes/setup/setup_content_views/setup.yml +19090 -0
  66. data/test/fixtures/vcr_cassettes/setup/setup_lifecycle_environments/setup.yml +924 -0
  67. data/test/fixtures/vcr_cassettes/setup/setup_locations/setup.yml +21102 -0
  68. data/test/fixtures/vcr_cassettes/setup/setup_organizations/setup.yml +19278 -0
  69. data/test/fixtures/vcr_cassettes/setup/setup_subscriptions/setup.yml +419 -0
  70. data/test/import_test.rb +20 -25
  71. data/test/resources/activation_keys_test.rb +72 -0
  72. data/test/resources/content_hosts_test.rb +132 -0
  73. data/test/resources/settings_test.rb +81 -0
  74. data/test/resources/subscriptions_test.rb +56 -0
  75. data/test/setup/setup_content_views.rb +17 -0
  76. data/test/setup/setup_lifecycle_environments.rb +17 -0
  77. data/test/setup/setup_locations.rb +17 -0
  78. data/test/setup/setup_organizations.rb +17 -0
  79. data/test/setup/setup_subscriptions.rb +20 -0
  80. data/test/setup/setup_test.rb +10 -0
  81. data/test/test_runner.rb +175 -0
  82. data/test/vcr_setup.rb +54 -0
  83. metadata +77 -13
  84. data/lib/hammer_cli_csv/exception_handler.rb +0 -42
  85. data/lib/hammer_cli_csv/installation_medias.rb +0 -77
  86. data/test/content_hosts_test.rb +0 -61
  87. data/test/settings_test.rb +0 -30
@@ -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/exception_handler'
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/installation_medias'
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
@@ -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
- HammerCLI::Settings.load_from_file 'test/config.yml'
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')
@@ -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
- dhcp129-%03d.megacorp.com,100,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",
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
@@ -1,2 +1,3 @@
1
1
  Name,Count,Value
2
+ xyz,1,123
2
3
  idle_timeout,1,60000
@@ -0,0 +1 @@
1
+ Name,Organization,Environment,Content View,Host Collections,Virtual,Host,OS,Arch,Sockets,RAM,Cores,SLA,Products,Subscriptions
@@ -0,0 +1,2 @@
1
+ Name,Label,Organization,Composite,Repositories or Composites,Lifecycle Environments
2
+ Test Puppet Modules,Test_Puppet_Modules,Test Corporation,No,"",Library
@@ -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,6 @@
1
+ Name,Parent Location
2
+ Testing,""
3
+ Test East,""
4
+ Test North,""
5
+ Test South,""
6
+ Test West,""
@@ -0,0 +1,2 @@
1
+ Name,Label,Description
2
+ Test Corporation,testcorp,Testing today for a better tomorrow
@@ -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
@@ -1,17 +1,15 @@
1
- Name,Count,Organization,Manifest File,Content Set,Arch,Release
2
- MegaCorp,1,Mega Corporation,test/data/megacorp.zip,
3
- Red Hat Enterprise Linux Server,1,Mega Corporation,,Red Hat Enterprise Linux 6 Server (RPMs),x86_64,6Server
4
- Red Hat Enterprise Linux Server,1,Mega Corporation,,Red Hat Enterprise Linux 6 Server (RPMs),x86_64,6.1
5
- Red Hat Enterprise Linux Server,1,Mega Corporation,,Red Hat Enterprise Linux 6 Server (RPMs),x86_64,6.2
6
- Red Hat Enterprise Linux Server,1,Mega Corporation,,Red Hat Enterprise Linux 6 Server (RPMs),x86_64,6.3
7
- Red Hat Enterprise Linux Server,1,Mega Corporation,,Red Hat Enterprise Linux 6 Server (RPMs),x86_64,6.4
8
- Red Hat Enterprise Linux Server,1,Mega Corporation,,Red Hat Enterprise Linux 6 Server (RPMs),x86_64,6.5
9
- Red Hat Enterprise Linux Server,1,Mega Corporation,,Red Hat Enterprise Linux 6 Server (Kickstart),x86_64,6.1
10
- Red Hat Enterprise Linux Server,1,Mega Corporation,,Red Hat Enterprise Linux 6 Server (Kickstart),x86_64,6.2
11
- Red Hat Enterprise Linux Server,1,Mega Corporation,,Red Hat Enterprise Linux 6 Server (Kickstart),x86_64,6.3
12
- Red Hat Enterprise Linux Server,1,Mega Corporation,,Red Hat Enterprise Linux 6 Server (Kickstart),x86_64,6.4
13
- Red Hat Enterprise Linux Server,1,Mega Corporation,,Red Hat Enterprise Linux 6 Server (Kickstart),x86_64,6.5
14
- Red Hat Enterprise Linux Server,1,Mega Corporation,,Red Hat Enterprise Linux 7 Server (RPMs),x86_64,7Server
15
- Red Hat Enterprise Linux Server,1,Mega Corporation,,Red Hat Enterprise Linux 7 Server (RPMs),x86_64,7.0
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
@@ -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