foreman_content 0.1 → 0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/models/{content → concerns/content}/custom_repository_paths.rb +2 -0
- data/app/models/concerns/content/environment_extensions.rb +9 -0
- data/app/models/concerns/content/home_helper.rb +18 -0
- data/app/models/concerns/content/host_extensions.rb +50 -0
- data/app/models/concerns/content/hostgroup_extensions.rb +18 -0
- data/app/models/concerns/content/operatingsystem_extensions.rb +12 -0
- data/app/models/concerns/content/redhat_extensions.rb +33 -0
- data/app/models/concerns/content/taxonomy_extensions.rb +14 -0
- data/app/models/content/remote/pulp/repository.rb +2 -0
- data/{lib → app/services/content}/pulp_configuration.rb +5 -4
- data/lib/content/engine.rb +10 -19
- data/lib/content/version.rb +1 -1
- metadata +13 -13
- data/lib/content_environment.rb +0 -13
- data/lib/content_home_helper_patch.rb +0 -23
- data/lib/content_host.rb +0 -55
- data/lib/content_hostgroup.rb +0 -22
- data/lib/content_operatingsystem.rb +0 -17
- data/lib/content_redhat.rb +0 -36
- data/lib/content_taxonomy.rb +0 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 76fd79ca9fac589c6e62a1a0ec2ba6c9df2ac608
|
4
|
+
data.tar.gz: 34734b08623ad025a96fa107974143e5678c80e2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1bb2945c7a124cc7ebd769ff32f2181f9f617f44efc283b5536b8e409feb738afe3defc05ae2a4d8de6aedbf778695ee5dd71707c6b00914b173f0206db1bb44
|
7
|
+
data.tar.gz: 86d1ef1b4b71b460f5af210bac3523e6d61323ab7b3a41a34263abc1de637081c020866386e39c4cc15681bf46451654bc1627a8965325fab680931ba21cf96d
|
@@ -0,0 +1,9 @@
|
|
1
|
+
module Content::EnvironmentExtensions
|
2
|
+
extend ActiveSupport::Concern
|
3
|
+
|
4
|
+
included do
|
5
|
+
has_many :environment_products, :dependent => :destroy, :uniq => true, :class_name => 'Content::EnvironmentProduct'
|
6
|
+
has_many :products, :through => :environment_products, :class_name => 'Content::Product'
|
7
|
+
end
|
8
|
+
|
9
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Content::HomeHelper
|
2
|
+
extend ActiveSupport::Concern
|
3
|
+
included do
|
4
|
+
alias_method_chain :setting_options, :content_link
|
5
|
+
end
|
6
|
+
|
7
|
+
# Adds a content link to the More menu
|
8
|
+
def setting_options_with_content_link
|
9
|
+
choices = setting_options_without_content_link
|
10
|
+
content_group =
|
11
|
+
[
|
12
|
+
[_('Products'), :"content/products"],
|
13
|
+
[_('Repositories'), :"content/repositories"],
|
14
|
+
[_('Gpg keys'), :"content/gpg_keys"]
|
15
|
+
]
|
16
|
+
choices.insert(3, [:divider], [:group, _("Content"), content_group])
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module Content::HostExtensions
|
2
|
+
extend ActiveSupport::Concern
|
3
|
+
|
4
|
+
included do
|
5
|
+
has_many :host_products, :dependent => :destroy, :uniq => true, :foreign_key => :host_id, :class_name => 'Content::HostProduct'
|
6
|
+
has_many :products, :through => :host_products, :class_name => 'Content::Product'
|
7
|
+
|
8
|
+
scoped_search :in => :products, :on => :name, :complete_value => true, :rename => :product
|
9
|
+
|
10
|
+
alias_method_chain :params, :repositories
|
11
|
+
end
|
12
|
+
|
13
|
+
# adds repository hash to ENC global parameters
|
14
|
+
def params_with_repositories
|
15
|
+
# convert all repos to a format that puppet create_resource with yumrepo can consume
|
16
|
+
repos = Hash[attached_repositories.map { |repo| [repo.to_label, format_repo(repo)] }]
|
17
|
+
# adds a global parameter called repositories contain all repos
|
18
|
+
params_without_repositories.merge('repositories' => repos)
|
19
|
+
end
|
20
|
+
|
21
|
+
# product_ids from the os default and hostgroup.
|
22
|
+
def inherited_product_ids
|
23
|
+
products = []
|
24
|
+
products += operatingsystem.product_ids if operatingsystem
|
25
|
+
products += Content::HostgroupProduct.where(:hostgroup_id => hostgroup.path_ids).pluck(:product_id) if hostgroup_id
|
26
|
+
products.uniq
|
27
|
+
end
|
28
|
+
|
29
|
+
def all_product_ids
|
30
|
+
(inherited_product_ids + product_ids).uniq
|
31
|
+
end
|
32
|
+
|
33
|
+
def attached_repositories
|
34
|
+
Content::Repository.attached_to_host(self)
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
# convert a repository to a format that puppet create_resource with yumrepo can consume
|
40
|
+
def format_repo repo
|
41
|
+
{
|
42
|
+
'baseurl' => repo.full_path,
|
43
|
+
# yum repos have descr field but no name, if descr is empty use the repo name
|
44
|
+
'descr' => repo.description.blank? ? repo.name : repo.description,
|
45
|
+
'enabled' => repo.enabled ? '1' : '0',
|
46
|
+
'gpgcheck' => !!repo.gpg_key ? '1' : '0'
|
47
|
+
}
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Content::HostgroupExtensions
|
2
|
+
extend ActiveSupport::Concern
|
3
|
+
|
4
|
+
included do
|
5
|
+
has_many :hostgroup_products, :dependent => :destroy, :uniq => true, :class_name => 'Content::HostgroupProduct'
|
6
|
+
has_many :products, :through => :hostgroup_products, :class_name => 'Content::Product'
|
7
|
+
|
8
|
+
scoped_search :in => :products, :on => :name, :complete_value => true, :rename => :product
|
9
|
+
end
|
10
|
+
|
11
|
+
def inherited_product_ids
|
12
|
+
Content::HostgroupProduct.where(:hostgroup_id => hostgroup.ancestor_ids).pluck(:product_id)
|
13
|
+
end
|
14
|
+
|
15
|
+
def all_product_ids
|
16
|
+
(inherited_product_ids + product_ids).uniq
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Content::OperatingsystemExtensions
|
2
|
+
extend ActiveSupport::Concern
|
3
|
+
|
4
|
+
included do
|
5
|
+
has_many :operatingsystem_repositories, :dependent => :destroy, :uniq => true, :class_name => 'Content::OperatingsystemRepository'
|
6
|
+
has_many :repositories, :through => :operatingsystem_repositories, :class_name => 'Content::Repository'
|
7
|
+
has_many :product_operatingsystems, :dependent => :destroy, :uniq => true, :class_name => 'Content::ProductOperatingsystem'
|
8
|
+
has_many :products, :through => :product_operatingsystems, :class_name => 'Content::Product'
|
9
|
+
has_many :default_repositories, :through => :products, :source => :repositories, :class_name => 'Content::Repository'
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Content::RedhatExtensions
|
2
|
+
extend ActiveSupport::Concern
|
3
|
+
|
4
|
+
included do
|
5
|
+
alias_method_chain :medium_uri, :content_uri
|
6
|
+
end
|
7
|
+
|
8
|
+
def medium_uri_with_content_uri host, url = nil
|
9
|
+
if url.nil? && (full_path = Content::Repository.available_for_host(host).kickstart.first.try(:full_path))
|
10
|
+
URI.parse(full_path)
|
11
|
+
else
|
12
|
+
medium_uri_without_content_uri(host, url)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
# return an array of repositories for kickstart script as additional repos
|
17
|
+
# to the kickstart main repo, this list will typically include updates and epel
|
18
|
+
def repos host
|
19
|
+
host.attached_repositories.yum.map { |repo| format_repo(repo) }
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
# convert a repository to a format that kickstart script can consume
|
24
|
+
def format_repo repo
|
25
|
+
{
|
26
|
+
:baseurl => repo.full_path,
|
27
|
+
:name => repo.to_label,
|
28
|
+
:description => repo.product.description,
|
29
|
+
:enabled => repo.enabled,
|
30
|
+
:gpgcheck => !!repo.gpg_key
|
31
|
+
}
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Content::TaxonomyExtensions
|
2
|
+
extend ActiveSupport::Concern
|
3
|
+
|
4
|
+
included do
|
5
|
+
has_many :products, :through => :taxable_taxonomies, :source => :taxable, :source_type => 'Content::Product'
|
6
|
+
alias_method_chain :dup, :content_dup
|
7
|
+
end
|
8
|
+
|
9
|
+
def dup_with_content_dup
|
10
|
+
new = dup_without_content_dup
|
11
|
+
new.products = products
|
12
|
+
new
|
13
|
+
end
|
14
|
+
end
|
@@ -37,6 +37,8 @@ module Content
|
|
37
37
|
|
38
38
|
protected
|
39
39
|
def initialize_pulp
|
40
|
+
# initiate pulp connection
|
41
|
+
Content::PulpConfiguration.new
|
40
42
|
self.pulp_id ||= Foreman.uuid.gsub("-", '')
|
41
43
|
self.relative_path ||= custom_repo_path("acme_org", "library", product.name, name) if name
|
42
44
|
end
|
@@ -1,11 +1,12 @@
|
|
1
1
|
require 'runcible'
|
2
|
+
require 'uri'
|
2
3
|
|
3
|
-
class PulpConfiguration
|
4
|
-
def
|
5
|
-
Runcible::Base.config = runcible_config
|
4
|
+
class Content::PulpConfiguration
|
5
|
+
def initialize options = {}
|
6
|
+
Runcible::Base.config = runcible_config.merge(options)
|
6
7
|
end
|
7
8
|
|
8
|
-
def
|
9
|
+
def runcible_config
|
9
10
|
pulp_url = URI(Setting.pulp_url)
|
10
11
|
{
|
11
12
|
:url => "#{pulp_url.scheme}://#{pulp_url.host}:#{pulp_url.port}",
|
data/lib/content/engine.rb
CHANGED
@@ -1,18 +1,11 @@
|
|
1
|
-
require 'content_home_helper_patch'
|
2
|
-
require 'content_taxonomy'
|
3
|
-
require 'content_environment'
|
4
|
-
require 'content_operatingsystem'
|
5
|
-
require 'content_redhat'
|
6
|
-
require 'content_hostgroup'
|
7
|
-
require 'content_host'
|
8
|
-
require 'pulp_configuration'
|
9
|
-
|
10
|
-
|
11
1
|
module Content
|
12
2
|
ENGINE_NAME = "content"
|
13
3
|
class Engine < ::Rails::Engine
|
14
4
|
engine_name Content::ENGINE_NAME
|
15
5
|
|
6
|
+
config.autoload_paths += Dir["#{config.root}/app/services"]
|
7
|
+
config.autoload_paths += Dir["#{config.root}/app/models/concerns"]
|
8
|
+
|
16
9
|
# Load this before the Foreman config initializers, so that the Setting.descendants
|
17
10
|
# list includes the plugin STI setting class
|
18
11
|
initializer 'foreman_content.load_default_settings', :before => :load_config_initializers do |app|
|
@@ -21,26 +14,24 @@ module Content
|
|
21
14
|
|
22
15
|
initializer "foreman_content.load_app_instance_data" do |app|
|
23
16
|
app.config.paths['db/migrate'] += Content::Engine.paths['db/migrate'].existent
|
24
|
-
app.config.autoload_paths += Dir["#{config.root}/app/services)"]
|
25
17
|
end
|
26
18
|
|
27
19
|
# Include extensions to models in this config.to_prepare block
|
28
20
|
config.to_prepare do
|
29
|
-
::PulpConfiguration.initialize_runcible
|
30
21
|
# Patch the menu
|
31
|
-
::HomeHelper.send :include,
|
22
|
+
::HomeHelper.send :include, Content::HomeHelper
|
32
23
|
# Extend the taxonomy model
|
33
|
-
::Taxonomy.send :include,
|
24
|
+
::Taxonomy.send :include, Content::TaxonomyExtensions
|
34
25
|
# Extend the environment model
|
35
|
-
::Environment.send :include,
|
26
|
+
::Environment.send :include, Content::EnvironmentExtensions
|
36
27
|
# Extend OS model
|
37
|
-
::Operatingsystem.send :include,
|
28
|
+
::Operatingsystem.send :include, Content::OperatingsystemExtensions
|
38
29
|
# Extend RedHat OS family model
|
39
|
-
::Redhat.send :include,
|
30
|
+
::Redhat.send :include, Content::RedhatExtensions
|
40
31
|
# Extend the hostgroup model
|
41
|
-
::Hostgroup.send :include,
|
32
|
+
::Hostgroup.send :include, Content::HostgroupExtensions
|
42
33
|
# Extend the host model
|
43
|
-
::Host::Managed.send :include,
|
34
|
+
::Host::Managed.send :include, Content::HostExtensions
|
44
35
|
end
|
45
36
|
end
|
46
37
|
|
data/lib/content/version.rb
CHANGED
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.2'
|
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-05 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
name: runcible
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- -
|
47
|
+
- - '='
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: 0.4.10
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
|
-
- -
|
54
|
+
- - '='
|
55
55
|
- !ruby/object:Gem::Version
|
56
56
|
version: 0.4.10
|
57
57
|
- !ruby/object:Gem::Dependency
|
@@ -86,7 +86,6 @@ files:
|
|
86
86
|
- app/models/content/gpg_key.rb
|
87
87
|
- app/models/content/orchestration/pulp.rb
|
88
88
|
- app/models/content/hostgroup_product.rb
|
89
|
-
- app/models/content/custom_repository_paths.rb
|
90
89
|
- app/models/content/operatingsystem_repository.rb
|
91
90
|
- app/models/content/validators/no_trailing_space.rb
|
92
91
|
- app/models/content/validators/name_format.rb
|
@@ -95,7 +94,16 @@ files:
|
|
95
94
|
- app/models/content/repository.rb
|
96
95
|
- app/models/content/product.rb
|
97
96
|
- app/models/content/environment_product.rb
|
97
|
+
- app/models/concerns/content/taxonomy_extensions.rb
|
98
|
+
- app/models/concerns/content/hostgroup_extensions.rb
|
99
|
+
- app/models/concerns/content/environment_extensions.rb
|
100
|
+
- app/models/concerns/content/operatingsystem_extensions.rb
|
101
|
+
- app/models/concerns/content/custom_repository_paths.rb
|
102
|
+
- app/models/concerns/content/home_helper.rb
|
103
|
+
- app/models/concerns/content/host_extensions.rb
|
104
|
+
- app/models/concerns/content/redhat_extensions.rb
|
98
105
|
- app/services/content/pulp_event_handler.rb
|
106
|
+
- app/services/content/pulp_configuration.rb
|
99
107
|
- app/overrides/add_os_conent_tab.rb
|
100
108
|
- app/overrides/add_host_conent_tab.rb
|
101
109
|
- app/overrides/add_hostgroup_conent_tab.rb
|
@@ -135,18 +143,10 @@ files:
|
|
135
143
|
- db/migrate/20130729032320_create_content_product_operatingsystems.rb
|
136
144
|
- db/migrate/20130702140034_create_content_repositories.rb
|
137
145
|
- db/migrate/20130723084911_create_content_hostgroup_products.rb
|
138
|
-
- lib/content_hostgroup.rb
|
139
|
-
- lib/content_environment.rb
|
140
|
-
- lib/content_redhat.rb
|
141
|
-
- lib/content_home_helper_patch.rb
|
142
|
-
- lib/content_taxonomy.rb
|
143
146
|
- lib/content/engine.rb
|
144
147
|
- lib/content/version.rb
|
145
|
-
- lib/content_operatingsystem.rb
|
146
148
|
- lib/foreman_content.rb
|
147
149
|
- lib/tasks/content_tasks.rake
|
148
|
-
- lib/content_host.rb
|
149
|
-
- lib/pulp_configuration.rb
|
150
150
|
- Rakefile
|
151
151
|
- README.md
|
152
152
|
- test/unit/content/description_format_validator_test.rb
|
data/lib/content_environment.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
module ContentEnvironment
|
2
|
-
def self.included(base)
|
3
|
-
base.send(:include, InstanceMethods)
|
4
|
-
|
5
|
-
base.class_eval do
|
6
|
-
has_many :environment_products, :dependent => :destroy, :uniq=>true, :class_name => 'Content::EnvironmentProduct'
|
7
|
-
has_many :products, :through => :environment_products, :class_name => 'Content::Product'
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
module InstanceMethods
|
12
|
-
end
|
13
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
module ContentHomeHelperPatch
|
2
|
-
def self.included(base)
|
3
|
-
base.send(:include, InstanceMethods)
|
4
|
-
|
5
|
-
base.class_eval do
|
6
|
-
alias_method_chain :setting_options, :content_link
|
7
|
-
end
|
8
|
-
end
|
9
|
-
|
10
|
-
module InstanceMethods
|
11
|
-
# Adds a content link to the More menu
|
12
|
-
def setting_options_with_content_link
|
13
|
-
choices = setting_options_without_content_link
|
14
|
-
content_group =
|
15
|
-
[
|
16
|
-
[_('Products'), :"content/products"],
|
17
|
-
[_('Repositories'), :"content/repositories"],
|
18
|
-
[_('Gpg keys'), :"content/gpg_keys"]
|
19
|
-
]
|
20
|
-
choices.insert(3, [:divider], [:group, _("Content"), content_group])
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
data/lib/content_host.rb
DELETED
@@ -1,55 +0,0 @@
|
|
1
|
-
module ContentHost
|
2
|
-
def self.included(base)
|
3
|
-
base.send(:include, InstanceMethods)
|
4
|
-
|
5
|
-
base.class_eval do
|
6
|
-
has_many :host_products, :dependent => :destroy, :uniq=>true,:foreign_key => :host_id, :class_name => 'Content::HostProduct'
|
7
|
-
has_many :products, :through => :host_products, :class_name => 'Content::Product'
|
8
|
-
|
9
|
-
scoped_search :in=>:products, :on=>:name, :complete_value => true, :rename => :product
|
10
|
-
|
11
|
-
alias_method_chain :params, :repositories
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
module InstanceMethods
|
16
|
-
|
17
|
-
# adds repository hash to ENC global parameters
|
18
|
-
def params_with_repositories
|
19
|
-
# convert all repos to a format that puppet create_resource with yumrepo can consume
|
20
|
-
repos = Hash[attached_repositories.map{ |repo| [repo.to_label, format_repo(repo)] }]
|
21
|
-
# adds a global parameter called repositories contain all repos
|
22
|
-
params_without_repositories.merge('repositories' => repos)
|
23
|
-
end
|
24
|
-
|
25
|
-
# product_ids from the os default and hostgroup.
|
26
|
-
def inherited_product_ids
|
27
|
-
products = []
|
28
|
-
products += operatingsystem.product_ids if operatingsystem
|
29
|
-
products += Content::HostgroupProduct.where(:hostgroup_id => hostgroup.path_ids).pluck(:product_id) if hostgroup_id
|
30
|
-
products.uniq
|
31
|
-
end
|
32
|
-
|
33
|
-
def all_product_ids
|
34
|
-
(inherited_product_ids + product_ids).uniq
|
35
|
-
end
|
36
|
-
|
37
|
-
def attached_repositories
|
38
|
-
Content::Repository.attached_to_host(self)
|
39
|
-
end
|
40
|
-
|
41
|
-
private
|
42
|
-
|
43
|
-
# convert a repository to a format that puppet create_resource with yumrepo can consume
|
44
|
-
def format_repo repo
|
45
|
-
{
|
46
|
-
'baseurl' => repo.full_path,
|
47
|
-
# yum repos have descr field but no name, if descr is empty use the repo name
|
48
|
-
'descr' => repo.description.blank? ? repo.name : repo.description,
|
49
|
-
'enabled' => repo.enabled ? '1': '0',
|
50
|
-
'gpgcheck' => !!repo.gpg_key ? '1': '0'
|
51
|
-
}
|
52
|
-
end
|
53
|
-
|
54
|
-
end
|
55
|
-
end
|
data/lib/content_hostgroup.rb
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
module ContentHostgroup
|
2
|
-
def self.included(base)
|
3
|
-
base.send(:include, InstanceMethods)
|
4
|
-
|
5
|
-
base.class_eval do
|
6
|
-
has_many :hostgroup_products, :dependent => :destroy, :uniq=>true, :class_name => 'Content::HostgroupProduct'
|
7
|
-
has_many :products, :through => :hostgroup_products, :class_name => 'Content::Product'
|
8
|
-
|
9
|
-
scoped_search :in=>:products, :on=>:name, :complete_value => true, :rename => :product
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
module InstanceMethods
|
14
|
-
def inherited_product_ids
|
15
|
-
Content::HostgroupProduct.where(:hostgroup_id => hostgroup.ancestor_ids).pluck(:product_id)
|
16
|
-
end
|
17
|
-
|
18
|
-
def all_product_ids
|
19
|
-
(inherited_product_ids + product_ids).uniq
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module ContentOperatingsystem
|
2
|
-
def self.included(base)
|
3
|
-
base.send(:include, InstanceMethods)
|
4
|
-
|
5
|
-
base.class_eval do
|
6
|
-
has_many :operatingsystem_repositories, :dependent => :destroy, :uniq => true, :class_name => 'Content::OperatingsystemRepository'
|
7
|
-
has_many :repositories, :through => :operatingsystem_repositories, :class_name => 'Content::Repository'
|
8
|
-
|
9
|
-
has_many :product_operatingsystems, :dependent => :destroy, :uniq => true, :class_name => 'Content::ProductOperatingsystem'
|
10
|
-
has_many :products, :through => :product_operatingsystems, :class_name => 'Content::Product'
|
11
|
-
has_many :default_repositories, :through => :products, :source => :repositories, :class_name => 'Content::Repository'
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
module InstanceMethods
|
16
|
-
end
|
17
|
-
end
|
data/lib/content_redhat.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
module ContentRedhat
|
2
|
-
def self.included(base)
|
3
|
-
base.send(:include, InstanceMethods)
|
4
|
-
base.class_eval do
|
5
|
-
alias_method_chain :medium_uri, :content_uri
|
6
|
-
end
|
7
|
-
end
|
8
|
-
|
9
|
-
module InstanceMethods
|
10
|
-
def medium_uri_with_content_uri host, url = nil
|
11
|
-
if url.nil? && (full_path = Content::Repository.available_for_host(host).kickstart.first.try(:full_path))
|
12
|
-
URI.parse(full_path)
|
13
|
-
else
|
14
|
-
medium_uri_without_content_uri(host, url)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
# return an array of repositories for kickstart script as additional repos
|
19
|
-
# to the kickstart main repo, this list will typically include updates and epel
|
20
|
-
def repos host
|
21
|
-
host.attached_repositories.yum.map{ |repo| format_repo(repo) }
|
22
|
-
end
|
23
|
-
|
24
|
-
private
|
25
|
-
# convert a repository to a format that kickstart script can consume
|
26
|
-
def format_repo repo
|
27
|
-
{
|
28
|
-
:baseurl => repo.full_path,
|
29
|
-
:name => repo.to_label,
|
30
|
-
:description => repo.product.description,
|
31
|
-
:enabled => repo.enabled,
|
32
|
-
:gpgcheck => !!repo.gpg_key
|
33
|
-
}
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
data/lib/content_taxonomy.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
module ContentTaxonomy
|
2
|
-
def self.included(base)
|
3
|
-
base.send(:include, InstanceMethods)
|
4
|
-
|
5
|
-
base.class_eval do
|
6
|
-
has_many :products, :through => :taxable_taxonomies, :source => :taxable, :source_type => 'Content::Product'
|
7
|
-
alias_method_chain :dup, :content_dup
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
module InstanceMethods
|
12
|
-
def dup_with_content_dup
|
13
|
-
new = dup_without_content_dup
|
14
|
-
new.products = products
|
15
|
-
new
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|