katello 3.7.1 → 3.7.1.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of katello might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d88404b2afad190e4d14c345ac95118fbf2f8f44
4
- data.tar.gz: 2f5cb4dfb3a91dd1733bc84866d303131ce96546
3
+ metadata.gz: 679620f4009df700650bbeb4bde990b172b24bf5
4
+ data.tar.gz: bc3615c44ab394145f07e94b1ff48798833fd1c2
5
5
  SHA512:
6
- metadata.gz: af4305e274f7c50eff1aa319b28d0e9f5a678ac4a09436e1a6ad8fe629749e486758b19ff50b624f6283767717d717003e89bbc471e91fadc6674b7b1738c791
7
- data.tar.gz: 23365d77760637b47a6f4ca0a5234702f254f979a464d5f115e778551553958f73e22e79ffa49a5ca19d0d0c9fe17767147ef716ba78a17e937c61c32ac31b6a
6
+ metadata.gz: ddc49c94143661c4b2e189b28d80eca383306cf3d02e522d4f86b28059d72c274f3b4ff847f96f3a52531534197a21547d3da052f53df929ac23d065e632cd32
7
+ data.tar.gz: 8d3bb8feb55d123355b9f4267d49513c06bf232b8eca55948a1c844891a8c76836f1b4ffa5955f1eebc86f537f3527ce6e126b608e73167acd40628d5dfcac0e
@@ -13,86 +13,37 @@ module Actions
13
13
  end
14
14
 
15
15
  def finalize
16
- @hypervisors = input[:hypervisors]
17
- return unless @hypervisors
16
+ hypervisors = input[:hypervisors]
18
17
 
19
- User.as_anonymous_admin do
20
- load_resources
21
-
22
- @hosts.each do |uuid, host|
23
- update_subscription_facet(uuid, host)
18
+ if hypervisors
19
+ User.as_anonymous_admin do
20
+ hypervisors.each { |hypervisor| update_or_create_hypervisor(hypervisor) }
24
21
  end
25
22
  end
26
23
  end
27
24
 
28
- # Loads all resources needed for refreshing subscription facet
29
- def load_resources
30
- @organizations = ::Organization.where(label: hypervisors_field(:organization_label)).map { |org| [org.label, org] }.to_h
31
- @hosts = {}
32
-
33
- load_hosts_by_uuid
34
- load_hosts_by_duplicate_name
35
- create_missing_hosts
36
-
37
- candlepin_data = ::Katello::Resources::Candlepin::Consumer.get(uuid: @hosts.keys)
38
- @candlepin_attributes = candlepin_data.map { |consumer| [consumer[:uuid], consumer] }.to_h
39
- end
40
-
41
- def load_hosts_by_uuid
42
- hosts_by_uuid = ::Host.eager_load(:subscription_facet).where(katello_subscription_facets: { uuid: hypervisors_field(:uuid) })
43
- @hosts.merge(hosts_by_uuid.map { |host| [host.subscription_facet.uuid, host] }.to_h)
44
- end
45
-
46
- def load_hosts_by_duplicate_name
47
- duplicate_names, duplicate_name_orgs = generate_duplicates_list
48
-
49
- hosts_by_dup_name = ::Host.preload(:subscription_facet).where(name: duplicate_names.keys)
50
-
51
- hosts_by_dup_name.each do |host|
52
- validate_host_organization(host, duplicate_name_orgs[host.name].try(:id))
53
- end
54
-
55
- @hosts.merge!(hosts_by_dup_name.map { |host| [duplicate_names[host.name], host] }.to_h)
56
- end
57
-
58
- def create_missing_hosts
59
- # remaining hypervisors
60
- @hypervisors.each do |hypervisor|
61
- next if @hosts.key?(hypervisor[:uuid])
62
- duplicate_name, org = duplicate_name(hypervisor)
63
- @hosts[hypervisor[:uuid]] = create_host_for_hypervisor(duplicate_name, org)
64
- end
65
- end
66
-
67
- def generate_duplicates_list
68
- duplicate_names = {}
69
- duplicate_name_orgs = {}
70
- @hypervisors.each do |hypervisor|
71
- next if @hosts.key?(hypervisor[:uuid])
72
-
73
- duplicate_name, org = duplicate_name(hypervisor)
74
- duplicate_names[duplicate_name] = hypervisor[:uuid]
75
- duplicate_name_orgs[duplicate_name] = org
76
- end
25
+ def update_or_create_hypervisor(hypervisor_json)
26
+ organization = ::Organization.find_by(:label => hypervisor_json[:organization_label])
77
27
 
78
- [duplicate_names, duplicate_name_orgs]
79
- end
80
-
81
- def validate_host_organization(host, organization)
82
- if host.organization_id.nil? || host.organization_id != organization
28
+ # Since host names must be unique yet hypervisors may have unique subscription
29
+ # facets in different orgs
30
+ sanitized_name = ::Katello::Host::SubscriptionFacet.sanitize_name(hypervisor_json[:name])
31
+ duplicate_name = "virt-who-#{sanitized_name}-#{organization.id}"
32
+ host = ::Katello::Host::SubscriptionFacet.find_by(:uuid => hypervisor_json[:uuid]).try(:host)
33
+ host ||= ::Host.find_by(:name => duplicate_name)
34
+ if host && host.organization.try(:id) != organization.id
83
35
  fail _("Host '%{name}' does not belong to an organization") % {:name => host.name} unless host.organization
36
+ host = nil
84
37
  end
85
- end
86
38
 
87
- # extracts a single field from a given list og hypervisors data.
88
- def hypervisors_field(field, hypervisors = @hypervisors)
89
- hypervisors.map { |h| h[field] }.uniq
90
- end
91
-
92
- def duplicate_name(hypervisor)
93
- organization = @organizations[hypervisor[:organization_label]]
94
- sanitized_name = ::Katello::Host::SubscriptionFacet.sanitize_name(hypervisor[:name])
95
- ["virt-who-#{sanitized_name}-#{organization.id}", organization]
39
+ host ||= create_host_for_hypervisor(duplicate_name, organization)
40
+ host.subscription_facet ||= ::Katello::Host::SubscriptionFacet.new
41
+ host.subscription_facet.host_id = host.id
42
+ host.subscription_facet.uuid = hypervisor_json[:uuid]
43
+ host.subscription_facet.import_database_attributes(host.subscription_facet.candlepin_consumer.consumer_attributes)
44
+ host.subscription_facet.save!
45
+ host.subscription_facet.update_subscription_status
46
+ host.save!
96
47
  end
97
48
 
98
49
  def create_host_for_hypervisor(name, organization, location = nil)
@@ -103,17 +54,6 @@ module Actions
103
54
  host
104
55
  end
105
56
 
106
- def update_subscription_facet(uuid, host)
107
- host.subscription_facet ||= host.build_subscription_facet(uuid: uuid)
108
- if @candlepin_attributes.key?(uuid)
109
- host.subscription_facet.candlepin_consumer.consumer_attributes = @candlepin_attributes[uuid]
110
- host.subscription_facet.import_database_attributes
111
- host.subscription_facet.save!
112
- host.subscription_facet.update_subscription_status(@candlepin_attributes[uuid].try(:[], :entitlementStatus))
113
- end
114
- host.save!
115
- end
116
-
117
57
  def rescue_strategy
118
58
  Dynflow::Action::Rescue::Skip
119
59
  end
@@ -38,7 +38,7 @@ module Katello
38
38
 
39
39
  def to_status(options = {})
40
40
  return UNKNOWN unless host.subscription_facet.try(:uuid)
41
- status_override = 'unsubscribed_hypervisor' if host.subscription_facet.hypervisor && !host.subscription_facet.candlepin_consumer.entitlements?
41
+ status_override = 'unsubscribed_hypervisor' if host.subscription_facet.hypervisor && host.subscription_facet.candlepin_consumer.entitlements.empty?
42
42
  status_override ||= options.fetch(:status_override, nil)
43
43
  status = status_override || Katello::Candlepin::Consumer.new(host.subscription_facet.uuid, host.organization.label).entitlement_status
44
44
 
@@ -120,14 +120,6 @@ module Katello
120
120
  self.class.friendly_compliance_reasons(Resources::Candlepin::Consumer.compliance(uuid)['reasons'])
121
121
  end
122
122
 
123
- def entitlements?
124
- # use cahced consumer_attributes if possible
125
- count = @consumer_attributes.try(:[], 'entitlementCount')
126
- return count > 0 if count
127
-
128
- !entitlements.empty?
129
- end
130
-
131
123
  def self.friendly_compliance_reasons(candlepin_reasons)
132
124
  candlepin_reasons.map do |reason|
133
125
  product_name = reason['productName'] || reason['attributes']['name']
@@ -0,0 +1,59 @@
1
+ #
2
+ # WARNING: THIS CONFIGURATION WAS GENERATED BY KATELLO-CONFIGURE TOOL,
3
+ # CHANGES WILL LIKELY BE OVERWRITTEN. IF YOU WISH TO PRESERVE ANY CHANGES
4
+ # TO THIS FILE PLEASE EDIT /usr/share/katello/install/default-answer-file
5
+ # FOR THE CORRESPONDING OPTION AND RERUN katello-configure.
6
+ #
7
+
8
+ # Katello configuration
9
+ #
10
+ # :vim:sw=2:ts=2:et:
11
+
12
+ # see /usr/share/katello/config.katello_defaults.yml for available options
13
+
14
+ :katello:
15
+ :force_manifest_import: true
16
+ :content_types:
17
+ :yum: true
18
+ :file: true
19
+ :deb: true
20
+ :puppet: true
21
+ :docker: true
22
+ :ostree: true
23
+
24
+ :rest_client_timeout: 120
25
+
26
+ :post_sync_url: https://robot.example.com/katello/api/v2/repositories/sync_complete?token=test
27
+
28
+ :candlepin:
29
+ :ca_cert_file: /etc/pki/katello/certs/katello-default-ca.crt
30
+ :url: https://robot.example.com:8443/candlepin
31
+ :oauth_key: katello
32
+ :oauth_secret: katello
33
+
34
+ :pulp:
35
+ :url: https://robot.example.com/pulp/api/v2/
36
+ :ca_cert_file: /etc/pki/katello/certs/katello-default-ca.crt
37
+ :oauth_key: katello
38
+ :oauth_secret: katello
39
+
40
+ :qpid:
41
+ :url: amqp:ssl:robot.example.com:5671
42
+ :subscriptions_queue_address: katello_event_queue
43
+
44
+ :loggers:
45
+ :glue:
46
+ :enabled: false
47
+ :pulp_rest:
48
+ :enabled: false
49
+ :cp_rest:
50
+ :enabled: false
51
+ :cp_proxy:
52
+ :enabled: false
53
+ :action:
54
+ :enabled: false
55
+ :tire_rest:
56
+ :enabled: false
57
+ :manifest_import_logger:
58
+ :enabled: false
59
+
@@ -1,3 +1,3 @@
1
1
  module Katello
2
- VERSION = "3.7.1".freeze
2
+ VERSION = "3.7.1.1".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: katello
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.7.1
4
+ version: 3.7.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - N/A
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-01 00:00:00.000000000 Z
11
+ date: 2018-10-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -1341,6 +1341,7 @@ files:
1341
1341
  - config/initializers/rabl_init.rb
1342
1342
  - config/initializers/runcible.rb
1343
1343
  - config/katello.yaml.example
1344
+ - config/katello.yml
1344
1345
  - config/locales/README
1345
1346
  - config/locales/bn.yml
1346
1347
  - config/locales/compare_upstream.sh