foreman_discovery 16.3.6 → 17.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/api/v2/discovered_hosts_controller.rb +1 -0
- data/app/controllers/discovered_hosts_controller.rb +24 -35
- data/app/controllers/discovery_rules_controller.rb +12 -1
- data/app/helpers/discovered_hosts_helper.rb +1 -1
- data/app/helpers/discovery_rules_helper.rb +1 -0
- data/app/models/discovery_rule.rb +10 -5
- data/app/services/foreman_discovery/fact_to_category_resolver.rb +106 -0
- data/app/services/foreman_discovery/ui_notifications/failed_discovery.rb +34 -0
- data/app/services/foreman_discovery/ui_notifications/new_host.rb +2 -1
- data/app/views/discovered_hosts/_discovered_hosts_list.html.erb +44 -40
- data/app/views/discovery_rules/clone.erb +3 -0
- data/app/views/discovery_rules/index.html.erb +4 -0
- data/app/views/discovery_rules/welcome.html.erb +15 -0
- data/app/views/foreman_discovery/debian_kexec.erb +1 -1
- data/app/views/foreman_discovery/redhat_kexec.erb +1 -1
- data/config/routes.rb +2 -0
- data/db/seeds.d/80_discovery_ui_notification.rb +11 -5
- data/lib/foreman_discovery/engine.rb +3 -7
- data/lib/foreman_discovery/version.rb +1 -1
- data/locale/ca/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/ca/foreman_discovery.po +36 -9
- data/locale/de/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/de/foreman_discovery.po +45 -18
- data/locale/en/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/en/foreman_discovery.po +31 -4
- data/locale/en_GB/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/en_GB/foreman_discovery.po +36 -9
- data/locale/es/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/es/foreman_discovery.po +70 -41
- data/locale/foreman_discovery.pot +142 -97
- data/locale/fr/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/fr/foreman_discovery.po +76 -49
- data/locale/gl/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/gl/foreman_discovery.po +32 -5
- data/locale/it/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/it/foreman_discovery.po +44 -17
- data/locale/ja/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/ja/foreman_discovery.po +79 -54
- data/locale/ko/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/ko/foreman_discovery.po +43 -16
- data/locale/pt_BR/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/pt_BR/foreman_discovery.po +69 -39
- data/locale/ru/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/ru/foreman_discovery.po +43 -16
- data/locale/sv_SE/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/sv_SE/foreman_discovery.po +34 -7
- data/locale/zh_CN/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/zh_CN/foreman_discovery.po +114 -90
- data/locale/zh_TW/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/zh_TW/foreman_discovery.po +43 -16
- data/package.json +6 -6
- data/test/functional/api/v2/discovered_hosts_controller_test.rb +9 -0
- data/test/functional/discovery_rules_controller_test.rb +6 -1
- data/test/integration/discovered_hosts_test.rb +53 -5
- data/test/test_helper_discovery.rb +5 -0
- data/test/unit/discovery_rule_test.rb +24 -2
- data/test/unit/fact_to_category_resolver_test.rb +41 -0
- data/test/unit/ui_notifications/destroy_host_test.rb +2 -9
- data/test/unit/ui_notifications/new_host_test.rb +3 -3
- data/webpack/__mocks__/foremanReact/common/I18n.js +3 -0
- data/webpack/__mocks__/foremanReact/common/helpers.js +1 -0
- data/webpack/__mocks__/foremanReact/common/index.js +5 -0
- data/webpack/__mocks__/foremanReact/components/common/EmptyState/DefaultEmptyState.js +69 -0
- data/webpack/__mocks__/foremanReact/components/common/EmptyState/EmptyStatePattern.js +77 -0
- data/webpack/__mocks__/foremanReact/components/common/EmptyState/EmptyStatePropTypes.js +29 -0
- data/webpack/__mocks__/foremanReact/components/common/EmptyState/index.js +5 -0
- data/webpack/index.js +9 -8
- data/webpack/src/ForemanDiscovery/DiscoveredHosts/Components/EmptyState/EmptyState.js +7 -7
- data/webpack/src/ForemanDiscovery/DiscoveredHosts/Components/EmptyState/__test__/EmptyState.test.js +12 -0
- data/webpack/src/ForemanDiscovery/DiscoveredHosts/Components/EmptyState/__test__/__snapshots__/EmptyState.test.js.snap +16 -0
- data/webpack/src/ForemanDiscovery/DiscoveredHosts/Components/EmptyState/index.js +1 -1
- data/webpack/src/ForemanDiscovery/DiscoveredHosts/index.js +3 -3
- data/webpack/src/ForemanDiscovery/DiscoveryRules/Components/EmptyState/EmptyState.js +34 -0
- data/webpack/src/ForemanDiscovery/DiscoveryRules/Components/EmptyState/index.js +1 -0
- data/webpack/src/ForemanDiscovery/DiscoveryRules/Components/__test__/EmptyState.test.js +19 -0
- data/webpack/src/ForemanDiscovery/DiscoveryRules/Components/__test__/__snapshots__/EmptyState.test.js.snap +22 -0
- data/webpack/src/ForemanDiscovery/DiscoveryRules/index.js +6 -0
- data/webpack/src/reducers.js +0 -2
- metadata +25 -3
@@ -0,0 +1,29 @@
|
|
1
|
+
import PropTypes from 'prop-types';
|
2
|
+
|
3
|
+
export const actionButtonPropTypes = {
|
4
|
+
title: PropTypes.node.isRequired,
|
5
|
+
url: PropTypes.string,
|
6
|
+
onChange: PropTypes.func,
|
7
|
+
};
|
8
|
+
|
9
|
+
export const emptyStatePatternPropTypes = {
|
10
|
+
icon: PropTypes.string.isRequired,
|
11
|
+
header: PropTypes.string.isRequired,
|
12
|
+
documentation: PropTypes.oneOfType([
|
13
|
+
PropTypes.shape({
|
14
|
+
label: PropTypes.string,
|
15
|
+
buttonLabel: PropTypes.string,
|
16
|
+
url: PropTypes.string.isRequired,
|
17
|
+
}),
|
18
|
+
PropTypes.node,
|
19
|
+
]),
|
20
|
+
description: PropTypes.string.isRequired,
|
21
|
+
action: PropTypes.node,
|
22
|
+
secondaryActions: PropTypes.node,
|
23
|
+
};
|
24
|
+
|
25
|
+
export const defaultEmptyStatePropTypes = {
|
26
|
+
...emptyStatePatternPropTypes,
|
27
|
+
action: PropTypes.shape(actionButtonPropTypes),
|
28
|
+
secondaryActions: PropTypes.arrayOf(PropTypes.shape(actionButtonPropTypes)),
|
29
|
+
};
|
data/webpack/index.js
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
/* eslint import/no-unresolved: [2, { ignore: [foremanReact/*] }] */
|
2
2
|
/* eslint-disable import/no-extraneous-dependencies */
|
3
3
|
/* eslint-disable import/extensions */
|
4
|
-
import componentRegistry from
|
5
|
-
import { registerReducer } from
|
6
|
-
import reducers from
|
7
|
-
import DiscoveredHosts from
|
4
|
+
import componentRegistry from 'foremanReact/components/componentRegistry';
|
5
|
+
import { registerReducer } from 'foremanReact/common/MountingService';
|
6
|
+
import reducers from './src/reducers';
|
7
|
+
import DiscoveredHosts from './src/ForemanDiscovery/DiscoveredHosts';
|
8
|
+
import DiscoveryRules from './src/ForemanDiscovery/DiscoveryRules';
|
8
9
|
|
9
10
|
// register reducers
|
10
11
|
Object.entries(reducers).forEach(([key, reducer]) =>
|
@@ -12,7 +13,7 @@ Object.entries(reducers).forEach(([key, reducer]) =>
|
|
12
13
|
);
|
13
14
|
|
14
15
|
// register components for erb mounting
|
15
|
-
componentRegistry.
|
16
|
-
name:
|
17
|
-
type:
|
18
|
-
|
16
|
+
componentRegistry.registerMultiple([
|
17
|
+
{ name: 'DiscoveredHosts', type: DiscoveredHosts },
|
18
|
+
{ name: 'DiscoveryRules', type: DiscoveryRules },
|
19
|
+
]);
|
@@ -1,11 +1,11 @@
|
|
1
|
-
import React from
|
2
|
-
import PropTypes from
|
3
|
-
import { translate as __ } from
|
4
|
-
import ForemanEmptyState from
|
1
|
+
import React from 'react';
|
2
|
+
import PropTypes from 'prop-types';
|
3
|
+
import { translate as __ } from 'foremanReact/common/I18n';
|
4
|
+
import ForemanEmptyState from 'foremanReact/components/common/EmptyState';
|
5
5
|
|
6
|
-
const EmptyState =
|
6
|
+
const EmptyState = props => {
|
7
7
|
const description = __(
|
8
|
-
|
8
|
+
'No discovered hosts found in this context. This page shows discovered bare-metal or virtual nodes waiting to be provisioned.'
|
9
9
|
);
|
10
10
|
const documentation = {
|
11
11
|
url: props.docUrl,
|
@@ -22,7 +22,7 @@ const EmptyState = (props) => {
|
|
22
22
|
};
|
23
23
|
|
24
24
|
EmptyState.propTypes = {
|
25
|
-
docUrl: PropTypes.string,
|
25
|
+
docUrl: PropTypes.string.isRequired,
|
26
26
|
};
|
27
27
|
|
28
28
|
export default EmptyState;
|
data/webpack/src/ForemanDiscovery/DiscoveredHosts/Components/EmptyState/__test__/EmptyState.test.js
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
import { testComponentSnapshotsWithFixtures } from '@theforeman/test';
|
2
|
+
|
3
|
+
import ForemanEmptyState from '../EmptyState';
|
4
|
+
|
5
|
+
const fixtures = {
|
6
|
+
'render with Props': { docUrl: 'https://foreman.example.com' },
|
7
|
+
};
|
8
|
+
|
9
|
+
describe('ForemanEmptyState', () => {
|
10
|
+
describe('rendering', () =>
|
11
|
+
testComponentSnapshotsWithFixtures(ForemanEmptyState, fixtures));
|
12
|
+
});
|
@@ -0,0 +1,16 @@
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2
|
+
|
3
|
+
exports[`ForemanEmptyState rendering render with Props 1`] = `
|
4
|
+
<DefaultEmptyState
|
5
|
+
description="No discovered hosts found in this context. This page shows discovered bare-metal or virtual nodes waiting to be provisioned."
|
6
|
+
documentation={
|
7
|
+
Object {
|
8
|
+
"url": "https://foreman.example.com",
|
9
|
+
}
|
10
|
+
}
|
11
|
+
header="Foreman Discovery"
|
12
|
+
icon="gears"
|
13
|
+
iconType="fa"
|
14
|
+
secondaryActions={Array []}
|
15
|
+
/>
|
16
|
+
`;
|
@@ -1 +1 @@
|
|
1
|
-
export { default } from
|
1
|
+
export { default } from './EmptyState';
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import React from
|
2
|
-
import EmptyState from
|
1
|
+
import React from 'react';
|
2
|
+
import EmptyState from './Components/EmptyState';
|
3
3
|
|
4
|
-
const DiscoveredHosts =
|
4
|
+
const DiscoveredHosts = props => <EmptyState {...props} />;
|
5
5
|
|
6
6
|
export default DiscoveredHosts;
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import PropTypes from 'prop-types';
|
3
|
+
import { translate as __ } from 'foremanReact/common/I18n';
|
4
|
+
import ForemanEmptyState from 'foremanReact/components/common/EmptyState';
|
5
|
+
import { foremanUrl } from 'foremanReact/common/helpers';
|
6
|
+
|
7
|
+
const EmptyState = props => {
|
8
|
+
const action = {
|
9
|
+
title: __('Create Rule'),
|
10
|
+
url: foremanUrl('/discovery_rules/new'),
|
11
|
+
};
|
12
|
+
const description = __(
|
13
|
+
'No Discovery Rules found in this context. Create Discovery Rules to perform automated provisioning on Discovered Hosts'
|
14
|
+
);
|
15
|
+
const documentation = {
|
16
|
+
url: props.docUrl,
|
17
|
+
};
|
18
|
+
return (
|
19
|
+
<ForemanEmptyState
|
20
|
+
header="Discovery Rules"
|
21
|
+
description={description}
|
22
|
+
icon="gavel"
|
23
|
+
iconType="fa"
|
24
|
+
documentation={documentation}
|
25
|
+
action={action}
|
26
|
+
/>
|
27
|
+
);
|
28
|
+
};
|
29
|
+
|
30
|
+
EmptyState.propTypes = {
|
31
|
+
docUrl: PropTypes.string.isRequired,
|
32
|
+
};
|
33
|
+
|
34
|
+
export default EmptyState;
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default } from './EmptyState';
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import { testComponentSnapshotsWithFixtures } from '@theforeman/test';
|
2
|
+
import ForemanEmptyState from '../EmptyState';
|
3
|
+
|
4
|
+
const action = {
|
5
|
+
title: 'action-title',
|
6
|
+
url: `action-url`,
|
7
|
+
};
|
8
|
+
|
9
|
+
const fixtures = {
|
10
|
+
'render with Props': {
|
11
|
+
docUrl: 'https://foreman.example.com',
|
12
|
+
action,
|
13
|
+
},
|
14
|
+
};
|
15
|
+
|
16
|
+
describe('ForemanEmptyState', () => {
|
17
|
+
describe('rendering', () =>
|
18
|
+
testComponentSnapshotsWithFixtures(ForemanEmptyState, fixtures));
|
19
|
+
});
|
@@ -0,0 +1,22 @@
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2
|
+
|
3
|
+
exports[`ForemanEmptyState rendering render with Props 1`] = `
|
4
|
+
<DefaultEmptyState
|
5
|
+
action={
|
6
|
+
Object {
|
7
|
+
"title": "Create Rule",
|
8
|
+
"url": "/discovery_rules/new",
|
9
|
+
}
|
10
|
+
}
|
11
|
+
description="No Discovery Rules found in this context. Create Discovery Rules to perform automated provisioning on Discovered Hosts"
|
12
|
+
documentation={
|
13
|
+
Object {
|
14
|
+
"url": "https://foreman.example.com",
|
15
|
+
}
|
16
|
+
}
|
17
|
+
header="Discovery Rules"
|
18
|
+
icon="gavel"
|
19
|
+
iconType="fa"
|
20
|
+
secondaryActions={Array []}
|
21
|
+
/>
|
22
|
+
`;
|
data/webpack/src/reducers.js
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman_discovery
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 17.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aditi Puntambekar
|
@@ -21,6 +21,7 @@ authors:
|
|
21
21
|
- David Davis
|
22
22
|
- Djebran Lezzoum
|
23
23
|
- Dominic Cleal
|
24
|
+
- Dominik Matoulek
|
24
25
|
- Eric D. Helms
|
25
26
|
- Ewoud Kohl van Wijngaarden
|
26
27
|
- Frank Wall
|
@@ -55,6 +56,7 @@ authors:
|
|
55
56
|
- Phirince Philip
|
56
57
|
- Rahul Bajaj
|
57
58
|
- Robert Antoni Buj Gelonch
|
59
|
+
- Ron Lavi
|
58
60
|
- Scubafloyd
|
59
61
|
- Sean O\'Keeffe
|
60
62
|
- Sebastian Gräßl
|
@@ -71,7 +73,7 @@ authors:
|
|
71
73
|
autorequire:
|
72
74
|
bindir: bin
|
73
75
|
cert_chain: []
|
74
|
-
date: 2021-
|
76
|
+
date: 2021-05-03 00:00:00.000000000 Z
|
75
77
|
dependencies: []
|
76
78
|
description: MaaS Discovery Plugin engine for Foreman
|
77
79
|
email: gsutclif@redhat.com
|
@@ -105,6 +107,7 @@ files:
|
|
105
107
|
- app/models/nic/managed_extensions.rb
|
106
108
|
- app/models/setting/discovered.rb
|
107
109
|
- app/services/foreman_discovery/fact_parser.rb
|
110
|
+
- app/services/foreman_discovery/fact_to_category_resolver.rb
|
108
111
|
- app/services/foreman_discovery/host_converter.rb
|
109
112
|
- app/services/foreman_discovery/host_fact_importer.rb
|
110
113
|
- app/services/foreman_discovery/import_hook.rb
|
@@ -120,6 +123,7 @@ files:
|
|
120
123
|
- app/services/foreman_discovery/node_api/power_service.rb
|
121
124
|
- app/services/foreman_discovery/subnet_suggestion.rb
|
122
125
|
- app/services/foreman_discovery/ui_notifications/destroy_host.rb
|
126
|
+
- app/services/foreman_discovery/ui_notifications/failed_discovery.rb
|
123
127
|
- app/services/foreman_discovery/ui_notifications/new_host.rb
|
124
128
|
- app/views/api/v2/discovered_hosts/base.json.rabl
|
125
129
|
- app/views/api/v2/discovered_hosts/index.json.rabl
|
@@ -152,9 +156,11 @@ files:
|
|
152
156
|
- app/views/discovered_mailer/discovered_summary.text.erb
|
153
157
|
- app/views/discovery_rules/_form.html.erb
|
154
158
|
- app/views/discovery_rules/_template_inline.erb
|
159
|
+
- app/views/discovery_rules/clone.erb
|
155
160
|
- app/views/discovery_rules/edit.html.erb
|
156
161
|
- app/views/discovery_rules/index.html.erb
|
157
162
|
- app/views/discovery_rules/new.html.erb
|
163
|
+
- app/views/discovery_rules/welcome.html.erb
|
158
164
|
- app/views/foreman_discovery/debian_kexec.erb
|
159
165
|
- app/views/foreman_discovery/redhat_kexec.erb
|
160
166
|
- config/as_deprecation_whitelist.yaml
|
@@ -274,16 +280,31 @@ files:
|
|
274
280
|
- test/unit/discovery_rule_test.rb
|
275
281
|
- test/unit/discovery_taxonomy_extensions_test.rb
|
276
282
|
- test/unit/fact_parser_test.rb
|
283
|
+
- test/unit/fact_to_category_resolver_test.rb
|
277
284
|
- test/unit/host_discovered_test.rb
|
278
285
|
- test/unit/lldp_neighbors_test.rb
|
279
286
|
- test/unit/managed_extensions_test.rb
|
280
287
|
- test/unit/setting_discovered_test.rb
|
281
288
|
- test/unit/ui_notifications/destroy_host_test.rb
|
282
289
|
- test/unit/ui_notifications/new_host_test.rb
|
290
|
+
- webpack/__mocks__/foremanReact/common/I18n.js
|
291
|
+
- webpack/__mocks__/foremanReact/common/helpers.js
|
292
|
+
- webpack/__mocks__/foremanReact/common/index.js
|
293
|
+
- webpack/__mocks__/foremanReact/components/common/EmptyState/DefaultEmptyState.js
|
294
|
+
- webpack/__mocks__/foremanReact/components/common/EmptyState/EmptyStatePattern.js
|
295
|
+
- webpack/__mocks__/foremanReact/components/common/EmptyState/EmptyStatePropTypes.js
|
296
|
+
- webpack/__mocks__/foremanReact/components/common/EmptyState/index.js
|
283
297
|
- webpack/index.js
|
284
298
|
- webpack/src/ForemanDiscovery/DiscoveredHosts/Components/EmptyState/EmptyState.js
|
299
|
+
- webpack/src/ForemanDiscovery/DiscoveredHosts/Components/EmptyState/__test__/EmptyState.test.js
|
300
|
+
- webpack/src/ForemanDiscovery/DiscoveredHosts/Components/EmptyState/__test__/__snapshots__/EmptyState.test.js.snap
|
285
301
|
- webpack/src/ForemanDiscovery/DiscoveredHosts/Components/EmptyState/index.js
|
286
302
|
- webpack/src/ForemanDiscovery/DiscoveredHosts/index.js
|
303
|
+
- webpack/src/ForemanDiscovery/DiscoveryRules/Components/EmptyState/EmptyState.js
|
304
|
+
- webpack/src/ForemanDiscovery/DiscoveryRules/Components/EmptyState/index.js
|
305
|
+
- webpack/src/ForemanDiscovery/DiscoveryRules/Components/__test__/EmptyState.test.js
|
306
|
+
- webpack/src/ForemanDiscovery/DiscoveryRules/Components/__test__/__snapshots__/EmptyState.test.js.snap
|
307
|
+
- webpack/src/ForemanDiscovery/DiscoveryRules/index.js
|
287
308
|
- webpack/src/reducers.js
|
288
309
|
homepage: https://github.com/theforeman/foreman_discovery
|
289
310
|
licenses:
|
@@ -345,8 +366,9 @@ test_files:
|
|
345
366
|
- test/unit/setting_discovered_test.rb
|
346
367
|
- test/unit/discovered_extensions_test.rb
|
347
368
|
- test/unit/discovery_attribute_set_test.rb
|
348
|
-
- test/unit/host_discovered_test.rb
|
349
369
|
- test/unit/managed_extensions_test.rb
|
370
|
+
- test/unit/host_discovered_test.rb
|
350
371
|
- test/unit/discovery_rule_test.rb
|
372
|
+
- test/unit/fact_to_category_resolver_test.rb
|
351
373
|
- test/test_plugin_helper.rb
|
352
374
|
- test/test_helper_discovery.rb
|