katello 3.3.0.rc2 → 3.3.0
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 +4 -4
- data/app/lib/actions/katello/content_view_version/incremental_update.rb +2 -1
- data/app/lib/actions/katello/repository/filtered_index_content.rb +1 -1
- data/app/lib/katello/resources/candlepin.rb +3 -3
- data/app/models/katello/concerns/pulp_database_unit.rb +12 -8
- data/app/models/katello/concerns/smart_proxy_extensions.rb +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-add-subscriptions.html +6 -4
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-host-collections-table.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-subscriptions-list.html +6 -4
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/views/activation-keys.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-add-subscriptions.html +3 -4
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-subscriptions-list.html +0 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.routes.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/filter-repositories.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/views/docker-tag-environments.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/views/docker-tags.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/views/gpg-key-products.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/views/gpg-key-repositories.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/views/gpg-keys.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-add-hosts.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-hosts-list.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/views/host-collections.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/views/products.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/manifest/views/manifest-import-history.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/subscription-type.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/subscriptions.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-products.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/views/sync-plans.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/views/user-tasks-table.html +1 -1
- data/lib/katello/tasks/unify_hosts.rake +10 -0
- data/lib/katello/tasks/upgrade_check.rake +4 -3
- data/lib/katello/version.rb +1 -1
- metadata +19 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 72c6d6dfe62e3a0a76e95e6b9caab11e670994b4
|
4
|
+
data.tar.gz: 408e7b7c15707707971de9606a8ddfddfa12ea6a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d7c2353eb8c5a2132eeaa2a73aa1c8f43e3443736a2baa265233ae34363f10846aec547333cc25072a6dfa5fff9428933af308fab47fbe52306651539ceb814d
|
7
|
+
data.tar.gz: 9c73956553208c508f220a782ff0a6b703fb680b7f54d0b0e01ece0f762247449c3161d3174d655639460531d8e058c94116681f45924feb30afe07ef002a4e3
|
@@ -145,7 +145,7 @@ module Katello
|
|
145
145
|
end
|
146
146
|
|
147
147
|
def checkin(uuid, checkin_date)
|
148
|
-
checkin_date ||=
|
148
|
+
checkin_date ||= Time.now
|
149
149
|
self.put(path(uuid), {:lastCheckin => checkin_date}.to_json, self.default_headers).body
|
150
150
|
end
|
151
151
|
|
@@ -688,9 +688,9 @@ module Katello
|
|
688
688
|
end
|
689
689
|
|
690
690
|
def create_unlimited_subscription(owner_key, product_id)
|
691
|
-
start_date ||=
|
691
|
+
start_date ||= Time.now
|
692
692
|
# End it 100 years from now
|
693
|
-
end_date ||= start_date + 10_950
|
693
|
+
end_date ||= start_date + 10_950.days
|
694
694
|
|
695
695
|
subscription = {
|
696
696
|
'startDate' => start_date,
|
@@ -41,8 +41,7 @@ module Katello
|
|
41
41
|
|
42
42
|
# Import all units of a single type and refresh their repository associations
|
43
43
|
def import_all(uuids = nil, options = {})
|
44
|
-
|
45
|
-
index_repository_association = options.fetch(:index_repository_association, true)
|
44
|
+
index_repository_association = options.fetch(:index_repository_association, true) && self.manage_repository_association
|
46
45
|
|
47
46
|
process_block = lambda do |units|
|
48
47
|
units.each do |unit|
|
@@ -52,16 +51,20 @@ module Katello
|
|
52
51
|
end
|
53
52
|
item.update_from_json(unit)
|
54
53
|
end
|
55
|
-
|
56
|
-
|
54
|
+
if index_repository_association
|
55
|
+
units.map { |unit| unit.slice('_id', 'repository_memberships') }
|
56
|
+
else
|
57
|
+
units.count
|
58
|
+
end
|
57
59
|
end
|
58
60
|
|
59
61
|
if uuids
|
60
|
-
results = content_unit_class.fetch_by_uuids(uuids, &process_block)
|
62
|
+
results = content_unit_class.fetch_by_uuids(uuids, &process_block).flatten
|
63
|
+
update_repository_associations(results, true) if index_repository_association
|
61
64
|
else
|
62
|
-
results = content_unit_class.fetch_all(&process_block)
|
65
|
+
results = content_unit_class.fetch_all(&process_block).flatten
|
66
|
+
update_repository_associations(results) if index_repository_association
|
63
67
|
end
|
64
|
-
results.inject(:+)
|
65
68
|
end
|
66
69
|
|
67
70
|
def import_for_repository(repository, force = false)
|
@@ -110,9 +113,10 @@ module Katello
|
|
110
113
|
def update_repository_associations(units_json, additive = false)
|
111
114
|
ActiveRecord::Base.transaction do
|
112
115
|
repo_unit_id = {}
|
116
|
+
repo_cache = {}
|
113
117
|
units_json.each do |unit_json|
|
114
118
|
unit_json['repository_memberships'].each do |repo_pulp_id|
|
115
|
-
if Repository.exists?(:pulp_id => repo_pulp_id)
|
119
|
+
if (repo_cache[repo_pulp_id] ||= Repository.exists?(:pulp_id => repo_pulp_id))
|
116
120
|
repo_unit_id[repo_pulp_id] ||= []
|
117
121
|
repo_unit_id[repo_pulp_id] << unit_json['_id']
|
118
122
|
end
|
@@ -71,7 +71,7 @@ module Katello
|
|
71
71
|
elsif has_feature?(PULP_NODE_FEATURE)
|
72
72
|
path = ProxyAPI::PulpNode.new(:url => self.url).capsule_puppet_path['puppet_content_dir']
|
73
73
|
end
|
74
|
-
self.update_attribute(:puppet_path, path) if persisted?
|
74
|
+
self.update_attribute(:puppet_path, path || '') if persisted?
|
75
75
|
path
|
76
76
|
end
|
77
77
|
|
@@ -21,7 +21,7 @@
|
|
21
21
|
</span>
|
22
22
|
|
23
23
|
<div data-block="table">
|
24
|
-
<table ng-class="{'table-mask': table.working}" class="table table-
|
24
|
+
<table ng-class="{'table-mask': table.working}" class="table table-bordered">
|
25
25
|
<thead>
|
26
26
|
<tr bst-table-head row-select>
|
27
27
|
<th bst-table-column="quantity" sortable class="align-center"><span translate>Quantity</span></th>
|
@@ -37,8 +37,10 @@
|
|
37
37
|
|
38
38
|
<tbody>
|
39
39
|
<tr bst-table-row ng-repeat-start="(name, subscriptions) in groupedSubscriptions">
|
40
|
-
<td
|
41
|
-
<td
|
40
|
+
<td class="row-select"></td>
|
41
|
+
<td colspan="8">
|
42
|
+
{{ name }}
|
43
|
+
</td>
|
42
44
|
</tr>
|
43
45
|
<tr bst-table-row
|
44
46
|
ng-repeat-end
|
@@ -57,7 +59,7 @@
|
|
57
59
|
</select>
|
58
60
|
</td>
|
59
61
|
<td bst-table-cell>
|
60
|
-
<a href='/subscriptions/{{ subscription.id }}
|
62
|
+
<a href='/subscriptions/{{ subscription.id }}' class="confined-text">
|
61
63
|
{{ subscription | subscriptionConsumedFilter }}
|
62
64
|
</a>
|
63
65
|
</td>
|
@@ -30,7 +30,7 @@
|
|
30
30
|
|
31
31
|
<div data-block="table">
|
32
32
|
<table ng-show="table.rows.length > 0"
|
33
|
-
ng-class="{'table-mask': table.working}" class="table table-
|
33
|
+
ng-class="{'table-mask': table.working}" class="table table-bordered table-striped">
|
34
34
|
<thead>
|
35
35
|
<tr bst-table-head row-select="hostCollection">
|
36
36
|
<th bst-table-column="name" translate>Name</th>
|
@@ -20,7 +20,7 @@
|
|
20
20
|
</span>
|
21
21
|
|
22
22
|
<div data-block="table">
|
23
|
-
<table ng-class="{'table-mask': table.working}" class="table table-
|
23
|
+
<table ng-class="{'table-mask': table.working}" class="table table-bordered">
|
24
24
|
<thead>
|
25
25
|
<tr bst-table-head row-select>
|
26
26
|
<th bst-table-column="quantity" sortable class="align-center"><span translate>Quantity</span></th>
|
@@ -36,13 +36,15 @@
|
|
36
36
|
|
37
37
|
<tbody>
|
38
38
|
<tr bst-table-row ng-repeat-start="(name, subscriptions) in groupedSubscriptions | groupedFilter: subscriptionSearch">
|
39
|
-
<td
|
40
|
-
<td
|
39
|
+
<td class="row-select"></td>
|
40
|
+
<td colspan="8">
|
41
|
+
{{ name }}
|
42
|
+
</td>
|
41
43
|
</tr>
|
42
44
|
<tr class="grey-table-row" bst-table-row ng-repeat-end ng-repeat="subscription in subscriptions" row-select="subscription">
|
43
45
|
<td bst-table-cell>{{ subscription | subscriptionAttachAmountFilter }}</td>
|
44
46
|
<td bst-table-cell>
|
45
|
-
<a href='/subscriptions/{{ subscription.id }}
|
47
|
+
<a href='/subscriptions/{{ subscription.id }}' class="confined-text">
|
46
48
|
{{ subscription | subscriptionConsumedFilter }}
|
47
49
|
</a>
|
48
50
|
</td>
|
@@ -22,7 +22,7 @@
|
|
22
22
|
</span>
|
23
23
|
|
24
24
|
<div data-block="table">
|
25
|
-
<table class="table table-striped" ng-class="{'table-mask': table.working}">
|
25
|
+
<table class="table table-striped table-bordered" ng-class="{'table-mask': table.working}">
|
26
26
|
<thead>
|
27
27
|
<tr bst-table-head>
|
28
28
|
<th bst-table-column="name" sortable><span translate>Name</span></th>
|
@@ -38,10 +38,9 @@
|
|
38
38
|
|
39
39
|
<tbody>
|
40
40
|
<tr bst-table-row ng-repeat-start="(name, subscriptions) in groupedSubscriptions">
|
41
|
-
<td class="row-select">
|
42
|
-
|
43
|
-
|
44
|
-
</a>
|
41
|
+
<td class="row-select"></td>
|
42
|
+
<td colspan="8">
|
43
|
+
{{ name }}
|
45
44
|
</td>
|
46
45
|
<td bst-table-cell colspan="8"></td>
|
47
46
|
</tr>
|
@@ -51,9 +51,7 @@
|
|
51
51
|
<tbody>
|
52
52
|
<tr bst-table-row ng-repeat-start="(name, subscriptions) in groupedSubscriptions | groupedFilter: subscriptionSearch">
|
53
53
|
<td class="row-select">
|
54
|
-
<a href='/subscriptions/{{ subscription.id }}/info' class="confined-text">
|
55
54
|
{{ name }}
|
56
|
-
</a>
|
57
55
|
</td>
|
58
56
|
<td bst-table-cell colspan="8"></td>
|
59
57
|
</tr>
|
@@ -410,7 +410,7 @@ angular.module('Bastion.content-views').config(['$stateProvider', function ($sta
|
|
410
410
|
}
|
411
411
|
})
|
412
412
|
.state('content-view.info', {
|
413
|
-
url: '
|
413
|
+
url: '',
|
414
414
|
permission: 'view_content_views',
|
415
415
|
templateUrl: 'content-views/details/views/content-view-info.html',
|
416
416
|
ncyBreadcrumb: {
|
@@ -15,7 +15,7 @@
|
|
15
15
|
</span>
|
16
16
|
|
17
17
|
<div data-block="table">
|
18
|
-
<table class="table table-striped" ng-class="{'table-mask': table.working}">
|
18
|
+
<table class="table table-striped table-bordered" ng-class="{'table-mask': table.working}">
|
19
19
|
<thead>
|
20
20
|
<tr bst-table-head>
|
21
21
|
<th bst-table-column="name">{{ "Name" | translate }}</th>
|
@@ -6,7 +6,7 @@
|
|
6
6
|
</span>
|
7
7
|
|
8
8
|
<div data-block="table">
|
9
|
-
<table bst-table="table" class="table table-striped">
|
9
|
+
<table bst-table="table" class="table table-striped table-bordered">
|
10
10
|
<thead>
|
11
11
|
<tr bst-table-head>
|
12
12
|
<th bst-table-column="name" sortable><span translate>Name</span></th>
|
@@ -66,7 +66,7 @@
|
|
66
66
|
|
67
67
|
<div class="row">
|
68
68
|
<div class="col-sm-12">
|
69
|
-
<table bst-table="discoveryTable" class="table table-striped">
|
69
|
+
<table bst-table="discoveryTable" class="table table-striped table-bordered">
|
70
70
|
<thead>
|
71
71
|
<tr bst-table-head row-select>
|
72
72
|
<th bst-table-column translate>Discovered URLs</th>
|
data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/views/products.html
CHANGED
@@ -84,7 +84,7 @@
|
|
84
84
|
</span>
|
85
85
|
|
86
86
|
<div data-block="table">
|
87
|
-
<table class="table table-striped" ng-class="{'table-mask': table.working}">
|
87
|
+
<table class="table table-striped table-bordered" ng-class="{'table-mask': table.working}">
|
88
88
|
<thead>
|
89
89
|
<tr bst-table-head row-select>
|
90
90
|
<th bst-table-column="name" sortable><span translate>Name</span></th>
|
@@ -12,7 +12,7 @@
|
|
12
12
|
</div>
|
13
13
|
<div ng-if="subscription.virt_only === true && subscription.host">
|
14
14
|
<span translate> Guests of </span>
|
15
|
-
<a href='/content_hosts/{{ subscription.host.id }}
|
15
|
+
<a href='/content_hosts/{{ subscription.host.id }}' translate>
|
16
16
|
{{ subscription.host.name }}
|
17
17
|
</a>
|
18
18
|
</div>
|
@@ -26,7 +26,7 @@
|
|
26
26
|
</span>
|
27
27
|
|
28
28
|
<div data-block="table">
|
29
|
-
<table class="table" ng-class="{'table-mask': table.working}" ng-show="table.rows.length > 0">
|
29
|
+
<table class="table table-bordered" ng-class="{'table-mask': table.working}" ng-show="table.rows.length > 0">
|
30
30
|
<thead>
|
31
31
|
<tr bst-table-head>
|
32
32
|
<th bst-table-column="consumed" class="align-center"><span translate>Consumed</span></th>
|
@@ -48,7 +48,7 @@
|
|
48
48
|
|
49
49
|
<div data-block="table">
|
50
50
|
<table ng-show="table.rows.length > 0"
|
51
|
-
ng-class="{'table-mask': table.working}" class="table table-
|
51
|
+
ng-class="{'table-mask': table.working}" class="table table-bordered table-striped">
|
52
52
|
<thead>
|
53
53
|
<tr bst-table-head row-select="product">
|
54
54
|
<th bst-table-column="name" translate>Name</th>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<section class="nutupane-sub-section">
|
2
2
|
<div bst-table="tasksTable">
|
3
|
-
<table ng-class="{'table-mask': tasksTable.working}" class="table table-
|
3
|
+
<table ng-class="{'table-mask': tasksTable.working}" class="table table-bordered table-striped">
|
4
4
|
<thead>
|
5
5
|
<tr bst-table-head>
|
6
6
|
<th bst-table-column="Status" style="width: 20%" translate>Status</th>
|
@@ -99,6 +99,16 @@ namespace :katello do
|
|
99
99
|
provisioning_host, facet_host = pick_hosts(host_one, host_two)
|
100
100
|
return if provisioning_host.nil? || facet_host.nil?
|
101
101
|
|
102
|
+
if facet_host.compute_resource
|
103
|
+
puts "Host #{facet_host.name} is registered with subscription-manager but is assigned to a compute resource, please un-assign this host first."
|
104
|
+
return
|
105
|
+
end
|
106
|
+
|
107
|
+
if facet_host.managed?
|
108
|
+
puts "Host #{facet_host.name} is registered with subscription-manager but is managed, please un-unmanage this host first."
|
109
|
+
return
|
110
|
+
end
|
111
|
+
|
102
112
|
puts "Unifying #{provisioning_host.name} with #{facet_host.name}\n"
|
103
113
|
return if ENV['DRYRUN']
|
104
114
|
|
@@ -1,8 +1,9 @@
|
|
1
|
-
CP_LISTEN_ACTION = "Actions::Candlepin::ListenOnCandlepinEvents".freeze
|
2
|
-
|
3
1
|
namespace :katello do
|
4
2
|
task :upgrade_check => ['environment'] do
|
5
3
|
desc "Task that can be run before upgrading Katello to check if system is upgrade ready"
|
4
|
+
CP_LISTEN_ACTION = Actions::Candlepin::ListenOnCandlepinEvents.to_s
|
5
|
+
EVENT_QUEUE_ACTION = Actions::Katello::EventQueue::Monitor.to_s
|
6
|
+
|
6
7
|
success = "PASS"
|
7
8
|
fail = "FAIL"
|
8
9
|
|
@@ -10,7 +11,7 @@ namespace :katello do
|
|
10
11
|
puts "Checking upgradeability...\n\n"
|
11
12
|
|
12
13
|
# check for any running tasks
|
13
|
-
task_count = ::ForemanTasks::Task.active.where("label
|
14
|
+
task_count = ::ForemanTasks::Task.active.where("label NOT IN (?)", [CP_LISTEN_ACTION, EVENT_QUEUE_ACTION]).count
|
14
15
|
task_status = task_count > 0 ? fail : success
|
15
16
|
puts "Checking for running tasks..."
|
16
17
|
puts "[#{task_status}] - There are #{task_count} active tasks. "
|
data/lib/katello/version.rb
CHANGED
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.3.0
|
4
|
+
version: 3.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- N/A
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-02-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: patternfly-sass
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 3.11.0
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 3.11.0
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: rabl
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -2020,12 +2034,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
2020
2034
|
version: '0'
|
2021
2035
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
2022
2036
|
requirements:
|
2023
|
-
- - "
|
2037
|
+
- - ">="
|
2024
2038
|
- !ruby/object:Gem::Version
|
2025
|
-
version:
|
2039
|
+
version: '0'
|
2026
2040
|
requirements: []
|
2027
2041
|
rubyforge_project:
|
2028
|
-
rubygems_version: 2.
|
2042
|
+
rubygems_version: 2.5.2
|
2029
2043
|
signing_key:
|
2030
2044
|
specification_version: 4
|
2031
2045
|
summary: ''
|