hammer_cli_csv 2.0.0 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
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