foreman_puppet 0.0.1
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 +7 -0
- data/LICENSE +619 -0
- data/README.md +38 -0
- data/Rakefile +31 -0
- data/app/assets/stylesheets/foreman_puppet.scss +117 -0
- data/app/controllers/concerns/foreman_puppet/api/import_puppetclasses_common_controller.rb +139 -0
- data/app/controllers/concerns/foreman_puppet/environments_import.rb +61 -0
- data/app/controllers/concerns/foreman_puppet/extensions/api_hostgroups_controller.rb +40 -0
- data/app/controllers/concerns/foreman_puppet/extensions/api_template_combinations_controller.rb +23 -0
- data/app/controllers/concerns/foreman_puppet/extensions/api_v2_hosts_controller.rb +48 -0
- data/app/controllers/concerns/foreman_puppet/extensions/hostgroups_controller_extensions.rb +58 -0
- data/app/controllers/concerns/foreman_puppet/extensions/hosts_controller_extensions.rb +228 -0
- data/app/controllers/concerns/foreman_puppet/extensions/operatingsystems_controller.rb +11 -0
- data/app/controllers/concerns/foreman_puppet/extensions/parameters_host.rb +75 -0
- data/app/controllers/concerns/foreman_puppet/extensions/parameters_hostgroup.rb +70 -0
- data/app/controllers/concerns/foreman_puppet/extensions/parameters_template_combination.rb +21 -0
- data/app/controllers/concerns/foreman_puppet/parameters/config_group.rb +17 -0
- data/app/controllers/concerns/foreman_puppet/parameters/environment.rb +21 -0
- data/app/controllers/concerns/foreman_puppet/parameters/puppetclass.rb +24 -0
- data/app/controllers/concerns/foreman_puppet/parameters/puppetclass_lookup_key.rb +24 -0
- data/app/controllers/foreman_puppet/api/v2/base_controller.rb +26 -0
- data/app/controllers/foreman_puppet/api/v2/config_groups_controller.rb +57 -0
- data/app/controllers/foreman_puppet/api/v2/environments_controller.rb +91 -0
- data/app/controllers/foreman_puppet/api/v2/host_classes_controller.rb +59 -0
- data/app/controllers/foreman_puppet/api/v2/hostgroup_classes_controller.rb +46 -0
- data/app/controllers/foreman_puppet/api/v2/lookups_common_controller.rb +114 -0
- data/app/controllers/foreman_puppet/api/v2/override_values_controller.rb +99 -0
- data/app/controllers/foreman_puppet/api/v2/puppetclasses_controller.rb +99 -0
- data/app/controllers/foreman_puppet/api/v2/smart_class_parameters_controller.rb +76 -0
- data/app/controllers/foreman_puppet/config_groups_controller.rb +46 -0
- data/app/controllers/foreman_puppet/environments_controller.rb +51 -0
- data/app/controllers/foreman_puppet/puppet_smart_proxies_controller.rb +39 -0
- data/app/controllers/foreman_puppet/puppetclass_lookup_keys_controller.rb +33 -0
- data/app/controllers/foreman_puppet/puppetclasses_controller.rb +113 -0
- data/app/controllers/foreman_puppet/react_controller.rb +19 -0
- data/app/helpers/concerns/foreman_puppet/template_renderer_scope.rb +14 -0
- data/app/helpers/foreman_puppet/environments_helper.rb +17 -0
- data/app/helpers/foreman_puppet/hosts_and_hostgroups_helper.rb +96 -0
- data/app/helpers/foreman_puppet/hosts_helper.rb +32 -0
- data/app/helpers/foreman_puppet/puppet_smart_proxies_helper.rb +8 -0
- data/app/helpers/foreman_puppet/puppetclass_lookup_keys_helper.rb +135 -0
- data/app/helpers/foreman_puppet/puppetclasses_and_environments_helper.rb +55 -0
- data/app/helpers/foreman_puppet/puppetclasses_helper.rb +59 -0
- data/app/helpers/foreman_puppet/template_combinations_helper.rb +33 -0
- data/app/models/concerns/foreman_puppet/extensions/host.rb +88 -0
- data/app/models/concerns/foreman_puppet/extensions/hostgroup.rb +40 -0
- data/app/models/concerns/foreman_puppet/extensions/nic_managed.rb +11 -0
- data/app/models/concerns/foreman_puppet/extensions/operatingsystem.rb +11 -0
- data/app/models/concerns/foreman_puppet/extensions/provisioning_template.rb +64 -0
- data/app/models/concerns/foreman_puppet/extensions/report.rb +11 -0
- data/app/models/concerns/foreman_puppet/extensions/taxonomy.rb +19 -0
- data/app/models/concerns/foreman_puppet/extensions/template_combination.rb +23 -0
- data/app/models/concerns/foreman_puppet/extensions/user.rb +22 -0
- data/app/models/concerns/foreman_puppet/host_common.rb +90 -0
- data/app/models/concerns/foreman_puppet/puppet_lookup_value_extensions.rb +13 -0
- data/app/models/foreman_puppet/config_group.rb +45 -0
- data/app/models/foreman_puppet/config_group_class.rb +19 -0
- data/app/models/foreman_puppet/environment.rb +63 -0
- data/app/models/foreman_puppet/environment_class.rb +40 -0
- data/app/models/foreman_puppet/host_class.rb +23 -0
- data/app/models/foreman_puppet/host_config_group.rb +15 -0
- data/app/models/foreman_puppet/host_puppet_facet.rb +130 -0
- data/app/models/foreman_puppet/hostgroup_class.rb +23 -0
- data/app/models/foreman_puppet/hostgroup_puppet_facet.rb +98 -0
- data/app/models/foreman_puppet/puppetclass.rb +132 -0
- data/app/models/foreman_puppet/puppetclass_lookup_key.rb +58 -0
- data/app/services/foreman_puppet/host_info_providers/config_groups_info.rb +10 -0
- data/app/services/foreman_puppet/host_info_providers/puppet_info.rb +92 -0
- data/app/services/foreman_puppet/input_type/puppet_parameter_input.rb +35 -0
- data/app/services/foreman_puppet/proxy_status/puppet.rb +17 -0
- data/app/services/foreman_puppet/puppet_class_importer.rb +355 -0
- data/app/views/api/v2/template_combinations/base.json.erb +9 -0
- data/app/views/foreman_puppet/api/v2/config_groups/base.json.rabl +3 -0
- data/app/views/foreman_puppet/api/v2/config_groups/create.json.rabl +3 -0
- data/app/views/foreman_puppet/api/v2/config_groups/index.json.rabl +3 -0
- data/app/views/foreman_puppet/api/v2/config_groups/main.json.rabl +8 -0
- data/app/views/foreman_puppet/api/v2/config_groups/show.json.rabl +3 -0
- data/app/views/foreman_puppet/api/v2/config_groups/update.json.rabl +3 -0
- data/app/views/foreman_puppet/api/v2/environments/base.json.rabl +3 -0
- data/app/views/foreman_puppet/api/v2/environments/create.json.rabl +3 -0
- data/app/views/foreman_puppet/api/v2/environments/index.json.rabl +3 -0
- data/app/views/foreman_puppet/api/v2/environments/main.json.rabl +5 -0
- data/app/views/foreman_puppet/api/v2/environments/show.json.rabl +15 -0
- data/app/views/foreman_puppet/api/v2/environments/update.json.rabl +3 -0
- data/app/views/foreman_puppet/api/v2/host_puppet_facets/base.json.rabl +1 -0
- data/app/views/foreman_puppet/api/v2/host_puppet_facets/host_single.json.rabl +17 -0
- data/app/views/foreman_puppet/api/v2/host_puppet_facets/show.json.rabl +11 -0
- data/app/views/foreman_puppet/api/v2/hostgroup_puppet_facets/base.json.rabl +5 -0
- data/app/views/foreman_puppet/api/v2/hostgroup_puppet_facets/hostgroup_single.json.rabl +16 -0
- data/app/views/foreman_puppet/api/v2/hostgroup_puppet_facets/show.json.rabl +11 -0
- data/app/views/foreman_puppet/api/v2/import_puppetclasses/index.json.rabl +3 -0
- data/app/views/foreman_puppet/api/v2/import_puppetclasses/show.json.rabl +36 -0
- data/app/views/foreman_puppet/api/v2/override_values/create.json.rabl +3 -0
- data/app/views/foreman_puppet/api/v2/override_values/index.json.rabl +3 -0
- data/app/views/foreman_puppet/api/v2/override_values/show.json.rabl +3 -0
- data/app/views/foreman_puppet/api/v2/override_values/update.json.rabl +3 -0
- data/app/views/foreman_puppet/api/v2/puppetclasses/base.json.rabl +3 -0
- data/app/views/foreman_puppet/api/v2/puppetclasses/create.json.rabl +3 -0
- data/app/views/foreman_puppet/api/v2/puppetclasses/index.json.rabl +4 -0
- data/app/views/foreman_puppet/api/v2/puppetclasses/list.json.rabl +3 -0
- data/app/views/foreman_puppet/api/v2/puppetclasses/main.json.rabl +5 -0
- data/app/views/foreman_puppet/api/v2/puppetclasses/show.json.rabl +15 -0
- data/app/views/foreman_puppet/api/v2/puppetclasses/update.json.rabl +3 -0
- data/app/views/foreman_puppet/api/v2/smart_class_parameters/base.json.rabl +4 -0
- data/app/views/foreman_puppet/api/v2/smart_class_parameters/create.json.rabl +3 -0
- data/app/views/foreman_puppet/api/v2/smart_class_parameters/destroy.json.rabl +3 -0
- data/app/views/foreman_puppet/api/v2/smart_class_parameters/index.json.rabl +3 -0
- data/app/views/foreman_puppet/api/v2/smart_class_parameters/main.json.rabl +23 -0
- data/app/views/foreman_puppet/api/v2/smart_class_parameters/show.json.rabl +19 -0
- data/app/views/foreman_puppet/api/v2/smart_class_parameters/update.json.rabl +3 -0
- data/app/views/foreman_puppet/config_groups/_config_group.html.erb +34 -0
- data/app/views/foreman_puppet/config_groups/_config_groups_selection.html.erb +36 -0
- data/app/views/foreman_puppet/config_groups/_form.html.erb +9 -0
- data/app/views/foreman_puppet/config_groups/edit.html.erb +3 -0
- data/app/views/foreman_puppet/config_groups/index.html.erb +31 -0
- data/app/views/foreman_puppet/config_groups/new.html.erb +3 -0
- data/app/views/foreman_puppet/config_groups/welcome.html.erb +12 -0
- data/app/views/foreman_puppet/environments/_form.html.erb +20 -0
- data/app/views/foreman_puppet/environments/edit.html.erb +8 -0
- data/app/views/foreman_puppet/environments/index.html.erb +32 -0
- data/app/views/foreman_puppet/environments/new.html.erb +7 -0
- data/app/views/foreman_puppet/environments/welcome.html.erb +16 -0
- data/app/views/foreman_puppet/layouts/application_react.html.erb +15 -0
- data/app/views/foreman_puppet/puppet_smart_proxies/_dashboard.html.erb +9 -0
- data/app/views/foreman_puppet/puppet_smart_proxies/_environments.html.erb +30 -0
- data/app/views/foreman_puppet/puppetclass_lookup_keys/edit.html.erb +3 -0
- data/app/views/foreman_puppet/puppetclass_lookup_keys/index.html.erb +22 -0
- data/app/views/foreman_puppet/puppetclass_lookup_keys/welcome.html.erb +9 -0
- data/app/views/foreman_puppet/puppetclasses/_class_parameters.html.erb +37 -0
- data/app/views/foreman_puppet/puppetclasses/_class_selection.html.erb +70 -0
- data/app/views/foreman_puppet/puppetclasses/_classes.html.erb +22 -0
- data/app/views/foreman_puppet/puppetclasses/_classes_in_groups.html.erb +5 -0
- data/app/views/foreman_puppet/puppetclasses/_classes_parameters.html.erb +16 -0
- data/app/views/foreman_puppet/puppetclasses/_form.html.erb +62 -0
- data/app/views/foreman_puppet/puppetclasses/_selected_classes.html.erb +4 -0
- data/app/views/foreman_puppet/puppetclasses/edit.html.erb +4 -0
- data/app/views/foreman_puppet/puppetclasses/index.html.erb +47 -0
- data/app/views/hosts/_form_puppet_enc_tab.html.erb +24 -0
- data/app/views/hosts/foreman_puppet/_form_main_tab_fields.html.erb +1 -0
- data/app/views/hosts/select_multiple_environment.html.erb +8 -0
- data/app/views/provisioning_templates/_combination.html.erb +5 -0
- data/app/views/provisioning_templates/_combinations.html.erb +6 -0
- data/app/views/smart_proxies/plugins/_puppet.html.erb +24 -0
- data/config/api_routes.rb +81 -0
- data/config/routes.rb +89 -0
- data/db/migrate/20101121140000_add_environment_to_template_combinations.foreman_puppet.rb +9 -0
- data/db/migrate/20200720123005_migrate_puppet_core_types.foreman_puppet.rb +19 -0
- data/db/migrate/20200722171017_create_host_puppet_facet.foreman_puppet.rb +10 -0
- data/db/migrate/20200803113531_create_hostgroup_puppet_facet.foreman_puppet.rb +10 -0
- data/db/migrate/20200803113803_migrate_environment_to_puppet_facet.foreman_puppet.rb +22 -0
- data/db/migrate/20200803113903_migrate_host_type_in_host_config_groups.foreman_puppet.rb +29 -0
- data/db/migrate/20201125113903_migrate_puppetclasses_to_facets.foreman_puppet.rb +47 -0
- data/db/migrate_foreman/20090722141107_create_environments.rb +17 -0
- data/db/migrate_foreman/20120905095532_create_environment_classes.rb +15 -0
- data/db/migrate_foreman/20140407161817_create_config_groups.rb +9 -0
- data/db/migrate_foreman/20140407162007_create_config_group_classes.rb +10 -0
- data/db/migrate_foreman/20140407162059_create_host_config_groups.rb +11 -0
- data/db/migrate_foreman/20161205142618_delete_orphaned_smart_class_parameters.rb +10 -0
- data/db/migrate_foreman/20170109115157_fix_lookup_key_auditable_type.rb +15 -0
- data/db/migrate_foreman/20180816134832_cast_lookup_key_values.rb +35 -0
- data/db/migrate_foreman/20181023112532_add_environment_puppetclass_id.rb +7 -0
- data/db/migrate_foreman/20181224174419_add_index_to_environment_class_by_lookup_key_and_puppetclass.rb +6 -0
- data/db/seeds.d/111_puppet_proxy_feature.rb +8 -0
- data/lib/foreman_puppet.rb +10 -0
- data/lib/foreman_puppet/engine.rb +82 -0
- data/lib/foreman_puppet/register.rb +218 -0
- data/lib/foreman_puppet/version.rb +3 -0
- data/lib/tasks/foreman_puppet_tasks.rake +31 -0
- data/locale/Makefile +60 -0
- data/locale/action_names.rb +5 -0
- data/locale/en/foreman_puppet.edit.po +911 -0
- data/locale/en/foreman_puppet.po +690 -0
- data/locale/en/foreman_puppet.po.time_stamp +0 -0
- data/locale/foreman_puppet.pot +1076 -0
- data/locale/gemspec.rb +2 -0
- data/test/controllers/foreman_puppet/api/v2/config_groups_controller_test.rb +28 -0
- data/test/controllers/foreman_puppet/api/v2/environments_controller_test.rb +346 -0
- data/test/controllers/foreman_puppet/api/v2/host_classes_controller_test.rb +48 -0
- data/test/controllers/foreman_puppet/api/v2/hostgroup_classes_controller_test.rb +41 -0
- data/test/controllers/foreman_puppet/api/v2/hostgroups_controller_test.rb +79 -0
- data/test/controllers/foreman_puppet/api/v2/hosts_controller_test.rb +101 -0
- data/test/controllers/foreman_puppet/api/v2/lookups_common_controller_test.rb +29 -0
- data/test/controllers/foreman_puppet/api/v2/override_values_controller_test.rb +169 -0
- data/test/controllers/foreman_puppet/api/v2/puppetclasses_controller_test.rb +144 -0
- data/test/controllers/foreman_puppet/api/v2/smart_class_parameters_controller_test.rb +557 -0
- data/test/controllers/foreman_puppet/api/v2/template_combinations_controller_test.rb +81 -0
- data/test/controllers/foreman_puppet/config_groups_controller_test.rb +47 -0
- data/test/controllers/foreman_puppet/environments_controller_test.rb +230 -0
- data/test/controllers/foreman_puppet/hostgroups_controller_test.rb +72 -0
- data/test/controllers/foreman_puppet/hosts_controller_test.rb +346 -0
- data/test/controllers/foreman_puppet/puppet_smart_proxies_controller_test.rb +29 -0
- data/test/controllers/foreman_puppet/puppetclass_lookup_keys_controller_test.rb +59 -0
- data/test/controllers/foreman_puppet/puppetclasses_controller_test.rb +235 -0
- data/test/controllers/provisioning_templates_controller_test.rb +70 -0
- data/test/factories/foreman_puppet_factories.rb +134 -0
- data/test/factories/host_puppet_enhancements.rb +61 -0
- data/test/factories/proxy_puppet_enhancements.rb +33 -0
- data/test/helpers/foreman_puppet/hosts_and_hostgroups_helper_test.rb +65 -0
- data/test/helpers/foreman_puppet/puppetclasses_helper_test.rb +33 -0
- data/test/integration/foreman_puppet/environment_js_test.rb +27 -0
- data/test/integration/foreman_puppet/host_js_test.rb +371 -0
- data/test/integration/foreman_puppet/hostgroup_js_test.rb +100 -0
- data/test/integration/foreman_puppet/puppetclass_js_test.rb +37 -0
- data/test/integration/foreman_puppet/smartclass_parameter_js_test.rb +84 -0
- data/test/models/foreman_puppet/config_group_class_test.rb +9 -0
- data/test/models/foreman_puppet/config_group_test.rb +8 -0
- data/test/models/foreman_puppet/environment_test.rb +92 -0
- data/test/models/foreman_puppet/host_config_group_test.rb +39 -0
- data/test/models/foreman_puppet/host_puppet_facet_test.rb +116 -0
- data/test/models/foreman_puppet/host_test.rb +288 -0
- data/test/models/foreman_puppet/hostgroup_puppet_facet_test.rb +200 -0
- data/test/models/foreman_puppet/hostgroup_test.rb +14 -0
- data/test/models/foreman_puppet/lookup_value_test.rb +69 -0
- data/test/models/foreman_puppet/provisioning_template_test.rb +124 -0
- data/test/models/foreman_puppet/puppetclass_lookup_key_test.rb +81 -0
- data/test/models/foreman_puppet/puppetclass_test.rb +144 -0
- data/test/models/foreman_puppet/smart_proxy_test.rb +28 -0
- data/test/qraphql/queries/host_puppet_query_test.rb +36 -0
- data/test/qraphql/queries/hostgroup_puppet_query_test.rb +36 -0
- data/test/services/foreman_puppet/host_info_providers/puppet_info_test.rb +791 -0
- data/test/services/foreman_puppet/input_type/puppet_parameter_input_test.rb +14 -0
- data/test/test_puppet_helper.rb +30 -0
- data/test/unit/foreman_puppet/access_permissions_test.rb +16 -0
- data/test/unit/foreman_puppet/puppet_class_importer_test.rb +247 -0
- data/test/unit/foreman_puppet/template_rendering_test.rb +20 -0
- data/test/unit/foreman_puppet_test.rb +11 -0
- data/webpack/__mocks__/foremanReact/common/I18n.js +7 -0
- data/webpack/__mocks__/foremanReact/components/Layout/LayoutActions.js +2 -0
- data/webpack/__mocks__/foremanReact/readme.md +11 -0
- data/webpack/__mocks__/foremanReact/redux/API/APISelectors.js +10 -0
- data/webpack/__mocks__/foremanReact/redux/API/index.js +10 -0
- data/webpack/__mocks__/foremanReact/redux/actions/toasts.js +8 -0
- data/webpack/__mocks__/foremanReact/redux/index.js +1 -0
- data/webpack/__mocks__/foremanReact/redux/middlewares/IntervalMiddleware.js +5 -0
- data/webpack/fills_index.js +30 -0
- data/webpack/index.js +18 -0
- data/webpack/src/ForemanPuppet.js +11 -0
- data/webpack/src/Router/__snapshots__/routes.test.js.snap +3 -0
- data/webpack/src/Router/index.js +14 -0
- data/webpack/src/Router/routes.js +3 -0
- data/webpack/src/Router/routes.test.js +16 -0
- data/webpack/src/foreman_class_edit.js +224 -0
- data/webpack/src/foreman_puppet_host_form.js +140 -0
- data/webpack/src/foreman_puppet_host_form.test.js +65 -0
- data/webpack/src/index.js +1 -0
- data/webpack/src/reducers.js +7 -0
- metadata +340 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
class CreateEnvironments < ActiveRecord::Migration[5.0]
|
|
2
|
+
def up
|
|
3
|
+
create_table :environments do |t|
|
|
4
|
+
t.string :name, null: false, limit: 255
|
|
5
|
+
t.timestamps null: true
|
|
6
|
+
end
|
|
7
|
+
create_table :environments_puppetclasses do |t|
|
|
8
|
+
t.references :puppetclass, foreign_key: true
|
|
9
|
+
t.references :environment, foreign_key: true
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def down
|
|
14
|
+
drop_table :environments
|
|
15
|
+
drop_table :environments_puppetclasses
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
class CreateEnvironmentClasses < ActiveRecord::Migration[5.0]
|
|
2
|
+
class EnvironmentClass < ApplicationRecord; end
|
|
3
|
+
|
|
4
|
+
def up
|
|
5
|
+
rename_table :environments_puppetclasses, :environment_classes
|
|
6
|
+
add_column :environment_classes, :puppetclass_lookup_key_id, :integer
|
|
7
|
+
add_foreign_key :environment_classes, :lookup_keys, column: :puppetclass_lookup_key_id, name: 'environment_classes_lookup_key_id_fk'
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def down
|
|
11
|
+
remove_foreign_key :environment_classes, :lookup_key
|
|
12
|
+
drop_column :environment_classes, :puppetclass_lookup_key_id, :integer
|
|
13
|
+
rename_table :environment_classes, :environments_puppetclasses
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
class DeleteOrphanedSmartClassParameters < ActiveRecord::Migration[4.2]
|
|
2
|
+
def up
|
|
3
|
+
condition = 'NOT EXISTS (SELECT 1 FROM environment_classes WHERE environment_classes.puppetclass_lookup_key_id = lookup_keys.id)'
|
|
4
|
+
LookupValue.joins(:lookup_key).where(condition).where("lookup_keys.type = 'PuppetclassLookupKey'").delete_all
|
|
5
|
+
PuppetclassLookupKey.where(condition).delete_all
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def down
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
class FixLookupKeyAuditableType < ActiveRecord::Migration[4.2]
|
|
2
|
+
def up
|
|
3
|
+
Audit.reorder(nil).joins('JOIN lookup_keys ON lookup_keys.id = audits.auditable_id')
|
|
4
|
+
.where(auditable_type: 'LookupKey', lookup_keys: { type: 'VariableLookupKey' })
|
|
5
|
+
.update_all(auditable_type: 'VariableLookupKey')
|
|
6
|
+
|
|
7
|
+
Audit.reorder(nil).joins('JOIN lookup_keys ON lookup_keys.id = audits.auditable_id')
|
|
8
|
+
.where(auditable_type: 'LookupKey', lookup_keys: { type: 'PuppetclassLookupKey' })
|
|
9
|
+
.update_all(auditable_type: 'PuppetclassLookupKey')
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def down
|
|
13
|
+
Audit.where(auditable_type: %w[PuppetclassLookupKey VariableLookupKey]).update_all(auditable_type: 'LookupKey')
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
class CastLookupKeyValues < ActiveRecord::Migration[5.1]
|
|
2
|
+
def up
|
|
3
|
+
# Different LookupKey types handle casting a bit differently
|
|
4
|
+
PuppetclassLookupKey.unscoped.preload(:lookup_values).where(override: true).where.not(key_type: 'string').find_each do |key|
|
|
5
|
+
cast_key_and_values(key)
|
|
6
|
+
end
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
private
|
|
10
|
+
|
|
11
|
+
def cast_key_and_values(key)
|
|
12
|
+
fix_value(key, :default_value)
|
|
13
|
+
key.lookup_values.each do |lv|
|
|
14
|
+
fix_value(lv, :value)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def safemode_box
|
|
19
|
+
@safemode_box ||= Safemode::Box.new
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def fix_value(obj, attribute)
|
|
23
|
+
return if obj.omit && !obj.try(:merge_default)
|
|
24
|
+
value = obj.send(attribute)
|
|
25
|
+
return unless value.is_a? String
|
|
26
|
+
return if value.contains_erb?
|
|
27
|
+
fixed = safemode_box.eval(value)
|
|
28
|
+
obj.update_column(attribute, fixed)
|
|
29
|
+
rescue StandardError => e
|
|
30
|
+
say "Failed to cast #{attribute} for #{obj.inspect}:"
|
|
31
|
+
say "Value: #{value}", subitem: true
|
|
32
|
+
say "Error: #{e.message}", subitem: true
|
|
33
|
+
say 'Perhaps it is invalid? Casting skipped, manual action may be needed.', subitem: true
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# Added in theforeman/foreman#6d9e2b7c61
|
|
2
|
+
class AddIndexToEnvironmentClassByLookupKeyAndPuppetclass < ActiveRecord::Migration[5.2]
|
|
3
|
+
def change
|
|
4
|
+
add_index :environment_classes, %i[puppetclass_lookup_key_id puppetclass_id], name: 'index_env_classes_on_lookup_key_and_class'
|
|
5
|
+
end
|
|
6
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
module ForemanPuppet
|
|
2
|
+
FOREMAN_EXTRACTION_VERSION = '2.5'.freeze
|
|
3
|
+
|
|
4
|
+
def self.extracted_from_core?
|
|
5
|
+
ENV['PUPPET_EXTRACTED'] == '1' ||
|
|
6
|
+
Gem::Dependency.new('', ">= #{FOREMAN_EXTRACTION_VERSION}").match?('', SETTINGS[:version])
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
require 'foreman_puppet/engine'
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
module ForemanPuppet
|
|
2
|
+
class Engine < ::Rails::Engine
|
|
3
|
+
engine_name 'foreman_puppet'
|
|
4
|
+
isolate_namespace ForemanPuppet
|
|
5
|
+
|
|
6
|
+
config.paths['db/migrate'] << 'db/migrate_foreman' if Gem::Dependency.new('', ">= #{ForemanPuppet::FOREMAN_EXTRACTION_VERSION}").match?('', SETTINGS[:version])
|
|
7
|
+
config.paths['config/routes.rb'].unshift('config/api_routes.rb')
|
|
8
|
+
|
|
9
|
+
initializer 'foreman_puppet.register_plugin', before: :finisher_hook do |_app|
|
|
10
|
+
require 'foreman_puppet/register'
|
|
11
|
+
Apipie.configuration.checksum_path += ['/foreman_puppet/api/']
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
initializer 'foreman_puppet.migrate_by_default' do |app|
|
|
15
|
+
unless Object.const_defined?(:APP_RAKEFILE)
|
|
16
|
+
paths['db/migrate'].existent.each do |path|
|
|
17
|
+
app.config.paths['db/migrate'] << path
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
initializer 'foreman_ansible.configure_assets', group: :assets do
|
|
23
|
+
SETTINGS[:foreman_puppet] = { assets: { precompile: ['foreman_puppet.scss'] } }
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Include concerns in this config.to_prepare block
|
|
27
|
+
config.to_prepare do
|
|
28
|
+
# Parameters should go ASAP as they need to be applied before they are included in core controller
|
|
29
|
+
Foreman::Controller::Parameters::Host.include ForemanPuppet::Extensions::ParametersHost
|
|
30
|
+
Foreman::Controller::Parameters::Hostgroup.include ForemanPuppet::Extensions::ParametersHostgroup
|
|
31
|
+
Foreman::Controller::Parameters::TemplateCombination.include ForemanPuppet::Extensions::ParametersTemplateCombination
|
|
32
|
+
|
|
33
|
+
# Facets extenstion is applied too early - before the Hostgroup is complete
|
|
34
|
+
# We redefine thing, so we need to wait until complete definition of Hostgroup
|
|
35
|
+
# thus separate patching instead of using facet patching
|
|
36
|
+
Hostgroup.include ForemanPuppet::Extensions::Hostgroup
|
|
37
|
+
|
|
38
|
+
# include_in_clone that is used in core Facets::ManagedHostExtensions doesn't support nested objects
|
|
39
|
+
# we need to run our include_in_clone after, so the puppet without nested objects doesnt override the one including them
|
|
40
|
+
Host::Managed.include ForemanPuppet::Extensions::Host
|
|
41
|
+
|
|
42
|
+
LookupValue.include ForemanPuppet::PuppetLookupValueExtensions
|
|
43
|
+
Operatingsystem.include ForemanPuppet::Extensions::Operatingsystem
|
|
44
|
+
Nic::Managed.include ForemanPuppet::Extensions::NicManaged
|
|
45
|
+
Report.include ForemanPuppet::Extensions::Report
|
|
46
|
+
Taxonomy.include ForemanPuppet::Extensions::Taxonomy
|
|
47
|
+
User.include ForemanPuppet::Extensions::User
|
|
48
|
+
TemplateCombination.include ForemanPuppet::Extensions::TemplateCombination
|
|
49
|
+
ProvisioningTemplate.include ForemanPuppet::Extensions::ProvisioningTemplate
|
|
50
|
+
|
|
51
|
+
::Api::V2::HostsController.include ForemanPuppet::Extensions::ApiV2HostsController
|
|
52
|
+
::Api::V2::HostgroupsController.include ForemanPuppet::Extensions::ApiHostgroupsController
|
|
53
|
+
::Api::V2::TemplateCombinationsController.include ForemanPuppet::Extensions::ApiTemplateCombinationsController
|
|
54
|
+
OperatingsystemsController.prepend ForemanPuppet::Extensions::OperatingsystemsController
|
|
55
|
+
HostsController.include ForemanPuppet::Extensions::HostsControllerExtensions
|
|
56
|
+
HostgroupsController.include ForemanPuppet::Extensions::HostgroupsControllerExtensions
|
|
57
|
+
|
|
58
|
+
SmartProxiesHelper::TABBED_FEATURES << 'Puppet'
|
|
59
|
+
|
|
60
|
+
unless ForemanPuppet.extracted_from_core?
|
|
61
|
+
::HostInfo.local_entries.delete('HostInfoProviders::PuppetInfo'.safe_constantize)
|
|
62
|
+
::HostInfo.local_entries.delete('HostInfoProviders::ConfigGroupsInfo'.safe_constantize)
|
|
63
|
+
::ProxyStatus.status_registry.delete('ProxyStatus::Puppet'.safe_constantize)
|
|
64
|
+
Foreman.input_types_registry.input_types.delete('puppet_parameter')
|
|
65
|
+
end
|
|
66
|
+
Foreman.input_types_registry.register(ForemanPuppet::InputType::PuppetParameterInput)
|
|
67
|
+
::ProxyStatus.status_registry.add(ForemanPuppet::ProxyStatus::Puppet)
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
rake_tasks do
|
|
71
|
+
Rake::Task['db:seed'].enhance do
|
|
72
|
+
ForemanPuppet::Engine.load_seed
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
initializer 'foreman_puppet.register_gettext', after: :load_config_initializers do |_app|
|
|
77
|
+
locale_dir = File.join(File.expand_path('../..', __dir__), 'locale')
|
|
78
|
+
locale_domain = 'foreman_puppet'
|
|
79
|
+
Foreman::Gettext::Support.add_text_domain locale_domain, locale_dir
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
Foreman::Plugin.register :foreman_puppet do
|
|
2
|
+
requires_foreman '>= 2.0.0'
|
|
3
|
+
# Add Global JS file for extending foreman-core components and routes
|
|
4
|
+
register_global_js_file 'fills'
|
|
5
|
+
|
|
6
|
+
apipie_documented_controllers(["#{ForemanPuppet::Engine.root}/app/controllers/foreman_puppet/api/v2/*.rb"])
|
|
7
|
+
|
|
8
|
+
unless ForemanPuppet.extracted_from_core?
|
|
9
|
+
# Remove core permissions
|
|
10
|
+
cfgs = %i[view_config_groups create_config_groups edit_config_groups destroy_config_groups]
|
|
11
|
+
plks = %i[view_external_parameters create_external_parameters edit_external_parameters
|
|
12
|
+
destroy_external_parameters]
|
|
13
|
+
pcls = %i[view_puppetclasses create_puppetclasses edit_puppetclasses destroy_puppetclasses import_puppetclasses]
|
|
14
|
+
(cfgs | plks | pcls).each do |perm_name|
|
|
15
|
+
p = Foreman::AccessControl.permission(perm_name)
|
|
16
|
+
Foreman::AccessControl.remove_permission(p)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
delete_menu_item(:top_menu, :puppetclasses)
|
|
20
|
+
delete_menu_item(:top_menu, :config_groups)
|
|
21
|
+
delete_menu_item(:top_menu, :puppetclass_lookup_keys)
|
|
22
|
+
delete_menu_item(:top_menu, :environments)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# TODO: maybe this would not be necessary if we rething the form
|
|
26
|
+
%i[create_hostgroups edit_hostgroups].each do |perm|
|
|
27
|
+
p = Foreman::AccessControl.permission(perm)
|
|
28
|
+
if ForemanPuppet.extracted_from_core?
|
|
29
|
+
p.actions << 'hostgroups/environment_selected'
|
|
30
|
+
p.actions << 'hostgroups/puppetclass_parameters'
|
|
31
|
+
end
|
|
32
|
+
p.actions << 'foreman_puppet/puppetclasses/parameters'
|
|
33
|
+
end
|
|
34
|
+
p = Foreman::AccessControl.permission(:edit_hostgroups)
|
|
35
|
+
%w[index create destroy].each do |action|
|
|
36
|
+
p.actions << "foreman_puppet/api/v2/hostgroup_classes/#{action}"
|
|
37
|
+
end
|
|
38
|
+
%i[create_hosts edit_hosts].each do |perm|
|
|
39
|
+
p = Foreman::AccessControl.permission(perm)
|
|
40
|
+
if ForemanPuppet.extracted_from_core?
|
|
41
|
+
p.actions << 'hosts/hostgroup_or_environment_selected'
|
|
42
|
+
p.actions << 'hosts/puppetclass_parameters'
|
|
43
|
+
if perm == :edit_hosts
|
|
44
|
+
p.actions << 'hosts/select_multiple_environment'
|
|
45
|
+
p.actions << 'hosts/update_multiple_environment'
|
|
46
|
+
p.actions << 'hosts/select_multiple_puppet_proxy'
|
|
47
|
+
p.actions << 'hosts/update_multiple_puppet_proxy'
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
p.actions << 'foreman_puppet/puppetclasses/parameters'
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
p = Foreman::AccessControl.permission(:view_hosts)
|
|
54
|
+
p.actions << 'hosts/externalNodes'
|
|
55
|
+
|
|
56
|
+
p = Foreman::AccessControl.permission(:view_smart_proxies)
|
|
57
|
+
p.actions << 'foreman_puppet/puppet_smart_proxies/dashboard'
|
|
58
|
+
p.actions << 'foreman_puppet/puppet_smart_proxies/environments'
|
|
59
|
+
|
|
60
|
+
# Add permissions
|
|
61
|
+
security_block :puppet_config_groups do
|
|
62
|
+
permission :view_config_groups, { 'foreman_puppet/config_groups': %i[index auto_complete_search welcome],
|
|
63
|
+
'foreman_puppet/api/v2/config_groups': %i[index show],
|
|
64
|
+
'foreman_puppet/react': [:index] },
|
|
65
|
+
resource_type: 'ForemanPuppet::ConfigGroup'
|
|
66
|
+
permission :create_config_groups, { 'foreman_puppet/config_groups': %i[new create],
|
|
67
|
+
'foreman_puppet/api/v2/config_groups': [:create] },
|
|
68
|
+
resource_type: 'ForemanPuppet::ConfigGroup'
|
|
69
|
+
permission :edit_config_groups, { 'foreman_puppet/config_groups': %i[edit update],
|
|
70
|
+
'foreman_puppet/api/v2/config_groups': [:update] },
|
|
71
|
+
resource_type: 'ForemanPuppet::ConfigGroup'
|
|
72
|
+
permission :destroy_config_groups, { 'foreman_puppet/config_groups': [:destroy],
|
|
73
|
+
'foreman_puppet/api/v2/config_groups': [:destroy] },
|
|
74
|
+
resource_type: 'ForemanPuppet::ConfigGroup'
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
security_block :puppet_lookup_keys do
|
|
78
|
+
permission :view_external_parameters, { 'foreman_puppet/puppetclass_lookup_keys': %i[index show auto_complete_search welcome],
|
|
79
|
+
lookup_values: [:index],
|
|
80
|
+
'foreman_puppet/api/v2/smart_class_parameters': %i[index show],
|
|
81
|
+
'foreman_puppet/api/v2/override_values': %i[index show] },
|
|
82
|
+
resource_type: 'ForemanPuppet::PuppetclassLookupKey'
|
|
83
|
+
permission :create_external_parameters, { 'foreman_puppet/puppetclass_lookup_keys': %i[new create],
|
|
84
|
+
lookup_values: [:create],
|
|
85
|
+
'foreman_puppet/api/v2/smart_class_parameters': [:create],
|
|
86
|
+
'foreman_puppet/api/v2/override_values': [:create] },
|
|
87
|
+
resource_type: 'ForemanPuppet::PuppetclassLookupKey'
|
|
88
|
+
permission :edit_external_parameters, { 'foreman_puppet/puppetclass_lookup_keys': %i[edit update],
|
|
89
|
+
lookup_values: %i[create update destroy],
|
|
90
|
+
'foreman_puppet/api/v2/smart_class_parameters': [:update],
|
|
91
|
+
'foreman_puppet/api/v2/override_values': %i[create update destroy] },
|
|
92
|
+
resource_type: 'ForemanPuppet::PuppetclassLookupKey'
|
|
93
|
+
permission :destroy_external_parameters, { 'foreman_puppet/puppetclass_lookup_keys': [:destroy],
|
|
94
|
+
lookup_values: [:destroy],
|
|
95
|
+
'foreman_puppet/api/v2/smart_class_parameters': [:destroy],
|
|
96
|
+
'foreman_puppet/api/v2/override_values': %i[create update destroy] },
|
|
97
|
+
resource_type: 'ForemanPuppet::PuppetclassLookupKey'
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
security_block :puppet_environments do
|
|
101
|
+
permission :view_environments, { 'foreman_puppet/environments': %i[index show auto_complete_search welcome],
|
|
102
|
+
'foreman_puppet/api/v2/environments': %i[index show] },
|
|
103
|
+
resource_type: 'ForemanPuppet::Environment'
|
|
104
|
+
permission :create_environments, { 'foreman_puppet/environments': %i[new create],
|
|
105
|
+
'foreman_puppet/api/v2/environments': %i[create] },
|
|
106
|
+
resource_type: 'ForemanPuppet::Environment'
|
|
107
|
+
permission :edit_environments, { 'foreman_puppet/environments': %i[edit update],
|
|
108
|
+
'foreman_puppet/api/v2/environments': %i[update] },
|
|
109
|
+
resource_type: 'ForemanPuppet::Environment'
|
|
110
|
+
permission :destroy_environments, { 'foreman_puppet/environments': %i[destroy],
|
|
111
|
+
'foreman_puppet/api/v2/environments': %i[destroy] },
|
|
112
|
+
resource_type: 'ForemanPuppet::Environment'
|
|
113
|
+
permission :import_environments, { 'foreman_puppet/environments': %i[import_environments obsolete_and_new],
|
|
114
|
+
'foreman_puppet/api/v2/environments': %i[import_puppetclasses] },
|
|
115
|
+
resource_type: 'ForemanPuppet::Environment'
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
security_block :puppetclasses do
|
|
119
|
+
permission :view_puppetclasses, { 'foreman_puppet/puppetclasses' => %i[index show auto_complete_search],
|
|
120
|
+
'foreman_puppet/api/v2/puppetclasses' => %i[index show],
|
|
121
|
+
'foreman_puppet/api/v2/smart_class_parameters' => %i[index show] },
|
|
122
|
+
resource_type: 'ForemanPuppet::Puppetclass'
|
|
123
|
+
permission :create_puppetclasses, { 'foreman_puppet/puppetclasses' => %i[new create],
|
|
124
|
+
'foreman_puppet/api/v2/puppetclasses' => [:create] },
|
|
125
|
+
resource_type: 'ForemanPuppet::Puppetclass'
|
|
126
|
+
permission :edit_puppetclasses, { 'foreman_puppet/puppetclasses' => %i[edit update override],
|
|
127
|
+
'foreman_puppet/api/v2/puppetclasses' => [:update],
|
|
128
|
+
'foreman_puppet/api/v2/smart_class_parameters' => %i[create update destroy] },
|
|
129
|
+
resource_type: 'ForemanPuppet::Puppetclass'
|
|
130
|
+
permission :destroy_puppetclasses, { 'foreman_puppet/puppetclasses' => [:destroy],
|
|
131
|
+
'foreman_puppet/api/v2/puppetclasses' => [:destroy] },
|
|
132
|
+
resource_type: 'ForemanPuppet::Puppetclass'
|
|
133
|
+
permission :import_puppetclasses, { 'foreman_puppet/puppetclasses' => %i[import_environments obsolete_and_new],
|
|
134
|
+
'foreman_puppet/api/v2/environments' => [:import_puppetclasses] },
|
|
135
|
+
resource_type: 'ForemanPuppet::Puppetclass'
|
|
136
|
+
permission :edit_classes, { 'foreman_puppet/api/v2/host_classes': %i[index create destroy] },
|
|
137
|
+
resource_type: 'ForemanPuppet::HostClass'
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
add_all_permissions_to_default_roles
|
|
141
|
+
Foreman::Plugin::RbacSupport::AUTO_EXTENDED_ROLES |= ['Site manager']
|
|
142
|
+
add_permissions_to_default_roles(
|
|
143
|
+
'Site manager' => %w[view_puppetclasses import_puppetclasses view_environments import_environments
|
|
144
|
+
view_external_parameters create_external_parameters edit_external_parameters destroy_external_parameters]
|
|
145
|
+
)
|
|
146
|
+
|
|
147
|
+
# add puppet ENC divider
|
|
148
|
+
divider :top_menu, parent: :configure_menu, caption: N_('Puppet ENC')
|
|
149
|
+
|
|
150
|
+
# add menu entries
|
|
151
|
+
add_menu_item :top_menu, :environments, caption: N_('Environments'),
|
|
152
|
+
engine: ForemanPuppet::Engine,
|
|
153
|
+
parent: :configure_menu
|
|
154
|
+
add_menu_item :top_menu, :puppetclasses, caption: N_('Classes'),
|
|
155
|
+
engine: ForemanPuppet::Engine,
|
|
156
|
+
parent: :configure_menu
|
|
157
|
+
add_menu_item :top_menu, :config_groups, caption: N_('Config Groups'),
|
|
158
|
+
engine: ForemanPuppet::Engine,
|
|
159
|
+
parent: :configure_menu
|
|
160
|
+
add_menu_item :top_menu, :puppetclass_lookup_keys, caption: N_('Smart Class Parameters'),
|
|
161
|
+
engine: ForemanPuppet::Engine,
|
|
162
|
+
parent: :configure_menu
|
|
163
|
+
|
|
164
|
+
register_info_provider(ForemanPuppet::HostInfoProviders::ConfigGroupsInfo)
|
|
165
|
+
register_info_provider(ForemanPuppet::HostInfoProviders::PuppetInfo)
|
|
166
|
+
|
|
167
|
+
# register host and hostgroup facet
|
|
168
|
+
register_facet ForemanPuppet::HostPuppetFacet, :puppet do
|
|
169
|
+
configure_host do
|
|
170
|
+
# extend_model ForemanPuppet::Extensions::Host
|
|
171
|
+
api_view list: 'foreman_puppet/api/v2/host_puppet_facets/base',
|
|
172
|
+
single: 'foreman_puppet/api/v2/host_puppet_facets/host_single'
|
|
173
|
+
template_compatibility_properties :environment, :environment_id, :environment_name
|
|
174
|
+
set_dependent_action :destroy
|
|
175
|
+
end
|
|
176
|
+
configure_hostgroup(ForemanPuppet::HostgroupPuppetFacet) do
|
|
177
|
+
api_view list: 'foreman_puppet/api/v2/hostgroup_puppet_facets/base',
|
|
178
|
+
single: 'foreman_puppet/api/v2/hostgroup_puppet_facets/hostgroup_single'
|
|
179
|
+
template_compatibility_properties :environment, :environment_id, :environment_name
|
|
180
|
+
set_dependent_action :destroy
|
|
181
|
+
end
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
add_controller_action_scope('Api::V2::HostsController', :index) do |base_scope|
|
|
185
|
+
base_scope.preload(puppet: :environment)
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
unless ForemanPuppet.extracted_from_core?
|
|
189
|
+
Rails.application.config.after_initialize do
|
|
190
|
+
list = Pagelets::Manager.instance.instance_variable_get(:@pagelets)['hosts/_form'][:main_tabs]
|
|
191
|
+
core_pagelet = list.detect { |pagelet| pagelet.opts[:id] == :puppet_klasses }
|
|
192
|
+
list.delete(core_pagelet)
|
|
193
|
+
end
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
extend_template_helpers(ForemanPuppet::TemplateRendererScope)
|
|
197
|
+
|
|
198
|
+
# extend host(group) form with puppet ENC Tab
|
|
199
|
+
%i[host hostgroup].each do |resource_type|
|
|
200
|
+
host_onlyif = ->(host, context) { context.send(:accessible_resource, host, :smart_proxy, :name, association: :puppet_proxy).present? }
|
|
201
|
+
extend_page("#{resource_type}s/_form") do |context|
|
|
202
|
+
context.add_pagelet :main_tabs,
|
|
203
|
+
id: :puppet_enc_tab,
|
|
204
|
+
name: N_('Puppet ENC'),
|
|
205
|
+
partial: 'hosts/form_puppet_enc_tab',
|
|
206
|
+
resource_type: resource_type,
|
|
207
|
+
priority: 100,
|
|
208
|
+
onlyif: (host_onlyif if resource_type == :host)
|
|
209
|
+
|
|
210
|
+
if ForemanPuppet.extracted_from_core?
|
|
211
|
+
context.add_pagelet :main_tab_fields,
|
|
212
|
+
partial: 'hosts/foreman_puppet/form_main_tab_fields',
|
|
213
|
+
resource_type: resource_type,
|
|
214
|
+
priority: 100
|
|
215
|
+
end
|
|
216
|
+
end
|
|
217
|
+
end
|
|
218
|
+
end
|