foreman_content 0.2 → 0.3
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.
- checksums.yaml +4 -4
- data/README.md +40 -1
- data/app/controllers/content/api/repositories_controller.rb +3 -5
- data/app/controllers/content/content_views_controller.rb +48 -0
- data/app/controllers/content/products_controller.rb +1 -1
- data/app/controllers/content/repositories_controller.rb +9 -6
- data/app/helpers/content/content_views_helper.rb +21 -0
- data/app/helpers/content/products_helper.rb +9 -0
- data/app/helpers/content/repositories_helper.rb +3 -49
- data/app/models/concerns/content/environment_extensions.rb +2 -2
- data/app/models/concerns/content/home_helper.rb +1 -0
- data/app/models/concerns/content/host_extensions.rb +17 -1
- data/app/models/concerns/content/hostgroup_extensions.rb +14 -0
- data/app/models/concerns/content/operatingsystem_extensions.rb +6 -5
- data/app/models/concerns/content/orchestration/pulp/clone.rb +77 -0
- data/app/models/concerns/content/orchestration/pulp/sync.rb +70 -0
- data/app/models/concerns/content/orchestration/pulp.rb +25 -0
- data/app/models/content/available_content_view.rb +12 -0
- data/app/models/content/content_view.rb +66 -0
- data/app/models/content/content_view_host.rb +9 -0
- data/app/models/content/content_view_repository_clone.rb +5 -0
- data/app/models/content/host_product.rb +0 -11
- data/app/models/content/hostgroup_product.rb +0 -11
- data/app/models/content/operatingsystem_repository.rb +0 -11
- data/app/models/content/product.rb +6 -5
- data/app/models/content/repository/operating_system.rb +14 -0
- data/app/models/content/repository/product.rb +21 -0
- data/app/models/content/repository.rb +28 -39
- data/app/models/content/repository_clone.rb +29 -0
- data/app/models/content/validators/content_validator.rb +0 -12
- data/app/models/content/validators/description_format.rb +0 -12
- data/app/models/content/validators/no_trailing_space.rb +0 -12
- data/app/models/setting/content.rb +0 -18
- data/app/overrides/{add_host_conent_tab.rb → add_host_content_tab.rb} +2 -2
- data/app/overrides/{add_hostgroup_conent_tab.rb → add_hostgroup_content_tab.rb} +1 -1
- data/app/services/content/content_view_factory.rb +41 -0
- data/app/services/content/{pulp_configuration.rb → pulp/configuration.rb} +1 -1
- data/app/services/content/pulp/event_handler.rb +61 -0
- data/app/services/content/pulp/repository.rb +200 -0
- data/app/services/content/pulp/repository_clone.rb +24 -0
- data/app/services/content/pulp/repository_sync_history.rb +35 -0
- data/app/services/content/pulp/repository_sync_status.rb +30 -0
- data/app/views/content/content_views/_form.html.erb +49 -0
- data/app/views/content/content_views/_form_tab.html.erb +3 -0
- data/app/views/content/content_views/_host_tab_pane.html.erb +5 -0
- data/app/views/content/content_views/_step1.html.erb +18 -0
- data/app/views/content/content_views/_step2.html.erb +16 -0
- data/app/views/content/content_views/edit.html.erb +5 -0
- data/app/views/content/content_views/index.html.erb +27 -0
- data/app/views/content/content_views/new.html.erb +11 -0
- data/app/views/content/products/_form.html.erb +2 -13
- data/app/views/content/products/_form_tab.html.erb +3 -3
- data/app/views/content/products/_hostgroup_tab_pane.html.erb +2 -2
- data/app/views/content/products/index.html.erb +6 -1
- data/app/views/content/repositories/_os_form.html.erb +22 -0
- data/app/views/content/repositories/{_form.html.erb → _product_form.html.erb} +4 -6
- data/app/views/content/repositories/edit.html.erb +5 -2
- data/app/views/content/repositories/index.html.erb +12 -9
- data/app/views/content/repositories/new.html.erb +5 -2
- data/app/views/content/repositories/show.html.erb +9 -16
- data/config/environment.rb +0 -0
- data/config/routes.rb +6 -0
- data/db/migrate/20130702140034_create_content_repositories.rb +6 -2
- data/db/migrate/20130722084911_create_content_operatingsystem_repositories.rb +1 -1
- data/db/migrate/20130807121629_create_content_content_views.rb +15 -0
- data/db/migrate/20130807123220_create_content_available_content_views.rb +11 -0
- data/db/migrate/20130812154754_create_content_content_view_hosts.rb +9 -0
- data/db/migrate/20130813110455_create_content_repository_clones.rb +17 -0
- data/db/migrate/20130825145431_create_content_content_view_repository_clones.rb +12 -0
- data/lib/content/engine.rb +2 -0
- data/lib/content/version.rb +1 -1
- data/test/fixtures/content/repository_clones.yml +21 -0
- data/test/unit/content/repository_clone_test.rb +7 -0
- metadata +44 -17
- data/app/models/concerns/content/custom_repository_paths.rb +0 -29
- data/app/models/content/environment_product.rb +0 -19
- data/app/models/content/orchestration/pulp.rb +0 -93
- data/app/models/content/product_operatingsystem.rb +0 -19
- data/app/models/content/remote/pulp/repository.rb +0 -48
- data/app/overrides/add_os_conent_tab.rb +0 -9
- data/app/services/content/pulp_event_handler.rb +0 -25
- data/app/views/content/products/_host_tab_pane.html.erb +0 -5
- data/app/views/content/products/_operatingsystem_tab_pane.html.erb +0 -5
- data/db/migrate/20130717032320_create_content_environments_products.rb +0 -9
- data/db/migrate/20130729032320_create_content_product_operatingsystems.rb +0 -9
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.
|
|
4
|
+
version: '0.3'
|
|
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-
|
|
13
|
+
date: 2013-08-28 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: rails
|
|
@@ -80,11 +80,13 @@ extra_rdoc_files:
|
|
|
80
80
|
- README.md
|
|
81
81
|
files:
|
|
82
82
|
- app/models/setting/content.rb
|
|
83
|
-
- app/models/content/
|
|
83
|
+
- app/models/content/content_view_repository_clone.rb
|
|
84
|
+
- app/models/content/repository_clone.rb
|
|
84
85
|
- app/models/content/host_product.rb
|
|
85
|
-
- app/models/content/
|
|
86
|
+
- app/models/content/repository/operating_system.rb
|
|
87
|
+
- app/models/content/repository/product.rb
|
|
88
|
+
- app/models/content/content_view_host.rb
|
|
86
89
|
- app/models/content/gpg_key.rb
|
|
87
|
-
- app/models/content/orchestration/pulp.rb
|
|
88
90
|
- app/models/content/hostgroup_product.rb
|
|
89
91
|
- app/models/content/operatingsystem_repository.rb
|
|
90
92
|
- app/models/content/validators/no_trailing_space.rb
|
|
@@ -92,21 +94,29 @@ files:
|
|
|
92
94
|
- app/models/content/validators/content_validator.rb
|
|
93
95
|
- app/models/content/validators/description_format.rb
|
|
94
96
|
- app/models/content/repository.rb
|
|
97
|
+
- app/models/content/content_view.rb
|
|
98
|
+
- app/models/content/available_content_view.rb
|
|
95
99
|
- app/models/content/product.rb
|
|
96
|
-
- app/models/content/environment_product.rb
|
|
97
100
|
- app/models/concerns/content/taxonomy_extensions.rb
|
|
98
101
|
- app/models/concerns/content/hostgroup_extensions.rb
|
|
99
102
|
- app/models/concerns/content/environment_extensions.rb
|
|
100
103
|
- app/models/concerns/content/operatingsystem_extensions.rb
|
|
101
|
-
- app/models/concerns/content/
|
|
104
|
+
- app/models/concerns/content/orchestration/pulp/clone.rb
|
|
105
|
+
- app/models/concerns/content/orchestration/pulp/sync.rb
|
|
106
|
+
- app/models/concerns/content/orchestration/pulp.rb
|
|
102
107
|
- app/models/concerns/content/home_helper.rb
|
|
103
108
|
- app/models/concerns/content/host_extensions.rb
|
|
104
109
|
- app/models/concerns/content/redhat_extensions.rb
|
|
105
|
-
- app/services/content/
|
|
106
|
-
- app/services/content/
|
|
107
|
-
- app/
|
|
108
|
-
- app/
|
|
109
|
-
- app/
|
|
110
|
+
- app/services/content/content_view_factory.rb
|
|
111
|
+
- app/services/content/pulp/repository_sync_history.rb
|
|
112
|
+
- app/services/content/pulp/repository_clone.rb
|
|
113
|
+
- app/services/content/pulp/configuration.rb
|
|
114
|
+
- app/services/content/pulp/event_handler.rb
|
|
115
|
+
- app/services/content/pulp/repository_sync_status.rb
|
|
116
|
+
- app/services/content/pulp/repository.rb
|
|
117
|
+
- app/overrides/add_host_content_tab.rb
|
|
118
|
+
- app/overrides/add_hostgroup_content_tab.rb
|
|
119
|
+
- app/controllers/content/content_views_controller.rb
|
|
110
120
|
- app/controllers/content/api/repositories_controller.rb
|
|
111
121
|
- app/controllers/content/repositories_controller.rb
|
|
112
122
|
- app/controllers/content/products_controller.rb
|
|
@@ -115,34 +125,47 @@ files:
|
|
|
115
125
|
- app/views/content/gpg_keys/new.html.erb
|
|
116
126
|
- app/views/content/gpg_keys/index.html.erb
|
|
117
127
|
- app/views/content/gpg_keys/edit.html.erb
|
|
118
|
-
- app/views/content/repositories/_form.html.erb
|
|
119
128
|
- app/views/content/repositories/new.html.erb
|
|
120
129
|
- app/views/content/repositories/show.html.erb
|
|
130
|
+
- app/views/content/repositories/_product_form.html.erb
|
|
131
|
+
- app/views/content/repositories/_os_form.html.erb
|
|
121
132
|
- app/views/content/repositories/index.html.erb
|
|
122
133
|
- app/views/content/repositories/welcome.html.erb
|
|
123
134
|
- app/views/content/repositories/edit.html.erb
|
|
135
|
+
- app/views/content/content_views/_form.html.erb
|
|
136
|
+
- app/views/content/content_views/new.html.erb
|
|
137
|
+
- app/views/content/content_views/_step1.html.erb
|
|
138
|
+
- app/views/content/content_views/_form_tab.html.erb
|
|
139
|
+
- app/views/content/content_views/_step2.html.erb
|
|
140
|
+
- app/views/content/content_views/index.html.erb
|
|
141
|
+
- app/views/content/content_views/_host_tab_pane.html.erb
|
|
142
|
+
- app/views/content/content_views/edit.html.erb
|
|
124
143
|
- app/views/content/products/_form.html.erb
|
|
125
144
|
- app/views/content/products/new.html.erb
|
|
126
|
-
- app/views/content/products/_operatingsystem_tab_pane.html.erb
|
|
127
145
|
- app/views/content/products/_form_tab.html.erb
|
|
128
146
|
- app/views/content/products/_hostgroup_tab_pane.html.erb
|
|
129
147
|
- app/views/content/products/index.html.erb
|
|
130
|
-
- app/views/content/products/_host_tab_pane.html.erb
|
|
131
148
|
- app/views/content/products/welcome.html.erb
|
|
132
149
|
- app/views/content/products/edit.html.erb
|
|
150
|
+
- app/helpers/content/products_helper.rb
|
|
151
|
+
- app/helpers/content/content_views_helper.rb
|
|
133
152
|
- app/helpers/content/repositories_helper.rb
|
|
134
153
|
- app/helpers/content/application_helper.rb
|
|
135
154
|
- app/assets/javascripts/content/content.js
|
|
136
155
|
- app/assets/stylesheets/content/application.css
|
|
156
|
+
- config/environment.rb
|
|
137
157
|
- config/routes.rb
|
|
158
|
+
- db/migrate/20130807121629_create_content_content_views.rb
|
|
138
159
|
- db/migrate/20130702162629_create_content_products.rb
|
|
139
160
|
- db/migrate/20130709001120_create_content_gpg_keys.rb
|
|
140
161
|
- db/migrate/20130722084911_create_content_operatingsystem_repositories.rb
|
|
141
|
-
- db/migrate/20130717032320_create_content_environments_products.rb
|
|
142
162
|
- db/migrate/20130723124911_create_content_host_products.rb
|
|
143
|
-
- db/migrate/20130729032320_create_content_product_operatingsystems.rb
|
|
144
163
|
- db/migrate/20130702140034_create_content_repositories.rb
|
|
164
|
+
- db/migrate/20130807123220_create_content_available_content_views.rb
|
|
165
|
+
- db/migrate/20130813110455_create_content_repository_clones.rb
|
|
145
166
|
- db/migrate/20130723084911_create_content_hostgroup_products.rb
|
|
167
|
+
- db/migrate/20130812154754_create_content_content_view_hosts.rb
|
|
168
|
+
- db/migrate/20130825145431_create_content_content_view_repository_clones.rb
|
|
146
169
|
- lib/content/engine.rb
|
|
147
170
|
- lib/content/version.rb
|
|
148
171
|
- lib/foreman_content.rb
|
|
@@ -151,10 +174,12 @@ files:
|
|
|
151
174
|
- README.md
|
|
152
175
|
- test/unit/content/description_format_validator_test.rb
|
|
153
176
|
- test/unit/content/repositories_test.rb
|
|
177
|
+
- test/unit/content/repository_clone_test.rb
|
|
154
178
|
- test/unit/content/product_validation_test.rb
|
|
155
179
|
- test/unit/content/name_format_validator_test.rb
|
|
156
180
|
- test/test_helper.rb
|
|
157
181
|
- test/fixtures/content/products.yml
|
|
182
|
+
- test/fixtures/content/repository_clones.yml
|
|
158
183
|
- test/fixtures/content/repositories.yml
|
|
159
184
|
- test/content_test.rb
|
|
160
185
|
- test/integration/navigation_test.rb
|
|
@@ -185,10 +210,12 @@ summary: Add Foreman support for content management.
|
|
|
185
210
|
test_files:
|
|
186
211
|
- test/unit/content/description_format_validator_test.rb
|
|
187
212
|
- test/unit/content/repositories_test.rb
|
|
213
|
+
- test/unit/content/repository_clone_test.rb
|
|
188
214
|
- test/unit/content/product_validation_test.rb
|
|
189
215
|
- test/unit/content/name_format_validator_test.rb
|
|
190
216
|
- test/test_helper.rb
|
|
191
217
|
- test/fixtures/content/products.yml
|
|
218
|
+
- test/fixtures/content/repository_clones.yml
|
|
192
219
|
- test/fixtures/content/repositories.yml
|
|
193
220
|
- test/content_test.rb
|
|
194
221
|
- test/integration/navigation_test.rb
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
module Content
|
|
2
|
-
module CustomRepositoryPaths
|
|
3
|
-
extend ActiveSupport::Concern
|
|
4
|
-
|
|
5
|
-
def repo_path_from_content_path(environment, content_path)
|
|
6
|
-
content_path = content_path.sub(/^\//, "")
|
|
7
|
-
path_prefix = [environment.organization.label, environment.label].join("/")
|
|
8
|
-
"#{path_prefix}/#{content_path}"
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
# repo path for custom product repos (RH repo paths are derived from
|
|
12
|
-
# content url)
|
|
13
|
-
def custom_repo_path(org_label, environment_label, product_label, repo_label)
|
|
14
|
-
prefix = [org_label, environment_label].map { |x| x.gsub(/[^-\w]/, "_") }.join("/")
|
|
15
|
-
prefix + custom_content_path(product_label, repo_label)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def custom_content_path(product_label, repo_label)
|
|
19
|
-
parts = []
|
|
20
|
-
# We generate repo path only for custom product content. We add this
|
|
21
|
-
# constant string to avoid collisions with RH content. RH content url
|
|
22
|
-
# begins usually with something like "/content/dist/rhel/...".
|
|
23
|
-
# There we prefix custom content/repo url with "/custom/..."
|
|
24
|
-
parts << "custom"
|
|
25
|
-
parts += [product_label, repo_label]
|
|
26
|
-
"/" + parts.map { |x| x.gsub(/[^-\w]/, "_") }.join("/")
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright 2013 Red Hat, Inc.
|
|
3
|
-
#
|
|
4
|
-
# This software is licensed to you under the GNU General Public
|
|
5
|
-
# License as published by the Free Software Foundation; either version
|
|
6
|
-
# 2 of the License (GPLv2) or (at your option) any later version.
|
|
7
|
-
# There is NO WARRANTY for this software, express or implied,
|
|
8
|
-
# including the implied warranties of MERCHANTABILITY,
|
|
9
|
-
# NON-INFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. You should
|
|
10
|
-
# have received a copy of GPLv2 along with this software; if not, see
|
|
11
|
-
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
|
|
12
|
-
module Content
|
|
13
|
-
class EnvironmentProduct < ActiveRecord::Base
|
|
14
|
-
belongs_to :product
|
|
15
|
-
belongs_to :environment
|
|
16
|
-
validates_presence_of :product_id, :environment_id
|
|
17
|
-
validates_uniqueness_of :product_id, :scope => :environment_id
|
|
18
|
-
end
|
|
19
|
-
end
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
module Content::Orchestration::Pulp
|
|
2
|
-
extend ActiveSupport::Concern
|
|
3
|
-
|
|
4
|
-
included do
|
|
5
|
-
after_validation :queue_pulp
|
|
6
|
-
before_destroy :queue_pulp_destroy unless Rails.env == "test"
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
def orchestration_errors?
|
|
10
|
-
errors.empty?
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
protected
|
|
14
|
-
|
|
15
|
-
def queue_pulp
|
|
16
|
-
return unless pulp? and errors.empty?
|
|
17
|
-
new_record? ? queue_pulp_create : queue_pulp_update
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
private
|
|
21
|
-
|
|
22
|
-
def queue_pulp_create
|
|
23
|
-
logger.debug "Scheduling new Pulp Repository"
|
|
24
|
-
queue.create(:name => _("Create Pulp Repository for %s") % self, :priority => 10,
|
|
25
|
-
:action => [self, :set_pulp_repo])
|
|
26
|
-
queue.create(:name => _("Sync Pulp Repository %s") % self, :priority => 20,
|
|
27
|
-
:action => [self, :set_sync_pulp_repo])
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def queue_pulp_update
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def set_pulp_repo
|
|
34
|
-
Runcible::Extensions::Repository.create_with_importer_and_distributors(pulp_id,
|
|
35
|
-
pulp_importer,
|
|
36
|
-
[pulp_distributor],
|
|
37
|
-
{ :display_name => relative_path,
|
|
38
|
-
:description => description })
|
|
39
|
-
rescue RestClient::BadRequest => e
|
|
40
|
-
raise (JSON.parse e.response)['error_message']
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def del_pulp_repo
|
|
44
|
-
delete
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def set_sync_pulp_repo
|
|
48
|
-
sync
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def del_sync_pulp_repo
|
|
52
|
-
status = sync_status
|
|
53
|
-
return if status.blank? || status == ::PulpSyncStatus::Status::NOT_SYNCED
|
|
54
|
-
Runcible::Resources::Task.cancel(status.uuid)
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
def pulp_importer
|
|
58
|
-
options = {
|
|
59
|
-
:feed_url => feed
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
case content_type
|
|
63
|
-
when Content::Repository::YUM_TYPE, Content::Repository::KICKSTART_TYPE
|
|
64
|
-
Runcible::Extensions::YumImporter.new(options)
|
|
65
|
-
when Content::Repository::FILE_TYPE
|
|
66
|
-
Runcible::Extensions::IsoImporter.new(options)
|
|
67
|
-
else
|
|
68
|
-
raise "Unexpected repo type %s" % content_type
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
def pulp_distributor
|
|
73
|
-
case content_type
|
|
74
|
-
when Content::Repository::YUM_TYPE, Content::Repository::KICKSTART_TYPE
|
|
75
|
-
Runcible::Extensions::YumDistributor.new(relative_path, unprotected, true,
|
|
76
|
-
{ :protected => true, :id => pulp_id,
|
|
77
|
-
:auto_publish => true })
|
|
78
|
-
when Content::Repository::FILE_TYPE
|
|
79
|
-
dist = Runcible::Extensions::IsoDistributor.new(true, true)
|
|
80
|
-
dist.auto_publish = true
|
|
81
|
-
dist
|
|
82
|
-
else
|
|
83
|
-
raise "Unexpected repo type %s" % content_type
|
|
84
|
-
end
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
def queue_pulp_destroy
|
|
88
|
-
return unless pulp? and errors.empty?
|
|
89
|
-
logger.debug _("Scheduling removal of Pulp Repository %s") % name
|
|
90
|
-
queue.create(:name => _("Delete Pulp repository for %s") % name, :priority => 50,
|
|
91
|
-
:action => [self, :del_pulp_repo])
|
|
92
|
-
end
|
|
93
|
-
end
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright 2013 Red Hat, Inc.
|
|
3
|
-
#
|
|
4
|
-
# This software is licensed to you under the GNU General Public
|
|
5
|
-
# License as published by the Free Software Foundation; either version
|
|
6
|
-
# 2 of the License (GPLv2) or (at your option) any later version.
|
|
7
|
-
# There is NO WARRANTY for this software, express or implied,
|
|
8
|
-
# including the implied warranties of MERCHANTABILITY,
|
|
9
|
-
# NON-INFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. You should
|
|
10
|
-
# have received a copy of GPLv2 along with this software; if not, see
|
|
11
|
-
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
|
|
12
|
-
module Content
|
|
13
|
-
class ProductOperatingsystem < ActiveRecord::Base
|
|
14
|
-
belongs_to :product
|
|
15
|
-
belongs_to :operatingsystem
|
|
16
|
-
validates_presence_of :product_id, :operatingsystem_id
|
|
17
|
-
validates_uniqueness_of :product_id, :scope => :operatingsystem_id
|
|
18
|
-
end
|
|
19
|
-
end
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
module Content
|
|
2
|
-
module Remote
|
|
3
|
-
module Pulp
|
|
4
|
-
module Repository
|
|
5
|
-
extend ActiveSupport::Concern
|
|
6
|
-
|
|
7
|
-
included do
|
|
8
|
-
after_initialize :initialize_pulp
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def pulp?
|
|
12
|
-
@use_pulp ||= Setting.use_pulp and enabled?
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def sync
|
|
16
|
-
Runcible::Resources::Repository.sync(pulp_id)
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def retrieve_with_details
|
|
20
|
-
return unless pulp? && pulp_id
|
|
21
|
-
Runcible::Resources::Repository.retrieve(pulp_id, {:details => true})
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def sync_status
|
|
25
|
-
return unless pulp? && pulp_id
|
|
26
|
-
Runcible::Extensions::Repository.sync_status(pulp_id)
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def sync_history
|
|
30
|
-
return unless pulp? && pulp_id
|
|
31
|
-
Runcible::Extensions::Repository.sync_history(pulp_id)
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def delete
|
|
35
|
-
Runcible::Resources::Repository.delete(pulp_id)
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
protected
|
|
39
|
-
def initialize_pulp
|
|
40
|
-
# initiate pulp connection
|
|
41
|
-
Content::PulpConfiguration.new
|
|
42
|
-
self.pulp_id ||= Foreman.uuid.gsub("-", '')
|
|
43
|
-
self.relative_path ||= custom_repo_path("acme_org", "library", product.name, name) if name
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
end
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
Deface::Override.new(:virtual_path => "operatingsystems/_form",
|
|
2
|
-
:name => "add_content_tab",
|
|
3
|
-
:insert_after => 'ul.nav > li a#params-tab',
|
|
4
|
-
:partial => 'content/products/form_tab')
|
|
5
|
-
|
|
6
|
-
Deface::Override.new(:virtual_path => "operatingsystems/_form",
|
|
7
|
-
:name => "add_content_tab_pane",
|
|
8
|
-
:insert_after => 'div.tab-pane#params',
|
|
9
|
-
:partial => 'content/products/operatingsystem_tab_pane')
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
class Content::PulpEventHandler
|
|
2
|
-
attr_reader :type, :status
|
|
3
|
-
delegate :name, :to => :repo
|
|
4
|
-
delegate :logger, :to => :Rails
|
|
5
|
-
|
|
6
|
-
def initialize(pulp_id, params)
|
|
7
|
-
@repo = Content::Repository.where(:pulp_id => pulp_id).first
|
|
8
|
-
@params = params
|
|
9
|
-
@type, @status = parse_type
|
|
10
|
-
log
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
private
|
|
14
|
-
attr_reader :repo, :params
|
|
15
|
-
|
|
16
|
-
def log
|
|
17
|
-
logger.info "Repository #{name} #{type} #{status}"
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def parse_type
|
|
21
|
-
# converts repo.sync.start to ['sync','start']
|
|
22
|
-
params['event_type'].gsub(/^repo\./, '').split('.')
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
end
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
class CreateContentEnvironmentsProducts < ActiveRecord::Migration
|
|
2
|
-
def change
|
|
3
|
-
create_table :content_environment_products do |t|
|
|
4
|
-
t.references :environment, :null =>false
|
|
5
|
-
t.references :product, :null =>false
|
|
6
|
-
end
|
|
7
|
-
add_index(:content_environment_products, [:environment_id, :product_id],:name=>'environment_products_index', :unique=>true)
|
|
8
|
-
end
|
|
9
|
-
end
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
class CreateContentProductOperatingsystems < ActiveRecord::Migration
|
|
2
|
-
def change
|
|
3
|
-
create_table :content_product_operatingsystems do |t|
|
|
4
|
-
t.references :operatingsystem, :null =>false
|
|
5
|
-
t.references :product, :null =>false
|
|
6
|
-
end
|
|
7
|
-
add_index(:content_product_operatingsystems, [:operatingsystem_id, :product_id],:name=>'product_operatingsystems_index', :unique=>true)
|
|
8
|
-
end
|
|
9
|
-
end
|