foreman_remote_execution 6.2.0 → 7.0.0
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/app/controllers/api/v2/job_invocations_controller.rb +1 -0
- data/app/helpers/hosts_extensions_helper.rb +62 -0
- data/app/lib/actions/remote_execution/run_host_job.rb +4 -0
- data/app/lib/actions/remote_execution/run_hosts_job.rb +4 -0
- data/app/models/job_invocation_composer.rb +6 -2
- data/app/models/job_template.rb +4 -1
- data/app/models/ssh_execution_provider.rb +3 -3
- data/app/views/api/v2/job_invocations/base.json.rabl +1 -1
- data/app/views/job_invocations/_card_target_hosts.html.erb +8 -0
- data/app/views/job_invocations/_form.html.erb +2 -0
- data/db/migrate/20220331112719_add_ssh_user_to_job_invocation.rb +5 -0
- data/lib/foreman_remote_execution/engine.rb +6 -3
- data/lib/foreman_remote_execution/version.rb +1 -1
- data/locale/action_names.rb +3 -3
- data/locale/de/foreman_remote_execution.po +23 -23
- data/locale/en/foreman_remote_execution.po +23 -23
- data/locale/en_GB/foreman_remote_execution.po +23 -23
- data/locale/es/foreman_remote_execution.po +23 -23
- data/locale/foreman_remote_execution.pot +64 -66
- data/locale/fr/foreman_remote_execution.po +23 -23
- data/locale/ja/foreman_remote_execution.po +23 -23
- data/locale/ko/foreman_remote_execution.po +23 -23
- data/locale/pt_BR/foreman_remote_execution.po +23 -23
- data/locale/ru/foreman_remote_execution.po +23 -23
- data/locale/zh_CN/foreman_remote_execution.po +23 -23
- data/locale/zh_TW/foreman_remote_execution.po +23 -23
- data/webpack/JobWizard/JobWizardConstants.js +2 -2
- data/webpack/JobWizard/__tests__/fixtures.js +8 -4
- data/webpack/JobWizard/steps/AdvancedFields/__tests__/AdvancedFields.test.js +2 -2
- data/webpack/JobWizard/steps/HostsAndInputs/SelectGQL.js +2 -1
- data/webpack/JobWizard/steps/HostsAndInputs/SelectedChips.js +1 -1
- data/webpack/JobWizard/steps/HostsAndInputs/buildHostQuery.js +1 -1
- data/webpack/JobWizard/steps/HostsAndInputs/hostgroups.gql +1 -0
- data/webpack/JobWizard/steps/HostsAndInputs/hosts.gql +1 -0
- data/webpack/JobWizard/steps/ReviewDetails/index.js +1 -1
- data/webpack/JobWizard/steps/Schedule/__tests__/Schedule.test.js +15 -15
- data/webpack/JobWizard/steps/form/SearchSelect.js +0 -1
- data/webpack/__mocks__/foremanReact/common/globalIdHelpers.js +1 -0
- data/webpack/global_index.js +2 -8
- data/webpack/react_app/components/HostKebab/KebabItems.js +6 -1
- data/webpack/react_app/components/RecentJobsCard/RecentJobsCard.js +4 -4
- data/webpack/react_app/components/TargetingHosts/TargetingHostsConsts.js +1 -0
- data/webpack/react_app/components/TargetingHosts/TargetingHostsPage.js +8 -3
- data/webpack/react_app/components/TargetingHosts/__tests__/__snapshots__/TargetingHostsPage.test.js.snap +9 -1
- data/webpack/react_app/components/TargetingHosts/__tests__/fixtures.js +1 -4
- data/webpack/react_app/components/TargetingHosts/index.js +1 -0
- data/webpack/react_app/extend/Fills.js +48 -0
- metadata +6 -7
- data/app/helpers/concerns/foreman_remote_execution/hosts_helper_extensions.rb +0 -62
- data/webpack/react_app/extend/fillKebabItems.js +0 -11
- data/webpack/react_app/extend/fillRecentJobsCard.js +0 -11
- data/webpack/react_app/extend/fillRexFeaturesDropdown.js +0 -11
- data/webpack/react_app/extend/fillregistrationAdvanced.js +0 -11
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
module ForemanRemoteExecution
|
|
2
|
-
module HostsHelperExtensions
|
|
3
|
-
def host_overview_buttons(host)
|
|
4
|
-
[
|
|
5
|
-
{ :button => link_to_if_authorized(_("Jobs"), hash_for_job_invocations_path(search: "host=#{host.name}"), :title => _("Job invocations"), :class => 'btn btn-default'), :priority => 200 },
|
|
6
|
-
]
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
def multiple_actions
|
|
10
|
-
res = super
|
|
11
|
-
res += [ [_('Schedule Remote Job'), new_job_invocation_path, false] ] if can_schedule_jobs?
|
|
12
|
-
res
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def schedule_job_multi_button(*args)
|
|
16
|
-
host_features = rex_host_features(*args)
|
|
17
|
-
|
|
18
|
-
if host_features.present?
|
|
19
|
-
action_buttons(schedule_job_button(*args), *host_features)
|
|
20
|
-
else
|
|
21
|
-
schedule_job_button(*args)
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def rex_host_features(host, *_rest)
|
|
26
|
-
return [] unless can_execute_on_host?(host)
|
|
27
|
-
RemoteExecutionFeature.with_host_action_button.order(:label).map do |feature|
|
|
28
|
-
link_to(_('%s') % feature.name, job_invocations_path(:host_ids => [host.id], :feature => feature.label), :method => :post)
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def schedule_job_button(host, *_rest)
|
|
33
|
-
return unless can_execute_on_host?(host)
|
|
34
|
-
link_to(_('Schedule Remote Job'), new_job_invocation_path(:host_ids => [host.id]), :id => :run_button, :class => 'btn btn-default')
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def web_console_button(host, *args)
|
|
38
|
-
return if !authorized_for(permission: 'cockpit_hosts', auth_object: host) || !can_execute_on_infrastructure_host?(host)
|
|
39
|
-
|
|
40
|
-
url = SSHExecutionProvider.cockpit_url_for_host(host.name)
|
|
41
|
-
url ? link_to(_('Web Console'), url, :class => 'btn btn-default', :id => :'web-console-button', :target => '_new') : nil
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def host_title_actions(*args)
|
|
45
|
-
title_actions(button_group(schedule_job_multi_button(*args)),
|
|
46
|
-
button_group(web_console_button(*args)))
|
|
47
|
-
super(*args)
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def can_schedule_jobs?
|
|
51
|
-
authorized_for(controller: :job_invocations, action: :create)
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
def can_execute_on_host?(host)
|
|
55
|
-
can_schedule_jobs? && can_execute_on_infrastructure_host?(host)
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def can_execute_on_infrastructure_host?(host)
|
|
59
|
-
!host.infrastructure_host? || User.current.can?(:execute_jobs_on_infrastructure_hosts)
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
end
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { addGlobalFill } from 'foremanReact/components/common/Fill/GlobalFill';
|
|
3
|
-
import KebabItems from '../components/HostKebab/KebabItems';
|
|
4
|
-
|
|
5
|
-
export default () =>
|
|
6
|
-
addGlobalFill(
|
|
7
|
-
'host-details-kebab',
|
|
8
|
-
'rex-host-details-kebab-job',
|
|
9
|
-
<KebabItems key="rex-host-details-kebab-job" />,
|
|
10
|
-
100
|
|
11
|
-
);
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { addGlobalFill } from 'foremanReact/components/common/Fill/GlobalFill';
|
|
3
|
-
import RecentJobsCard from '../components/RecentJobsCard';
|
|
4
|
-
|
|
5
|
-
export default () =>
|
|
6
|
-
addGlobalFill(
|
|
7
|
-
'details-cards',
|
|
8
|
-
'rex-host-details-latest-jobs',
|
|
9
|
-
<RecentJobsCard key="rex-host-details-latest-jobs" />,
|
|
10
|
-
1000
|
|
11
|
-
);
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { addGlobalFill } from 'foremanReact/components/common/Fill/GlobalFill';
|
|
3
|
-
import FeaturesDropdown from '../components/FeaturesDropdown';
|
|
4
|
-
|
|
5
|
-
export default () =>
|
|
6
|
-
addGlobalFill(
|
|
7
|
-
'_rex-host-features',
|
|
8
|
-
'_rex-host-features',
|
|
9
|
-
<FeaturesDropdown key="_rex-host-features" />,
|
|
10
|
-
1000
|
|
11
|
-
);
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { addGlobalFill } from 'foremanReact/components/common/Fill/GlobalFill';
|
|
3
|
-
import RexInterface from '../components/RegistrationExtension/RexInterface';
|
|
4
|
-
|
|
5
|
-
export default () =>
|
|
6
|
-
addGlobalFill(
|
|
7
|
-
'registrationAdvanced',
|
|
8
|
-
'foreman-remote-exectuion-rex-interface',
|
|
9
|
-
<RexInterface key="registration-rex-interface" />,
|
|
10
|
-
100
|
|
11
|
-
);
|