foreman_patch 1.1.6.alpha5 → 1.2.0.alpha1

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.
Files changed (126) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/foreman_patch/api/v2/invocations_controller.rb +1 -23
  3. data/app/controllers/foreman_patch/concerns/hosts_controller_extensions.rb +41 -35
  4. data/app/helpers/foreman_patch/hosts_helper.rb +1 -1
  5. data/app/lib/actions/foreman_patch/cycle/complete.rb +41 -0
  6. data/app/lib/actions/foreman_patch/cycle/create.rb +1 -5
  7. data/app/lib/actions/foreman_patch/cycle/initiate.rb +1 -5
  8. data/app/lib/actions/foreman_patch/cycle/plan.rb +66 -0
  9. data/app/lib/actions/foreman_patch/invocation/action.rb +29 -23
  10. data/app/lib/actions/foreman_patch/invocation/patch.rb +8 -16
  11. data/app/lib/actions/foreman_patch/invocation/wait_for_host.rb +29 -4
  12. data/app/lib/actions/foreman_patch/round/patch.rb +1 -5
  13. data/app/lib/actions/foreman_patch/round/plan.rb +33 -0
  14. data/app/lib/actions/foreman_patch/window/plan.rb +43 -0
  15. data/app/lib/actions/foreman_patch/window/publish.rb +1 -5
  16. data/app/lib/actions/foreman_patch/window/resolve_hosts.rb +1 -5
  17. data/app/models/foreman_patch/invocation.rb +4 -4
  18. data/app/models/foreman_patch/round.rb +23 -4
  19. data/app/models/setting/patching.rb +57 -0
  20. data/app/services/foreman_patch/ticket/api.rb +1 -2
  21. data/app/views/foreman_patch/api/v2/invocations/base.json.rabl +1 -1
  22. data/app/views/foreman_patch/api/v2/invocations/phase.json.rabl +7 -0
  23. data/app/views/foreman_patch/api/v2/invocations/show.json.rabl +2 -2
  24. data/app/views/foreman_patch/api/v2/rounds/base.json.rabl +1 -1
  25. data/app/views/foreman_patch/api/v2/rounds/status.json.rabl +8 -2
  26. data/app/views/foreman_patch/groups/index.html.erb +1 -1
  27. data/app/views/foreman_patch/invocations/show.html.erb +26 -1
  28. data/app/views/foreman_patch/layouts/react.html.erb +1 -1
  29. data/app/views/templates/ensure_services.erb +4 -7
  30. data/config/api_routes.rb +24 -28
  31. data/config/routes/mount_engine.rb +3 -0
  32. data/config/routes/overrides.rb +10 -0
  33. data/config/routes.rb +29 -40
  34. data/db/seeds.d/100-assign_features_with_templates.rb +12 -6
  35. data/lib/foreman_patch/engine.rb +46 -11
  36. data/lib/foreman_patch/plugin.rb +47 -0
  37. data/lib/foreman_patch/version.rb +1 -1
  38. data/lib/foreman_patch.rb +2 -3
  39. data/locale/en/foreman_patch.po +1 -1
  40. data/locale/foreman_patch.pot +1 -1
  41. data/locale/gemspec.rb +1 -1
  42. data/package.json +9 -20
  43. data/public/assets/foreman_patch/cycle_plans-e5667e178ba389908f5c815b24ec0ea77c340849d56bc39c5ce72bb626bd446a.scss +6 -0
  44. data/public/assets/foreman_patch/cycle_plans-e5667e178ba389908f5c815b24ec0ea77c340849d56bc39c5ce72bb626bd446a.scss.gz +0 -0
  45. data/public/assets/foreman_patch/cycle_plans-ff3d252119622a68828ff70f4a97328303963002237dbf850e92d6a706e93667.scss.gz +0 -0
  46. data/public/assets/foreman_patch/foreman_patch-be2e2ba89548f4a490612e8a6cd1cdebc0473be89f8023a3df7612f05a75d301.css.gz +0 -0
  47. data/public/assets/foreman_patch/foreman_patch-ce5805a60c0d5f896f557ff5246e5a09172043004c850b39bea54e618df1c485.css +1 -0
  48. data/public/assets/foreman_patch/foreman_patch-ce5805a60c0d5f896f557ff5246e5a09172043004c850b39bea54e618df1c485.css.gz +0 -0
  49. data/public/assets/foreman_patch/foreman_patch.json +1 -1
  50. data/public/assets/foreman_patch/plan_edit_windows-9ba20f84f3ecf2c4eb903acd57d30ee3e16f023a79db30bc614aa22f26442ce3.js.gz +0 -0
  51. data/public/assets/foreman_patch/plan_edit_windows-e656ba411642a7f983b51958ab30ac49c056322d19295a603cff4d5e6c71c8ed.js +1 -0
  52. data/public/assets/foreman_patch/plan_edit_windows-e656ba411642a7f983b51958ab30ac49c056322d19295a603cff4d5e6c71c8ed.js.gz +0 -0
  53. data/public/webpack/foreman_patch/bundle-e45c4bb530e40506f2da.js +6 -0
  54. data/public/webpack/foreman_patch/bundle-e45c4bb530e40506f2da.js.gz +0 -0
  55. data/public/webpack/foreman_patch/bundle-e45c4bb530e40506f2da.js.map +1 -0
  56. data/public/webpack/foreman_patch/bundle-e45c4bb530e40506f2da.js.map.gz +0 -0
  57. data/public/webpack/foreman_patch/{foreman_patch-8909c3e06f012a43f769.css → foreman_patch-4a4e1a59d74af09c4b8b.css} +1 -1
  58. data/public/webpack/foreman_patch/{foreman_patch-8909c3e06f012a43f769.css.gz → foreman_patch-4a4e1a59d74af09c4b8b.css.gz} +0 -0
  59. data/public/webpack/foreman_patch/foreman_patch-4a4e1a59d74af09c4b8b.js +6 -0
  60. data/public/webpack/foreman_patch/foreman_patch-4a4e1a59d74af09c4b8b.js.gz +0 -0
  61. data/public/webpack/foreman_patch/foreman_patch-4a4e1a59d74af09c4b8b.js.map +1 -0
  62. data/public/webpack/foreman_patch/foreman_patch-4a4e1a59d74af09c4b8b.js.map.gz +0 -0
  63. data/public/webpack/foreman_patch/manifest.json +8 -13
  64. data/public/webpack/foreman_patch/manifest.json.gz +0 -0
  65. data/public/webpack/foreman_patch/{vendor-769bd77f6be96c3c37e1.js → vendor-4b77c91f1e9103179596.js} +2 -2
  66. data/public/webpack/foreman_patch/vendor-4b77c91f1e9103179596.js.gz +0 -0
  67. data/public/webpack/foreman_patch/{vendor-769bd77f6be96c3c37e1.js.map → vendor-4b77c91f1e9103179596.js.map} +1 -1
  68. data/public/webpack/foreman_patch/vendor-4b77c91f1e9103179596.js.map.gz +0 -0
  69. data/webpack/components/Invocation/Invocation.js +47 -0
  70. data/webpack/{src/Components → components}/Invocation/InvocationSelectors.js +3 -0
  71. data/webpack/components/Invocation/index.js +36 -0
  72. data/webpack/components/Invocations/Invocations.js +16 -48
  73. data/webpack/components/Invocations/InvocationsPage.js +1 -24
  74. data/webpack/components/Invocations/InvocationsSelectors.js +1 -1
  75. data/webpack/components/Invocations/components/{InvocationActions.js → InvocationItem.js} +16 -4
  76. data/webpack/components/Invocations/index.js +12 -95
  77. data/webpack/components/RoundProgress/AggregateStatus.js +5 -6
  78. data/webpack/components/RoundProgress/RoundProgress.js +6 -7
  79. data/webpack/components/RoundProgress/RoundProgressSelectors.js +2 -3
  80. data/webpack/components/common/Calendar/Calendar.js +4 -5
  81. data/webpack/components/common/Terminal/OutputLine.js +26 -0
  82. data/webpack/components/common/Terminal/Terminal.js +115 -0
  83. data/webpack/components/common/Terminal/Terminal.scss +47 -0
  84. data/webpack/index.js +0 -3
  85. metadata +91 -54
  86. data/app/controllers/foreman_patch/react_controller.rb +0 -12
  87. data/app/lib/actions/foreman_patch/invocation/process_logging.rb +0 -44
  88. data/app/lib/actions/foreman_patch/invocation/proxy_action.rb +0 -52
  89. data/app/models/foreman_patch/event.rb +0 -13
  90. data/app/views/foreman_patch/api/v2/invocations/event.json.rabl +0 -3
  91. data/db/migrate/20230706092400_nullify_group_on_delete.rb +0 -11
  92. data/db/migrate/20230707102800_create_invocation_events.rb +0 -16
  93. data/lib/foreman_patch/register.rb +0 -119
  94. data/public/webpack/foreman_patch/bundle-831173d6ae39953b2409.js +0 -6
  95. data/public/webpack/foreman_patch/bundle-831173d6ae39953b2409.js.gz +0 -0
  96. data/public/webpack/foreman_patch/bundle-831173d6ae39953b2409.js.map +0 -1
  97. data/public/webpack/foreman_patch/bundle-831173d6ae39953b2409.js.map.gz +0 -0
  98. data/public/webpack/foreman_patch/foreman_patch-8909c3e06f012a43f769.js +0 -6
  99. data/public/webpack/foreman_patch/foreman_patch-8909c3e06f012a43f769.js.gz +0 -0
  100. data/public/webpack/foreman_patch/foreman_patch-8909c3e06f012a43f769.js.map +0 -1
  101. data/public/webpack/foreman_patch/foreman_patch-8909c3e06f012a43f769.js.map.gz +0 -0
  102. data/public/webpack/foreman_patch/foreman_patch:global-d71cc6e1e759f04f631a.css +0 -1
  103. data/public/webpack/foreman_patch/foreman_patch:global-d71cc6e1e759f04f631a.css.gz +0 -0
  104. data/public/webpack/foreman_patch/foreman_patch:global-d71cc6e1e759f04f631a.js +0 -6
  105. data/public/webpack/foreman_patch/foreman_patch:global-d71cc6e1e759f04f631a.js.gz +0 -0
  106. data/public/webpack/foreman_patch/foreman_patch:global-d71cc6e1e759f04f631a.js.map +0 -1
  107. data/public/webpack/foreman_patch/foreman_patch:global-d71cc6e1e759f04f631a.js.map.gz +0 -0
  108. data/public/webpack/foreman_patch/vendor-769bd77f6be96c3c37e1.js.gz +0 -0
  109. data/public/webpack/foreman_patch/vendor-769bd77f6be96c3c37e1.js.map.gz +0 -0
  110. data/webpack/components/common/Table/index.js +0 -28
  111. data/webpack/global_index.js +0 -16
  112. data/webpack/src/Components/Invocation/Invocation.js +0 -67
  113. data/webpack/src/Components/Invocation/InvocationLogFooter.js +0 -30
  114. data/webpack/src/Components/Invocation/InvocationLogToolbar.js +0 -80
  115. data/webpack/src/Components/Invocation/index.js +0 -62
  116. data/webpack/src/Components/InvocationStatus.js +0 -50
  117. data/webpack/src/Components/Loading.js +0 -51
  118. data/webpack/src/Extends/index.js +0 -15
  119. data/webpack/src/Router/routes.js +0 -5
  120. data/webpack/src/reducers.js +0 -7
  121. /data/public/webpack/foreman_patch/{bundle-831173d6ae39953b2409.css → bundle-e45c4bb530e40506f2da.css} +0 -0
  122. /data/public/webpack/foreman_patch/{bundle-831173d6ae39953b2409.css.gz → bundle-e45c4bb530e40506f2da.css.gz} +0 -0
  123. /data/webpack/{src/Components → components}/Invocation/InvocationActions.js +0 -0
  124. /data/webpack/{src/Components → components}/Invocation/InvocationConsts.js +0 -0
  125. /data/webpack/components/Invocations/{Invocations.css → InvocationsPage.scss} +0 -0
  126. /data/webpack/components/common/Calendar/{Calendar.css → Calendar.scss} +0 -0
@@ -1,119 +0,0 @@
1
- Foreman::Plugin.register :foreman_patch do
2
- requires_foreman '~> 3.1'
3
-
4
- register_global_js_file 'global'
5
-
6
- settings do
7
- category(:patching, N_('Patching')) do
8
- setting('host_max_wait_for_up',
9
- type: :integer,
10
- description: N_("Maximum seconds to wait for a host after patching restart."),
11
- default: 600,
12
- full_name: N_("Max wait for host up"))
13
- setting('host_patch_timeout',
14
- type: :integer,
15
- description: N_("Maximum seconds for a patching invocation to run before timing out"),
16
- default: nil,
17
- full_name: N_('Patch Timeout'))
18
- setting('patch_schedule_time_zone',
19
- type: :string,
20
- description: N_('Time zone used to base patch window scheduling off of.'),
21
- default: 'UTC',
22
- full_name: N_('Patch Schedule Time Zone'),
23
- collection: proc { ActiveSupport::TimeZone.all.map { |tz| [ tz.name, tz.name ] }.to_h })
24
- setting('ticket_api_host',
25
- type: :string,
26
- description: N_('Host used for change management tickets'),
27
- default: nil,
28
- full_name: N_('Ticket API host'))
29
- setting('ticket_api_proxy',
30
- type: :string,
31
- description: N_('HTTP Proxy to access ticket API host'),
32
- default: nil,
33
- full_name: N_('Ticket API HTTP proxy'),
34
- collection: proc { HttpProxy.all.map { |proxy| [proxy.name, proxy.name_and_url] }.to_h },
35
- include_blank: N_('no proxy'))
36
- setting('ticket_api_user',
37
- type: :string,
38
- description: N_('User with access to ticket API'),
39
- default: nil,
40
- full_name: N_('Ticket API user'))
41
- setting('ticket_api_password',
42
- type: :string,
43
- description: N_('Password for ticket API user'),
44
- default: nil,
45
- full_name: N_('Ticket API password'),
46
- encrypted: true)
47
- setting('ticket_api_path',
48
- type: :string,
49
- description: N_('Ticket API path for REST/CRUD operations'),
50
- default: nil,
51
- full_name: N_('Ticket API path'))
52
- setting('ticket_web_ui_path',
53
- type: :string,
54
- description: N_('Path for opening a ticket in the web UI'),
55
- default: nil,
56
- full_name: N_('Ticket Web UI path'))
57
- setting('ticket_label_field',
58
- type: :string,
59
- description: N_('Name of the field used for the ticket label'),
60
- default: nil,
61
- full_name: N_('Ticket label field'))
62
- setting('ticket_id_field',
63
- type: :string,
64
- description: N_('Name of the field used for the ticket id'),
65
- default: nil,
66
- full_name: N_('Ticket ID field'))
67
- setting('skip_broken_patches',
68
- type: :boolean,
69
- description: N_('Skip broken dependencies during patching'),
70
- default: true,
71
- full_name: N_('Skip broken patches'))
72
- end
73
- end
74
-
75
- apipie_documented_controllers(["#{ForemanPatch::Engine.root}/app/controllers/foreman_patch/api/v2/*.rb"])
76
-
77
- # Add permissions
78
- security_block :foreman_patch do
79
- end
80
-
81
- divider :top_menu, caption: N_('Patching'), parent: :content_menu
82
- menu :top_menu, :groups,
83
- caption: N_('Groups'),
84
- engine: ForemanPatch::Engine,
85
- parent: :content_menu
86
-
87
- menu :top_menu, :cycles,
88
- caption: N_('Cycles'),
89
- engine: ForemanPatch::Engine,
90
- parent: :content_menu
91
-
92
- menu :top_menu, :plans,
93
- caption: N_('Plans'),
94
- engine: ForemanPatch::Engine,
95
- parent: :content_menu
96
-
97
- menu :top_menu, :ticket_fields,
98
- caption: N_('Ticket Fields'),
99
- engine: ForemanPatch::Engine,
100
- parent: :content_menu
101
-
102
- parameter_filter ::Host::Managed, :group_facet_attributes => [:group_id]
103
-
104
- describe_host do
105
- multiple_actions_provider :patch_host_multiple_actions
106
- overview_fields_provider :patch_host_overview_fields
107
- end
108
-
109
- register_facet ForemanPatch::Host::GroupFacet, :group_facet do
110
- api_view list: 'foreman_patch/api/v2/group_facet/base_with_root',
111
- single: 'foreman_patch/api/v2/group_facet/show'
112
- api_docs :group_facet_attributes, ::ForemanPatch::Api::V2::HostGroupsController
113
- extend_model ForemanPatch::Concerns::GroupFacetHostExtensions
114
- set_dependent_action :destroy
115
- end
116
-
117
- RemoteExecutionFeature.register(:power_action, N_("Power Action"), description: N_("Power Action"), provided_inputs: ['action'])
118
- RemoteExecutionFeature.register(:ensure_services, N_("Ensure Services"), description: N_("Ensure Services are running"))
119
- end