foreman_remote_execution 7.1.1 → 7.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 58d5205206634382e90cd1d8c9a75248fb6eb0268671a01cd03a3fc2f9ff1c25
4
- data.tar.gz: a417fc114ad51630e41874b4dcb95e791d9ae26bcae087654ec13fcd984c4ba3
3
+ metadata.gz: b4f9d5aa836e3804a0b602bca132a51f4d3032b1276360f321867c135f9793c3
4
+ data.tar.gz: 7a6f9b518f336bbe91882e6c431a465b4aa80c3a262dba9e0789fecf1c9edf51
5
5
  SHA512:
6
- metadata.gz: f438ba4b0c67b2c12b541fc76d0c17ef235df5f3573e45c3a5ebb70a8a05242da62e4de32989e59d5eb94c3473647f49447b602d4474bb83cb7aaa765c54d6f7
7
- data.tar.gz: c43babb00b2d921701cbe300da9f3ec8fa59c4bec8b75a58d0f19d1fd1a3d1debcda02474e8701a35aa6d95293063b1d781d82564a7d1b76093504db221a29c2
6
+ metadata.gz: 14cf218a2c1267baedcd0980adbe51207e9beebbe8c262e2506167a5a095fb5c14447bf58147efdb5eaaf3f56120d4463572ad1d01d981f93c33f37050b0115e
7
+ data.tar.gz: f2b7c73889c483a6f134c213c65df5ba21eddcc61b2b578b5f070a98e7ff9a9a0d269c1ad6dbc341285021189e02b973b0b77e90258537b8995adddd901bc5da
@@ -9,6 +9,7 @@ module ForemanRemoteExecution
9
9
  update_api(:create) do
10
10
  param :registration_command, Hash do
11
11
  param :remote_execution_interface, String, desc: N_("Identifier of the Host interface for Remote execution")
12
+ param :setup_remote_execution_pull, :bool, desc: N_("Set 'host_registration_remote_execution_pull' parameter for the host. If it is set to true, pull provider client will be deployed on the host")
12
13
  end
13
14
  end
14
15
  end
@@ -6,6 +6,7 @@ module ForemanRemoteExecution
6
6
 
7
7
  update_api(:global, :host) do
8
8
  param :remote_execution_interface, String, desc: N_("Identifier of the Host interface for Remote execution")
9
+ param :setup_remote_execution_pull, :bool, desc: N_("Set 'host_registration_remote_execution_pull' parameter for the host. If it is set to true, pull provider client will be deployed on the host")
9
10
  end
10
11
  end
11
12
 
@@ -13,10 +14,17 @@ module ForemanRemoteExecution
13
14
 
14
15
  def host_setup_extension
15
16
  remote_execution_interface
17
+ remote_execution_pull
16
18
  reset_host_known_keys! unless @host.new_record?
17
19
  super
18
20
  end
19
21
 
22
+ def remote_execution_pull
23
+ HostParameter.where(host: @host, name: 'host_registration_remote_execution_pull').destroy_all
24
+
25
+ setup_host_param('host_registration_remote_execution_pull', ActiveRecord::Type::Boolean.new.deserialize(params['setup_remote_execution_pull']))
26
+ end
27
+
20
28
  def remote_execution_interface
21
29
  return unless params['remote_execution_interface'].present?
22
30
 
@@ -275,6 +275,7 @@ module ForemanRemoteExecution
275
275
 
276
276
  # Extend Registration module
277
277
  extend_allowed_registration_vars :remote_execution_interface
278
+ extend_allowed_registration_vars :setup_remote_execution_pull
278
279
  ForemanTasks.dynflow.eager_load_actions!
279
280
  extend_observable_events(
280
281
  ::Dynflow::Action.descendants.select do |klass|
@@ -1,3 +1,3 @@
1
1
  module ForemanRemoteExecution
2
- VERSION = '7.1.1'.freeze
2
+ VERSION = '7.2.0'.freeze
3
3
  end
@@ -0,0 +1,73 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+
4
+ import { translate as __ } from 'foremanReact/common/I18n';
5
+ import LabelIcon from 'foremanReact/components/common/LabelIcon';
6
+
7
+ import {
8
+ FormGroup,
9
+ FormSelectOption,
10
+ FormSelect,
11
+ } from '@patternfly/react-core';
12
+
13
+ const options = (value = '') => {
14
+ const defaultValue = value ? __('yes') : __('no');
15
+ const defaultLabel = `${__('Inherit from host parameter')} (${defaultValue})`;
16
+
17
+ return (
18
+ <>
19
+ <FormSelectOption key={0} value="" label={defaultLabel} />
20
+ <FormSelectOption key={1} value label={__('Yes (override)')} />
21
+ <FormSelectOption key={2} value={false} label={__('No (override)')} />
22
+ </>
23
+ );
24
+ };
25
+
26
+ const RexPull = ({ isLoading, onChange, pluginValues, configParams }) => (
27
+ <FormGroup
28
+ label={__('REX pull mode')}
29
+ isRequired
30
+ labelIcon={
31
+ <LabelIcon
32
+ text={__(
33
+ 'Setup remote execution pull mode. If set to `Yes`, pull provider client will be deployed on the registered host. The inherited value is based on the `host_registration_remote_execution_pull` parameter. It can be inherited e.g. from host group, operating system, organization. When overridden, the selected value will be stored on host parameter level.'
34
+ )}
35
+ />
36
+ }
37
+ fieldId="registration_setup_remote_execution_pull"
38
+ >
39
+ <FormSelect
40
+ value={pluginValues.setupRemoteExecutionPull}
41
+ onChange={setupRemoteExecutionPull =>
42
+ onChange({ setupRemoteExecutionPull })
43
+ }
44
+ className="without_select2"
45
+ id="registration_setup_remote_execution_pull"
46
+ isDisabled={isLoading}
47
+ isRequired
48
+ >
49
+ {/* eslint-disable-next-line camelcase */
50
+ options(configParams?.host_registration_remote_execution_pull)}
51
+ </FormSelect>
52
+ </FormGroup>
53
+ );
54
+
55
+ RexPull.propTypes = {
56
+ onChange: PropTypes.func,
57
+ isLoading: PropTypes.bool,
58
+ pluginValues: PropTypes.shape({
59
+ setupRemoteExecutionPull: PropTypes.bool,
60
+ }),
61
+ configParams: PropTypes.shape({
62
+ host_registration_remote_execution_pull: PropTypes.bool,
63
+ }),
64
+ };
65
+
66
+ RexPull.defaultProps = {
67
+ onChange: undefined,
68
+ isLoading: false,
69
+ pluginValues: {},
70
+ configParams: {},
71
+ };
72
+
73
+ export default RexPull;
@@ -3,6 +3,7 @@ import { addGlobalFill } from 'foremanReact/components/common/Fill/GlobalFill';
3
3
 
4
4
  import FeaturesDropdown from '../components/FeaturesDropdown';
5
5
  import RexInterface from '../components/RegistrationExtension/RexInterface';
6
+ import RexPull from '../components/RegistrationExtension/RexPull';
6
7
  import RecentJobsCard from '../components/RecentJobsCard';
7
8
  import KebabItems from '../components/HostKebab/KebabItems';
8
9
 
@@ -25,6 +26,12 @@ const fills = [
25
26
  component: props => <RexInterface {...props} />,
26
27
  weight: 500,
27
28
  },
29
+ {
30
+ slot: 'registrationAdvanced',
31
+ name: 'pull',
32
+ component: props => <RexPull {...props} />,
33
+ weight: 500,
34
+ },
28
35
  {
29
36
  slot: '_rex-host-features',
30
37
  name: '_rex-host-features',
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_remote_execution
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.1.1
4
+ version: 7.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Foreman Remote Execution team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-03 00:00:00.000000000 Z
11
+ date: 2022-08-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: deface
@@ -492,6 +492,7 @@ files:
492
492
  - webpack/react_app/components/RecentJobsCard/index.js
493
493
  - webpack/react_app/components/RecentJobsCard/styles.scss
494
494
  - webpack/react_app/components/RegistrationExtension/RexInterface.js
495
+ - webpack/react_app/components/RegistrationExtension/RexPull.js
495
496
  - webpack/react_app/components/RegistrationExtension/__tests__/RexInterface.test.js
496
497
  - webpack/react_app/components/RegistrationExtension/__tests__/__snapshots__/RexInterface.test.js.snap
497
498
  - webpack/react_app/components/TargetingHosts/TargetingHosts.js