foreman_rh_cloud 4.0.27 → 4.0.29

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f58fc1e7e0566050620598b261bb98ae808cacdb65ebff7efd59b483eced6996
4
- data.tar.gz: c62e13422b518e22686687e429a5d73185469391d29013cd952d6b631cbf1db8
3
+ metadata.gz: c6f3f2a8162edb347dbd28899eb364a171d3ab4ddb4845e7f9286c35a71af1f1
4
+ data.tar.gz: d81d2f8dacd27f22b3ef7ab58641b38a16ce132669c3f3390fcf2f150afc72de
5
5
  SHA512:
6
- metadata.gz: 18ed7b82fa19fb2e5b22466648a31e9cfeb8a6dc8c20e07a9d7db028a61a2304ed663b1f9a3b62ce2ab59ca932fe9e35c6efdf0c41945b57a75d60455a541582
7
- data.tar.gz: 12c271cf247328eef9d310f0b85d64a1080ad0321f9b7fd1b6caa44a8a299eb1d4b13a6141b5740b053ecf4622b8269980223bd7ba95cdfa4b6f19765a8782ff
6
+ metadata.gz: aa7f0d5467ae1f4c2b1c451aeb2597244b4afd4ecaa2b010c113d6ff31725ec0115afdfbcf172c5e895f637c38b9690459488b4c4150531122783b6cfad7d96d
7
+ data.tar.gz: 5279557b8d3fad37db9bea492b95801175ceb0ffbe296fa17139ebffc48ebfb52558a72bffd7617ba20ff9a0cadf4c68b42252dfca6cb8ac8bb55f100ef6a6b5
@@ -1,35 +1,49 @@
1
+ PATH
2
+ remote: ../foreman-tasks
3
+ specs:
4
+ foreman-tasks (4.1.5)
5
+ dynflow (>= 1.2.3)
6
+ foreman-tasks-core
7
+ get_process_mem
8
+ parse-cron (~> 0.1.4)
9
+ sinatra
10
+ foreman-tasks-core (0.3.6)
11
+ dynflow (>= 1.2.0)
12
+
1
13
  PATH
2
14
  remote: ../foreman_rh_cloud
3
15
  specs:
4
- foreman_rh_cloud (3.0.15)
16
+ foreman_rh_cloud (4.0.27)
17
+ foreman-tasks
5
18
  foreman_ansible
6
19
  katello
7
20
 
8
21
  PATH
9
22
  remote: ../katello
10
23
  specs:
11
- katello (3.18.0.rc1)
24
+ katello (4.1.4)
12
25
  activerecord-import
13
26
  anemone
14
27
  angular-rails-templates (~> 1.1.0)
15
28
  apipie-rails (>= 0.5.14)
16
29
  deface (>= 1.0.2, < 2.0.0)
17
- dynflow (>= 1.2.0)
18
- foreman-tasks (>= 0.14.1)
30
+ dynflow (< 1.6.0)
31
+ foreman-tasks (~> 4.0)
32
+ foreman-tasks-core (< 0.4)
19
33
  foreman_remote_execution (>= 3.0)
20
34
  fx (< 1.0)
21
35
  gettext_i18n_rails
22
36
  json
23
37
  oauth
24
38
  pg
25
- pulp_2to3_migration_client (>= 0.3.0, < 0.6.0, != 0.4.0)
26
- pulp_ansible_client (>= 0.2, < 0.5)
39
+ pulp_ansible_client (>= 0.8, < 0.9)
27
40
  pulp_certguard_client (< 2.0)
28
- pulp_container_client (>= 2.0.0, < 2.2.0)
29
- pulp_deb_client (>= 2.6.0, < 2.8.0)
30
- pulp_file_client (>= 1.2.0, < 1.4.0)
31
- pulp_rpm_client (>= 3.6.2, < 3.8.0)
32
- pulpcore_client (>= 3.6.0, < 3.8.0)
41
+ pulp_container_client (>= 2.7.0, < 2.8.0)
42
+ pulp_deb_client (>= 2.13.0, < 2.14.0)
43
+ pulp_file_client (>= 1.8.0, < 1.9.0)
44
+ pulp_rpm_client (>= 3.13.0, < 3.15.0)
45
+ pulpcore_client (>= 3.14.0, < 3.15.0)
46
+ qpid_proton
33
47
  rabl
34
48
  rails
35
49
  rest-client
@@ -84,7 +98,7 @@ GEM
84
98
  activerecord (6.0.3.6)
85
99
  activemodel (= 6.0.3.6)
86
100
  activesupport (= 6.0.3.6)
87
- activerecord-import (1.0.8)
101
+ activerecord-import (1.2.0)
88
102
  activerecord (>= 3.2)
89
103
  activerecord-nulldb-adapter (0.7.0)
90
104
  activerecord (>= 5.2.0, < 6.3)
@@ -105,6 +119,8 @@ GEM
105
119
  minitest (~> 5.1)
106
120
  tzinfo (~> 1.1)
107
121
  zeitwerk (~> 2.2, >= 2.2.2)
122
+ acts_as_list (1.0.4)
123
+ activerecord (>= 4.2)
108
124
  addressable (2.7.0)
109
125
  public_suffix (>= 2.0.2, < 5.0)
110
126
  algebrick (0.7.5)
@@ -133,7 +149,7 @@ GEM
133
149
  execjs
134
150
  bcrypt (3.1.16)
135
151
  benchmark-ips (2.8.4)
136
- binding_of_caller (1.0.0)
152
+ binding_of_caller (0.8.0)
137
153
  debug_inspector (>= 0.0.1)
138
154
  bootsnap (1.7.3)
139
155
  msgpack (~> 1.0)
@@ -189,7 +205,7 @@ GEM
189
205
  polyglot
190
206
  rails (>= 5.2)
191
207
  rainbow (>= 2.1.0)
192
- docile (1.3.5)
208
+ docile (1.4.0)
193
209
  domain_name (0.5.20190701)
194
210
  unf (>= 0.0.5, < 1.0.0)
195
211
  dynflow (1.4.7)
@@ -246,12 +262,12 @@ GEM
246
262
  fog-core (~> 2.1)
247
263
  fog-json (>= 1.0)
248
264
  ipaddress (>= 0.8)
249
- fog-ovirt (1.2.5)
265
+ fog-ovirt (2.0.1)
266
+ activesupport
250
267
  fog-core
251
268
  fog-json
252
269
  fog-xml
253
- ovirt-engine-sdk (>= 4.1.3)
254
- rbovirt (~> 0.1.5)
270
+ ovirt-engine-sdk (>= 4.3.1)
255
271
  fog-vsphere (3.5.0)
256
272
  fog-core
257
273
  rbvmomi (>= 1.9, < 3)
@@ -261,26 +277,19 @@ GEM
261
277
  font-awesome-sass (4.6.2)
262
278
  sass (>= 3.2)
263
279
  foreman (0.87.2)
264
- foreman-tasks (3.0.3)
265
- dynflow (>= 1.2.3)
266
- foreman-tasks-core
267
- get_process_mem
268
- parse-cron (~> 0.1.4)
269
- sinatra
270
- foreman-tasks-core (0.3.4)
271
- dynflow (>= 1.2.0)
272
- foreman_ansible (6.1.1)
280
+ foreman_ansible (6.4.1)
281
+ acts_as_list (~> 1.0.3)
273
282
  deface (< 2.0)
274
- foreman_remote_execution (>= 4.2.0)
283
+ foreman_remote_execution (>= 4.4.0)
275
284
  ipaddress (>= 0.8.0, < 1.0)
276
285
  foreman_ansible_core (4.0.0)
277
286
  foreman-tasks-core (~> 0.3.2)
278
287
  foreman_remote_execution_core (~> 1.1)
279
288
  net-ssh
280
- foreman_remote_execution (4.2.2)
289
+ foreman_remote_execution (4.5.6)
281
290
  deface
282
291
  dynflow (>= 1.0.2, < 2.0.0)
283
- foreman-tasks (>= 0.15.1)
292
+ foreman-tasks (>= 4.1.0)
284
293
  foreman_remote_execution_core
285
294
  foreman_remote_execution_core (1.4.0)
286
295
  foreman-tasks-core (>= 0.3.1)
@@ -342,7 +351,6 @@ GEM
342
351
  immigrant (0.3.6)
343
352
  activerecord (>= 3.0)
344
353
  ipaddress (0.8.3)
345
- jaro_winkler (1.5.4)
346
354
  journald-logger (3.0.1)
347
355
  journald-native (~> 1.0)
348
356
  journald-native (1.0.12)
@@ -408,14 +416,14 @@ GEM
408
416
  oauth (0.5.5)
409
417
  optimist (3.0.1)
410
418
  os (1.1.1)
411
- ovirt-engine-sdk (4.4.0)
419
+ ovirt-engine-sdk (4.4.1)
412
420
  json (>= 1, < 3)
413
421
  paint (2.2.1)
414
- parallel (1.20.1)
422
+ parallel (1.21.0)
415
423
  parallel_tests (3.6.0)
416
424
  parallel
417
425
  parse-cron (0.1.4)
418
- parser (3.0.0.0)
426
+ parser (3.0.2.0)
419
427
  ast (~> 2.4.1)
420
428
  patternfly-sass (3.59.5)
421
429
  bootstrap-sass (~> 3.4.0)
@@ -441,39 +449,34 @@ GEM
441
449
  pry-remote (0.1.8)
442
450
  pry (~> 0.9)
443
451
  slop (~> 3.0)
444
- pry-stack_explorer (0.6.0)
445
- binding_of_caller (~> 1.0)
452
+ pry-stack_explorer (0.4.13)
453
+ binding_of_caller (~> 0.7)
446
454
  pry (~> 0.13)
447
455
  public_suffix (4.0.6)
448
- pulp_2to3_migration_client (0.5.1)
449
- faraday (>= 0.14.0)
450
- json (~> 2.1, >= 2.1.0)
451
- pulp_ansible_client (0.4.3)
456
+ pulp_ansible_client (0.8.1)
452
457
  faraday (>= 0.14.0)
453
458
  json (~> 2.1, >= 2.1.0)
454
- pulp_certguard_client (1.1.0)
459
+ pulp_certguard_client (1.5.1)
455
460
  faraday (>= 0.14.0)
456
461
  json (~> 2.1, >= 2.1.0)
457
- pulp_container_client (2.1.0)
462
+ pulp_container_client (2.7.1)
458
463
  faraday (>= 0.14.0)
459
464
  json (~> 2.1, >= 2.1.0)
460
- pulp_deb_client (2.7.0)
465
+ pulp_deb_client (2.13.1)
461
466
  faraday (>= 0.14.0)
462
467
  json (~> 2.1, >= 2.1.0)
463
- pulp_file_client (1.3.0)
468
+ pulp_file_client (1.8.2)
464
469
  faraday (>= 0.14.0)
465
470
  json (~> 2.1, >= 2.1.0)
466
- pulp_rpm_client (3.7.0)
471
+ pulp_rpm_client (3.14.6)
467
472
  faraday (>= 0.14.0)
468
473
  json (~> 2.1, >= 2.1.0)
469
- pulpcore_client (3.7.3)
474
+ pulpcore_client (3.14.8)
470
475
  faraday (>= 0.14.0)
471
476
  json (~> 2.1, >= 2.1.0)
472
- puma (4.3.7)
477
+ puma (5.5.2)
473
478
  nio4r (~> 2.0)
474
- puma-plugin-systemd (0.1.5)
475
- json
476
- puma (>= 3.6, < 5)
479
+ qpid_proton (0.33.0)
477
480
  rabl (0.14.3)
478
481
  activesupport (>= 2.3.14)
479
482
  racc (1.5.2)
@@ -527,9 +530,6 @@ GEM
527
530
  rb-fsevent (0.10.4)
528
531
  rb-inotify (0.10.1)
529
532
  ffi (~> 1.0)
530
- rbovirt (0.1.7)
531
- nokogiri
532
- rest-client (> 1.7.0)
533
533
  rbvmomi (2.4.1)
534
534
  builder (~> 3.0)
535
535
  json (>= 1.8)
@@ -553,7 +553,7 @@ GEM
553
553
  mime-types (>= 1.16, < 4.0)
554
554
  netrc (~> 0.8)
555
555
  retriable (3.1.2)
556
- rexml (3.2.4)
556
+ rexml (3.2.5)
557
557
  rfauxfactory (0.1.5)
558
558
  roadie (4.0.0)
559
559
  css_parser (~> 1.4)
@@ -564,23 +564,30 @@ GEM
564
564
  robotex (1.0.0)
565
565
  robottelo_reporter (0.1.1)
566
566
  builder (>= 2.1.2)
567
- rubocop (0.80.1)
568
- jaro_winkler (~> 1.5.1)
567
+ rubocop (0.89.1)
569
568
  parallel (~> 1.10)
570
- parser (>= 2.7.0.1)
569
+ parser (>= 2.7.1.1)
571
570
  rainbow (>= 2.2.2, < 4.0)
571
+ regexp_parser (>= 1.7)
572
572
  rexml
573
+ rubocop-ast (>= 0.3.0, < 1.0)
573
574
  ruby-progressbar (~> 1.7)
574
- unicode-display_width (>= 1.4.0, < 1.7)
575
+ unicode-display_width (>= 1.4.0, < 2.0)
576
+ rubocop-ast (0.8.0)
577
+ parser (>= 2.7.1.5)
575
578
  rubocop-checkstyle_formatter (0.4.0)
576
579
  rubocop (>= 0.35.1)
577
- rubocop-minitest (0.7.0)
578
- rubocop (>= 0.74)
579
- rubocop-performance (1.5.2)
580
- rubocop (>= 0.71.0)
581
- rubocop-rails (2.4.2)
580
+ rubocop-minitest (0.10.3)
581
+ rubocop (>= 0.87, < 2.0)
582
+ rubocop-performance (1.8.1)
583
+ rubocop (>= 0.87.0)
584
+ rubocop-ast (>= 0.4.0)
585
+ rubocop-rails (2.8.1)
586
+ activesupport (>= 4.2.0)
582
587
  rack (>= 1.1)
583
- rubocop (>= 0.72.0)
588
+ rubocop (>= 0.87.0)
589
+ rubocop-rspec (1.43.2)
590
+ rubocop (~> 0.87)
584
591
  ruby-libvirt (0.7.1)
585
592
  ruby-openid (2.9.2)
586
593
  ruby-progressbar (1.11.0)
@@ -647,7 +654,7 @@ GEM
647
654
  simplecov-html (0.12.3)
648
655
  simplecov-rcov (0.2.3)
649
656
  simplecov (>= 0.4.1)
650
- simplecov_json_formatter (0.1.2)
657
+ simplecov_json_formatter (0.1.3)
651
658
  sinatra (2.1.0)
652
659
  mustermann (~> 1.0)
653
660
  rack (~> 2.2)
@@ -664,10 +671,18 @@ GEM
664
671
  actionpack (>= 4.0)
665
672
  activesupport (>= 4.0)
666
673
  sprockets (>= 3.0.0)
674
+ sqlite3 (1.4.2)
667
675
  sshkey (1.9.0)
668
676
  statsd-instrument (2.9.2)
669
677
  stomp (1.4.10)
670
678
  text (1.3.1)
679
+ theforeman-rubocop (0.0.6)
680
+ rubocop (~> 0.89.0)
681
+ rubocop-checkstyle_formatter (~> 0.4.0)
682
+ rubocop-minitest (~> 0.10.1)
683
+ rubocop-performance (~> 1.8.1)
684
+ rubocop-rails (~> 2.8.1)
685
+ rubocop-rspec (~> 1.43.2)
671
686
  thor (1.1.0)
672
687
  thread_safe (0.3.6)
673
688
  tilt (2.0.10)
@@ -679,7 +694,7 @@ GEM
679
694
  unf (0.1.4)
680
695
  unf_ext
681
696
  unf_ext (0.0.7.7)
682
- unicode-display_width (1.6.1)
697
+ unicode-display_width (1.8.0)
683
698
  uniform_notifier (1.13.2)
684
699
  validates_lengths_from_database (0.8.0)
685
700
  activerecord (>= 4)
@@ -717,6 +732,7 @@ DEPENDENCIES
717
732
  benchmark-ips (>= 2.8.2)
718
733
  bootsnap
719
734
  bullet (>= 6.1.0)
735
+ byebug
720
736
  capybara (~> 3.0, < 3.32.1)
721
737
  ci_reporter_minitest
722
738
  coffee-rails (~> 5.0.0)
@@ -732,12 +748,14 @@ DEPENDENCIES
732
748
  fog-aws (>= 3.6.2, < 4)
733
749
  fog-core (= 2.1.0)
734
750
  fog-google (~> 1.11.0)
735
- fog-libvirt (>= 0.7.0)
751
+ fog-libvirt (>= 0.8.0)
736
752
  fog-openstack (>= 1.0.8, < 2.0.0)
737
- fog-ovirt (~> 1.2.5)
738
- fog-vsphere (>= 3.3.1, < 4.0)
753
+ fog-ovirt (>= 2.0.1, < 3)
754
+ fog-vsphere (>= 3.5.0, < 4.0)
739
755
  foreman
756
+ foreman-tasks!
740
757
  foreman_ansible_core
758
+ foreman_remote_execution (~> 4.5.6)
741
759
  foreman_rh_cloud!
742
760
  friendly_id (>= 5.3.0, < 5.4)
743
761
  get_process_mem
@@ -751,10 +769,10 @@ DEPENDENCIES
751
769
  i18n (~> 1.1)
752
770
  immigrant (~> 0.1)
753
771
  jquery-ui-rails (~> 6.0)
754
- jwt (~> 2.2.1)
772
+ jwt (~> 2.2.2)
755
773
  katello!
756
774
  launchy (~> 2.4)
757
- ldap_fluff (>= 0.4.7, < 1.0)
775
+ ldap_fluff (>= 0.5.0, < 1.0)
758
776
  logging (>= 1.8.0, < 3.0.0)
759
777
  logging-journald (~> 2.0)
760
778
  mail (~> 2.7)
@@ -780,8 +798,8 @@ DEPENDENCIES
780
798
  pry-rails
781
799
  pry-remote
782
800
  pry-stack_explorer
783
- puma (< 5.0)
784
- puma-plugin-systemd
801
+ puma (~> 5.1)
802
+ qpid_proton (~> 0.33.0)
785
803
  rabl (~> 0.14.2)
786
804
  rack-cors (~> 1.0.2)
787
805
  rack-jsonp
@@ -799,11 +817,10 @@ DEPENDENCIES
799
817
  rfauxfactory (~> 0.1, >= 0.1.5)
800
818
  roadie-rails (~> 2.0)
801
819
  robottelo_reporter (~> 0.1)
802
- rubocop (~> 0.80.0)
803
- rubocop-checkstyle_formatter (~> 0.2)
804
- rubocop-minitest (~> 0.7.0)
805
- rubocop-performance (~> 1.5.2)
806
- rubocop-rails (~> 2.4.2)
820
+ rubocop
821
+ rubocop-checkstyle_formatter
822
+ rubocop-performance
823
+ rubocop-rails
807
824
  ruby-libvirt (~> 0.5)
808
825
  safemode (>= 1.3.5, < 2)
809
826
  sass-rails (~> 6.0)
@@ -821,8 +838,10 @@ DEPENDENCIES
821
838
  spring (>= 1.0, < 3)
822
839
  sprockets (~> 4.0)
823
840
  sprockets-rails (~> 3.0)
841
+ sqlite3
824
842
  sshkey (~> 1.9)
825
843
  statsd-instrument (< 3)
844
+ theforeman-rubocop (~> 0.0.6)
826
845
  uglifier (>= 1.0.3)
827
846
  validates_lengths_from_database (~> 0.5)
828
847
  vcr (< 4.0.0)
@@ -2,9 +2,9 @@
2
2
 
3
3
  default: &default
4
4
  adapter: postgresql
5
- username: foreman
5
+ username: <%= ENV['PGUSER'] || 'foreman' %>
6
6
  password: foreman
7
- host: localhost
7
+ host: <%= ENV['PGHOST'] || 'localhost' %>
8
8
 
9
9
  test:
10
10
  <<: *default
@@ -34,6 +34,7 @@ module ForemanInventoryUpload
34
34
 
35
35
  def self.for_slice(base)
36
36
  base
37
+ .search_for("not params.#{InsightsCloud.enable_client_param} = f")
37
38
  .joins(:subscription_facet)
38
39
  .preload(
39
40
  :interfaces,
@@ -1,3 +1,3 @@
1
1
  module ForemanRhCloud
2
- VERSION = '4.0.27'.freeze
2
+ VERSION = '4.0.29'.freeze
3
3
  end
@@ -17,7 +17,6 @@ module InventorySync
17
17
  @sub_ids.map do |sub_id|
18
18
  host_id = host_id(sub_id)
19
19
  if host_id
20
- touched << host_id
21
20
  {
22
21
  host_id: host_id,
23
22
  status: InventorySync::InventoryStatus::SYNC,
@@ -28,10 +27,6 @@ module InventorySync
28
27
  end.compact
29
28
  end
30
29
 
31
- def touched
32
- @touched ||= []
33
- end
34
-
35
30
  def host_id(sub_id)
36
31
  hosts[sub_id]
37
32
  end
@@ -14,11 +14,7 @@ module InventorySync
14
14
  end
15
15
 
16
16
  def setup_statuses
17
- @subscribed_hosts_ids = Set.new(
18
- ForemanInventoryUpload::Generators::Queries.for_slice(
19
- Host.unscoped.where(organization: input[:organization_id])
20
- ).pluck(:id)
21
- )
17
+ @subscribed_hosts_ids = Set.new(affected_host_ids)
22
18
 
23
19
  InventorySync::InventoryStatus.transaction do
24
20
  InventorySync::InventoryStatus.where(host_id: @subscribed_hosts_ids).delete_all
@@ -35,8 +31,10 @@ module InventorySync
35
31
  def update_statuses_batch
36
32
  results = yield
37
33
 
38
- update_hosts_status(results.status_hashes, results.touched)
39
- host_statuses[:sync] += results.touched.size
34
+ existing_hosts = results.status_hashes.select { |hash| @subscribed_hosts_ids.include?(hash[:host_id]) }
35
+
36
+ update_hosts_status(existing_hosts)
37
+ host_statuses[:sync] += existing_hosts.size
40
38
  end
41
39
 
42
40
  def rescue_strategy_for_self
@@ -45,9 +43,10 @@ module InventorySync
45
43
 
46
44
  private
47
45
 
48
- def update_hosts_status(status_hashes, touched)
46
+ def update_hosts_status(status_hashes)
49
47
  InventorySync::InventoryStatus.create(status_hashes)
50
- @subscribed_hosts_ids.subtract(touched)
48
+ updated_ids = status_hashes.map { |hash| hash[:host_id] }
49
+ @subscribed_hosts_ids.subtract(updated_ids)
51
50
  end
52
51
 
53
52
  def add_missing_hosts_statuses(hosts_ids)
@@ -68,6 +67,12 @@ module InventorySync
68
67
  disconnect: 0,
69
68
  }
70
69
  end
70
+
71
+ def affected_host_ids
72
+ ForemanInventoryUpload::Generators::Queries.for_slice(
73
+ Host.unscoped.where(organization: input[:organization_id])
74
+ ).pluck(:id)
75
+ end
71
76
  end
72
77
  end
73
78
  end
@@ -35,18 +35,14 @@ module InventorySync
35
35
  private
36
36
 
37
37
  def add_missing_insights_facets(uuids_hash)
38
- existing_facets = InsightsFacet.where(host_id: uuids_hash.keys).pluck(:host_id, :uuid)
39
- missing_facets = uuids_hash.except(*existing_facets.map(&:first)).map do |host_id, uuid|
38
+ all_facets = uuids_hash.map do |host_id, uuid|
40
39
  {
41
40
  host_id: host_id,
42
41
  uuid: uuid,
43
42
  }
44
43
  end
45
- InsightsFacet.create(missing_facets)
46
44
 
47
- existing_facets.select { |host_id, uuid| uuid.empty? }.each do |host_id, _uuid|
48
- InsightsFacet.where(host_id: host_id).update_all(uuid: uuids_hash[host_id])
49
- end
45
+ InsightsFacet.upsert_all(all_facets, unique_by: :host_id) unless all_facets.empty?
50
46
  end
51
47
 
52
48
  def plan_self_host_sync
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "foreman_rh_cloud",
3
- "version": "4.0.27",
3
+ "version": "4.0.29",
4
4
  "description": "Inventory Upload =============",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -54,10 +54,24 @@ FactoryBot.define do
54
54
  end
55
55
  end
56
56
 
57
+ FactoryBot.define do
58
+ factory :katello_subscription, :class => Katello::Subscription do
59
+ end
60
+ end
61
+
57
62
  FactoryBot.define do
58
63
  factory :katello_pool, :class => Katello::Pool do
59
64
  active { true }
60
65
  end_date { Date.today + 1.year }
66
+ cp_id { 1 }
67
+
68
+ association :organization, :factory => :katello_organization
69
+
70
+ after(:build) do |pool, _evaluator|
71
+ pool.subscription.organization = pool.organization
72
+ end
73
+
74
+ association :subscription, :factory => :katello_subscription
61
75
  end
62
76
  end
63
77
 
@@ -37,6 +37,18 @@ class InventoryFullSyncTest < ActiveSupport::TestCase
37
37
  @host2.subscription_facet.pools << pool
38
38
  @host2_inventory_id = '4536bf5c-ff03-4154-a8c9-32ff4b40e40c'
39
39
 
40
+ # this host would pass our plugin queries, so it could be uploaded to the cloud.
41
+ @host3 = FactoryBot.create(
42
+ :host,
43
+ :with_subscription,
44
+ :with_content,
45
+ content_view: cv.first,
46
+ lifecycle_environment: env,
47
+ organization: env.organization
48
+ )
49
+
50
+ @host3.subscription_facet.pools << pool
51
+
40
52
  ForemanInventoryUpload::Generators::Queries.instance_variable_set(:@fact_names, nil)
41
53
 
42
54
  inventory_json = <<-INVENTORY_JSON
@@ -151,7 +163,7 @@ class InventoryFullSyncTest < ActiveSupport::TestCase
151
163
  {
152
164
  "insights_id": "b533848e-465f-4f1a-9b2b-b71cb2d5239d",
153
165
  "rhel_machine_id": null,
154
- "subscription_manager_id": "d29bde40-348e-437c-8acf-8fa98320fc1b",
166
+ "subscription_manager_id": "#{@host3.subscription_facet.uuid}",
155
167
  "satellite_id": "d29bde40-348e-437c-8acf-8fa98320fc1b",
156
168
  "bios_uuid": "3cd5d972-cfb5-451a-8314-fd2f56629d7c",
157
169
  "ip_addresses": [
@@ -159,7 +171,7 @@ class InventoryFullSyncTest < ActiveSupport::TestCase
159
171
  "fd6e:2298:736e::857",
160
172
  "fd6e:2298:736e:0:2c66:6101:9cc6:2b23"
161
173
  ],
162
- "fqdn": "rhel8-demo.oss-lab.net",
174
+ "fqdn": "#{@host3.fqdn}",
163
175
  "mac_addresses": [
164
176
  "6e:66:a6:fe:fc:07",
165
177
  "00:00:00:00:00:00"
@@ -271,4 +283,18 @@ class InventoryFullSyncTest < ActiveSupport::TestCase
271
283
 
272
284
  ForemanTasks.sync_task(InventorySync::Async::InventoryFullSync, @host1.organization)
273
285
  end
286
+
287
+ test 'Should skip hosts that are not returned in query' do
288
+ assert_nil InventorySync::InventoryStatus.where(host_id: @host3.id).first
289
+
290
+ Setting[:rh_cloud_token] = 'TEST TOKEN'
291
+ InventorySync::Async::InventoryFullSync.any_instance.expects(:query_inventory).returns(@inventory)
292
+ InventorySync::Async::InventoryFullSync.any_instance.expects(:affected_host_ids).returns([@host1.id, @host2.id])
293
+ FactoryBot.create(:fact_value, fact_name: fact_names['virt::uuid'], value: '1234', host: @host2)
294
+
295
+ ForemanTasks.sync_task(InventorySync::Async::InventoryFullSync, @host1.organization)
296
+ @host2.reload
297
+
298
+ assert_nil InventorySync::InventoryStatus.where(host_id: @host3.id).first
299
+ end
274
300
  end
@@ -265,4 +265,19 @@ class InventoryHostsSyncTest < ActiveSupport::TestCase
265
265
 
266
266
  assert_equal @host2_inventory_id, @host2.insights.uuid
267
267
  end
268
+
269
+ test 'Inventory should sync empty facets list' do
270
+ empty_inventory = @inventory.deep_clone
271
+ empty_inventory['results'] = []
272
+ InventorySync::Async::InventoryHostsSync.any_instance.expects(:query_inventory).returns(empty_inventory)
273
+ InventorySync::Async::InventoryHostsSync.any_instance.expects(:plan_self_host_sync)
274
+
275
+ assert_nil @host2.insights
276
+
277
+ ForemanTasks.sync_task(InventorySync::Async::InventoryHostsSync)
278
+
279
+ @host2.reload
280
+
281
+ assert_nil @host2.insights
282
+ end
268
283
  end
@@ -22,7 +22,13 @@ class SliceGeneratorTest < ActiveSupport::TestCase
22
22
  location: location
23
23
  )
24
24
 
25
- @host.organization.pools << FactoryBot.create(:katello_pool, account_number: '1234', cp_id: 1)
25
+ @host.organization.pools << FactoryBot.create(
26
+ :katello_pool,
27
+ account_number: '1234',
28
+ cp_id: 1,
29
+ organization: env.organization,
30
+ subscription: FactoryBot.create(:katello_subscription, organization_id: env.organization.id)
31
+ )
26
32
  @host.interfaces.first.identifier = 'test_nic1'
27
33
  @host.save!
28
34
 
@@ -441,6 +447,18 @@ class SliceGeneratorTest < ActiveSupport::TestCase
441
447
  assert_equal 1, generator.hosts_count
442
448
  end
443
449
 
450
+ test 'excludes hosts with host_registration_insights set to false' do
451
+ @host.host_parameters << HostParameter.create(
452
+ name: 'host_registration_insights',
453
+ value: "false",
454
+ parameter_type: 'boolean'
455
+ )
456
+
457
+ count = ForemanInventoryUpload::Generators::Queries.for_org(@host.organization_id).count
458
+
459
+ assert_equal 0, count
460
+ end
461
+
444
462
  test 'shows system_memory_bytes in bytes' do
445
463
  FactoryBot.create(:fact_value, fact_name: fact_names['memory::memtotal'], value: '1', host: @host)
446
464
 
@@ -457,9 +475,23 @@ class SliceGeneratorTest < ActiveSupport::TestCase
457
475
  end
458
476
 
459
477
  test 'reports an account for hosts with multiple pools' do
460
- first_pool = @host.organization.pools.first
461
- second_pool = FactoryBot.create(:katello_pool, account_number: nil, cp_id: 2)
462
- new_org = FactoryBot.create(:organization, pools: [first_pool, second_pool])
478
+ new_org = FactoryBot.create(:organization)
479
+ first_pool = FactoryBot.create(
480
+ :katello_pool,
481
+ account_number: '5678',
482
+ cp_id: 2,
483
+ organization: new_org,
484
+ subscription: FactoryBot.create(:katello_subscription, organization_id: new_org.id)
485
+ )
486
+ second_pool = FactoryBot.create(
487
+ :katello_pool,
488
+ account_number: '9012',
489
+ cp_id: 3,
490
+ organization: new_org,
491
+ subscription: FactoryBot.create(:katello_subscription, organization_id: new_org.id)
492
+ )
493
+ new_org.pools << first_pool
494
+ new_org.pools << second_pool
463
495
 
464
496
  another_host = FactoryBot.create(
465
497
  :host,
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_rh_cloud
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.27
4
+ version: 4.0.29
5
5
  platform: ruby
6
6
  authors:
7
7
  - Foreman Red Hat Cloud team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-29 00:00:00.000000000 Z
11
+ date: 2021-11-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: katello