foreman_puppet 4.0.0 → 4.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +2 -1
- data/db/migrate/20220208135305_migrate_environment_ignore_type.foreman_puppet.rb +2 -1
- data/lib/foreman_puppet/engine.rb +1 -0
- data/lib/foreman_puppet/register.rb +2 -1
- data/lib/foreman_puppet/version.rb +1 -1
- data/webpack/src/Extends/Host/PuppetTab/Routes.js +12 -8
- data/webpack/src/Extends/Host/PuppetTab/SubTabs/ENCPreview/ENCTab.js +61 -0
- data/webpack/src/Extends/Host/PuppetTab/SubTabs/ENCPreview/index.js +56 -0
- data/webpack/src/Extends/Host/PuppetTab/SubTabs/EmptyPage.js +7 -6
- data/webpack/src/Extends/Host/PuppetTab/SubTabs/Reports/components/DescriptionCard.js +23 -6
- data/webpack/src/Extends/Host/PuppetTab/SubTabs/Reports/index.js +6 -1
- data/webpack/src/Extends/Host/PuppetTab/constants.js +1 -1
- metadata +51 -50
- data/locale/en/foreman_puppet.edit.po +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 796b143175fddce006bbbca2b1cc835e53ef870b5efe03ace7d4826c7cf7a1da
|
4
|
+
data.tar.gz: 69dc252763e2625dbd25f6099b5474eea4ca566fa5a1b5161b780ff9c12b3b45
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd64ee2f2f476cb19ec7bff88069d74a273ff7ba4035581ae197fda484f9fd42b9361fb5e1bade978201123b43ed09336e795af17455e44d5817fcf6570eedaa
|
7
|
+
data.tar.gz: 1ea07c0fd65f7b9d5a14ef2c8b4d6bd3b7c16ea1bc48edad123ba7acd5493891b879ad80ecf7fa8b40242c4114fdf48a4b1c8c9e6091928b8e286cfd90838609
|
data/README.md
CHANGED
@@ -37,6 +37,7 @@ You can install it on Foreman 2.5 to prepare for the Foreman update.
|
|
37
37
|
|
38
38
|
|Foreman version|Plugin version|Notes |
|
39
39
|
|---------------|--------------|------------------------------------------|
|
40
|
+
| >= 3.3 | ~> 4.0 | Required |
|
40
41
|
| >= 3.2 | ~> 3.0 | Required |
|
41
42
|
| ~> 3.1 | ~> 2.0 | Required |
|
42
43
|
| ~> 3.0 | ~> 1.0 | Required |
|
@@ -78,7 +79,7 @@ Fork and send a Pull Request. Thanks!
|
|
78
79
|
|
79
80
|
## Copyright
|
80
81
|
|
81
|
-
Copyright (c) *
|
82
|
+
Copyright (c) *2022* *The Foreman developers*
|
82
83
|
|
83
84
|
This program is free software: you can redistribute it and/or modify
|
84
85
|
it under the terms of the GNU General Public License as published by
|
@@ -7,7 +7,8 @@ class MigrateEnvironmentIgnoreType < ActiveRecord::Migration[6.0]
|
|
7
7
|
new_types = tax.ignore_types.reject { |type| type == 'Environment' }
|
8
8
|
tax.update_columns(ignore_types: new_types)
|
9
9
|
taxable_rows = environment_ids.map do |env_id|
|
10
|
-
{ taxable_id: env_id, taxable_type: 'ForemanPuppet::Environment', taxonomy_id: tax.id }
|
10
|
+
data = { taxable_id: env_id, taxable_type: 'ForemanPuppet::Environment', taxonomy_id: tax.id }
|
11
|
+
TaxableTaxonomy.column_names.include?('created_at') ? data.merge({ created_at: Time.zone.now, updated_at: Time.zone.now }) : data
|
11
12
|
end
|
12
13
|
TaxableTaxonomy.insert_all(taxable_rows) if taxable_rows.any?
|
13
14
|
end
|
@@ -58,6 +58,7 @@ module ForemanPuppet
|
|
58
58
|
::Api::V2::TemplateCombinationsController.include ForemanPuppet::Extensions::ApiTemplateCombinationsController
|
59
59
|
::Api::V2::HostsController.include ForemanPuppet::Extensions::ParametersHost
|
60
60
|
::Api::V2::HostgroupsController.include ForemanPuppet::Extensions::ParametersHostgroup
|
61
|
+
::ComputeResourcesVmsController.helper ForemanPuppet::HostsAndHostgroupsHelper
|
61
62
|
::OperatingsystemsController.prepend ForemanPuppet::Extensions::OperatingsystemsController
|
62
63
|
::HostsController.include ForemanPuppet::Extensions::HostsControllerExtensions
|
63
64
|
::HostsController.include ForemanPuppet::Extensions::ParametersHost
|
@@ -145,7 +145,8 @@ Foreman::Plugin.register :foreman_puppet do
|
|
145
145
|
'foreman_puppet/api/v2/puppetclasses' => [:destroy] },
|
146
146
|
resource_type: 'ForemanPuppet::Puppetclass'
|
147
147
|
permission :import_puppetclasses, { 'foreman_puppet/puppetclasses' => %i[import_environments obsolete_and_new],
|
148
|
-
'foreman_puppet/api/v2/environments' => [:import_puppetclasses]
|
148
|
+
'foreman_puppet/api/v2/environments' => [:import_puppetclasses],
|
149
|
+
'api/v2/smart_proxies' => [:import_puppetclasses] },
|
149
150
|
resource_type: 'ForemanPuppet::Puppetclass'
|
150
151
|
permission :edit_classes, { :host_editing => [:edit_classes],
|
151
152
|
'foreman_puppet/api/v2/host_classes' => %i[index create destroy] },
|
@@ -1,27 +1,31 @@
|
|
1
1
|
import PropTypes from 'prop-types';
|
2
2
|
import React from 'react';
|
3
3
|
import { Route, Switch, Redirect } from 'react-router-dom';
|
4
|
+
import { translate as __ } from 'foremanReact/common/I18n';
|
4
5
|
import { route } from './helpers';
|
5
6
|
import EmptyPage from './SubTabs/EmptyPage';
|
6
7
|
import Reports from './SubTabs/Reports';
|
8
|
+
import ENCPreview from './SubTabs/ENCPreview';
|
7
9
|
|
8
10
|
const SecondaryTabRoutes = ({ hostName, hostInfo, status }) => (
|
9
11
|
<Switch>
|
10
12
|
<Route path={route('reports')}>
|
11
|
-
{hostName
|
12
|
-
<Reports hostName={hostName} hostInfo={hostInfo} status={status} />
|
13
|
-
) : (
|
14
|
-
<EmptyPage header="Reports" />
|
15
|
-
)}
|
13
|
+
<Reports hostName={hostName} hostInfo={hostInfo} status={status} />
|
16
14
|
</Route>
|
17
15
|
<Route path={route('assigned')}>
|
18
|
-
<EmptyPage
|
16
|
+
<EmptyPage
|
17
|
+
header={__('Assigned classes')}
|
18
|
+
description={__('This tab is still a work in progress')}
|
19
|
+
/>
|
19
20
|
</Route>
|
20
21
|
<Route path={route('smart-classes')}>
|
21
|
-
<EmptyPage
|
22
|
+
<EmptyPage
|
23
|
+
header={__('Smart class parameters')}
|
24
|
+
description={__('This tab is still a work in progress')}
|
25
|
+
/>
|
22
26
|
</Route>
|
23
27
|
<Route path={route('yaml')}>
|
24
|
-
<
|
28
|
+
<ENCPreview hostName={hostName} />
|
25
29
|
</Route>
|
26
30
|
<Redirect to={route('reports')} />
|
27
31
|
</Switch>
|
@@ -0,0 +1,61 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import PropTypes from 'prop-types';
|
3
|
+
import {
|
4
|
+
CodeBlock,
|
5
|
+
CodeBlockAction,
|
6
|
+
CodeBlockCode,
|
7
|
+
ClipboardCopyButton,
|
8
|
+
} from '@patternfly/react-core';
|
9
|
+
|
10
|
+
export const ENCTab = ({ encData }) => {
|
11
|
+
const [copied, setCopied] = React.useState(false);
|
12
|
+
|
13
|
+
const code = `${encData}`;
|
14
|
+
|
15
|
+
const clipboardCopyFunc = (event, text) => {
|
16
|
+
const clipboard = event.currentTarget.parentElement;
|
17
|
+
const el = document.createElement('textarea');
|
18
|
+
el.value = text.toString();
|
19
|
+
clipboard.appendChild(el);
|
20
|
+
el.select();
|
21
|
+
document.execCommand('copy');
|
22
|
+
clipboard.removeChild(el);
|
23
|
+
};
|
24
|
+
|
25
|
+
const onClick = (event, text) => {
|
26
|
+
clipboardCopyFunc(event, text);
|
27
|
+
setCopied(true);
|
28
|
+
};
|
29
|
+
|
30
|
+
const actions = (
|
31
|
+
<CodeBlockAction>
|
32
|
+
<ClipboardCopyButton
|
33
|
+
id="copy-button"
|
34
|
+
textId="code-content"
|
35
|
+
aria-label="Copy to clipboard"
|
36
|
+
onClick={e => onClick(e, code)}
|
37
|
+
exitDelay={600}
|
38
|
+
maxWidth="110px"
|
39
|
+
variant="plain"
|
40
|
+
>
|
41
|
+
{copied ? 'Successfully copied to clipboard!' : 'Copy to clipboard'}
|
42
|
+
</ClipboardCopyButton>
|
43
|
+
</CodeBlockAction>
|
44
|
+
);
|
45
|
+
|
46
|
+
return (
|
47
|
+
<CodeBlock actions={actions}>
|
48
|
+
<CodeBlockCode id="code-content">{code}</CodeBlockCode>
|
49
|
+
</CodeBlock>
|
50
|
+
);
|
51
|
+
};
|
52
|
+
|
53
|
+
ENCTab.propTypes = {
|
54
|
+
encData: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),
|
55
|
+
};
|
56
|
+
|
57
|
+
ENCTab.defaultProps = {
|
58
|
+
encData: undefined,
|
59
|
+
};
|
60
|
+
|
61
|
+
export default ENCTab;
|
@@ -0,0 +1,56 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { useAPI } from 'foremanReact/common/hooks/API/APIHooks';
|
3
|
+
import PropTypes from 'prop-types';
|
4
|
+
|
5
|
+
import Skeleton from 'react-loading-skeleton';
|
6
|
+
import EmptyState from 'foremanReact/components/common/EmptyState/EmptyStatePattern';
|
7
|
+
import { STATUS } from 'foremanReact/constants';
|
8
|
+
import { EmptyStateIcon } from '@patternfly/react-core';
|
9
|
+
import { ExclamationCircleIcon } from '@patternfly/react-icons';
|
10
|
+
import { global_danger_color_200 as dangerColor } from '@patternfly/react-tokens';
|
11
|
+
import { translate as __ } from 'foremanReact/common/I18n';
|
12
|
+
import { ENCTab } from './ENCTab';
|
13
|
+
|
14
|
+
const ENCPreview = ({ hostName }) => {
|
15
|
+
const options = {
|
16
|
+
params: { name: hostName, format: 'yml' },
|
17
|
+
key: 'PUPPET_ENC_PREVIEW',
|
18
|
+
};
|
19
|
+
const url = `${window.location.origin.toString()}/foreman_puppet/hosts/${hostName}/externalNodes`;
|
20
|
+
const { response, status } = useAPI('get', url, options);
|
21
|
+
|
22
|
+
if (status === STATUS.PENDING) {
|
23
|
+
return <Skeleton count={5} />;
|
24
|
+
}
|
25
|
+
|
26
|
+
if (status === STATUS.ERROR || !hostName) {
|
27
|
+
const description = !hostName
|
28
|
+
? __("Couldn't find any ENC data for this host")
|
29
|
+
: response?.response?.data?.message;
|
30
|
+
const icon = (
|
31
|
+
<EmptyStateIcon icon={ExclamationCircleIcon} color={dangerColor.value} />
|
32
|
+
);
|
33
|
+
return (
|
34
|
+
<EmptyState header={__('Error!')} icon={icon} description={description} />
|
35
|
+
);
|
36
|
+
}
|
37
|
+
if (response !== '' || response !== undefined) {
|
38
|
+
return (
|
39
|
+
<div className="enc-preview-tab" padding="16px 24px">
|
40
|
+
<ENCTab encData={response} />
|
41
|
+
</div>
|
42
|
+
);
|
43
|
+
}
|
44
|
+
|
45
|
+
return null;
|
46
|
+
};
|
47
|
+
|
48
|
+
ENCPreview.propTypes = {
|
49
|
+
hostName: PropTypes.string,
|
50
|
+
};
|
51
|
+
|
52
|
+
ENCPreview.defaultProps = {
|
53
|
+
hostName: undefined,
|
54
|
+
};
|
55
|
+
|
56
|
+
export default ENCPreview;
|
@@ -2,18 +2,19 @@ import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
3
3
|
import PFEmptyPage from 'foremanReact/components/common/EmptyState/EmptyStatePattern';
|
4
4
|
|
5
|
-
const EmptyPage = ({ header }) => (
|
5
|
+
const EmptyPage = ({ header, description }) => (
|
6
6
|
<div className="host-details-tab-item">
|
7
|
-
<PFEmptyPage
|
8
|
-
icon="enterprise"
|
9
|
-
header={header}
|
10
|
-
description="This is a demo for adding content to the new host page"
|
11
|
-
/>
|
7
|
+
<PFEmptyPage icon="enterprise" header={header} description={description} />
|
12
8
|
</div>
|
13
9
|
);
|
14
10
|
|
15
11
|
EmptyPage.propTypes = {
|
16
12
|
header: PropTypes.string.isRequired,
|
13
|
+
description: PropTypes.string,
|
14
|
+
};
|
15
|
+
|
16
|
+
EmptyPage.defaultProps = {
|
17
|
+
description: null,
|
17
18
|
};
|
18
19
|
|
19
20
|
export default EmptyPage;
|
@@ -12,7 +12,14 @@ import DefaultLoaderEmptyState from 'foremanReact/components/HostDetails/Details
|
|
12
12
|
import { STATUS } from 'foremanReact/constants';
|
13
13
|
import { translate as __ } from 'foremanReact/common/I18n';
|
14
14
|
|
15
|
-
const DescriptionCard = ({
|
15
|
+
const DescriptionCard = ({
|
16
|
+
proxyName,
|
17
|
+
caProxy,
|
18
|
+
proxyId,
|
19
|
+
caProxyId,
|
20
|
+
env,
|
21
|
+
status,
|
22
|
+
}) => (
|
16
23
|
<CardTemplate header={__('Puppet details')} expandable>
|
17
24
|
<DescriptionList isCompact>
|
18
25
|
<DescriptionListGroup>
|
@@ -23,30 +30,36 @@ const DescriptionCard = ({ proxyName, caProxy, env, status }) => (
|
|
23
30
|
status={status}
|
24
31
|
>
|
25
32
|
{env && (
|
26
|
-
<a href={`/foreman_puppet/environments
|
33
|
+
<a href={`/foreman_puppet/environments/?search=name+%3D+${env}`}>
|
34
|
+
{env}
|
35
|
+
</a>
|
27
36
|
)}
|
28
37
|
</SkeletonLoader>
|
29
38
|
</DescriptionListDescription>
|
30
39
|
</DescriptionListGroup>
|
31
40
|
<DescriptionListGroup>
|
32
|
-
<DescriptionListTerm>{__('Puppet
|
41
|
+
<DescriptionListTerm>{__('Puppet Smart Proxy')}</DescriptionListTerm>
|
33
42
|
<DescriptionListDescription>
|
34
43
|
<SkeletonLoader
|
35
44
|
emptyState={<DefaultLoaderEmptyState />}
|
36
45
|
status={status}
|
37
46
|
>
|
38
|
-
{proxyName
|
47
|
+
{proxyName && (
|
48
|
+
<a href={`/smart_proxies/${proxyId}#puppet`}>{proxyName}</a>
|
49
|
+
)}
|
39
50
|
</SkeletonLoader>
|
40
51
|
</DescriptionListDescription>
|
41
52
|
</DescriptionListGroup>
|
42
53
|
<DescriptionListGroup>
|
43
|
-
<DescriptionListTerm>{__('Puppet
|
54
|
+
<DescriptionListTerm>{__('Puppet CA Smart Proxy')}</DescriptionListTerm>
|
44
55
|
<DescriptionListDescription>
|
45
56
|
<SkeletonLoader
|
46
57
|
emptyState={<DefaultLoaderEmptyState />}
|
47
58
|
status={status}
|
48
59
|
>
|
49
|
-
{caProxy
|
60
|
+
{caProxy && (
|
61
|
+
<a href={`/smart_proxies/${caProxyId}#puppet-ca`}>{caProxy}</a>
|
62
|
+
)}
|
50
63
|
</SkeletonLoader>
|
51
64
|
</DescriptionListDescription>
|
52
65
|
</DescriptionListGroup>
|
@@ -56,14 +69,18 @@ const DescriptionCard = ({ proxyName, caProxy, env, status }) => (
|
|
56
69
|
|
57
70
|
DescriptionCard.propTypes = {
|
58
71
|
caProxy: PropTypes.string,
|
72
|
+
caProxyId: PropTypes.number,
|
59
73
|
env: PropTypes.string,
|
74
|
+
proxyId: PropTypes.number,
|
60
75
|
proxyName: PropTypes.string,
|
61
76
|
status: PropTypes.string,
|
62
77
|
};
|
63
78
|
|
64
79
|
DescriptionCard.defaultProps = {
|
65
80
|
caProxy: undefined,
|
81
|
+
caProxyId: undefined,
|
66
82
|
env: undefined,
|
83
|
+
proxyId: undefined,
|
67
84
|
proxyName: undefined,
|
68
85
|
status: STATUS.PENDING,
|
69
86
|
};
|
@@ -12,6 +12,8 @@ const Reports = ({
|
|
12
12
|
puppet_proxy_name: proxyName,
|
13
13
|
puppet_ca_proxy_name: caProxy,
|
14
14
|
environment_name: env,
|
15
|
+
puppet_proxy_id: proxyId,
|
16
|
+
puppet_ca_proxy_id: caProxyId,
|
15
17
|
},
|
16
18
|
}) => (
|
17
19
|
<div className="report-tab">
|
@@ -20,6 +22,8 @@ const Reports = ({
|
|
20
22
|
<DescriptionCard
|
21
23
|
proxyName={proxyName}
|
22
24
|
caProxy={caProxy}
|
25
|
+
proxyId={proxyId}
|
26
|
+
caProxyId={caProxyId}
|
23
27
|
env={env}
|
24
28
|
status={status}
|
25
29
|
/>
|
@@ -32,12 +36,13 @@ const Reports = ({
|
|
32
36
|
);
|
33
37
|
|
34
38
|
Reports.propTypes = {
|
35
|
-
hostName: PropTypes.string
|
39
|
+
hostName: PropTypes.string,
|
36
40
|
hostInfo: PropTypes.object,
|
37
41
|
status: PropTypes.string,
|
38
42
|
};
|
39
43
|
|
40
44
|
Reports.defaultProps = {
|
45
|
+
hostName: undefined,
|
41
46
|
hostInfo: {},
|
42
47
|
status: undefined,
|
43
48
|
};
|
@@ -4,5 +4,5 @@ export const SECONDARY_TABS = [
|
|
4
4
|
{ key: 'reports', title: __('Reports') },
|
5
5
|
{ key: 'assigned', title: __('Assigned classes') },
|
6
6
|
{ key: 'smart-classes', title: __('Smart class parameters') },
|
7
|
-
{ key: 'yaml', title: __('
|
7
|
+
{ key: 'yaml', title: __('ENC Preview') },
|
8
8
|
];
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman_puppet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.
|
4
|
+
version: 4.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ondřej Ezr
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2022-
|
12
|
+
date: 2022-08-31 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Allow assigning Puppet environments and classes to the Foreman Hosts.
|
15
15
|
email:
|
@@ -224,7 +224,6 @@ files:
|
|
224
224
|
- locale/de/LC_MESSAGES/foreman_puppet.mo
|
225
225
|
- locale/de/foreman_puppet.po
|
226
226
|
- locale/en/LC_MESSAGES/foreman_puppet.mo
|
227
|
-
- locale/en/foreman_puppet.edit.po
|
228
227
|
- locale/en/foreman_puppet.po
|
229
228
|
- locale/en_GB/LC_MESSAGES/foreman_puppet.mo
|
230
229
|
- locale/en_GB/foreman_puppet.po
|
@@ -338,6 +337,8 @@ files:
|
|
338
337
|
- webpack/src/Components/Environments/Welcome.js
|
339
338
|
- webpack/src/Extends/Fills/index.js
|
340
339
|
- webpack/src/Extends/Host/PuppetTab/Routes.js
|
340
|
+
- webpack/src/Extends/Host/PuppetTab/SubTabs/ENCPreview/ENCTab.js
|
341
|
+
- webpack/src/Extends/Host/PuppetTab/SubTabs/ENCPreview/index.js
|
341
342
|
- webpack/src/Extends/Host/PuppetTab/SubTabs/EmptyPage.js
|
342
343
|
- webpack/src/Extends/Host/PuppetTab/SubTabs/Reports/components/DescriptionCard.js
|
343
344
|
- webpack/src/Extends/Host/PuppetTab/SubTabs/Reports/index.js
|
@@ -379,70 +380,70 @@ signing_key:
|
|
379
380
|
specification_version: 4
|
380
381
|
summary: Add Puppet features to Foreman
|
381
382
|
test_files:
|
382
|
-
- test/
|
383
|
-
- test/unit/foreman_puppet/puppet_class_importer_test.rb
|
384
|
-
- test/unit/foreman_puppet/template_rendering_test.rb
|
385
|
-
- test/unit/foreman_puppet/access_permissions_test.rb
|
386
|
-
- test/helpers/foreman_puppet/puppetclass_lookup_keys_helper_test.rb
|
387
|
-
- test/helpers/foreman_puppet/hosts_and_hostgroups_helper_test.rb
|
388
|
-
- test/helpers/foreman_puppet/puppetclasses_helper_test.rb
|
389
|
-
- test/integration/foreman_puppet/dashboard_js_test.rb
|
390
|
-
- test/integration/foreman_puppet/host_js_test.rb
|
391
|
-
- test/integration/foreman_puppet/hostgroup_js_test.rb
|
392
|
-
- test/integration/foreman_puppet/smartclass_parameter_js_test.rb
|
393
|
-
- test/integration/foreman_puppet/puppetclass_js_test.rb
|
394
|
-
- test/integration/foreman_puppet/environment_js_test.rb
|
395
|
-
- test/factories/foreman_puppet_factories.rb
|
396
|
-
- test/factories/host_puppet_enhancements.rb
|
397
|
-
- test/factories/proxy_puppet_enhancements.rb
|
398
|
-
- test/integration_puppet_helper.rb
|
399
|
-
- test/models/foreman_puppet/config_group_test.rb
|
383
|
+
- test/test_puppet_helper.rb
|
400
384
|
- test/models/foreman_puppet/report_test.rb
|
401
|
-
- test/models/foreman_puppet/host_puppet_facet_test.rb
|
402
385
|
- test/models/foreman_puppet/host_test.rb
|
386
|
+
- test/models/foreman_puppet/smart_proxy_test.rb
|
403
387
|
- test/models/foreman_puppet/user_test.rb
|
404
|
-
- test/models/foreman_puppet/
|
388
|
+
- test/models/foreman_puppet/config_group_class_test.rb
|
389
|
+
- test/models/foreman_puppet/config_group_test.rb
|
390
|
+
- test/models/foreman_puppet/host_puppet_facet_test.rb
|
405
391
|
- test/models/foreman_puppet/host_config_group_test.rb
|
392
|
+
- test/models/foreman_puppet/puppetclass_test.rb
|
393
|
+
- test/models/foreman_puppet/provisioning_template_test.rb
|
406
394
|
- test/models/foreman_puppet/lookup_value_test.rb
|
407
|
-
- test/models/foreman_puppet/hostgroup_test.rb
|
408
|
-
- test/models/foreman_puppet/hostgroup_puppet_facet_test.rb
|
409
395
|
- test/models/foreman_puppet/puppetclass_lookup_key_test.rb
|
396
|
+
- test/models/foreman_puppet/hostgroup_puppet_facet_test.rb
|
410
397
|
- test/models/foreman_puppet/environment_test.rb
|
411
|
-
- test/models/foreman_puppet/
|
412
|
-
- test/
|
413
|
-
- test/
|
414
|
-
- test/
|
415
|
-
- test/
|
398
|
+
- test/models/foreman_puppet/hostgroup_test.rb
|
399
|
+
- test/services/foreman_puppet/host_counter_test.rb
|
400
|
+
- test/services/foreman_puppet/host_info_providers/config_groups_info_test.rb
|
401
|
+
- test/services/foreman_puppet/host_info_providers/puppet_info_test.rb
|
402
|
+
- test/services/foreman_puppet/input_type/puppet_parameter_input_test.rb
|
403
|
+
- test/factories/foreman_puppet_factories.rb
|
404
|
+
- test/factories/host_puppet_enhancements.rb
|
405
|
+
- test/factories/proxy_puppet_enhancements.rb
|
406
|
+
- test/unit/foreman_puppet/access_permissions_test.rb
|
407
|
+
- test/unit/foreman_puppet/template_rendering_test.rb
|
408
|
+
- test/unit/foreman_puppet/puppet_class_importer_test.rb
|
409
|
+
- test/unit/foreman_puppet_test.rb
|
410
|
+
- test/graphql/mutations/hosts/create_mutation_test.rb
|
411
|
+
- test/graphql/queries/environments_query_test.rb
|
416
412
|
- test/graphql/queries/location_query_test.rb
|
413
|
+
- test/graphql/queries/puppetclass_query_test.rb
|
417
414
|
- test/graphql/queries/organization_query_test.rb
|
418
|
-
- test/graphql/queries/puppetclasses_query_test.rb
|
419
|
-
- test/graphql/queries/environment_query_test.rb
|
420
|
-
- test/graphql/queries/environments_query_test.rb
|
421
415
|
- test/graphql/queries/host_puppet_query_test.rb
|
422
|
-
- test/graphql/
|
423
|
-
- test/
|
424
|
-
- test/
|
416
|
+
- test/graphql/queries/environment_query_test.rb
|
417
|
+
- test/graphql/queries/puppetclasses_query_test.rb
|
418
|
+
- test/graphql/queries/hostgroup_puppet_query_test.rb
|
425
419
|
- test/controllers/foreman_puppet/hostgroups_controller_test.rb
|
420
|
+
- test/controllers/foreman_puppet/config_groups_controller_test.rb
|
426
421
|
- test/controllers/foreman_puppet/puppetclass_lookup_keys_controller_test.rb
|
427
422
|
- test/controllers/foreman_puppet/environments_controller_test.rb
|
428
423
|
- test/controllers/foreman_puppet/puppet_smart_proxies_controller_test.rb
|
429
424
|
- test/controllers/foreman_puppet/hosts_controller_test.rb
|
430
|
-
- test/controllers/foreman_puppet/api/v2/template_combinations_controller_test.rb
|
431
|
-
- test/controllers/foreman_puppet/api/v2/smart_class_parameters_controller_test.rb
|
432
|
-
- test/controllers/foreman_puppet/api/v2/host_classes_controller_test.rb
|
433
425
|
- test/controllers/foreman_puppet/api/v2/hostgroups_controller_test.rb
|
434
|
-
- test/controllers/foreman_puppet/api/v2/lookups_common_controller_test.rb
|
435
|
-
- test/controllers/foreman_puppet/api/v2/environments_controller_test.rb
|
436
|
-
- test/controllers/foreman_puppet/api/v2/hosts_controller_test.rb
|
437
|
-
- test/controllers/foreman_puppet/api/v2/hostgroup_classes_controller_test.rb
|
438
|
-
- test/controllers/foreman_puppet/api/v2/puppetclasses_controller_test.rb
|
439
|
-
- test/controllers/foreman_puppet/api/v2/smart_proxies_controller_test.rb
|
440
426
|
- test/controllers/foreman_puppet/api/v2/override_values_controller_test.rb
|
441
427
|
- test/controllers/foreman_puppet/api/v2/config_groups_controller_test.rb
|
428
|
+
- test/controllers/foreman_puppet/api/v2/smart_proxies_controller_test.rb
|
429
|
+
- test/controllers/foreman_puppet/api/v2/environments_controller_test.rb
|
430
|
+
- test/controllers/foreman_puppet/api/v2/hosts_controller_test.rb
|
431
|
+
- test/controllers/foreman_puppet/api/v2/lookups_common_controller_test.rb
|
432
|
+
- test/controllers/foreman_puppet/api/v2/smart_class_parameters_controller_test.rb
|
442
433
|
- test/controllers/foreman_puppet/api/v2/provisioning_templates_controller_test.rb
|
434
|
+
- test/controllers/foreman_puppet/api/v2/template_combinations_controller_test.rb
|
435
|
+
- test/controllers/foreman_puppet/api/v2/host_classes_controller_test.rb
|
436
|
+
- test/controllers/foreman_puppet/api/v2/puppetclasses_controller_test.rb
|
437
|
+
- test/controllers/foreman_puppet/api/v2/hostgroup_classes_controller_test.rb
|
443
438
|
- test/controllers/foreman_puppet/puppetclasses_controller_test.rb
|
444
|
-
- test/controllers/
|
445
|
-
- test/
|
446
|
-
- test/
|
447
|
-
- test/
|
448
|
-
- test/
|
439
|
+
- test/controllers/provisioning_templates_controller_test.rb
|
440
|
+
- test/integration/foreman_puppet/puppetclass_js_test.rb
|
441
|
+
- test/integration/foreman_puppet/host_js_test.rb
|
442
|
+
- test/integration/foreman_puppet/environment_js_test.rb
|
443
|
+
- test/integration/foreman_puppet/dashboard_js_test.rb
|
444
|
+
- test/integration/foreman_puppet/smartclass_parameter_js_test.rb
|
445
|
+
- test/integration/foreman_puppet/hostgroup_js_test.rb
|
446
|
+
- test/helpers/foreman_puppet/puppetclass_lookup_keys_helper_test.rb
|
447
|
+
- test/helpers/foreman_puppet/puppetclasses_helper_test.rb
|
448
|
+
- test/helpers/foreman_puppet/hosts_and_hostgroups_helper_test.rb
|
449
|
+
- test/integration_puppet_helper.rb
|
File without changes
|