foreman_content 0.3 → 0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +6 -2
  3. data/app/assets/javascripts/content/content.js +23 -12
  4. data/app/assets/javascripts/content/repository.js +19 -0
  5. data/app/controllers/content/content_views_controller.rb +19 -6
  6. data/app/controllers/content/products_controller.rb +1 -1
  7. data/app/controllers/content/repositories_controller.rb +9 -3
  8. data/app/helpers/content/content_views_helper.rb +24 -4
  9. data/app/helpers/content/repositories_helper.rb +28 -0
  10. data/app/models/concerns/content/host_extensions.rb +1 -1
  11. data/app/models/concerns/content/operatingsystem_extensions.rb +1 -1
  12. data/app/models/concerns/content/orchestration/pulp.rb +1 -1
  13. data/app/models/concerns/content/orchestration/pulp/sync.rb +37 -2
  14. data/app/models/concerns/content/redhat_extensions.rb +19 -3
  15. data/app/models/concerns/content/repository_common.rb +13 -0
  16. data/app/models/content/content_view.rb +21 -15
  17. data/app/models/content/content_view_repository_clone.rb +2 -2
  18. data/app/models/content/product.rb +1 -1
  19. data/app/models/content/repository.rb +24 -8
  20. data/app/models/content/repository/operating_system.rb +11 -2
  21. data/app/models/content/repository/product.rb +8 -3
  22. data/app/models/content/repository_clone.rb +5 -10
  23. data/app/services/content/content_view_factory.rb +46 -25
  24. data/app/services/content/pulp/repository.rb +13 -0
  25. data/app/services/content/pulp/repository_sync_history.rb +8 -2
  26. data/app/views/content/content_views/{_step2.html.erb → _composite.html.erb} +1 -1
  27. data/app/views/content/content_views/_form.html.erb +17 -14
  28. data/app/views/content/content_views/index.html.erb +4 -3
  29. data/app/views/content/content_views/new.html.erb +1 -7
  30. data/app/views/content/content_views/show.erb +22 -0
  31. data/app/views/content/products/_form.html.erb +3 -9
  32. data/app/views/content/repositories/_fields.html.erb +9 -0
  33. data/app/views/content/repositories/_os_form.html.erb +6 -11
  34. data/app/views/content/repositories/_product_form.html.erb +7 -11
  35. data/app/views/content/repositories/_repository.html.erb +4 -0
  36. data/app/views/content/repositories/_sync_schedule.erb +10 -0
  37. data/app/views/content/repositories/edit.html.erb +2 -0
  38. data/app/views/content/repositories/index.html.erb +14 -16
  39. data/app/views/content/repositories/new.html.erb +2 -0
  40. data/app/views/content/repositories/show.html.erb +51 -37
  41. data/db/migrate/20130807121629_create_content_content_views.rb +1 -1
  42. data/db/migrate/20130828173006_change_content_view_index_name.rb +10 -0
  43. data/db/migrate/20130901070945_add_publish_boolean_to_content_repository.rb +6 -0
  44. data/db/migrate/20130902130445_change_repository_to_polymorphic.rb +42 -0
  45. data/db/migrate/20130902142326_add_polymorphic_repo_to_content_view_repository_clone.rb +8 -0
  46. data/lib/content/version.rb +1 -1
  47. metadata +14 -18
@@ -0,0 +1,9 @@
1
+ <%= text_f f, :name %>
2
+ <%= text_f f, :feed, :class => 'span6' %>
3
+ <%= selectable_f f, :content_type, @repository.content_types %>
4
+ <%= select_f f, :architecture_id, ::Architecture.all, :id, :name, { :include_blank => N_("noarch")} %>
5
+ <%= checkbox_f f, :enabled %>
6
+ <%= checkbox_f f, :publish, { :disabled => !f.object.new_record?,
7
+ :help_inline => _('should this repository be directly accessible or as a feed for content views?') } %>
8
+ <%= select_f f, :gpg_key_id, Content::GpgKey.all, :id, :name, {:include_blank => true}, {:label => _("GPG Key")} %>
9
+ <%= f.hidden_field :type if f.object.new_record? %>
@@ -1,21 +1,16 @@
1
- <%= javascript 'content/content.js' %>
2
1
  <%= form_for @repository, :url => (@repository.new_record? ? repositories_path : repository_path(:id => @repository.id)) do |f| %>
3
2
  <%= base_errors_for @repository %>
4
3
  <ul class="nav nav-tabs" data-tabs="tabs">
5
4
  <li class="active"><a href="#primary" data-toggle="tab"><%= _("Repository") %></a></li>
5
+ <li><a href="#sync_schedule" data-toggle="tab"><%= _("Sync Schedule") %></a></li>
6
6
  </ul>
7
7
  <div class="tab-content">
8
8
  <div class="tab-pane active" id="primary">
9
- <%= f.hidden_field :type %>
10
- <%= select_f f, :operatingsystem_id, ::Redhat.all, :id, :to_label, {}, {:label => _("Operating System")} %>
11
- <%= text_f f, :name %>
12
- <%= text_f f, :feed, :class => 'span6' %>
13
- <%= selectable_f f, :content_type, @repository.content_types %>
14
- <%= select_f f, :architecture_id, ::Architecture.all, :id, :name, { :include_blank => N_("noarch")} %>
15
- <%= checkbox_f f, :enabled %>
16
-
17
- <%= select_f f, :gpg_key_id, Content::GpgKey.all, :id, :name, {:include_blank => true}, {:label => _("GPG Key")} %>
18
-
9
+ <%= select_f f, :originator_id, ::Redhat.all, :id, :to_label, {}, {:label => _("Operating System")} %>
10
+ <%= render :partial => 'fields', :locals => {:f => f} %>
11
+ </div>
12
+ <div class="tab-pane" id="sync_schedule">
13
+ <%= render :partial => 'sync_schedule', :locals => { :f => f } %>
19
14
  </div>
20
15
  </div>
21
16
  <%= submit_or_cancel f %>
@@ -1,28 +1,24 @@
1
- <%= javascript 'content/content.js' %>
2
1
  <%= form_for @repository, :url => (@repository.new_record? ? repositories_path : repository_path(:id => @repository.id)) do |f| %>
3
2
  <%= base_errors_for @repository %>
4
3
  <ul class="nav nav-tabs" data-tabs="tabs">
5
4
  <li class="active"><a href="#primary" data-toggle="tab"><%= _("Repository") %></a></li>
6
5
  <li><a href="#operatingsystems" data-toggle="tab"><%= _("Operating systems") %></a></li>
6
+ <li><a href="#sync_schedule" data-toggle="tab"><%= _("Sync Schedule") %></a></li>
7
7
  </ul>
8
8
  <div class="tab-content">
9
9
  <div class="tab-pane active" id="primary">
10
- <%= f.hidden_field :type %>
11
- <%= select_f f, :product_id, Content::Product.all, :id, :name, {}, {:label => _("Product")} %>
12
- <%= text_f f, :name %>
13
- <%= text_f f, :feed, :class => 'span6' %>
14
- <%= selectable_f f, :content_type, @repository.content_types %>
15
- <%= select_f f, :architecture_id, ::Architecture.all, :id, :name, { :include_blank => N_("noarch")} %>
16
- <%= checkbox_f f, :enabled %>
17
-
18
- <%= select_f f, :gpg_key_id, Content::GpgKey.all, :id, :name, {:include_blank => true}, {:label => _("GPG Key")} %>
19
-
10
+ <%= select_f f, :originator_id, Content::Product.all, :id, :name, { :prompt => _('Please Select') }, { :label => _("Product") } %>
11
+ <%= render :partial => 'fields', :locals => { :f => f } %>
20
12
  </div>
21
13
  <div class="tab-pane" id="operatingsystems">
22
14
  <%= alert :class => 'controls alert-success', :header => 'Repository for operating systems',
23
15
  :text => _('This Repository will be restricted only to hosts that runs the selected operating system') %>
24
16
  <%= multiple_selects(f, :operatingsystems, ::Redhat, @repository.operatingsystem_ids) %>
25
17
  </div>
18
+ <div class="tab-pane" id="sync_schedule">
19
+ <%= render :partial => 'sync_schedule', :locals => { :f => f } %>
20
+ </div>
21
+
26
22
  </div>
27
23
  <%= submit_or_cancel f %>
28
24
  <% end %>
@@ -0,0 +1,4 @@
1
+ <td><%= link_to_if_authorized(h(repository.name), hash_for_repository_path(repository)) %></td>
2
+ <td><%= repository.try(:state) %></td>
3
+ <td><%= last_time(repository.kind_of?(Content::Repository) ? repository.last_sync : repository.last_published) %></td>
4
+ <td><%= repository.content_type %></td>
@@ -0,0 +1,10 @@
1
+ <%= checkbox_f f, :schedule, :label => _('Schedule Sync'),
2
+ :help_inline => _('Sync this repository periodically') %>
3
+
4
+ <div class='control-group'>
5
+ <div class='controls'>
6
+
7
+ <%= sync_schedule_selector(f) %>
8
+ </div>
9
+ </div>
10
+
@@ -1,3 +1,5 @@
1
+ <%= javascript 'content/repository.js' %>
2
+
1
3
  <% title _("Edit Repository") %>
2
4
  <% if @repository.is_a? Content::Repository::OperatingSystem %>
3
5
  <%= render :partial => 'os_form' %>
@@ -7,28 +7,26 @@
7
7
  <table class="table table-bordered table-striped">
8
8
  <tr>
9
9
  <th><%= sort :name, :as => s_("Name") %></th>
10
- <th><%= _("Product") %></th>
11
10
  <th><%= _("State") %></th>
12
11
  <th><%= _("Last sync status") %></th>
13
12
  <th><%= _("Content type") %></th>
14
13
  <th></th>
15
14
  </tr>
16
- <% @repositories.each do |repository| %>
17
- <tr>
18
- <td><%= link_to_if_authorized(h(repository.name), hash_for_repository_path(repository)) %></td>
19
- <td><%= repository.entity_name %></td>
20
- <td><%= repository.try(:state) %></td>
21
- <td><%= last_time(repository.last_sync) %></td>
22
- <td><%= repository.content_type %></td>
23
- <td align="right">
24
- <%= action_buttons(
25
- display_link_if_authorized(_("Edit"), hash_for_edit_repository_path(repository)),
26
- display_link_if_authorized(_("Synchronize"), hash_for_sync_repository_path(repository), :method => :put),
27
- display_delete_if_authorized(hash_for_repository_path(repository), :confirm => "Delete #{repository.name}?")
28
- ) %>
15
+ <% @repositories.group_by(&:originator).each do |originator, repositories| %>
16
+ <tr><td colspan = '5'><%= originator %></td></tr>
17
+ <% repositories.each do |repository| %>
18
+ <tr>
19
+ <%= render :partial => 'repository', :locals => { :repository => repository } %>
20
+ <td align="right">
21
+ <%= action_buttons(
22
+ display_link_if_authorized(_("Edit"), hash_for_edit_repository_path(repository)),
23
+ display_link_if_authorized(_("Synchronize"), hash_for_sync_repository_path(repository), :method => :put),
24
+ display_delete_if_authorized(hash_for_repository_path(repository), :confirm => "Delete #{repository.name}?")
25
+ ) %>
29
26
 
30
- </td>
31
- </tr>
27
+ </td>
28
+ </tr>
29
+ <% end %>
32
30
  <% end %>
33
31
  </table>
34
32
  <%= page_entries_info @repositories %>
@@ -1,3 +1,5 @@
1
+ <%= javascript 'content/repository.js' %>
2
+
1
3
  <% title _("New Repository") %>
2
4
  <% if @repository.is_a? Content::Repository::OperatingSystem %>
3
5
  <%= render :partial => "os_form" %>
@@ -41,51 +41,65 @@
41
41
  <td> <%= _("Unprotected") %> </td>
42
42
  <td> <%= @repository.unprotected %> </td>
43
43
  </tr>
44
+ <% if @repository.publish %>
45
+ <tr>
46
+ <td> <%= _("URL") %> </td>
47
+ <td> <%= @repository.full_path %> </td>
48
+ </tr>
49
+ <% end %>
50
+ <tr>
51
+ <td> <%= _('Sync Schedule') %> </td>
52
+ <td> <%= sync_schedule(@repository.sync_schedule) %> </td>
53
+ </tr>
54
+
44
55
  </table>
45
56
  </div>
46
57
  </div>
47
58
  <div class="row-fluid">
48
- <div class="stats-well span4">
49
- <h4 class="ca" ><%= _('Last Update Metrics') -%></h4>
50
- <div style="margin-top:50px;padding-bottom: 40px;">
51
- <%= flot_pie_chart("metrics" ,_("Last Update Metrics"), @repository.sync_history.last.try(:times), :class => "statistics-pie small")%>
59
+ <%# running sync %>
60
+ <% if @repository.sync_history.any? %>
61
+ <div class="stats-well span4">
62
+ <h4 class="ca" ><%= _('Last Update Metrics') -%></h4>
63
+ <div style="margin-top:50px;padding-bottom: 40px;">
64
+ <%= flot_pie_chart("metrics" ,_("Last Update Metrics"), @repository.sync_history.last.try(:times), :class => "statistics-pie small") %>
65
+ </div>
66
+ </div>
67
+ <div class="stats-well span4">
68
+ <h4 class="ca" ><%= _('Update Summary') -%></h4>
69
+ <%= flot_bar_chart("status" ,"", _("Number of packages"), @repository.sync_history.last.try(:metrics), :class => "statistics-bar")%>
52
70
  </div>
53
- </div>
54
- <div class="stats-well span4">
55
- <h4 class="ca" ><%= _('Update Summary') -%></h4>
56
- <%= flot_bar_chart("status" ,"", _("Number of packages"), @repository.sync_history.last.try(:metrics), :class => "statistics-bar")%>
57
- </div>
58
71
 
59
- <div class="span4">
60
- <table class="table table-bordered table-striped">
61
- <tr>
62
- <th><%= _('Repository Counters') %></th>
63
- <th></th>
64
- </tr>
65
- <% @repository.counters.each do |name, value| -%>
72
+ <div class="span4">
73
+ <table class="table table-bordered table-striped">
66
74
  <tr>
67
- <td> <%= name.to_s.humanize %> </td>
68
- <td> <%= value %> </td>
75
+ <th><%= _('Repository Counters') %></th>
76
+ <th></th>
69
77
  </tr>
70
- <% end -%>
71
- <tr>
72
- <td> <%= _("Last synchronized") %> </td>
73
- <td> <%= last_time @repository.last_sync %> </td>
74
- </tr>
75
- </table>
76
- </div>
77
- <div class="span4">
78
- <table class="table table-bordered table-striped">
79
- <tr>
80
- <th><%= _('Last Sync') %></th>
81
- <th></th>
82
- </tr>
83
- <% @repository.sync_history.last.status.each do |name, value| -%>
78
+ <% @repository.counters.each do |name, value| -%>
79
+ <tr>
80
+ <td> <%= name.to_s.humanize %> </td>
81
+ <td> <%= value %> </td>
82
+ </tr>
83
+ <% end -%>
84
84
  <tr>
85
- <td> <%= name.to_s.humanize %> </td>
86
- <td> <%= value %> </td>
85
+ <td> <%= _("Last synchronized") %> </td>
86
+ <td> <%= last_time @repository.last_sync %> </td>
87
87
  </tr>
88
- <% end -%>
89
- </table>
90
- </div>
88
+ </table>
89
+ </div>
90
+ <div class="span4">
91
+ <table class="table table-bordered table-striped">
92
+ <tr>
93
+ <th><%= _('Last Sync') %></th>
94
+ <th></th>
95
+ </tr>
96
+ <% @repository.sync_history.last.status.each do |name, value| -%>
97
+ <tr>
98
+ <td> <%= name.to_s.humanize %> </td>
99
+ <td> <%= value %> </td>
100
+ </tr>
101
+ <% end -%>
102
+ </table>
103
+ </div>
104
+ <% end %>
91
105
  </div>
@@ -9,7 +9,7 @@ class CreateContentContentViews < ActiveRecord::Migration
9
9
  t.timestamps
10
10
  end
11
11
  add_index(:content_content_views, :ancestry,:name=>'content_view_ancestry_index')
12
- add_index :content_content_views, [:originator_id, :originator_type]
12
+ add_index :content_content_views, [:originator_id, :originator_type], :name => 'content_view_id_type_index'
13
13
  add_index :content_content_views, :originator_type
14
14
  end
15
15
  end
@@ -0,0 +1,10 @@
1
+ class ChangeContentViewIndexName < ActiveRecord::Migration
2
+ OLD_NAME = :index_content_content_views_on_originator_id_and_originator_type
3
+ def up
4
+ rename_index :content_content_views, OLD_NAME, :content_view_id_type_index if index_name_exists? :content_content_views, OLD_NAME, nil
5
+ end
6
+
7
+ def down
8
+ rename_index :content_content_views, :content_view_id_type_index, OLD_NAME
9
+ end
10
+ end
@@ -0,0 +1,6 @@
1
+ class AddPublishBooleanToContentRepository < ActiveRecord::Migration
2
+ def change
3
+ add_column :content_repositories, :publish, :boolean
4
+ add_index :content_repositories, :publish, :name => :content_repo_publish_index
5
+ end
6
+ end
@@ -0,0 +1,42 @@
1
+ class ChangeRepositoryToPolymorphic < ActiveRecord::Migration
2
+ def up
3
+ add_column :content_repositories, :originator_type, :string
4
+ add_column :content_repositories, :originator_id, :integer
5
+ Content::Repository.reset_column_information
6
+
7
+ Content::Repository.all.each do |repo|
8
+ if repo.operatingsystem_id
9
+ repo.originator_type = 'Operatingsystem'
10
+ repo.originator_id = repo.operatingsystem_id
11
+ elsif repo.product_id
12
+ repo.originator_type = 'Content::Product'
13
+ repo.originator_id = repo.product_id
14
+ else
15
+ raise "invalid repo type, can't continue: #{repo.inspect}"
16
+ end
17
+ repo.save(:validate => false)
18
+ end
19
+ remove_column :content_repositories, :operatingsystem_id
20
+ remove_column :content_repositories, :product_id
21
+ end
22
+
23
+ def down
24
+ add_column :content_repositories, :product_id, :integer
25
+ add_column :content_repositories, :operatingsystem_id, :integer
26
+ Content::Repository.reset_column_information
27
+
28
+ Content::Repository.all.each do |repo|
29
+ if repo.originator_type && repo.originator_id
30
+ case repo.originator_type
31
+ when 'Operatingsystem'
32
+ repo.operatingsystem_id = repo.originator_id
33
+ when 'Content::Product'
34
+ repo.product_id = repo.originator_id
35
+ end
36
+ repo.save(:validate => false)
37
+ end
38
+ end
39
+ remove_column :content_repositories, :originator_type
40
+ remove_column :content_repositories, :originator_id
41
+ end
42
+ end
@@ -0,0 +1,8 @@
1
+ class AddPolymorphicRepoToContentViewRepositoryClone < ActiveRecord::Migration
2
+ def change
3
+ add_column :content_content_view_repository_clones, :repository_type, :string
4
+ Content::ContentViewRepositoryClone.reset_column_information
5
+ Content::ContentViewRepositoryClone.update_all(:repository_type => 'Content::RepositoryClone')
6
+ rename_column :content_content_view_repository_clones, :repository_clone_id, :repository_id
7
+ end
8
+ end
@@ -1,3 +1,3 @@
1
1
  module Content
2
- VERSION = "0.3"
2
+ VERSION = "0.4"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_content
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.3'
4
+ version: '0.4'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitri Dolguikh
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-08-28 00:00:00.000000000 Z
13
+ date: 2013-09-06 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
@@ -26,20 +26,6 @@ dependencies:
26
26
  - - ~>
27
27
  - !ruby/object:Gem::Version
28
28
  version: 3.2.8
29
- - !ruby/object:Gem::Dependency
30
- name: logging
31
- requirement: !ruby/object:Gem::Requirement
32
- requirements:
33
- - - '>='
34
- - !ruby/object:Gem::Version
35
- version: 1.8.0
36
- type: :runtime
37
- prerelease: false
38
- version_requirements: !ruby/object:Gem::Requirement
39
- requirements:
40
- - - '>='
41
- - !ruby/object:Gem::Version
42
- version: 1.8.0
43
29
  - !ruby/object:Gem::Dependency
44
30
  name: runcible
45
31
  requirement: !ruby/object:Gem::Requirement
@@ -100,6 +86,7 @@ files:
100
86
  - app/models/concerns/content/taxonomy_extensions.rb
101
87
  - app/models/concerns/content/hostgroup_extensions.rb
102
88
  - app/models/concerns/content/environment_extensions.rb
89
+ - app/models/concerns/content/repository_common.rb
103
90
  - app/models/concerns/content/operatingsystem_extensions.rb
104
91
  - app/models/concerns/content/orchestration/pulp/clone.rb
105
92
  - app/models/concerns/content/orchestration/pulp/sync.rb
@@ -125,18 +112,22 @@ files:
125
112
  - app/views/content/gpg_keys/new.html.erb
126
113
  - app/views/content/gpg_keys/index.html.erb
127
114
  - app/views/content/gpg_keys/edit.html.erb
115
+ - app/views/content/repositories/_sync_schedule.erb
128
116
  - app/views/content/repositories/new.html.erb
129
117
  - app/views/content/repositories/show.html.erb
118
+ - app/views/content/repositories/_repository.html.erb
130
119
  - app/views/content/repositories/_product_form.html.erb
131
120
  - app/views/content/repositories/_os_form.html.erb
132
121
  - app/views/content/repositories/index.html.erb
133
122
  - app/views/content/repositories/welcome.html.erb
123
+ - app/views/content/repositories/_fields.html.erb
134
124
  - app/views/content/repositories/edit.html.erb
135
125
  - app/views/content/content_views/_form.html.erb
126
+ - app/views/content/content_views/_composite.html.erb
136
127
  - app/views/content/content_views/new.html.erb
137
128
  - app/views/content/content_views/_step1.html.erb
129
+ - app/views/content/content_views/show.erb
138
130
  - app/views/content/content_views/_form_tab.html.erb
139
- - app/views/content/content_views/_step2.html.erb
140
131
  - app/views/content/content_views/index.html.erb
141
132
  - app/views/content/content_views/_host_tab_pane.html.erb
142
133
  - app/views/content/content_views/edit.html.erb
@@ -151,21 +142,26 @@ files:
151
142
  - app/helpers/content/content_views_helper.rb
152
143
  - app/helpers/content/repositories_helper.rb
153
144
  - app/helpers/content/application_helper.rb
145
+ - app/assets/javascripts/content/repository.js
154
146
  - app/assets/javascripts/content/content.js
155
147
  - app/assets/stylesheets/content/application.css
156
148
  - config/environment.rb
157
149
  - config/routes.rb
158
150
  - db/migrate/20130807121629_create_content_content_views.rb
151
+ - db/migrate/20130902130445_change_repository_to_polymorphic.rb
159
152
  - db/migrate/20130702162629_create_content_products.rb
153
+ - db/migrate/20130901070945_add_publish_boolean_to_content_repository.rb
160
154
  - db/migrate/20130709001120_create_content_gpg_keys.rb
161
155
  - db/migrate/20130722084911_create_content_operatingsystem_repositories.rb
162
156
  - db/migrate/20130723124911_create_content_host_products.rb
163
157
  - db/migrate/20130702140034_create_content_repositories.rb
158
+ - db/migrate/20130828173006_change_content_view_index_name.rb
164
159
  - db/migrate/20130807123220_create_content_available_content_views.rb
165
160
  - db/migrate/20130813110455_create_content_repository_clones.rb
166
161
  - db/migrate/20130723084911_create_content_hostgroup_products.rb
167
162
  - db/migrate/20130812154754_create_content_content_view_hosts.rb
168
163
  - db/migrate/20130825145431_create_content_content_view_repository_clones.rb
164
+ - db/migrate/20130902142326_add_polymorphic_repo_to_content_view_repository_clone.rb
169
165
  - lib/content/engine.rb
170
166
  - lib/content/version.rb
171
167
  - lib/foreman_content.rb
@@ -203,7 +199,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
203
199
  version: '0'
204
200
  requirements: []
205
201
  rubyforge_project:
206
- rubygems_version: 2.0.5
202
+ rubygems_version: 2.0.7
207
203
  signing_key:
208
204
  specification_version: 4
209
205
  summary: Add Foreman support for content management.