foreman_snapshot_management 2.0.2 → 2.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/api/v2/snapshots_controller.rb +4 -1
  3. data/app/controllers/concerns/foreman/controller/parameters/snapshot.rb +1 -1
  4. data/app/controllers/foreman_snapshot_management/snapshots_controller.rb +16 -2
  5. data/app/models/foreman_snapshot_management/proxmox_extensions.rb +3 -3
  6. data/app/models/foreman_snapshot_management/snapshot.rb +4 -4
  7. data/app/models/foreman_snapshot_management/vmware_extensions.rb +13 -3
  8. data/app/views/foreman_snapshot_management/snapshots/_index.html.erb +2 -1
  9. data/app/views/foreman_snapshot_management/snapshots/select_multiple_host.html.erb +5 -3
  10. data/lib/foreman_snapshot_management/version.rb +1 -1
  11. data/locale/Makefile +7 -3
  12. data/locale/cs_CZ/LC_MESSAGES/foreman_snapshot_management.mo +0 -0
  13. data/locale/cs_CZ/foreman_snapshot_management.po +195 -0
  14. data/locale/de/LC_MESSAGES/foreman_snapshot_management.mo +0 -0
  15. data/locale/de/foreman_snapshot_management.po +10 -10
  16. data/locale/el/LC_MESSAGES/foreman_snapshot_management.mo +0 -0
  17. data/locale/el/foreman_snapshot_management.po +190 -0
  18. data/locale/en/LC_MESSAGES/foreman_snapshot_management.mo +0 -0
  19. data/locale/en/foreman_snapshot_management.po +22 -13
  20. data/locale/foreman_snapshot_management.pot +56 -35
  21. data/locale/fr/LC_MESSAGES/foreman_snapshot_management.mo +0 -0
  22. data/locale/fr/foreman_snapshot_management.po +196 -0
  23. data/locale/ja/LC_MESSAGES/foreman_snapshot_management.mo +0 -0
  24. data/locale/ja/foreman_snapshot_management.po +189 -0
  25. data/locale/ka/LC_MESSAGES/foreman_snapshot_management.mo +0 -0
  26. data/locale/ka/foreman_snapshot_management.po +190 -0
  27. data/locale/zh_CN/LC_MESSAGES/foreman_snapshot_management.mo +0 -0
  28. data/locale/zh_CN/foreman_snapshot_management.po +191 -0
  29. data/package.json +3 -2
  30. data/test/controllers/foreman_snapshot_management/snapshots_controller_test.rb +17 -2
  31. data/webpack/components/SnapshotManagement/SnapshotManagement.js +2 -0
  32. data/webpack/components/SnapshotManagement/components/SnapshotForm/SnapshotForm.js +53 -11
  33. data/webpack/components/SnapshotManagement/components/SnapshotForm/__tests__/__snapshots__/SnapshotForm.test.js.snap +262 -24
  34. data/webpack/components/SnapshotManagementCard/SnapshotManagementCard.js +61 -0
  35. data/webpack/components/SnapshotManagementCard/__tests__/SnapshotManagementCard.test.js +53 -0
  36. data/webpack/components/SnapshotManagementCard/__tests__/__snapshots__/SnapshotManagementCard.test.js.snap +132 -0
  37. data/webpack/components/SnapshotManagementCard/index.js +1 -0
  38. data/webpack/global_index.js +13 -0
  39. metadata +21 -6
@@ -8,6 +8,8 @@ exports[`SnapshotForm rendering render 1`] = `
8
8
  "description": "",
9
9
  "includeRam": false,
10
10
  "name": "",
11
+ "snapshotMode": "",
12
+ "useQuiesce": false,
11
13
  }
12
14
  }
13
15
  onCancel={[Function]}
@@ -25,6 +27,8 @@ exports[`SnapshotForm rendering render 1`] = `
25
27
  "_exclusive": Object {},
26
28
  "_mutate": undefined,
27
29
  "_nodes": Array [
30
+ "snapshotMode",
31
+ "useQuiesce",
28
32
  "includeRam",
29
33
  "description",
30
34
  "name",
@@ -121,6 +125,56 @@ exports[`SnapshotForm rendering render 1`] = `
121
125
  ],
122
126
  "type": "string",
123
127
  },
128
+ "snapshotMode": StringSchema {
129
+ "_blacklist": RefSet {
130
+ "list": Array [],
131
+ "refs": Array [],
132
+ },
133
+ "_conditions": Array [],
134
+ "_deps": Array [],
135
+ "_exclusive": Object {},
136
+ "_mutate": undefined,
137
+ "_options": Object {
138
+ "abortEarly": true,
139
+ "recursive": true,
140
+ },
141
+ "_type": "string",
142
+ "_typeError": [Function],
143
+ "_whitelist": RefSet {
144
+ "list": Array [],
145
+ "refs": Array [],
146
+ },
147
+ "tests": Array [],
148
+ "transforms": Array [
149
+ [Function],
150
+ ],
151
+ "type": "string",
152
+ },
153
+ "useQuiesce": BooleanSchema {
154
+ "_blacklist": RefSet {
155
+ "list": Array [],
156
+ "refs": Array [],
157
+ },
158
+ "_conditions": Array [],
159
+ "_deps": Array [],
160
+ "_exclusive": Object {},
161
+ "_mutate": undefined,
162
+ "_options": Object {
163
+ "abortEarly": true,
164
+ "recursive": true,
165
+ },
166
+ "_type": "boolean",
167
+ "_typeError": [Function],
168
+ "_whitelist": RefSet {
169
+ "list": Array [],
170
+ "refs": Array [],
171
+ },
172
+ "tests": Array [],
173
+ "transforms": Array [
174
+ [Function],
175
+ ],
176
+ "type": "boolean",
177
+ },
124
178
  },
125
179
  "tests": Array [],
126
180
  "transforms": Array [
@@ -146,14 +200,40 @@ exports[`SnapshotForm rendering render 1`] = `
146
200
  required={false}
147
201
  type="textarea"
148
202
  />
149
- <TextField
150
- className=""
151
- inputClassName="col-md-8"
152
- label="Include RAM"
153
- name="includeRam"
154
- required={false}
155
- type="checkbox"
156
- />
203
+ <div
204
+ className="form-group"
205
+ >
206
+ <label
207
+ className="col-md-2 control-label"
208
+ >
209
+ Snapshot Mode
210
+ <FieldLevelHelp
211
+ buttonClass="field-help"
212
+ content="Select Snapshot Mode between mutually exclusive options, 'Memory' (includes RAM) and 'Quiesce'."
213
+ placement="top"
214
+ rootClose={true}
215
+ />
216
+ </label>
217
+ <div
218
+ className="col-md-8"
219
+ >
220
+ <select
221
+ className="common-select form-control"
222
+ onChange={[Function]}
223
+ >
224
+ <option
225
+ key=""
226
+ value=""
227
+ />
228
+ <option
229
+ key="Memory"
230
+ value="Memory"
231
+ >
232
+ Memory
233
+ </option>
234
+ </select>
235
+ </div>
236
+ </div>
157
237
  </ForemanForm>
158
238
  `;
159
239
 
@@ -165,6 +245,8 @@ exports[`SnapshotForm rendering render with limitSnapshotNameFormat capability 1
165
245
  "description": "",
166
246
  "includeRam": false,
167
247
  "name": "",
248
+ "snapshotMode": "",
249
+ "useQuiesce": false,
168
250
  }
169
251
  }
170
252
  onCancel={[Function]}
@@ -182,6 +264,8 @@ exports[`SnapshotForm rendering render with limitSnapshotNameFormat capability 1
182
264
  "_exclusive": Object {},
183
265
  "_mutate": undefined,
184
266
  "_nodes": Array [
267
+ "snapshotMode",
268
+ "useQuiesce",
185
269
  "includeRam",
186
270
  "description",
187
271
  "name",
@@ -282,6 +366,56 @@ exports[`SnapshotForm rendering render with limitSnapshotNameFormat capability 1
282
366
  ],
283
367
  "type": "string",
284
368
  },
369
+ "snapshotMode": StringSchema {
370
+ "_blacklist": RefSet {
371
+ "list": Array [],
372
+ "refs": Array [],
373
+ },
374
+ "_conditions": Array [],
375
+ "_deps": Array [],
376
+ "_exclusive": Object {},
377
+ "_mutate": undefined,
378
+ "_options": Object {
379
+ "abortEarly": true,
380
+ "recursive": true,
381
+ },
382
+ "_type": "string",
383
+ "_typeError": [Function],
384
+ "_whitelist": RefSet {
385
+ "list": Array [],
386
+ "refs": Array [],
387
+ },
388
+ "tests": Array [],
389
+ "transforms": Array [
390
+ [Function],
391
+ ],
392
+ "type": "string",
393
+ },
394
+ "useQuiesce": BooleanSchema {
395
+ "_blacklist": RefSet {
396
+ "list": Array [],
397
+ "refs": Array [],
398
+ },
399
+ "_conditions": Array [],
400
+ "_deps": Array [],
401
+ "_exclusive": Object {},
402
+ "_mutate": undefined,
403
+ "_options": Object {
404
+ "abortEarly": true,
405
+ "recursive": true,
406
+ },
407
+ "_type": "boolean",
408
+ "_typeError": [Function],
409
+ "_whitelist": RefSet {
410
+ "list": Array [],
411
+ "refs": Array [],
412
+ },
413
+ "tests": Array [],
414
+ "transforms": Array [
415
+ [Function],
416
+ ],
417
+ "type": "boolean",
418
+ },
285
419
  },
286
420
  "tests": Array [],
287
421
  "transforms": Array [
@@ -307,14 +441,40 @@ exports[`SnapshotForm rendering render with limitSnapshotNameFormat capability 1
307
441
  required={false}
308
442
  type="textarea"
309
443
  />
310
- <TextField
311
- className=""
312
- inputClassName="col-md-8"
313
- label="Include RAM"
314
- name="includeRam"
315
- required={false}
316
- type="checkbox"
317
- />
444
+ <div
445
+ className="form-group"
446
+ >
447
+ <label
448
+ className="col-md-2 control-label"
449
+ >
450
+ Snapshot Mode
451
+ <FieldLevelHelp
452
+ buttonClass="field-help"
453
+ content="Select Snapshot Mode between mutually exclusive options, 'Memory' (includes RAM) and 'Quiesce'."
454
+ placement="top"
455
+ rootClose={true}
456
+ />
457
+ </label>
458
+ <div
459
+ className="col-md-8"
460
+ >
461
+ <select
462
+ className="common-select form-control"
463
+ onChange={[Function]}
464
+ >
465
+ <option
466
+ key=""
467
+ value=""
468
+ />
469
+ <option
470
+ key="Memory"
471
+ value="Memory"
472
+ >
473
+ Memory
474
+ </option>
475
+ </select>
476
+ </div>
477
+ </div>
318
478
  </ForemanForm>
319
479
  `;
320
480
 
@@ -343,6 +503,8 @@ exports[`SnapshotForm rendering render with optional Props 1`] = `
343
503
  "_exclusive": Object {},
344
504
  "_mutate": undefined,
345
505
  "_nodes": Array [
506
+ "snapshotMode",
507
+ "useQuiesce",
346
508
  "includeRam",
347
509
  "description",
348
510
  "name",
@@ -439,6 +601,56 @@ exports[`SnapshotForm rendering render with optional Props 1`] = `
439
601
  ],
440
602
  "type": "string",
441
603
  },
604
+ "snapshotMode": StringSchema {
605
+ "_blacklist": RefSet {
606
+ "list": Array [],
607
+ "refs": Array [],
608
+ },
609
+ "_conditions": Array [],
610
+ "_deps": Array [],
611
+ "_exclusive": Object {},
612
+ "_mutate": undefined,
613
+ "_options": Object {
614
+ "abortEarly": true,
615
+ "recursive": true,
616
+ },
617
+ "_type": "string",
618
+ "_typeError": [Function],
619
+ "_whitelist": RefSet {
620
+ "list": Array [],
621
+ "refs": Array [],
622
+ },
623
+ "tests": Array [],
624
+ "transforms": Array [
625
+ [Function],
626
+ ],
627
+ "type": "string",
628
+ },
629
+ "useQuiesce": BooleanSchema {
630
+ "_blacklist": RefSet {
631
+ "list": Array [],
632
+ "refs": Array [],
633
+ },
634
+ "_conditions": Array [],
635
+ "_deps": Array [],
636
+ "_exclusive": Object {},
637
+ "_mutate": undefined,
638
+ "_options": Object {
639
+ "abortEarly": true,
640
+ "recursive": true,
641
+ },
642
+ "_type": "boolean",
643
+ "_typeError": [Function],
644
+ "_whitelist": RefSet {
645
+ "list": Array [],
646
+ "refs": Array [],
647
+ },
648
+ "tests": Array [],
649
+ "transforms": Array [
650
+ [Function],
651
+ ],
652
+ "type": "boolean",
653
+ },
442
654
  },
443
655
  "tests": Array [],
444
656
  "transforms": Array [
@@ -464,13 +676,39 @@ exports[`SnapshotForm rendering render with optional Props 1`] = `
464
676
  required={false}
465
677
  type="textarea"
466
678
  />
467
- <TextField
468
- className=""
469
- inputClassName="col-md-8"
470
- label="Include RAM"
471
- name="includeRam"
472
- required={false}
473
- type="checkbox"
474
- />
679
+ <div
680
+ className="form-group"
681
+ >
682
+ <label
683
+ className="col-md-2 control-label"
684
+ >
685
+ Snapshot Mode
686
+ <FieldLevelHelp
687
+ buttonClass="field-help"
688
+ content="Select Snapshot Mode between mutually exclusive options, 'Memory' (includes RAM) and 'Quiesce'."
689
+ placement="top"
690
+ rootClose={true}
691
+ />
692
+ </label>
693
+ <div
694
+ className="col-md-8"
695
+ >
696
+ <select
697
+ className="common-select form-control"
698
+ onChange={[Function]}
699
+ >
700
+ <option
701
+ key=""
702
+ value=""
703
+ />
704
+ <option
705
+ key="Memory"
706
+ value="Memory"
707
+ >
708
+ Memory
709
+ </option>
710
+ </select>
711
+ </div>
712
+ </div>
475
713
  </ForemanForm>
476
714
  `;
@@ -0,0 +1,61 @@
1
+ import PropTypes from 'prop-types';
2
+ import React from 'react';
3
+
4
+ import CardTemplate from 'foremanReact/components/HostDetails/Templates/CardItem/CardTemplate';
5
+ import { translate as __ } from 'foremanReact/common/I18n';
6
+
7
+ import SnapshotManagement from '../SnapshotManagement';
8
+
9
+ const SnapshotManagementCard = ({ hostDetails, ...props }) => {
10
+ const children = [];
11
+ const capabilities = {
12
+ editableSnapshotName:
13
+ hostDetails?.capabilities?.includes('editable_snapshot_name') || false,
14
+ limitSnapshotNameFormat:
15
+ hostDetails?.capabilities?.includes('limit_snapshot_name_format') ||
16
+ false,
17
+ quiesceOption:
18
+ hostDetails?.capabilities?.includes('snapshot_include_quiesce') || false,
19
+ };
20
+
21
+ if (hostDetails?.id && hostDetails?.permissions)
22
+ children.push(
23
+ <SnapshotManagement
24
+ key="SnapshotManagement"
25
+ host={{ id: hostDetails.id, name: hostDetails.name }}
26
+ canCreate={hostDetails.permissions.create_snapshots}
27
+ canUpdate={hostDetails.permissions.edit_snapshots}
28
+ canRevert={hostDetails.permissions.revert_snapshots}
29
+ canDelete={hostDetails.permissions.destroy_snapshots}
30
+ capabilities={capabilities}
31
+ />
32
+ );
33
+ return (
34
+ <CardTemplate
35
+ overrideGridProps={{ xl2: 6, xl: 8, lg: 8, md: 12 }}
36
+ header={__('Snapshots')}
37
+ >
38
+ {children}
39
+ </CardTemplate>
40
+ );
41
+ };
42
+
43
+ export default SnapshotManagementCard;
44
+
45
+ SnapshotManagementCard.propTypes = {
46
+ hostDetails: PropTypes.shape({
47
+ name: PropTypes.string,
48
+ id: PropTypes.number,
49
+ capabilities: PropTypes.array,
50
+ permissions: PropTypes.shape({
51
+ create_snapshots: PropTypes.bool,
52
+ edit_snapshots: PropTypes.bool,
53
+ revert_snapshots: PropTypes.bool,
54
+ destroy_snapshots: PropTypes.bool,
55
+ }),
56
+ }),
57
+ };
58
+
59
+ SnapshotManagementCard.defaultProps = {
60
+ hostDetails: {},
61
+ };
@@ -0,0 +1,53 @@
1
+ import { testComponentSnapshotsWithFixtures } from 'react-redux-test-utils';
2
+
3
+ import SnapshotManagementCard from '../SnapshotManagementCard';
4
+
5
+ const hostDetails = {
6
+ id: 42,
7
+ name: 'deep.thought',
8
+ permissions: {
9
+ create_snapshots: true,
10
+ edit_snapshots: false,
11
+ revert_snapshots: true,
12
+ destroy_snapshots: false,
13
+ },
14
+ };
15
+
16
+ const hostDetailsVmware = {
17
+ ...hostDetails,
18
+ capabilities: [
19
+ 'build',
20
+ 'image',
21
+ 'snapshots',
22
+ 'snapshot_include_quiesce',
23
+ 'snapshot_include_ram',
24
+ 'editable_snapshot_name',
25
+ ],
26
+ };
27
+ const hostDetailsProxmox = {
28
+ ...hostDetails,
29
+ capabilities: [
30
+ 'build',
31
+ 'new_volume',
32
+ 'new_interface',
33
+ 'image',
34
+ 'snapshots',
35
+ 'limit_snapshot_name_format',
36
+ ],
37
+ };
38
+
39
+ const fixtures = {
40
+ 'without optional Props': {},
41
+ 'with Props': { hostDetails },
42
+ 'with VMWare capabilities': {
43
+ hostDetails: hostDetailsVmware,
44
+ },
45
+ 'with Proxmox capabilities': {
46
+ hostDetails: hostDetailsProxmox,
47
+ },
48
+ };
49
+
50
+ describe('SnapshotManagementCard', () => {
51
+ describe('renders', () =>
52
+ testComponentSnapshotsWithFixtures(SnapshotManagementCard, fixtures));
53
+ });
@@ -0,0 +1,132 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`SnapshotManagementCard renders with Props 1`] = `
4
+ <CardTemplate
5
+ expandable={false}
6
+ header="Snapshots"
7
+ masonryLayout={false}
8
+ overrideDropdownProps={Object {}}
9
+ overrideGridProps={
10
+ Object {
11
+ "lg": 8,
12
+ "md": 12,
13
+ "xl": 8,
14
+ "xl2": 6,
15
+ }
16
+ }
17
+ >
18
+ <Connect(SnapshotManagement)
19
+ canCreate={true}
20
+ canDelete={false}
21
+ canRevert={true}
22
+ canUpdate={false}
23
+ capabilities={
24
+ Object {
25
+ "editableSnapshotName": false,
26
+ "limitSnapshotNameFormat": false,
27
+ "quiesceOption": false,
28
+ }
29
+ }
30
+ host={
31
+ Object {
32
+ "id": 42,
33
+ "name": "deep.thought",
34
+ }
35
+ }
36
+ key="SnapshotManagement"
37
+ />
38
+ </CardTemplate>
39
+ `;
40
+
41
+ exports[`SnapshotManagementCard renders with Proxmox capabilities 1`] = `
42
+ <CardTemplate
43
+ expandable={false}
44
+ header="Snapshots"
45
+ masonryLayout={false}
46
+ overrideDropdownProps={Object {}}
47
+ overrideGridProps={
48
+ Object {
49
+ "lg": 8,
50
+ "md": 12,
51
+ "xl": 8,
52
+ "xl2": 6,
53
+ }
54
+ }
55
+ >
56
+ <Connect(SnapshotManagement)
57
+ canCreate={true}
58
+ canDelete={false}
59
+ canRevert={true}
60
+ canUpdate={false}
61
+ capabilities={
62
+ Object {
63
+ "editableSnapshotName": false,
64
+ "limitSnapshotNameFormat": true,
65
+ "quiesceOption": false,
66
+ }
67
+ }
68
+ host={
69
+ Object {
70
+ "id": 42,
71
+ "name": "deep.thought",
72
+ }
73
+ }
74
+ key="SnapshotManagement"
75
+ />
76
+ </CardTemplate>
77
+ `;
78
+
79
+ exports[`SnapshotManagementCard renders with VMWare capabilities 1`] = `
80
+ <CardTemplate
81
+ expandable={false}
82
+ header="Snapshots"
83
+ masonryLayout={false}
84
+ overrideDropdownProps={Object {}}
85
+ overrideGridProps={
86
+ Object {
87
+ "lg": 8,
88
+ "md": 12,
89
+ "xl": 8,
90
+ "xl2": 6,
91
+ }
92
+ }
93
+ >
94
+ <Connect(SnapshotManagement)
95
+ canCreate={true}
96
+ canDelete={false}
97
+ canRevert={true}
98
+ canUpdate={false}
99
+ capabilities={
100
+ Object {
101
+ "editableSnapshotName": true,
102
+ "limitSnapshotNameFormat": false,
103
+ "quiesceOption": true,
104
+ }
105
+ }
106
+ host={
107
+ Object {
108
+ "id": 42,
109
+ "name": "deep.thought",
110
+ }
111
+ }
112
+ key="SnapshotManagement"
113
+ />
114
+ </CardTemplate>
115
+ `;
116
+
117
+ exports[`SnapshotManagementCard renders without optional Props 1`] = `
118
+ <CardTemplate
119
+ expandable={false}
120
+ header="Snapshots"
121
+ masonryLayout={false}
122
+ overrideDropdownProps={Object {}}
123
+ overrideGridProps={
124
+ Object {
125
+ "lg": 8,
126
+ "md": 12,
127
+ "xl": 8,
128
+ "xl2": 6,
129
+ }
130
+ }
131
+ />
132
+ `;
@@ -0,0 +1 @@
1
+ export { default } from './SnapshotManagementCard';
@@ -1,7 +1,20 @@
1
+ import React from 'react';
2
+
1
3
  import { registerReducer } from 'foremanReact/common/MountingService';
4
+ import { addGlobalFill } from 'foremanReact/components/common/Fill/GlobalFill';
5
+
2
6
  import reducers from './reducers';
7
+ import SnapshotManagementCard from './components/SnapshotManagementCard';
3
8
 
4
9
  // register reducers
5
10
  Object.entries(reducers).forEach(([key, reducer]) =>
6
11
  registerReducer(key, reducer)
7
12
  );
13
+
14
+ // register HostDetails-Fill
15
+ addGlobalFill(
16
+ 'host-overview-cards',
17
+ 'foreman_snapshot_management-card',
18
+ <SnapshotManagementCard key="foreman_snapshot_management-card" />,
19
+ 1000
20
+ );
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_snapshot_management
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - ATIX AG
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-07 00:00:00.000000000 Z
11
+ date: 2023-02-17 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Foreman-plugin to manage snapshots in a virtual-hardware environments.
14
14
  email:
@@ -48,12 +48,24 @@ files:
48
48
  - lib/foreman_snapshot_management/version.rb
49
49
  - lib/tasks/foreman_snapshot_management_tasks.rake
50
50
  - locale/Makefile
51
+ - locale/cs_CZ/LC_MESSAGES/foreman_snapshot_management.mo
52
+ - locale/cs_CZ/foreman_snapshot_management.po
51
53
  - locale/de/LC_MESSAGES/foreman_snapshot_management.mo
52
54
  - locale/de/foreman_snapshot_management.po
55
+ - locale/el/LC_MESSAGES/foreman_snapshot_management.mo
56
+ - locale/el/foreman_snapshot_management.po
53
57
  - locale/en/LC_MESSAGES/foreman_snapshot_management.mo
54
58
  - locale/en/foreman_snapshot_management.po
55
59
  - locale/foreman_snapshot_management.pot
60
+ - locale/fr/LC_MESSAGES/foreman_snapshot_management.mo
61
+ - locale/fr/foreman_snapshot_management.po
56
62
  - locale/gemspec.rb
63
+ - locale/ja/LC_MESSAGES/foreman_snapshot_management.mo
64
+ - locale/ja/foreman_snapshot_management.po
65
+ - locale/ka/LC_MESSAGES/foreman_snapshot_management.mo
66
+ - locale/ka/foreman_snapshot_management.po
67
+ - locale/zh_CN/LC_MESSAGES/foreman_snapshot_management.mo
68
+ - locale/zh_CN/foreman_snapshot_management.po
57
69
  - package.json
58
70
  - test/controllers/api/v2/snapshots_test.rb
59
71
  - test/controllers/foreman_snapshot_management/snapshots_controller_test.rb
@@ -87,6 +99,10 @@ files:
87
99
  - webpack/components/SnapshotManagement/components/SnapshotList/snapshotList.scss
88
100
  - webpack/components/SnapshotManagement/index.js
89
101
  - webpack/components/SnapshotManagement/snapshotManagement.scss
102
+ - webpack/components/SnapshotManagementCard/SnapshotManagementCard.js
103
+ - webpack/components/SnapshotManagementCard/__tests__/SnapshotManagementCard.test.js
104
+ - webpack/components/SnapshotManagementCard/__tests__/__snapshots__/SnapshotManagementCard.test.js.snap
105
+ - webpack/components/SnapshotManagementCard/index.js
90
106
  - webpack/global_index.js
91
107
  - webpack/global_test_setup.js
92
108
  - webpack/index.js
@@ -111,13 +127,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
111
127
  - !ruby/object:Gem::Version
112
128
  version: '0'
113
129
  requirements: []
114
- rubyforge_project:
115
- rubygems_version: 2.7.6
130
+ rubygems_version: 3.2.5
116
131
  signing_key:
117
132
  specification_version: 4
118
133
  summary: Snapshot Management for machines on virtualization-platforms
119
134
  test_files:
120
- - test/factories/proxmox_factory.rb
121
- - test/test_plugin_helper.rb
122
135
  - test/controllers/foreman_snapshot_management/snapshots_controller_test.rb
123
136
  - test/controllers/api/v2/snapshots_test.rb
137
+ - test/factories/proxmox_factory.rb
138
+ - test/test_plugin_helper.rb