foreman_puppet 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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,4 @@
|
|
1
|
+
<%= content_tag :li, id: "selected_puppet_class_#{klass.id}", class: [dom_class(klass, 'selected'), cycle('even', 'odd'), ('unavailable' unless klass.environments.include?(@environment))] do %>
|
2
|
+
<%= link_to_remove_puppetclass(klass, obj) %>
|
3
|
+
<%= hidden_field_tag "#{resource_type}[puppetclass_ids][]", klass.id %>
|
4
|
+
<% end %>
|
@@ -0,0 +1,47 @@
|
|
1
|
+
<% title _("Puppet Classes") %>
|
2
|
+
|
3
|
+
<% title_actions import_proxy_select(hash_for_import_environments_puppetclasses_path),
|
4
|
+
documentation_button('4.2.2Classes') %>
|
5
|
+
|
6
|
+
<table class="<%= table_css_classes 'table-fixed' %>">
|
7
|
+
<thead>
|
8
|
+
<tr>
|
9
|
+
<th class="col-md-3"><%= sort :name, as: s_("Puppetclass|Name") %></th>
|
10
|
+
<th class="col-md-3"><%= sort :environment, as: _("Environments") %></th>
|
11
|
+
<th class="col-md-2"><%= _('Host Groups') %></th>
|
12
|
+
<th class="col-md-1"><%= _('Hosts') %></th>
|
13
|
+
<th class="col-md-1"><%= _('Parameters') %></th>
|
14
|
+
<th class="col-md-1"><%= _("Actions") %></th>
|
15
|
+
</tr>
|
16
|
+
</thead>
|
17
|
+
<tbody>
|
18
|
+
<% for puppetclass in @puppetclasses %>
|
19
|
+
<tr>
|
20
|
+
<td class="ellipsis">
|
21
|
+
<%= link_to_if_authorized puppetclass.name, hash_for_edit_puppetclass_path(id: puppetclass).merge(engine: foreman_puppet, auth_object: puppetclass, authorizer: authorizer) %>
|
22
|
+
</td>
|
23
|
+
<td class="ellipsis">
|
24
|
+
<%= puppetclass.environments.uniq.to_sentence %>
|
25
|
+
</td>
|
26
|
+
<td class="">
|
27
|
+
<%= puppetclass.all_hostgroups(with_descendants: false).map do |hg|
|
28
|
+
link_to_if_authorized trunc_with_tooltip(hg, 24),
|
29
|
+
main_app.hash_for_edit_hostgroup_path(id: hg).merge(auth_object: hg, authorizer: @hostgroups_authorizer)
|
30
|
+
end.to_sentence.html_safe %>
|
31
|
+
</td>
|
32
|
+
<td><%= link_to puppetclass.hosts_count, main_app.hosts_path(search: "class = #{puppetclass.name}")%></td>
|
33
|
+
<td><%= puppetclass.class_params.size %> </td>
|
34
|
+
<td>
|
35
|
+
<%
|
36
|
+
links = [display_delete_if_authorized(hash_for_puppetclass_path(id: puppetclass).merge(engine: foreman_puppet, auth_object: puppetclass, authorizer: authorizer), data: { confirm: _("Delete %s?") % puppetclass.name }, action: :delete)]
|
37
|
+
links.push(display_link_if_authorized(_('Override all parameters'), hash_for_override_puppetclass_path(enable: true, id: puppetclass).merge(engine: foreman_puppet, auth_object: puppetclass, authorizer: authorizer, permission: 'edit_puppetclasses'), method: :post, data: { confirm: _("This will set all parameters of the class %s as overridden. Continue?") % puppetclass.name })) if puppetclass.class_params.present? && !overridden?(puppetclass)
|
38
|
+
links.push(display_link_if_authorized(_('Set parameters to defaults'), hash_for_override_puppetclass_path(enable: false, id: puppetclass).merge(engine: foreman_puppet, auth_object: puppetclass, authorizer: authorizer, permission: 'edit_puppetclasses'), method: :post, data: { confirm: _("This will reset parameters of the class %s to their default values. Continue?") % puppetclass.name })) if puppetclass.class_params.present? && overridden?(puppetclass)
|
39
|
+
%>
|
40
|
+
<%= action_buttons(*links) %>
|
41
|
+
</td>
|
42
|
+
</tr>
|
43
|
+
<% end %>
|
44
|
+
</tbody>
|
45
|
+
</table>
|
46
|
+
|
47
|
+
<%= will_paginate_with_info @puppetclasses %>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<% resource_type ||= pagelet.opts[:resource_type] %>
|
2
|
+
<% host_or_hostgroup ||= local_assigns[resource_type] %>
|
3
|
+
<% obj = (host_or_hostgroup.puppet || host_or_hostgroup.build_puppet) if %i[host hostgroup].include?(resource_type) %>
|
4
|
+
<% if resource_type == :host %>
|
5
|
+
<span id="puppet_klasses_reload_url" data-url="<%= foreman_puppet.hostgroup_or_environment_selected_hosts_path %>"></span>
|
6
|
+
<% elsif resource_type == :hostgroup %>
|
7
|
+
<span id="puppet_klasses_reload_url" data-url="<%= foreman_puppet.environment_selected_hostgroups_path %>"></span>
|
8
|
+
<% end %>
|
9
|
+
<% if @environment.present? || obj.environment.present? %>
|
10
|
+
<% if accessible_resource_records(:config_group).exists? %>
|
11
|
+
<%= render 'foreman_puppet/config_groups/config_groups_selection', obj: obj, resource_type: resource_type %>
|
12
|
+
<% end %>
|
13
|
+
|
14
|
+
<%= render 'foreman_puppet/puppetclasses/class_selection', obj: obj, resource_type: resource_type %>
|
15
|
+
<% else %>
|
16
|
+
<%= alert(class: alert_class(:info),
|
17
|
+
header: _('Notice'),
|
18
|
+
text: _('Please select an environment first')) %>
|
19
|
+
<% end %>
|
20
|
+
|
21
|
+
<fieldset id="puppet_klasses_parameters" data-url="<%= foreman_puppet.url_for(action: :puppetclass_parameters, only_path: true) %>">
|
22
|
+
<h2><%= _('Puppet Class Parameters') %></h2>
|
23
|
+
<%= render 'foreman_puppet/puppetclasses/classes_parameters', obj: host_or_hostgroup %>
|
24
|
+
</fieldset>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= public_send("#{pagelet.opts[:resource_type]}_puppet_environment_field", form) %>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<%= render 'hosts/selected_hosts', hosts: @hosts %>
|
2
|
+
|
3
|
+
<%= form_for :environment, url: foreman_puppet.update_multiple_environment_hosts_path(host_ids: params[:host_ids]) do |f| %>
|
4
|
+
<%= selectable_f f, :id, [[_('Select environment'), 'disabled'],
|
5
|
+
[_('*Clear environment*'), '' ],
|
6
|
+
[_('*Inherit from host group*'), 'inherit']] + Environment.all.map{|e| [e.name, e.id]}, {},
|
7
|
+
label: _('Environment'), onchange: 'tfm.hosts.table.toggleMultipleOkButton(this)' %>
|
8
|
+
<% end %>
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<div class="fields">
|
2
|
+
<%= select_f f, :hostgroup_id, Hostgroup.all, :id, :to_label, {:include_blank => true}, :label => _("Hostgroup") %>
|
3
|
+
<%= select_f f, :environment_id, Environment.all, :id, :name, {:include_blank => true},
|
4
|
+
:label => _("Environment"), :help_inline => link_to_remove_fields(_('Remove'), f, :title => _("Remove Combination")) %>
|
5
|
+
</div>
|
@@ -0,0 +1,6 @@
|
|
1
|
+
<%= field_set_tag _("Valid Host Group and Environment Combinations"), :id => "template_combination" do %>
|
2
|
+
<%= f.fields_for :template_combinations do |builder| %>
|
3
|
+
<%= render 'provisioning_templates/combination', :f => builder %>
|
4
|
+
<% end %>
|
5
|
+
<% end %>
|
6
|
+
<p><%= link_to_add_fields('+ ' + _("Add Combination"), f, :template_combinations, "provisioning_templates/combination", { :target => '#template_combination', :primary_button => false }) %></p>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<% javascript 'charts' %>
|
2
|
+
<ul id="proxy-puppet-tab" class="nav nav-tabs nav-tabs-pf">
|
3
|
+
<li class="active"><a href="#puppet_dashboard" data-toggle="tab"><%= _('General')%></a></li>
|
4
|
+
<li><a href="#puppet_envs" data-toggle="tab"><%= _('Environments') %></a></li>
|
5
|
+
</ul>
|
6
|
+
<div class="tab-content" id="proxy-puppet-tab-content">
|
7
|
+
<div class="tab-pane active in dashboard" id="puppet_dashboard">
|
8
|
+
<div class="row">
|
9
|
+
<div class="col-md-6">
|
10
|
+
<%= show_feature_version('puppet') %>
|
11
|
+
<div class="row">
|
12
|
+
<div class="col-md-4"><strong><%= _('Hosts managed:') %></strong></div>
|
13
|
+
<div class="col-md-8">
|
14
|
+
<%= link_to Host::Managed.where(puppet_proxy_id: @smart_proxy.id).count, hosts_path(search: "puppetmaster = \"#{@smart_proxy.name}\"") %>
|
15
|
+
</div>
|
16
|
+
</div>
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
<div class="clearfix row container-cards-pf container-fluid" data-ajax-url="<%= foreman_puppet.dashboard_puppet_smart_proxy_path(@smart_proxy) %>" data-on-complete="refreshCharts"><%= spinner %></div>
|
20
|
+
</div>
|
21
|
+
<div class="tab-pane" id="puppet_envs" data-ajax-url="<%= foreman_puppet.environments_puppet_smart_proxy_path(@smart_proxy) %>">
|
22
|
+
<%= spinner %>
|
23
|
+
</div>
|
24
|
+
</div>
|
@@ -0,0 +1,81 @@
|
|
1
|
+
ForemanPuppet::Engine.routes.draw do
|
2
|
+
namespace :api, defaults: { format: 'json' } do
|
3
|
+
scope '(:apiv)', module: :v2, defaults: { apiv: 'v2' }, apiv: /v1|v2/, constraints: ApiConstraints.new(version: 2, default: true) do
|
4
|
+
constraints(id: %r{[^/]+}) do
|
5
|
+
resources :puppet_smart_proxies, only: [] do
|
6
|
+
post :import_puppetclasses, on: :member, controller: 'environments'
|
7
|
+
|
8
|
+
resources :environments, only: [] do
|
9
|
+
post :import_puppetclasses, on: :member
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
resources :config_groups, except: %i[new edit]
|
14
|
+
|
15
|
+
resources :hosts, only: [] do
|
16
|
+
resources :puppetclasses, except: %i[new edit]
|
17
|
+
resources :smart_class_parameters, except: %i[new edit create] do
|
18
|
+
resources :override_values, except: %i[new edit]
|
19
|
+
end
|
20
|
+
resources :host_classes, path: :puppetclass_ids, only: %i[index create destroy]
|
21
|
+
end
|
22
|
+
|
23
|
+
resources :hostgroups, only: [] do
|
24
|
+
resources :puppetclasses, except: %i[new edit]
|
25
|
+
resources :smart_class_parameters, except: %i[new edit create] do
|
26
|
+
resources :override_values, except: %i[new edit]
|
27
|
+
end
|
28
|
+
resources :hostgroup_classes, path: :puppetclass_ids, only: %i[index create destroy]
|
29
|
+
end
|
30
|
+
|
31
|
+
resources :environments, except: %i[new edit] do
|
32
|
+
resources :locations, only: %i[index show], controller: '/api/v2/locations'
|
33
|
+
resources :organizations, only: %i[index show], controller: '/api/v2/organizations'
|
34
|
+
resources :smart_class_parameters, except: %i[new edit create] do
|
35
|
+
resources :override_values, except: %i[new edit]
|
36
|
+
end
|
37
|
+
resources :puppetclasses, except: %i[new edit] do
|
38
|
+
resources :smart_class_parameters, except: %i[new edit create] do
|
39
|
+
resources :override_values, except: %i[new edit destroy]
|
40
|
+
end
|
41
|
+
end
|
42
|
+
resources :hosts, only: %i[index show], controller: '/api/v2/hosts'
|
43
|
+
resources :template_combinations, only: %i[index], controller: '/api/v2/template_combinations'
|
44
|
+
end
|
45
|
+
|
46
|
+
resources :puppetclasses, except: %i[new edit] do
|
47
|
+
resources :smart_class_parameters, except: %i[new edit create] do
|
48
|
+
resources :override_values, except: %i[new edit]
|
49
|
+
end
|
50
|
+
resources :environments, only: %i[index show] do
|
51
|
+
resources :smart_class_parameters, except: %i[new edit create] do
|
52
|
+
resources :override_values, except: %i[new edit]
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
resources :smart_class_parameters, except: %i[new edit create destroy] do
|
58
|
+
resources :override_values, except: %i[new edit]
|
59
|
+
end
|
60
|
+
|
61
|
+
resources :override_values, only: %i[update destroy]
|
62
|
+
|
63
|
+
resources :locations, only: [] do
|
64
|
+
resources :environments, only: %i[index show]
|
65
|
+
|
66
|
+
resources :organizations, only: [] do
|
67
|
+
resources :environments, only: %i[index show]
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
resources :organizations, only: [] do
|
72
|
+
resources :environments, only: %i[index show]
|
73
|
+
|
74
|
+
resources :locations, only: [] do
|
75
|
+
resources :environments, only: %i[index show]
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
data/config/routes.rb
ADDED
@@ -0,0 +1,89 @@
|
|
1
|
+
ForemanPuppet::Engine.routes.draw do
|
2
|
+
# ENC requests goes here
|
3
|
+
get 'node/:name' => '/hosts#externalNodes', :constraints => { name: /[^.][\w.-]+/ }
|
4
|
+
|
5
|
+
resources :config_groups, except: [:show] do
|
6
|
+
collection do
|
7
|
+
get 'help', action: :welcome
|
8
|
+
get 'auto_complete_search'
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
resources :environments, except: [:show] do
|
13
|
+
collection do
|
14
|
+
get 'help', action: :welcome
|
15
|
+
get 'import_environments'
|
16
|
+
post 'obsolete_and_new'
|
17
|
+
get 'auto_complete_search'
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
constraints(id: %r{[^/]+}) do
|
22
|
+
resources :puppetclass_lookup_keys, except: %i[show new create] do
|
23
|
+
collection do
|
24
|
+
get 'help', action: :welcome
|
25
|
+
get 'auto_complete_search'
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
resources :lookup_values, controller: '/lookup_values', except: %i[show new edit]
|
30
|
+
end
|
31
|
+
|
32
|
+
resources :puppetclasses, except: %i[new create show] do
|
33
|
+
collection do
|
34
|
+
get 'import_environments'
|
35
|
+
post 'obsolete_and_new'
|
36
|
+
get 'auto_complete_search'
|
37
|
+
end
|
38
|
+
member do
|
39
|
+
post 'parameters'
|
40
|
+
post 'override'
|
41
|
+
end
|
42
|
+
constraints(id: %r{[^/]+}) do
|
43
|
+
resources :hosts, controller: '/hosts'
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
resources :puppet_smart_proxies, only: [] do
|
48
|
+
member do
|
49
|
+
get 'environments'
|
50
|
+
get 'dashboard'
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# TODO: should we patch the core routes?
|
55
|
+
constraints(id: %r{[^/]+}) do
|
56
|
+
resources :hosts, only: [], controller: '/hosts' do
|
57
|
+
collection do
|
58
|
+
post 'hostgroup_or_environment_selected'
|
59
|
+
post 'puppetclass_parameters'
|
60
|
+
match 'select_multiple_environment', via: %i[get post]
|
61
|
+
post 'update_multiple_environment'
|
62
|
+
post 'select_multiple_puppet_proxy'
|
63
|
+
post 'update_multiple_puppet_proxy'
|
64
|
+
end
|
65
|
+
|
66
|
+
member do
|
67
|
+
get 'externalNodes'
|
68
|
+
end
|
69
|
+
|
70
|
+
constraints(host_id: %r{[^/]+}) do
|
71
|
+
resources :puppetclasses, only: :index
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
resources :hostgroups, only: [], controller: '/hostgroups' do
|
76
|
+
collection do
|
77
|
+
post 'environment_selected'
|
78
|
+
post 'puppetclass_parameters'
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
Foreman::Application.routes.draw do
|
85
|
+
mount ForemanPuppet::Engine, at: '/foreman_puppet'
|
86
|
+
|
87
|
+
# ENC requests goes here - should get depreacated
|
88
|
+
get 'node/:name' => 'hosts#externalNodes', :constraints => { name: /[^.][\w.-]+/ }
|
89
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
class AddEnvironmentToTemplateCombinations < ActiveRecord::Migration[4.2]
|
2
|
+
def up
|
3
|
+
add_reference :template_combinations, :environment, foreign_key: true unless column_exists?(:template_combinations, :environment_id)
|
4
|
+
end
|
5
|
+
|
6
|
+
def down
|
7
|
+
remove_reference :template_combinations, :environment, foreign_key: true if ForemanPuppet.extracted_from_core?
|
8
|
+
end
|
9
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class MigratePuppetCoreTypes < ActiveRecord::Migration[6.0]
|
2
|
+
def up
|
3
|
+
%w[PuppetclassLookupKey Puppetclass Environment ConfigGroup].each do |type|
|
4
|
+
Audit.where(auditable_type: type).update_all(auditable_type: "ForemanPuppet::#{type}")
|
5
|
+
Permission.where(resource_type: type).update_all(resource_type: "ForemanPuppet::#{type}")
|
6
|
+
end
|
7
|
+
LookupKey.where(type: 'PuppetclassLookupKey').update_all(type: 'ForemanPuppet::PuppetclassLookupKey')
|
8
|
+
TaxableTaxonomy.where(taxable_type: 'Environment').update_all(taxable_type: 'ForemanPuppet::Environment')
|
9
|
+
end
|
10
|
+
|
11
|
+
def down
|
12
|
+
%w[PuppetclassLookupKey Puppetclass Environment ConfigGroup].each do |type|
|
13
|
+
Audit.where(auditable_type: "ForemanPuppet::#{type}").update_all(auditable_type: type)
|
14
|
+
Permission.where(resource_type: "ForemanPuppet::#{type}").update_all(resource_type: type)
|
15
|
+
end
|
16
|
+
LookupKey.where(type: 'ForemanPuppet::PuppetclassLookupKey').update_all(type: 'PuppetclassLookupKey')
|
17
|
+
TaxableTaxonomy.where(taxable_type: 'ForemanPuppet::Environment').update_all(taxable_type: 'Environment')
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
class CreateHostPuppetFacet < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
create_table :host_puppet_facets do |t|
|
4
|
+
t.references :host, foreign_key: true
|
5
|
+
t.references :environment, foreign_key: true
|
6
|
+
t.references :puppet_proxy, foreign_key: { to_table: :smart_proxies }
|
7
|
+
t.timestamps null: true
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
class CreateHostgroupPuppetFacet < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
create_table :hostgroup_puppet_facets do |t|
|
4
|
+
t.references :hostgroup, foreign_key: true
|
5
|
+
t.references :environment, foreign_key: true
|
6
|
+
t.references :puppet_proxy, foreign_key: { to_table: :smart_proxies }
|
7
|
+
t.timestamps null: true
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
class MigrateEnvironmentToPuppetFacet < ActiveRecord::Migration[6.0]
|
2
|
+
def up
|
3
|
+
puppet_hostgroups = ::Hostgroup.unscoped.where.not(environment_id: nil).pluck(:id, :environment_id)
|
4
|
+
puppet_hostgroups.map! { |hg_id, env_id| { hostgroup_id: hg_id, environment_id: env_id } }
|
5
|
+
ForemanPuppet::HostgroupPuppetFacet.insert_all(puppet_hostgroups) if puppet_hostgroups.any?
|
6
|
+
|
7
|
+
puppet_hosts = Host::Managed.unscoped.where.not(environment_id: nil).pluck(:id, :environment_id)
|
8
|
+
puppet_hosts.map! { |host_id, env_id| { host_id: host_id, environment_id: env_id } }
|
9
|
+
ForemanPuppet::HostPuppetFacet.insert_all(puppet_hosts) if puppet_hosts.any?
|
10
|
+
end
|
11
|
+
|
12
|
+
def down
|
13
|
+
hostgroup_facet_ids = ForemanPuppet::HostgroupPuppetFacet.all.pluck(:hostgroup_id, :environment_id)
|
14
|
+
hostgroup_facet_ids.each do |hostgroup_id, env_id|
|
15
|
+
::Hostgroup.unscoped.where(id: hostgroup_id).update_all(environment_id: env_id)
|
16
|
+
end
|
17
|
+
host_facet_ids = ForemanPuppet::HostPuppetFacet.all.pluck(:host_id, :environment_id)
|
18
|
+
host_facet_ids.each do |host_id, env_id|
|
19
|
+
::Host::Managed.unscoped.where(id: host_id).update_all(environment_id: env_id)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
class MigrateHostTypeInHostConfigGroups < ActiveRecord::Migration[6.0]
|
2
|
+
def up
|
3
|
+
host_config_group_ids = HostConfigGroup.where(host_type: %w[Host::Base Host::Managed]).pluck(:host_id).uniq
|
4
|
+
host_config_group_ids.each do |host_id|
|
5
|
+
host_facet_id = ForemanPuppet::HostPuppetFacet.where(host_id: host_id).pick(:id)
|
6
|
+
HostConfigGroup.where(host_type: %w[Host::Base Host::Managed], host_id: host_id).update_all(host_type: 'ForemanPuppet::HostPuppetFacet', host_id: host_facet_id)
|
7
|
+
end
|
8
|
+
hostgroup_config_group_ids = HostConfigGroup.where(host_type: 'Hostgroup').pluck(:host_id).uniq
|
9
|
+
hostgroup_config_group_ids.each do |hostgroup_id|
|
10
|
+
hostgroup_facet_id = ForemanPuppet::HostgroupPuppetFacet.where(hostgroup_id: hostgroup_id).pick(:id)
|
11
|
+
HostConfigGroup.where(host_type: 'Hostgroup', host_id: hostgroup_id).update_all(host_type: 'ForemanPuppet::HostgroupPuppetFacet', host_id: hostgroup_facet_id)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def down
|
16
|
+
host_config_group_ids = HostConfigGroup.where(host_type: 'ForemanPuppet::HostPuppetFacet').pluck(:host_id).uniq
|
17
|
+
host_facet_ids = Hash[ForemanPuppet::HostPuppetFacet.where(id: host_config_group_ids).pluck(:id, :host_id)]
|
18
|
+
host_config_group_ids.each do |host_puppet_facet_id|
|
19
|
+
HostConfigGroup.where(host_type: 'ForemanPuppet::HostPuppetFacet', host_id: host_puppet_facet_id)
|
20
|
+
.update_all(host_type: 'Host::Managed', host_id: host_facet_ids[host_puppet_facet_id])
|
21
|
+
end
|
22
|
+
hostgroup_config_group_ids = HostConfigGroup.where(host_type: 'ForemanPuppet::HostgroupPuppetFacet').pluck(:host_id).uniq
|
23
|
+
hostgroup_facet_ids = Hash[ForemanPuppet::HostgroupPuppetFacet.where(id: hostgroup_config_group_ids).pluck(:id, :hostgroup_id)]
|
24
|
+
hostgroup_config_group_ids.each do |hostgroup_facet_id|
|
25
|
+
HostConfigGroup.where(host_type: 'ForemanPuppet::HostgroupPuppetFacet', host_id: hostgroup_facet_id)
|
26
|
+
.update_all(host_type: 'Hostgroup', host_id: hostgroup_facet_ids[hostgroup_facet_id])
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
class MigratePuppetclassesToFacets < ActiveRecord::Migration[6.0]
|
2
|
+
class FakeHostClass < ApplicationRecord
|
3
|
+
self.table_name = 'host_classes'
|
4
|
+
end
|
5
|
+
|
6
|
+
class FakeHostgroupClass < ApplicationRecord
|
7
|
+
self.table_name = 'hostgroup_classes'
|
8
|
+
end
|
9
|
+
|
10
|
+
def up
|
11
|
+
add_reference :host_classes, :host_puppet_facet, foreign_key: true, index: true
|
12
|
+
add_reference :hostgroup_classes, :hostgroup_puppet_facet, foreign_key: true, index: true
|
13
|
+
|
14
|
+
host_ids = FakeHostClass.all.pluck(:host_id).uniq
|
15
|
+
host_ids.each do |host_id|
|
16
|
+
host_facet = ForemanPuppet::HostPuppetFacet.find_by(host_id: host_id)
|
17
|
+
ForemanPuppet::HostClass.where(host_id: host_id).update_all(host_puppet_facet_id: host_facet.id)
|
18
|
+
end
|
19
|
+
hostgroup_ids = FakeHostgroupClass.all.pluck(:hostgroup_id).uniq
|
20
|
+
hostgroup_ids.each do |hostgroup_id|
|
21
|
+
hostgroup_facet = ForemanPuppet::HostgroupPuppetFacet.find_by(hostgroup_id: hostgroup_id)
|
22
|
+
ForemanPuppet::HostgroupClass.where(hostgroup_id: hostgroup_id).update_all(hostgroup_puppet_facet_id: hostgroup_facet.id)
|
23
|
+
end
|
24
|
+
|
25
|
+
change_column_null(:host_classes, :host_id, true)
|
26
|
+
change_column_null(:hostgroup_classes, :hostgroup_id, true)
|
27
|
+
# remove_reference(:host_classes, :host, index: true, foreign_key: true)
|
28
|
+
# remove_reference(:hostgroup_classes, :hostgroup, index: true, foreign_key: true)
|
29
|
+
end
|
30
|
+
|
31
|
+
def down
|
32
|
+
# add_reference :host_classes, :host, foreign_key: true, index: true
|
33
|
+
# add_reference :hostgroup_classes, :hostgroup, foreign_key: true, index: true
|
34
|
+
|
35
|
+
host_facets_ids = ForemanPuppet::HostClass.joins(:host_puppet_facet).pluck(:host_puppet_facet_id, 'host_puppet_facets.host_id')
|
36
|
+
host_facets_ids.each do |host_facet_id, host_id|
|
37
|
+
ForemanPuppet::HostClass.where(host_puppet_facet_id: host_facet_id).update_all(host_id: host_id)
|
38
|
+
end
|
39
|
+
hostgroup_ids = ForemanPuppet::HostgroupClass.joins(:hostgroup_puppet_facet).pluck(:hostgroup_puppet_facet_id, 'hostgroup_puppet_facets.hostgroup_id')
|
40
|
+
hostgroup_ids.each do |hostgroup_facet_id, hostgroup_id|
|
41
|
+
ForemanPuppet::HostgroupClass.where(hostgroup_puppet_facet_id: hostgroup_facet_id).update_all(hostgroup_id: hostgroup_id)
|
42
|
+
end
|
43
|
+
|
44
|
+
remove_reference(:host_classes, :host_puppet_facet, index: true, foreign_key: true)
|
45
|
+
remove_reference(:hostgroup_classes, :hostgroup_puppet_facet, index: true, foreign_key: true)
|
46
|
+
end
|
47
|
+
end
|