foreman_snapshot_management 1.6.1 → 2.0.1

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 (62) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +8 -2
  3. data/Rakefile +7 -2
  4. data/app/controllers/api/v2/snapshots_controller.rb +37 -7
  5. data/app/controllers/concerns/foreman/controller/parameters/snapshot.rb +1 -1
  6. data/app/controllers/foreman_snapshot_management/snapshots_controller.rb +5 -5
  7. data/app/models/concerns/fog_extensions/proxmox/snapshots/mock.rb +24 -0
  8. data/app/models/foreman_snapshot_management/proxmox_extensions.rb +101 -0
  9. data/app/models/foreman_snapshot_management/snapshot.rb +28 -28
  10. data/app/models/foreman_snapshot_management/vmware_extensions.rb +40 -13
  11. data/app/views/api/v2/snapshots/base.json.rabl +2 -0
  12. data/app/views/api/v2/snapshots/main.json.rabl +2 -2
  13. data/app/views/foreman_snapshot_management/snapshots/_index.html.erb +12 -74
  14. data/app/views/hosts/_snapshots_tab.html.erb +8 -0
  15. data/lib/foreman_snapshot_management/engine.rb +35 -16
  16. data/lib/foreman_snapshot_management/version.rb +1 -1
  17. data/lib/tasks/foreman_snapshot_management_tasks.rake +2 -2
  18. data/locale/de/LC_MESSAGES/foreman_snapshot_management.mo +0 -0
  19. data/locale/de/foreman_snapshot_management.po +195 -0
  20. data/locale/en/LC_MESSAGES/foreman_snapshot_management.mo +0 -0
  21. data/locale/en/foreman_snapshot_management.po +179 -11
  22. data/locale/foreman_snapshot_management.pot +259 -8
  23. data/locale/gemspec.rb +1 -1
  24. data/package.json +46 -0
  25. data/test/controllers/api/v2/snapshots_test.rb +250 -39
  26. data/test/controllers/foreman_snapshot_management/snapshots_controller_test.rb +61 -9
  27. data/test/factories/proxmox_factory.rb +18 -0
  28. data/test/test_plugin_helper.rb +3 -0
  29. data/webpack/components/SnapshotManagement/SnapshotManagement.js +84 -0
  30. data/webpack/components/SnapshotManagement/SnapshotManagementActions.js +212 -0
  31. data/webpack/components/SnapshotManagement/SnapshotManagementConstants.js +9 -0
  32. data/webpack/components/SnapshotManagement/SnapshotManagementReducer.js +100 -0
  33. data/webpack/components/SnapshotManagement/SnapshotManagementSelectors.js +8 -0
  34. data/webpack/components/SnapshotManagement/__tests__/SnapshotManagementActions.test.js +123 -0
  35. data/webpack/components/SnapshotManagement/__tests__/SnapshotManagementReducer.test.js +157 -0
  36. data/webpack/components/SnapshotManagement/__tests__/__snapshots__/SnapshotManagementActions.test.js.snap +314 -0
  37. data/webpack/components/SnapshotManagement/__tests__/__snapshots__/SnapshotManagementReducer.test.js.snap +214 -0
  38. data/webpack/components/SnapshotManagement/components/SnapshotForm/SnapshotForm.js +118 -0
  39. data/webpack/components/SnapshotManagement/components/SnapshotForm/SnapshotFormConstants.js +5 -0
  40. data/webpack/components/SnapshotManagement/components/SnapshotForm/__tests__/SnapshotForm.test.js +26 -0
  41. data/webpack/components/SnapshotManagement/components/SnapshotForm/__tests__/__snapshots__/SnapshotForm.test.js.snap +476 -0
  42. data/webpack/components/SnapshotManagement/components/SnapshotForm/index.js +19 -0
  43. data/webpack/components/SnapshotManagement/components/SnapshotForm/snapshotForm.scss +3 -0
  44. data/webpack/components/SnapshotManagement/components/SnapshotFormModal/SnapshotFormModal.js +37 -0
  45. data/webpack/components/SnapshotManagement/components/SnapshotFormModal/SnapshotFormModalConstants.js +1 -0
  46. data/webpack/components/SnapshotManagement/components/SnapshotFormModal/__tests__/SnapshotFormModal.test.js +19 -0
  47. data/webpack/components/SnapshotManagement/components/SnapshotFormModal/__tests__/__snapshots__/SnapshotFormModal.test.js.snap +19 -0
  48. data/webpack/components/SnapshotManagement/components/SnapshotFormModal/index.js +12 -0
  49. data/webpack/components/SnapshotManagement/components/SnapshotFormModal/useSnapshotFormModal.js +7 -0
  50. data/webpack/components/SnapshotManagement/components/SnapshotList/SnapshotList.js +314 -0
  51. data/webpack/components/SnapshotManagement/components/SnapshotList/SnapshotListHelper.js +70 -0
  52. data/webpack/components/SnapshotManagement/components/SnapshotList/__tests__/SnapshotList.test.js +88 -0
  53. data/webpack/components/SnapshotManagement/components/SnapshotList/__tests__/__snapshots__/SnapshotList.test.js.snap +1081 -0
  54. data/webpack/components/SnapshotManagement/components/SnapshotList/snapshotList.scss +13 -0
  55. data/webpack/components/SnapshotManagement/index.js +33 -0
  56. data/webpack/components/SnapshotManagement/snapshotManagement.scss +5 -0
  57. data/webpack/global_index.js +7 -0
  58. data/webpack/global_test_setup.js +11 -0
  59. data/webpack/index.js +8 -0
  60. data/webpack/reducers.js +7 -0
  61. data/webpack/test_setup.js +17 -0
  62. metadata +50 -37
@@ -3,3 +3,5 @@
3
3
  object @snapshot
4
4
 
5
5
  attributes :id, :name
6
+
7
+ node(:formatted_created_at) { |snapshot| snapshot.create_time&.httpdate }
@@ -7,5 +7,5 @@ extends 'api/v2/snapshots/base'
7
7
  attributes :description
8
8
 
9
9
  node(:created_at, &:create_time)
10
- node(:parent_id) { |snapshot| snapshot.parent.try(:id) }
11
- node(:children_ids) { |snapshot| snapshot.children.map(&:id) }
10
+ node(:parent_id) { |snapshot| snapshot.try(:parent).try(:id) }
11
+ node(:children_ids) { |snapshot| snapshot.try(:children).try(:map, &:id) }
@@ -1,74 +1,12 @@
1
- <%= form_for @new_snapshot, as: :snapshot, url: host_snapshots_path(@host), html: {class: ""} do |f| %>
2
- <table class="<%= table_css_classes %>">
3
- <thead>
4
- <tr>
5
- <th class="col-md-1"><%= _('Snapshot') %></th>
6
- <th class="col-md-2"><%= _('Description') %></th>
7
- <th class="col-md-1"><%= _('Include RAM') %></th>
8
- <th class="col-md-1"><%= _('Action') %></th>
9
- </tr>
10
- </thead>
11
- <tbody>
12
- <% if authorized_for(:auth_object => @host, :permission => :create_snapshots) %>
13
- <tr>
14
- <td>
15
- <%= f.text_field :name, class: 'form-control' %>
16
- </td>
17
- <td>
18
- <%= f.text_field :description, class: 'form-control' %>
19
- </td>
20
- <td>
21
- <%= f.check_box :include_ram, class: 'form-control' %>
22
- </td>
23
- <td>
24
- <%= f.submit _('Create'), class: 'btn btn-success', :onclick => "$(this).attr('disabled', 'disabled'); $(this).parents('form').submit();" %>
25
- </td>
26
- </tr>
27
- <% end %>
28
- <% @snapshots.each do |snapshot| %>
29
- <tr>
30
- <td>
31
- <% if authorized_for(:auth_object => @host, :permission => :edit_snapshots) %>
32
- <%= edit_textfield snapshot, :name %>
33
- <% else %>
34
- <%= snapshot.name %>
35
- <% end %>
36
- <br /><%= snapshot.formatted_create_time() %>
37
- </td>
38
- <td>
39
- <% if authorized_for(:auth_object => @host, :permission => :edit_snapshots) %>
40
- <%= edit_textarea snapshot, :description %>
41
- <% else %>
42
- <%= snapshot.description %>
43
- <% end %>
44
- </td>
45
- <td>
46
- </td>
47
- <td>
48
- <%= action_buttons(
49
- display_link_if_authorized(_('Rollback'), hash_for_revert_host_snapshot_path(host_id: @host, id: snapshot.id).merge(:auth_object => @host, :permission => :revert_snapshots), method: :put, class: 'btn btn-primary', data: {confirm: _('Are you sure to revert this Snapshot?'), 'disable-with': _('Reverting...')}),
50
- display_delete_if_authorized(hash_for_host_snapshot_path(host_id: @host, id: snapshot.id).merge(:auth_object => @host, :permission => :destroy_snapshots), data: {confirm: _("Are you sure to delete this Snapshot?"), 'disable-with': _('Deleting...')}),
51
- ) %>
52
- </td>
53
- </tr>
54
- <% end %>
55
- </tbody>
56
- </table>
57
- <% end %>
58
-
59
- <script type="text/javascript">
60
- //<![CDATA[
61
- $(document).ready(function() {
62
- $('.editable').editable({
63
- params: {
64
- authenticity_token: AUTH_TOKEN
65
- },
66
- error: function(response) {
67
- return $.parseJSON(response.responseText).errors;
68
- }
69
- });
70
- var hash = window.location.hash;
71
- hash && $('ul.nav a[href="' + hash + '"]').tab('show');
72
- });
73
- //]]>
74
- </script>
1
+ <%= react_component('SnapshotManagement', {
2
+ host: @host,
3
+ canCreate: authorized_for(:auth_object => @host, :permission => :create_snapshots),
4
+ canUpdate: authorized_for(:auth_object => @host, :permission => :edit_snapshots),
5
+ canRevert: authorized_for(:auth_object => @host, :permission => :revert_snapshots),
6
+ canDelete: authorized_for(:auth_object => @host, :permission => :destroy_snapshots),
7
+ capabilities:
8
+ {
9
+ editableSnapshotName: @host.compute_resource.capable?(:editable_snapshot_name),
10
+ limitSnapshotNameFormat: @host.compute_resource.type == "ForemanFogProxmox::Proxmox"
11
+ }
12
+ }) %>
@@ -1,4 +1,12 @@
1
1
  <% if @host.compute_resource && @host.compute_resource.capabilities.include?(:snapshots) && authorized_for(:auth_object => @host, :permission => :view_snapshots) %>
2
+
3
+ <% content_for(:javascripts) do %>
4
+ <%= webpacked_plugins_js_for :foreman_snapshot_management %>
5
+ <% end %>
6
+ <% content_for(:stylesheets) do %>
7
+ <%= webpacked_plugins_css_for :foreman_snapshot_management %>
8
+ <% end %>
9
+
2
10
  <div id='snapshots' class='tab-pane'
3
11
  data-ajax-url='<%= host_snapshots_path(host_id: @host)%>'
4
12
  data-on-complete='onContentLoad'>
@@ -10,7 +10,10 @@ module ForemanSnapshotManagement
10
10
 
11
11
  initializer 'foreman_snapshot_management.register_plugin', before: :finisher_hook do |_app|
12
12
  Foreman::Plugin.register :foreman_snapshot_management do
13
- requires_foreman '>= 1.17'
13
+ requires_foreman '>= 2.0.0'
14
+
15
+ # Add Global files for extending foreman-core components and routes
16
+ register_global_js_file 'global'
14
17
 
15
18
  apipie_documented_controllers ["#{ForemanSnapshotManagement::Engine.root}/app/controllers/api/v2/*.rb"]
16
19
 
@@ -22,7 +25,7 @@ module ForemanSnapshotManagement
22
25
  }, :resource_type => 'Host'
23
26
 
24
27
  permission :create_snapshots, {
25
- :'foreman_snapshot_management/snapshots' => [:create],
28
+ :'foreman_snapshot_management/snapshots' => [:create, :select_multiple_host, :create_multiple_host],
26
29
  :'api/v2/snapshots' => [:create]
27
30
  }, :resource_type => 'Host'
28
31
 
@@ -43,14 +46,18 @@ module ForemanSnapshotManagement
43
46
  end
44
47
 
45
48
  # Adds roles if they do not exist
46
- role 'Snapshot Viewer', [:view_snapshots]
47
- role 'Snapshot Manager', [
48
- :view_snapshots,
49
- :create_snapshots,
50
- :edit_snapshots,
51
- :destroy_snapshots,
52
- :revert_snapshots
53
- ]
49
+ role 'Snapshot Viewer',
50
+ [:view_snapshots],
51
+ 'Role granting permission only to view snapshots for hosts'
52
+ role 'Snapshot Manager',
53
+ [
54
+ :view_snapshots,
55
+ :create_snapshots,
56
+ :edit_snapshots,
57
+ :destroy_snapshots,
58
+ :revert_snapshots
59
+ ],
60
+ 'Role granting permission to manage snapshots for hosts'
54
61
 
55
62
  extend_page('hosts/show') do |context|
56
63
  context.add_pagelet :main_tabs,
@@ -79,19 +86,31 @@ module ForemanSnapshotManagement
79
86
 
80
87
  # Include concerns in this config.to_prepare block
81
88
  config.to_prepare do
89
+ # Load Foreman extensions
90
+ ::HostsHelper.prepend ForemanSnapshotManagement::HostsHelperExtension
91
+
92
+ begin
93
+ ::ForemanFogProxmox::Proxmox.prepend ForemanSnapshotManagement::ProxmoxExtensions
94
+
95
+ # Load Fog extensions
96
+ Fog::Proxmox::Compute::Mock.prepend FogExtensions::Proxmox::Snapshots::Mock if ForemanFogProxmox::Proxmox.available?
97
+ rescue StandardError => e
98
+ Rails.logger.warn "Failed to load Proxmox extension #{e}"
99
+ end
100
+
82
101
  begin
83
- # Load Foreman extensions
84
- ::Foreman::Model::Vmware.send(:prepend, ForemanSnapshotManagement::VmwareExtensions)
85
- ::HostsHelper.send(:prepend, ForemanSnapshotManagement::HostsHelperExtension)
102
+ ::Foreman::Model::Vmware.prepend ForemanSnapshotManagement::VmwareExtensions
86
103
 
87
104
  # Load Fog extensions
88
105
  if Foreman::Model::Vmware.available?
89
- ForemanSnapshotManagement.fog_vsphere_namespace::Real.send(:prepend, FogExtensions::Vsphere::Snapshots::Real)
90
- ForemanSnapshotManagement.fog_vsphere_namespace::Mock.send(:prepend, FogExtensions::Vsphere::Snapshots::Mock)
106
+ ForemanSnapshotManagement.fog_vsphere_namespace::Real.prepend FogExtensions::Vsphere::Snapshots::Real
107
+ ForemanSnapshotManagement.fog_vsphere_namespace::Mock.prepend FogExtensions::Vsphere::Snapshots::Mock
91
108
  end
92
109
  rescue StandardError => e
93
- Rails.logger.warn "ForemanSnapshotManagement: skipping engine hook (#{e})"
110
+ Rails.logger.warn "Failed to load VMware extension #{e}"
94
111
  end
112
+ rescue StandardError => e
113
+ Rails.logger.warn "ForemanSnapshotManagement: skipping engine hook (#{e})"
95
114
  end
96
115
 
97
116
  rake_tasks do
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ForemanSnapshotManagement
4
- VERSION = '1.6.1'
4
+ VERSION = '2.0.1'
5
5
  end
@@ -20,7 +20,7 @@ begin
20
20
  "#{ForemanSnapshotManagement::Engine.root}/test/**/*.rb"]
21
21
 
22
22
  namespace :foreman_snapshot_management do
23
- task :rubocop do
23
+ task rubocop: :environment do
24
24
  RuboCop::RakeTask.new(:rubocop_foreman_snapshot_management) do |task|
25
25
  task.patterns = test_patterns
26
26
  end
@@ -42,7 +42,7 @@ end
42
42
 
43
43
  namespace :jenkins do
44
44
  desc 'Test ForemanSnapshotManagement with XML output for jenkins'
45
- task 'foreman_snapshot_management' do
45
+ task 'foreman_snapshot_management' => :environment do
46
46
  Rake::Task['jenkins:setup:minitest'].invoke
47
47
  Rake::Task['rake:test:foreman_snapshot_management'].invoke
48
48
  end
@@ -0,0 +1,195 @@
1
+ # SOME DESCRIPTIVE TITLE.
2
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
+ # This file is distributed under the same license as the foreman_snapshot_management package.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
+ #
6
+ # Translators:
7
+ # Lukáš Zapletal, 2019
8
+ # Wiederoder <stefanwiederoder@googlemail.com>, 2019
9
+ # Martin Zimmermann <martin.zimmermann@gmx.com>, 2019
10
+ # Ettore Atalan <atalanttore@googlemail.com>, 2021
11
+ # Bryan Kearney <bryan.kearney@gmail.com>, 2021
12
+ # Markus Bucher <bucher@atix.de>, 2021
13
+ #
14
+ #, fuzzy
15
+ msgid ""
16
+ msgstr ""
17
+ "Project-Id-Version: foreman_snapshot_management 1.8.1\n"
18
+ "Report-Msgid-Bugs-To: \n"
19
+ "PO-Revision-Date: 2019-10-22 11:54+0000\n"
20
+ "Last-Translator: Markus Bucher <bucher@atix.de>, 2021\n"
21
+ "Language-Team: German (https://www.transifex.com/foreman/teams/114/de/)\n"
22
+ "MIME-Version: 1.0\n"
23
+ "Content-Type: text/plain; charset=UTF-8\n"
24
+ "Content-Transfer-Encoding: 8bit\n"
25
+ "Language: de\n"
26
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
27
+
28
+ msgid "Action"
29
+ msgstr "Aktion"
30
+
31
+ msgid "Action with sub plans"
32
+ msgstr "Aktion mit Unterplänen"
33
+
34
+ msgid "Create Snapshot"
35
+ msgstr "Snapshot erstellen"
36
+
37
+ msgid "Create Snapshot for %s"
38
+ msgstr "Snapshot anlegen für %s"
39
+
40
+ msgid "Create a snapshot"
41
+ msgstr "Einen Snapshot erstellen"
42
+
43
+ msgid "Created %{snapshots} for %{num} %{hosts}"
44
+ msgstr "%{snapshots} für %{num} %{hosts} erstellt"
45
+
46
+ msgid "Delete"
47
+ msgstr "Löschen"
48
+
49
+ msgid "Delete Snapshot \"%s\"?"
50
+ msgstr "\"%s\" wirklich löschen?"
51
+
52
+ msgid "Delete a snapshot"
53
+ msgstr "Snapshot löschen"
54
+
55
+ msgid "Description"
56
+ msgstr "Beschreibung"
57
+
58
+ msgid "Description of this snapshot"
59
+ msgstr "Beschreibung dieses Snapshots"
60
+
61
+ msgid "Error occurred while creating Snapshot for:%s"
62
+ msgstr "Beim Erzeugen des Snapshots ist ein Fehler aufgetreten: %s"
63
+
64
+ msgid "Error occurred while creating Snapshot: %s"
65
+ msgstr "Beim Erzeugen des Snaphosts ist ein Fehler aufgetreten: %s"
66
+
67
+ msgid "Error occurred while removing Snapshot: %s"
68
+ msgstr "Beim Löschen des Snapshots ist ein Fehler aufgetreten: %s"
69
+
70
+ msgid "Error occurred while rolling back VM: %s"
71
+ msgstr "Beim Zurücksetzen der VM ist ein Fehler aufgetreten: %s"
72
+
73
+ msgid "Error occurred while updating Snapshot: %s"
74
+ msgstr "Fehler beim Aktualisieren des Snapshots: %s"
75
+
76
+ msgid "Failed to load snapshot list"
77
+ msgstr "Fehler beim Laden der Snapshotliste"
78
+
79
+ msgid "Failed to update Snapshot: %s"
80
+ msgstr "Das Aktualisieren des Snapshots ist fehlgeschlagen: %s"
81
+
82
+ msgid "Foreman-plugin to manage snapshots in a virtual-hardware environments."
83
+ msgstr "Ein Foremanplugin, welches Snapshots in Umgebungen mit virtueller Hardware nutzbar macht."
84
+
85
+ msgid "Import Puppet classes"
86
+ msgstr "Puppet-Klassen importieren"
87
+
88
+ msgid "Import facts"
89
+ msgstr "Fakten importieren"
90
+
91
+ msgid "Include RAM"
92
+ msgstr "RAM einbeziehen"
93
+
94
+ msgid "List all snapshots"
95
+ msgstr "Alle Snapshots auflisten"
96
+
97
+ msgid "Loading Snapshots information ..."
98
+ msgstr "Lade Snapshot Informationen ..."
99
+
100
+ msgid "N/A"
101
+ msgstr "N/A"
102
+
103
+ msgid "Name"
104
+ msgstr "Name"
105
+
106
+ msgid "Name must contain at least 2 characters starting with alphabet. Valid characters are A-Z a-z 0-9 _"
107
+ msgstr "Der Name muss aus mindestens 2 Zeichen bestehen und mit einem Buchstaben beginnen. Gültige Zeichen: A-Z a-z 0-9 _"
108
+
109
+ msgid "Name of this snapshot"
110
+ msgstr "Name dieses Snapshots"
111
+
112
+ msgid "No capable hosts found."
113
+ msgstr "Kein unterstützter Host gefunden."
114
+
115
+ msgid "No capable hosts selected"
116
+ msgstr "Keine unterstützten Hosts ausgewählt"
117
+
118
+ msgid "No hosts were found with that id, name or query filter"
119
+ msgstr "Keine Hosts wurden mit dieser Kennung, Name oder Abfrage-Filter gefunden"
120
+
121
+ msgid "Revert Host to a snapshot"
122
+ msgstr "Host auf einen Snapshot zurücksetzen"
123
+
124
+ msgid "Rollback"
125
+ msgstr "Wiederherstellen"
126
+
127
+ msgid "Rollback to \"%s\"?"
128
+ msgstr "\"%s\" wirklich wiederherstellen?"
129
+
130
+ msgid "Snapshot"
131
+ msgid_plural "Snapshots"
132
+ msgstr[0] "Snapshot"
133
+ msgstr[1] "Snapshots"
134
+
135
+ msgid "Snapshot name cannot be changed"
136
+ msgstr "Der Name des Snapshots kann nicht geändert werden"
137
+
138
+ msgid "Snapshot successfully created!"
139
+ msgstr "Snapshot erfolgreich erzeugt!"
140
+
141
+ msgid "Snapshots"
142
+ msgstr "Snapshots"
143
+
144
+ msgid "Something went wrong while selecting hosts - %s"
145
+ msgstr "Fehler beim Auswählen der Hosts – %s"
146
+
147
+ msgid "Successfully removed Snapshot \"%s\" from host %s"
148
+ msgstr "Snapshot \"%s\" erfolgreich von Host %s entfernt."
149
+
150
+ msgid "Successfully rolled back Snapshot \"%s\" on host %s"
151
+ msgstr "Snapshot \"%s\" erfolgreich auf Host %s zurückgesetzt."
152
+
153
+ msgid "Successfully updated Snapshot \"%s\""
154
+ msgstr "Snapshot \"%s\" erfolgreich aktualisiert."
155
+
156
+ msgid "Unable to create Proxmox Snapshot"
157
+ msgstr "Proxmox Snapshot konnte nicht erstellt werden"
158
+
159
+ msgid "Unable to create VMWare Snapshot"
160
+ msgstr "VMWare Snapshot konnte nicht erstellt werden"
161
+
162
+ msgid "Unable to remove Proxmox Snapshot"
163
+ msgstr "Proxmox Snapshot konnte nicht gelöscht werden"
164
+
165
+ msgid "Unable to remove VMWare Snapshot"
166
+ msgstr "VMWare Snapshot konnte nicht gelöscht werden"
167
+
168
+ msgid "Unable to revert Proxmox Snapshot"
169
+ msgstr "Proxmox Snapshot konnte nicht wiederhergestellt werden"
170
+
171
+ msgid "Unable to revert VMWare Snapshot"
172
+ msgstr "VMWare Snapshot konnte nicht wiederhergestellt werden"
173
+
174
+ msgid "Unable to update Proxmox Snapshot"
175
+ msgstr "Proxmox Snapshot konnte nicht aktualisiert werden"
176
+
177
+ msgid "Unable to update VMWare Snapshot"
178
+ msgstr "VMWare Snapshot konnte nicht aktualisiert werden"
179
+
180
+ msgid "Update a snapshot"
181
+ msgstr "Snapshot aktualisieren"
182
+
183
+ msgid "VM successfully rolled back."
184
+ msgstr "Die VM wurde erfolgreich zurückgesetzt."
185
+
186
+ msgid "Whether to include the RAM state in the snapshot"
187
+ msgstr "Ob auch der aktuelle Hauptspeicherstand im Snapshot gespeichert werden soll"
188
+
189
+ msgid "edit entry"
190
+ msgstr "Eintrag bearbeiten"
191
+
192
+ msgid "host"
193
+ msgid_plural "hosts"
194
+ msgstr[0] "Host"
195
+ msgstr[1] "Hosts"
@@ -1,19 +1,187 @@
1
- # foreman_snapshot_management
1
+ # English translations for foreman_snapshot_management package.
2
+ # Copyright (C) 2020 THE PACKAGE'S COPYRIGHT HOLDER
3
+ # This file is distributed under the same license as the foreman_snapshot_management package.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
2
5
  #
3
- # This file is distributed under the same license as foreman_snapshot_management.
4
- #
5
- #, fuzzy
6
6
  msgid ""
7
7
  msgstr ""
8
- "Project-Id-Version: version 0.0.1\n"
8
+ "Project-Id-Version: foreman_snapshot_management 1.8.1\n"
9
9
  "Report-Msgid-Bugs-To: \n"
10
- "POT-Creation-Date: 2014-08-20 08:46+0100\n"
11
- "PO-Revision-Date: 2014-08-20 08:54+0100\n"
12
- "Last-Translator: Foreman Team <foreman-dev@googlegroups.com>\n"
13
- "Language-Team: Foreman Team <foreman-dev@googlegroups.com>\n"
14
- "Language: \n"
10
+ "PO-Revision-Date: 2020-03-02 10:27+0000\n"
11
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12
+ "Language-Team: English\n"
13
+ "Language: en\n"
15
14
  "MIME-Version: 1.0\n"
16
15
  "Content-Type: text/plain; charset=UTF-8\n"
17
16
  "Content-Transfer-Encoding: 8bit\n"
18
- "Plural-Forms: nplurals=2; plural=(n != 1);\n"
17
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
18
+ "\n"
19
+
20
+ msgid "Action"
21
+ msgstr ""
22
+
23
+ msgid "Action with sub plans"
24
+ msgstr ""
25
+
26
+ msgid "Create Snapshot"
27
+ msgstr ""
28
+
29
+ msgid "Create Snapshot for %s"
30
+ msgstr ""
31
+
32
+ msgid "Create a snapshot"
33
+ msgstr ""
34
+
35
+ msgid "Created %{snapshots} for %{num} %{hosts}"
36
+ msgstr ""
37
+
38
+ msgid "Delete"
39
+ msgstr ""
40
+
41
+ msgid "Delete Snapshot \"%s\"?"
42
+ msgstr ""
43
+
44
+ msgid "Delete a snapshot"
45
+ msgstr ""
46
+
47
+ msgid "Description"
48
+ msgstr ""
49
+
50
+ msgid "Description of this snapshot"
51
+ msgstr ""
52
+
53
+ msgid "Error occurred while creating Snapshot for:%s"
54
+ msgstr ""
55
+
56
+ msgid "Error occurred while creating Snapshot: %s"
57
+ msgstr ""
58
+
59
+ msgid "Error occurred while removing Snapshot: %s"
60
+ msgstr ""
61
+
62
+ msgid "Error occurred while rolling back VM: %s"
63
+ msgstr ""
64
+
65
+ msgid "Error occurred while updating Snapshot: %s"
66
+ msgstr ""
67
+
68
+ msgid "Failed to load snapshot list"
69
+ msgstr ""
70
+
71
+ msgid "Failed to update Snapshot: %s"
72
+ msgstr ""
73
+
74
+ msgid "Foreman-plugin to manage snapshots in a virtual-hardware environments."
75
+ msgstr ""
76
+
77
+ msgid "Import Puppet classes"
78
+ msgstr ""
79
+
80
+ msgid "Import facts"
81
+ msgstr ""
82
+
83
+ msgid "Include RAM"
84
+ msgstr ""
85
+
86
+ msgid "List all snapshots"
87
+ msgstr ""
88
+
89
+ msgid "Loading Snapshots information ..."
90
+ msgstr ""
91
+
92
+ msgid "N/A"
93
+ msgstr ""
94
+
95
+ msgid "Name"
96
+ msgstr ""
97
+
98
+ msgid "Name must contain at least 2 characters starting with alphabet. Valid characters are A-Z a-z 0-9 _"
99
+ msgstr ""
100
+
101
+ msgid "Name of this snapshot"
102
+ msgstr ""
103
+
104
+ msgid "No capable hosts found."
105
+ msgstr ""
106
+
107
+ msgid "No capable hosts selected"
108
+ msgstr ""
109
+
110
+ msgid "No hosts were found with that id, name or query filter"
111
+ msgstr ""
112
+
113
+ msgid "Revert Host to a snapshot"
114
+ msgstr ""
115
+
116
+ msgid "Rollback"
117
+ msgstr ""
118
+
119
+ msgid "Rollback to \"%s\"?"
120
+ msgstr ""
121
+
122
+ msgid "Snapshot"
123
+ msgid_plural "Snapshots"
124
+ msgstr[0] ""
125
+ msgstr[1] ""
126
+
127
+ msgid "Snapshot name cannot be changed"
128
+ msgstr ""
129
+
130
+ msgid "Snapshot successfully created!"
131
+ msgstr ""
132
+
133
+ msgid "Snapshots"
134
+ msgstr ""
135
+
136
+ msgid "Something went wrong while selecting hosts - %s"
137
+ msgstr ""
138
+
139
+ msgid "Successfully removed Snapshot \"%s\" from host %s"
140
+ msgstr ""
141
+
142
+ msgid "Successfully rolled back Snapshot \"%s\" on host %s"
143
+ msgstr ""
144
+
145
+ msgid "Successfully updated Snapshot \"%s\""
146
+ msgstr ""
147
+
148
+ msgid "Unable to create Proxmox Snapshot"
149
+ msgstr ""
150
+
151
+ msgid "Unable to create VMWare Snapshot"
152
+ msgstr ""
153
+
154
+ msgid "Unable to remove Proxmox Snapshot"
155
+ msgstr ""
156
+
157
+ msgid "Unable to remove VMWare Snapshot"
158
+ msgstr ""
159
+
160
+ msgid "Unable to revert Proxmox Snapshot"
161
+ msgstr ""
162
+
163
+ msgid "Unable to revert VMWare Snapshot"
164
+ msgstr ""
165
+
166
+ msgid "Unable to update Proxmox Snapshot"
167
+ msgstr ""
168
+
169
+ msgid "Unable to update VMWare Snapshot"
170
+ msgstr ""
171
+
172
+ msgid "Update a snapshot"
173
+ msgstr ""
174
+
175
+ msgid "VM successfully rolled back."
176
+ msgstr ""
177
+
178
+ msgid "Whether to include the RAM state in the snapshot"
179
+ msgstr ""
180
+
181
+ msgid "edit entry"
182
+ msgstr ""
19
183
 
184
+ msgid "host"
185
+ msgid_plural "hosts"
186
+ msgstr[0] ""
187
+ msgstr[1] ""