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.

Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/app/lib/actions/katello/content_view_version/incremental_update.rb +2 -1
  3. data/app/lib/actions/katello/repository/filtered_index_content.rb +1 -1
  4. data/app/lib/katello/resources/candlepin.rb +3 -3
  5. data/app/models/katello/concerns/pulp_database_unit.rb +12 -8
  6. data/app/models/katello/concerns/smart_proxy_extensions.rb +1 -1
  7. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-add-subscriptions.html +6 -4
  8. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-host-collections-table.html +1 -1
  9. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-subscriptions-list.html +6 -4
  10. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/views/activation-keys.html +1 -1
  11. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-add-subscriptions.html +3 -4
  12. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-subscriptions-list.html +0 -2
  13. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.routes.js +1 -1
  14. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/filter-repositories.html +1 -1
  15. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/views/docker-tag-environments.html +1 -1
  16. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/views/docker-tags.html +1 -1
  17. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/views/gpg-key-products.html +1 -1
  18. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/views/gpg-key-repositories.html +1 -1
  19. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/views/gpg-keys.html +1 -1
  20. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-add-hosts.html +1 -1
  21. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-hosts-list.html +1 -1
  22. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/views/host-collections.html +1 -1
  23. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +1 -1
  24. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html +1 -1
  25. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery.html +1 -1
  26. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/views/products.html +1 -1
  27. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/manifest/views/manifest-import-history.html +1 -1
  28. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/subscription-type.html +1 -1
  29. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/subscriptions.html +1 -1
  30. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-products.html +1 -1
  31. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/views/sync-plans.html +1 -1
  32. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/views/user-tasks-table.html +1 -1
  33. data/lib/katello/tasks/unify_hosts.rake +10 -0
  34. data/lib/katello/tasks/upgrade_check.rake +4 -3
  35. data/lib/katello/version.rb +1 -1
  36. metadata +19 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8e71d2d24ee870d0c10c9aef24333f76d6ba6cd9
4
- data.tar.gz: fb29c9754551fe3fe1cb49e989dabdb47d732f74
3
+ metadata.gz: 72c6d6dfe62e3a0a76e95e6b9caab11e670994b4
4
+ data.tar.gz: 408e7b7c15707707971de9606a8ddfddfa12ea6a
5
5
  SHA512:
6
- metadata.gz: c9b4d0575247f45221ae2d38ff05921af5e0d7cf0b0b20802d2c05b0f9e365353f0d7309e45586f4f8079cd17b86bb8c100ec6afe7a7de74b82a90cac5162781
7
- data.tar.gz: c79a34dada9c793960804035c96a4c5f4a01376ef483476eae0edad7d9813f008818c1bcae68e66fd1681e9ece01b205bbe5d9604d83dab65c1fedf7443d1754
6
+ metadata.gz: d7c2353eb8c5a2132eeaa2a73aa1c8f43e3443736a2baa265233ae34363f10846aec547333cc25072a6dfa5fff9428933af308fab47fbe52306651539ceb814d
7
+ data.tar.gz: 9c73956553208c508f220a782ff0a6b703fb680b7f54d0b0e01ece0f762247449c3161d3174d655639460531d8e058c94116681f45924feb30afe07ef002a4e3
@@ -108,7 +108,8 @@ module Actions
108
108
  end
109
109
  end
110
110
  end
111
- new_repos.concat(old_repos)
111
+ new_repos.concat(old_repos) unless old_repos.blank?
112
+ new_repos
112
113
  else
113
114
  [old_version_repo]
114
115
  end
@@ -20,7 +20,7 @@ module Actions
20
20
  elsif repo.file?
21
21
  ::Katello::FileUnit.import_for_repository(repo)
22
22
  else
23
- ::Katello::Rpm.import_all(unit_ids, :additive => true)
23
+ ::Katello::Rpm.import_all(unit_ids)
24
24
  end
25
25
  end
26
26
 
@@ -145,7 +145,7 @@ module Katello
145
145
  end
146
146
 
147
147
  def checkin(uuid, checkin_date)
148
- checkin_date ||= DateTime.now
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 ||= DateTime.now
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
- additive = options.fetch(:additive, false)
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
- update_repository_associations(units, additive) if index_repository_association && self.manage_repository_association
56
- units.count
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-full">
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 bst-table-cell class="row-select" style="white-space:nowrap">{{ name }}</td>
41
- <td bst-table-cell colspan="8"></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 }}/info' class="confined-text">
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-full table-striped">
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-full">
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 bst-table-cell class="row-select" style="white-space:nowrap">{{ name }}</td>
40
- <td bst-table-cell colspan="8" ></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 }}/info' class="confined-text">
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
- <a href='/subscriptions/{{ subscription.id }}/info' class="confined-text">
43
- {{ name }}
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: '/info',
413
+ url: '',
414
414
  permission: 'view_content_views',
415
415
  templateUrl: 'content-views/details/views/content-view-info.html',
416
416
  ncyBreadcrumb: {
@@ -51,7 +51,7 @@
51
51
 
52
52
  <div data-block="table">
53
53
  <table bst-table="table"
54
- class="table table-striped"
54
+ class="table table-striped table-bordered"
55
55
  ng-class="{'table-mask': table.working}">
56
56
  <thead>
57
57
  <tr bst-table-head row-select>
@@ -24,7 +24,7 @@
24
24
 
25
25
  <div data-block="table">
26
26
  <table bst-table="table"
27
- class="table table-striped"
27
+ class="table table-striped table-bordered"
28
28
  ng-class="{'table-mask': table.working}"
29
29
  ng-show="table.rows.length > 0">
30
30
  <thead>
@@ -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>
@@ -6,7 +6,7 @@
6
6
  </span>
7
7
 
8
8
  <div data-block="table">
9
- <table class="table table-striped" ng-show="gpgKey.repositories.length > 0">
9
+ <table class="table table-striped table-bordered" ng-show="gpgKey.repositories.length > 0">
10
10
  <thead>
11
11
  <tr>
12
12
  <th translate>Name</th>
@@ -21,7 +21,7 @@
21
21
 
22
22
  <div data-block="table">
23
23
  <table bst-table="table"
24
- class="table table-striped"
24
+ class="table table-striped table-bordered"
25
25
  ng-class="{'table-mask': table.working}"
26
26
  ng-show="table.rows.length > 0">
27
27
  <thead>
@@ -24,7 +24,7 @@
24
24
 
25
25
  <div data-block="table">
26
26
  <table ng-class="{'table-mask': table.working}"
27
- class="table table-full table-striped"
27
+ class="table table-bordered table-striped"
28
28
  ng-show="table.rows.length > 0">
29
29
  <thead>
30
30
  <tr bst-table-head row-select>
@@ -23,7 +23,7 @@
23
23
 
24
24
  <div data-block="table">
25
25
  <table ng-class="{'table-mask': table.working}"
26
- class="table table-full table-striped"
26
+ class="table table-bordered table-striped"
27
27
  ng-show="table.rows.length > 0">
28
28
  <thead>
29
29
  <tr bst-table-head row-select>
@@ -23,7 +23,7 @@
23
23
  </span>
24
24
 
25
25
  <div data-block="table">
26
- <table class="table table-striped"
26
+ <table class="table table-striped table-bordered"
27
27
  ng-class="{'table-mask': table.working}"
28
28
  ng-show="table.rows.length > 0">
29
29
  <thead>
@@ -152,7 +152,7 @@
152
152
  <section>
153
153
  <h4 translate>Content Counts</h4>
154
154
 
155
- <table class="table table-striped">
155
+ <table class="table table-striped table-bordered">
156
156
  <thead>
157
157
  <tr>
158
158
  <th colspan="2" translate>Content Type</th>
@@ -89,7 +89,7 @@
89
89
 
90
90
  <div data-block="table">
91
91
  <table bst-table="table"
92
- class="table table-striped"
92
+ class="table table-striped table-bordered"
93
93
  ng-show="table.rows.length > 0 && !table.working">
94
94
  <thead>
95
95
  <tr bst-table-head row-select>
@@ -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>
@@ -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>
@@ -1,4 +1,4 @@
1
- <table class="table table-striped manifest-history">
1
+ <table class="table table-striped table-bordered manifest-history">
2
2
  <thead>
3
3
  <tr>
4
4
  <th translate>Message</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 }}/info' translate>
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-full table-striped">
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>
@@ -21,7 +21,7 @@
21
21
  </span>
22
22
 
23
23
  <div data-block="table">
24
- <table class="table table-striped"
24
+ <table class="table table-striped table-bordered"
25
25
  ng-class="{'table-mask': syncPlanTable.working}"
26
26
  ng-show="syncPlanTable.rows.length > 0">
27
27
  <thead>
@@ -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-full table-striped">
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 != '#{CP_LISTEN_ACTION}'").count
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. "
@@ -1,3 +1,3 @@
1
1
  module Katello
2
- VERSION = "3.3.0.rc2".freeze
2
+ VERSION = "3.3.0".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.3.0.rc2
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-01-24 00:00:00.000000000 Z
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: 1.3.1
2039
+ version: '0'
2026
2040
  requirements: []
2027
2041
  rubyforge_project:
2028
- rubygems_version: 2.6.8
2042
+ rubygems_version: 2.5.2
2029
2043
  signing_key:
2030
2044
  specification_version: 4
2031
2045
  summary: ''