foreman_snapshot_management 1.7.1 → 2.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/README.md +3 -1
- data/Rakefile +7 -2
- data/app/controllers/api/v2/snapshots_controller.rb +22 -6
- data/app/models/foreman_snapshot_management/proxmox_extensions.rb +1 -1
- data/app/models/foreman_snapshot_management/snapshot.rb +4 -0
- data/app/views/api/v2/snapshots/base.json.rabl +2 -0
- data/app/views/foreman_snapshot_management/snapshots/_index.html.erb +12 -80
- data/app/views/hosts/_snapshots_tab.html.erb +8 -0
- data/lib/foreman_snapshot_management/engine.rb +22 -21
- data/lib/foreman_snapshot_management/version.rb +1 -1
- data/lib/tasks/foreman_snapshot_management_tasks.rake +2 -2
- data/locale/de/LC_MESSAGES/foreman_snapshot_management.mo +0 -0
- data/locale/de/foreman_snapshot_management.po +52 -19
- data/locale/en/LC_MESSAGES/foreman_snapshot_management.mo +0 -0
- data/locale/en/foreman_snapshot_management.po +44 -11
- data/locale/foreman_snapshot_management.pot +87 -25
- data/package.json +46 -0
- data/test/controllers/api/v2/snapshots_test.rb +232 -109
- data/test/controllers/foreman_snapshot_management/snapshots_controller_test.rb +1 -1
- data/test/factories/proxmox_factory.rb +1 -1
- data/webpack/components/SnapshotManagement/SnapshotManagement.js +84 -0
- data/webpack/components/SnapshotManagement/SnapshotManagementActions.js +212 -0
- data/webpack/components/SnapshotManagement/SnapshotManagementConstants.js +9 -0
- data/webpack/components/SnapshotManagement/SnapshotManagementReducer.js +100 -0
- data/webpack/components/SnapshotManagement/SnapshotManagementSelectors.js +8 -0
- data/webpack/components/SnapshotManagement/__tests__/SnapshotManagementActions.test.js +123 -0
- data/webpack/components/SnapshotManagement/__tests__/SnapshotManagementReducer.test.js +157 -0
- data/webpack/components/SnapshotManagement/__tests__/__snapshots__/SnapshotManagementActions.test.js.snap +314 -0
- data/webpack/components/SnapshotManagement/__tests__/__snapshots__/SnapshotManagementReducer.test.js.snap +214 -0
- data/webpack/components/SnapshotManagement/components/SnapshotForm/SnapshotForm.js +118 -0
- data/webpack/components/SnapshotManagement/components/SnapshotForm/SnapshotFormConstants.js +5 -0
- data/webpack/components/SnapshotManagement/components/SnapshotForm/__tests__/SnapshotForm.test.js +26 -0
- data/webpack/components/SnapshotManagement/components/SnapshotForm/__tests__/__snapshots__/SnapshotForm.test.js.snap +476 -0
- data/webpack/components/SnapshotManagement/components/SnapshotForm/index.js +19 -0
- data/webpack/components/SnapshotManagement/components/SnapshotForm/snapshotForm.scss +3 -0
- data/webpack/components/SnapshotManagement/components/SnapshotFormModal/SnapshotFormModal.js +37 -0
- data/webpack/components/SnapshotManagement/components/SnapshotFormModal/SnapshotFormModalConstants.js +1 -0
- data/webpack/components/SnapshotManagement/components/SnapshotFormModal/__tests__/SnapshotFormModal.test.js +19 -0
- data/webpack/components/SnapshotManagement/components/SnapshotFormModal/__tests__/__snapshots__/SnapshotFormModal.test.js.snap +19 -0
- data/webpack/components/SnapshotManagement/components/SnapshotFormModal/index.js +12 -0
- data/webpack/components/SnapshotManagement/components/SnapshotFormModal/useSnapshotFormModal.js +7 -0
- data/webpack/components/SnapshotManagement/components/SnapshotList/SnapshotList.js +314 -0
- data/webpack/components/SnapshotManagement/components/SnapshotList/SnapshotListHelper.js +70 -0
- data/webpack/components/SnapshotManagement/components/SnapshotList/__tests__/SnapshotList.test.js +88 -0
- data/webpack/components/SnapshotManagement/components/SnapshotList/__tests__/__snapshots__/SnapshotList.test.js.snap +1081 -0
- data/webpack/components/SnapshotManagement/components/SnapshotList/snapshotList.scss +13 -0
- data/webpack/components/SnapshotManagement/index.js +33 -0
- data/webpack/components/SnapshotManagement/snapshotManagement.scss +5 -0
- data/webpack/global_index.js +7 -0
- data/webpack/global_test_setup.js +11 -0
- data/webpack/index.js +8 -0
- data/webpack/reducers.js +7 -0
- data/webpack/test_setup.js +17 -0
- metadata +39 -33
Binary file
|
@@ -5,7 +5,7 @@
|
|
5
5
|
#
|
6
6
|
msgid ""
|
7
7
|
msgstr ""
|
8
|
-
"Project-Id-Version: foreman_snapshot_management 1.
|
8
|
+
"Project-Id-Version: foreman_snapshot_management 1.8.1\n"
|
9
9
|
"Report-Msgid-Bugs-To: \n"
|
10
10
|
"PO-Revision-Date: 2020-03-02 10:27+0000\n"
|
11
11
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
@@ -20,16 +20,13 @@ msgstr ""
|
|
20
20
|
msgid "Action"
|
21
21
|
msgstr ""
|
22
22
|
|
23
|
-
msgid "
|
23
|
+
msgid "Action with sub plans"
|
24
24
|
msgstr ""
|
25
25
|
|
26
|
-
msgid "
|
27
|
-
msgstr ""
|
28
|
-
|
29
|
-
msgid "Create"
|
26
|
+
msgid "Create Snapshot"
|
30
27
|
msgstr ""
|
31
28
|
|
32
|
-
msgid "Create Snapshot"
|
29
|
+
msgid "Create Snapshot for %s"
|
33
30
|
msgstr ""
|
34
31
|
|
35
32
|
msgid "Create a snapshot"
|
@@ -38,10 +35,13 @@ msgstr ""
|
|
38
35
|
msgid "Created %{snapshots} for %{num} %{hosts}"
|
39
36
|
msgstr ""
|
40
37
|
|
41
|
-
msgid "Delete
|
38
|
+
msgid "Delete"
|
39
|
+
msgstr ""
|
40
|
+
|
41
|
+
msgid "Delete Snapshot \"%s\"?"
|
42
42
|
msgstr ""
|
43
43
|
|
44
|
-
msgid "
|
44
|
+
msgid "Delete a snapshot"
|
45
45
|
msgstr ""
|
46
46
|
|
47
47
|
msgid "Description"
|
@@ -62,12 +62,24 @@ msgstr ""
|
|
62
62
|
msgid "Error occurred while rolling back VM: %s"
|
63
63
|
msgstr ""
|
64
64
|
|
65
|
+
msgid "Error occurred while updating Snapshot: %s"
|
66
|
+
msgstr ""
|
67
|
+
|
68
|
+
msgid "Failed to load snapshot list"
|
69
|
+
msgstr ""
|
70
|
+
|
65
71
|
msgid "Failed to update Snapshot: %s"
|
66
72
|
msgstr ""
|
67
73
|
|
68
74
|
msgid "Foreman-plugin to manage snapshots in a virtual-hardware environments."
|
69
75
|
msgstr ""
|
70
76
|
|
77
|
+
msgid "Import Puppet classes"
|
78
|
+
msgstr ""
|
79
|
+
|
80
|
+
msgid "Import facts"
|
81
|
+
msgstr ""
|
82
|
+
|
71
83
|
msgid "Include RAM"
|
72
84
|
msgstr ""
|
73
85
|
|
@@ -77,6 +89,12 @@ msgstr ""
|
|
77
89
|
msgid "Loading Snapshots information ..."
|
78
90
|
msgstr ""
|
79
91
|
|
92
|
+
msgid "N/A"
|
93
|
+
msgstr ""
|
94
|
+
|
95
|
+
msgid "Name"
|
96
|
+
msgstr ""
|
97
|
+
|
80
98
|
msgid "Name must contain at least 2 characters starting with alphabet. Valid characters are A-Z a-z 0-9 _"
|
81
99
|
msgstr ""
|
82
100
|
|
@@ -95,10 +113,10 @@ msgstr ""
|
|
95
113
|
msgid "Revert Host to a snapshot"
|
96
114
|
msgstr ""
|
97
115
|
|
98
|
-
msgid "
|
116
|
+
msgid "Rollback"
|
99
117
|
msgstr ""
|
100
118
|
|
101
|
-
msgid "Rollback"
|
119
|
+
msgid "Rollback to \"%s\"?"
|
102
120
|
msgstr ""
|
103
121
|
|
104
122
|
msgid "Snapshot"
|
@@ -109,12 +127,24 @@ msgstr[1] ""
|
|
109
127
|
msgid "Snapshot name cannot be changed"
|
110
128
|
msgstr ""
|
111
129
|
|
130
|
+
msgid "Snapshot successfully created!"
|
131
|
+
msgstr ""
|
132
|
+
|
112
133
|
msgid "Snapshots"
|
113
134
|
msgstr ""
|
114
135
|
|
115
136
|
msgid "Something went wrong while selecting hosts - %s"
|
116
137
|
msgstr ""
|
117
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
|
+
|
118
148
|
msgid "Unable to create Proxmox Snapshot"
|
119
149
|
msgstr ""
|
120
150
|
|
@@ -148,6 +178,9 @@ msgstr ""
|
|
148
178
|
msgid "Whether to include the RAM state in the snapshot"
|
149
179
|
msgstr ""
|
150
180
|
|
181
|
+
msgid "edit entry"
|
182
|
+
msgstr ""
|
183
|
+
|
151
184
|
msgid "host"
|
152
185
|
msgid_plural "hosts"
|
153
186
|
msgstr[0] ""
|
@@ -8,8 +8,8 @@ msgid ""
|
|
8
8
|
msgstr ""
|
9
9
|
"Project-Id-Version: foreman_snapshot_management 1.0.0\n"
|
10
10
|
"Report-Msgid-Bugs-To: \n"
|
11
|
-
"POT-Creation-Date:
|
12
|
-
"PO-Revision-Date:
|
11
|
+
"POT-Creation-Date: 2021-05-07 09:44+0000\n"
|
12
|
+
"PO-Revision-Date: 2021-05-07 09:44+0000\n"
|
13
13
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
14
14
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
15
15
|
"Language: \n"
|
@@ -55,6 +55,7 @@ msgid "Error occurred while creating Snapshot: %s"
|
|
55
55
|
msgstr ""
|
56
56
|
|
57
57
|
#: ../app/controllers/foreman_snapshot_management/snapshots_controller.rb:48
|
58
|
+
#: ../webpack/components/SnapshotManagement/SnapshotManagementActions.js:81
|
58
59
|
msgid "Error occurred while removing Snapshot: %s"
|
59
60
|
msgstr ""
|
60
61
|
|
@@ -63,6 +64,7 @@ msgid "VM successfully rolled back."
|
|
63
64
|
msgstr ""
|
64
65
|
|
65
66
|
#: ../app/controllers/foreman_snapshot_management/snapshots_controller.rb:60
|
67
|
+
#: ../webpack/components/SnapshotManagement/SnapshotManagementActions.js:199
|
66
68
|
msgid "Error occurred while rolling back VM: %s"
|
67
69
|
msgstr ""
|
68
70
|
|
@@ -80,8 +82,8 @@ msgstr ""
|
|
80
82
|
|
81
83
|
#: ../app/controllers/foreman_snapshot_management/snapshots_controller.rb:95
|
82
84
|
#: ../app/models/foreman_snapshot_management/snapshot.rb:52
|
83
|
-
#: ../app/views/foreman_snapshot_management/snapshots/_index.html.erb:5
|
84
85
|
#: ../app/views/foreman_snapshot_management/snapshots/select_multiple_host.html.erb:8
|
86
|
+
#: ../webpack/components/SnapshotManagement/components/SnapshotList/SnapshotList.js:156
|
85
87
|
msgid "Snapshot"
|
86
88
|
msgid_plural "Snapshots"
|
87
89
|
msgstr[0] ""
|
@@ -107,6 +109,7 @@ msgstr ""
|
|
107
109
|
|
108
110
|
#:
|
109
111
|
#: ../app/helpers/concerns/foreman_snapshot_management/hosts_helper_extension.rb:6
|
112
|
+
#: ../webpack/components/SnapshotManagement/SnapshotManagement.js:46
|
110
113
|
msgid "Create Snapshot"
|
111
114
|
msgstr ""
|
112
115
|
|
@@ -152,55 +155,114 @@ msgstr ""
|
|
152
155
|
msgid "Unable to update VMWare Snapshot"
|
153
156
|
msgstr ""
|
154
157
|
|
155
|
-
#:
|
158
|
+
#:
|
159
|
+
#: ../app/views/foreman_snapshot_management/snapshots/select_multiple_host.html.erb:4
|
160
|
+
msgid "No capable hosts selected"
|
161
|
+
msgstr ""
|
162
|
+
|
163
|
+
#:
|
156
164
|
#: ../app/views/foreman_snapshot_management/snapshots/select_multiple_host.html.erb:11
|
165
|
+
#: ../webpack/components/SnapshotManagement/components/SnapshotForm/SnapshotForm.js:75
|
166
|
+
#: ../webpack/components/SnapshotManagement/components/SnapshotList/SnapshotList.js:162
|
157
167
|
msgid "Description"
|
158
168
|
msgstr ""
|
159
169
|
|
160
|
-
#:
|
170
|
+
#:
|
161
171
|
#: ../app/views/foreman_snapshot_management/snapshots/select_multiple_host.html.erb:14
|
172
|
+
#: ../webpack/components/SnapshotManagement/components/SnapshotForm/SnapshotForm.js:81
|
162
173
|
msgid "Include RAM"
|
163
174
|
msgstr ""
|
164
175
|
|
165
|
-
#: ../app/views/
|
166
|
-
msgid "
|
176
|
+
#: ../app/views/hosts/_snapshots_tab.html.erb:13
|
177
|
+
msgid "Loading Snapshots information ..."
|
167
178
|
msgstr ""
|
168
179
|
|
169
|
-
#: ../
|
170
|
-
msgid "
|
180
|
+
#: ../lib/foreman_snapshot_management/engine.rb:64
|
181
|
+
msgid "Snapshots"
|
171
182
|
msgstr ""
|
172
183
|
|
173
|
-
#: ../
|
174
|
-
msgid "
|
184
|
+
#: ../webpack/components/SnapshotManagement/SnapshotManagementActions.js:60
|
185
|
+
msgid "Successfully removed Snapshot \"%s\" from host %s"
|
186
|
+
msgstr ""
|
187
|
+
|
188
|
+
#: ../webpack/components/SnapshotManagement/SnapshotManagementActions.js:126
|
189
|
+
msgid "Successfully updated Snapshot \"%s\""
|
175
190
|
msgstr ""
|
176
191
|
|
177
|
-
#: ../
|
178
|
-
msgid "
|
192
|
+
#: ../webpack/components/SnapshotManagement/SnapshotManagementActions.js:145
|
193
|
+
msgid "Error occurred while updating Snapshot: %s"
|
179
194
|
msgstr ""
|
180
195
|
|
181
|
-
#: ../
|
182
|
-
msgid "
|
196
|
+
#: ../webpack/components/SnapshotManagement/SnapshotManagementActions.js:180
|
197
|
+
msgid "Successfully rolled back Snapshot \"%s\" on host %s"
|
183
198
|
msgstr ""
|
184
199
|
|
185
|
-
#:
|
186
|
-
|
200
|
+
#:
|
201
|
+
#: ../webpack/components/SnapshotManagement/components/SnapshotForm/SnapshotForm.js:52
|
202
|
+
msgid "Snapshot successfully created!"
|
187
203
|
msgstr ""
|
188
204
|
|
189
|
-
#:
|
190
|
-
|
205
|
+
#:
|
206
|
+
#: ../webpack/components/SnapshotManagement/components/SnapshotForm/SnapshotForm.js:69
|
207
|
+
msgid "Name"
|
191
208
|
msgstr ""
|
192
209
|
|
193
210
|
#:
|
194
|
-
#: ../
|
195
|
-
msgid "
|
211
|
+
#: ../webpack/components/SnapshotManagement/components/SnapshotFormModal/SnapshotFormModal.js:14
|
212
|
+
msgid "Create Snapshot for %s"
|
196
213
|
msgstr ""
|
197
214
|
|
198
|
-
#:
|
199
|
-
|
215
|
+
#:
|
216
|
+
#: ../webpack/components/SnapshotManagement/components/SnapshotList/SnapshotList.js:122
|
217
|
+
msgid "N/A"
|
200
218
|
msgstr ""
|
201
219
|
|
202
|
-
#:
|
203
|
-
|
220
|
+
#:
|
221
|
+
#: ../webpack/components/SnapshotManagement/components/SnapshotList/SnapshotList.js:171
|
222
|
+
msgid "Action"
|
223
|
+
msgstr ""
|
224
|
+
|
225
|
+
#:
|
226
|
+
#: ../webpack/components/SnapshotManagement/components/SnapshotList/SnapshotList.js:203
|
227
|
+
#: ../webpack/components/SnapshotManagement/components/SnapshotList/SnapshotList.js:205
|
228
|
+
msgid "Failed to load snapshot list"
|
229
|
+
msgstr ""
|
230
|
+
|
231
|
+
#:
|
232
|
+
#: ../webpack/components/SnapshotManagement/components/SnapshotList/SnapshotListHelper.js:28
|
233
|
+
msgid "edit entry"
|
234
|
+
msgstr ""
|
235
|
+
|
236
|
+
#:
|
237
|
+
#: ../webpack/components/SnapshotManagement/components/SnapshotList/SnapshotListHelper.js:42
|
238
|
+
msgid "Rollback to \"%s\"?"
|
239
|
+
msgstr ""
|
240
|
+
|
241
|
+
#:
|
242
|
+
#: ../webpack/components/SnapshotManagement/components/SnapshotList/SnapshotListHelper.js:46
|
243
|
+
msgid "Rollback"
|
244
|
+
msgstr ""
|
245
|
+
|
246
|
+
#:
|
247
|
+
#: ../webpack/components/SnapshotManagement/components/SnapshotList/SnapshotListHelper.js:60
|
248
|
+
msgid "Delete Snapshot \"%s\"?"
|
249
|
+
msgstr ""
|
250
|
+
|
251
|
+
#:
|
252
|
+
#: ../webpack/components/SnapshotManagement/components/SnapshotList/SnapshotListHelper.js:64
|
253
|
+
msgid "Delete"
|
254
|
+
msgstr ""
|
255
|
+
|
256
|
+
#: action_names.rb:2
|
257
|
+
msgid "Import Puppet classes"
|
258
|
+
msgstr ""
|
259
|
+
|
260
|
+
#: action_names.rb:3
|
261
|
+
msgid "Import facts"
|
262
|
+
msgstr ""
|
263
|
+
|
264
|
+
#: action_names.rb:4
|
265
|
+
msgid "Action with sub plans"
|
204
266
|
msgstr ""
|
205
267
|
|
206
268
|
#: gemspec.rb:4
|
data/package.json
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
{
|
2
|
+
"name": "foreman_snapshot_management",
|
3
|
+
"version": "2.0.0",
|
4
|
+
"description": "Foreman-plugin to manage snapshots in a virtual-hardware environments.",
|
5
|
+
"main": "index.js",
|
6
|
+
"scripts": {
|
7
|
+
"lint": "tfm-lint --plugin -d /webpack",
|
8
|
+
"stylelint": "stylelint webpack/**/*.scss",
|
9
|
+
"test": "tfm-test --config jest.config.js",
|
10
|
+
"test:watch": "tfm-test --plugin --watchAll",
|
11
|
+
"test:current": "tfm-test --plugin --watch",
|
12
|
+
"publish-coverage": "tfm-publish-coverage",
|
13
|
+
"stories": "tfm-stories --plugin",
|
14
|
+
"stories:build": "tfm-build-stories --plugin",
|
15
|
+
"create-react-component": "yo react-domain"
|
16
|
+
},
|
17
|
+
"repository": {
|
18
|
+
"type": "git",
|
19
|
+
"url": "git+https://github.com/ATIX-AG/foreman_snapshot_management.git"
|
20
|
+
},
|
21
|
+
"bugs": {
|
22
|
+
"url": "http://projects.theforeman.org/projects/foreman_snapshot_management/issues"
|
23
|
+
},
|
24
|
+
"peerDependencies": {
|
25
|
+
"@theforeman/vendor": ">= 4.0.0"
|
26
|
+
},
|
27
|
+
"dependencies": {
|
28
|
+
"react-intl": "^2.8.0"
|
29
|
+
},
|
30
|
+
"devDependencies": {
|
31
|
+
"@babel/core": "^7.7.0",
|
32
|
+
"@sheerun/mutationobserver-shim": "^0.3.3",
|
33
|
+
"@theforeman/builder": "^4.0.0",
|
34
|
+
"@theforeman/eslint-plugin-foreman": "6.0.0",
|
35
|
+
"@theforeman/find-foreman": "^4.8.0",
|
36
|
+
"@theforeman/stories": "^7.0.0",
|
37
|
+
"@theforeman/test": "^8.0.0",
|
38
|
+
"@theforeman/vendor-dev": "^4.0.0",
|
39
|
+
"babel-eslint": "^10.0.3",
|
40
|
+
"eslint": "^6.7.2",
|
41
|
+
"prettier": "^1.19.1",
|
42
|
+
"react-redux-test-utils": "^0.2.0",
|
43
|
+
"stylelint": "^9.3.0",
|
44
|
+
"stylelint-config-standard": "^18.0.0"
|
45
|
+
}
|
46
|
+
}
|
@@ -13,137 +13,260 @@ class Api::V2::SnapshotsControllerTest < ActionController::TestCase
|
|
13
13
|
let(:host) { FactoryBot.create(:host, :managed, :compute_resource => compute_resource, :uuid => uuid) }
|
14
14
|
let(:snapshot_id) { 'snapshot-0101' }
|
15
15
|
let(:proxmox_compute_resource) do
|
16
|
-
FactoryBot.create(:proxmox_cr)
|
17
|
-
ComputeResource.find_by(
|
16
|
+
cr = FactoryBot.create(:proxmox_cr)
|
17
|
+
ComputeResource.find_by(id: cr.id)
|
18
18
|
end
|
19
19
|
let(:vmid) { '100' }
|
20
|
-
let(:proxmox_host) { FactoryBot.create(:host, :managed, :compute_resource => proxmox_compute_resource, :uuid => vmid) }
|
20
|
+
let(:proxmox_host) { FactoryBot.create(:host, :managed, :compute_resource => proxmox_compute_resource, :uuid => "1_#{vmid}") }
|
21
21
|
let(:proxmox_snapshot) { 'snapshot1' }
|
22
|
+
let(:manager_user) do
|
23
|
+
roles = [Role.find_by(name: 'Snapshot Manager')]
|
24
|
+
FactoryBot.create(:user, :organizations => [tax_organization], :locations => [tax_location], :roles => roles)
|
25
|
+
end
|
26
|
+
let(:view_user) do
|
27
|
+
roles = [Role.find_by(name: 'Snapshot Viewer')]
|
28
|
+
FactoryBot.create(:user, :organizations => [tax_organization], :locations => [tax_location], :roles => roles)
|
29
|
+
end
|
22
30
|
setup { ::Fog.mock! }
|
23
31
|
teardown { ::Fog.unmock! }
|
24
32
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
+
context 'view user' do
|
34
|
+
setup do
|
35
|
+
# Make sure that test-hosts are created here (by the admin-user)
|
36
|
+
host
|
37
|
+
proxmox_host
|
38
|
+
@orig_user = User.current
|
39
|
+
User.current = view_user
|
40
|
+
end
|
41
|
+
teardown do
|
42
|
+
User.current = @orig_user
|
43
|
+
end
|
33
44
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
end
|
45
|
+
test 'should get index of Vmware Snapshots' do
|
46
|
+
get :index, params: { :host_id => host.to_param }
|
47
|
+
assert_response :success
|
48
|
+
assert_not_nil assigns(:snapshots)
|
49
|
+
body = ActiveSupport::JSON.decode(@response.body)
|
50
|
+
assert_not_empty body
|
51
|
+
assert_not_empty body['results']
|
52
|
+
end
|
43
53
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
54
|
+
test 'should get index of Proxmox Snapshots' do
|
55
|
+
Host::Managed.any_instance.stubs(:vm_exists?).returns(false)
|
56
|
+
get :index, params: { :host_id => proxmox_host.to_param }
|
57
|
+
assert_response :success
|
58
|
+
assert_not_nil assigns(:snapshots)
|
59
|
+
body = ActiveSupport::JSON.decode(@response.body)
|
60
|
+
assert_not_empty body
|
61
|
+
assert_not_empty body['results']
|
62
|
+
end
|
53
63
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
end
|
64
|
+
test 'should search VMware snapshot' do
|
65
|
+
get :index, params: { :host_id => host.to_param, :search => 'name= clean' }
|
66
|
+
assert_response :success
|
67
|
+
assert_not_nil assigns(:snapshots)
|
68
|
+
body = ActiveSupport::JSON.decode(@response.body)
|
69
|
+
assert_not_empty body
|
70
|
+
assert_not_empty body['results']
|
71
|
+
assert_equal body['results'].count, 1
|
72
|
+
end
|
64
73
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
74
|
+
test 'should search Proxmox snapshot' do
|
75
|
+
Host::Managed.any_instance.stubs(:vm_exists?).returns(false)
|
76
|
+
get :index, params: { :host_id => proxmox_host.to_param, :search => 'name= snapshot1' }
|
77
|
+
assert_response :success
|
78
|
+
assert_not_nil assigns(:snapshots)
|
79
|
+
body = ActiveSupport::JSON.decode(@response.body)
|
80
|
+
assert_not_empty body
|
81
|
+
assert_not_empty body['results']
|
82
|
+
assert_equal body['results'].count, 1
|
83
|
+
end
|
69
84
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
body = ActiveSupport::JSON.decode(@response.body)
|
75
|
-
assert_not_empty body
|
76
|
-
end
|
85
|
+
test 'should refute search Vmware snapshot' do
|
86
|
+
get :index, params: { :host_id => host.to_param, :search => 'name != clean' }
|
87
|
+
assert_response :internal_server_error
|
88
|
+
end
|
77
89
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
end
|
90
|
+
test 'should show Vmware snapshot' do
|
91
|
+
get :show, params: { :host_id => host.to_param, :id => snapshot_id }
|
92
|
+
assert_not_nil assigns(:snapshot)
|
93
|
+
assert_response :success
|
94
|
+
body = ActiveSupport::JSON.decode(@response.body)
|
95
|
+
assert_not_empty body
|
96
|
+
end
|
86
97
|
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
98
|
+
test 'should show Proxmox snapshot' do
|
99
|
+
Host::Managed.any_instance.stubs(:vm_exists?).returns(false)
|
100
|
+
get :show, params: { :host_id => proxmox_host.to_param, :id => proxmox_snapshot }
|
101
|
+
assert_not_nil assigns(:snapshot)
|
102
|
+
assert_response :success
|
103
|
+
body = ActiveSupport::JSON.decode(@response.body)
|
104
|
+
assert_not_empty body
|
105
|
+
end
|
91
106
|
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
end
|
107
|
+
test 'should 404 for unknown Vmware snapshot' do
|
108
|
+
get :show, params: { :host_id => host.to_param, :id => 'does-not-exist' }
|
109
|
+
assert_response :not_found
|
110
|
+
end
|
97
111
|
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
assert_not_nil assigns(:snapshot)
|
103
|
-
end
|
112
|
+
test 'should refute create Vmware snapshot' do
|
113
|
+
post :create, params: { :host_id => host.to_param, :name => 'test' }
|
114
|
+
assert_response :forbidden
|
115
|
+
end
|
104
116
|
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
117
|
+
test 'should refute update Vmware snapshot' do
|
118
|
+
name = 'test'
|
119
|
+
put :update, params: { :host_id => host.to_param, :id => snapshot_id.to_param, :name => name.to_param }
|
120
|
+
assert_response :forbidden
|
121
|
+
end
|
110
122
|
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
assert_response :success
|
116
|
-
end
|
123
|
+
test 'should refute destroy Vmware snapshot' do
|
124
|
+
delete :destroy, params: { :host_id => host.to_param, :id => snapshot_id.to_param }
|
125
|
+
assert_response :forbidden
|
126
|
+
end
|
117
127
|
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
128
|
+
test 'should refute revert Proxmox snapshot' do
|
129
|
+
Host::Managed.any_instance.stubs(:vm_exists?).returns(false)
|
130
|
+
put :revert, params: { :host_id => proxmox_host.to_param, :id => proxmox_snapshot.to_param }
|
131
|
+
assert_response :forbidden
|
132
|
+
end
|
123
133
|
end
|
124
134
|
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
135
|
+
context 'manager user' do
|
136
|
+
setup do
|
137
|
+
# Make sure that test-hosts are created here (by the admin-user)
|
138
|
+
host
|
139
|
+
proxmox_host
|
140
|
+
@orig_user = User.current
|
141
|
+
User.current = manager_user
|
142
|
+
end
|
143
|
+
teardown do
|
144
|
+
User.current = @orig_user
|
145
|
+
end
|
129
146
|
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
147
|
+
test 'should get index of Vmware Snapshots' do
|
148
|
+
get :index, params: { :host_id => host.to_param }
|
149
|
+
assert_response :success
|
150
|
+
assert_not_nil assigns(:snapshots)
|
151
|
+
body = ActiveSupport::JSON.decode(@response.body)
|
152
|
+
assert_not_empty body
|
153
|
+
assert_not_empty body['results']
|
154
|
+
end
|
138
155
|
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
156
|
+
test 'should get index of Proxmox Snapshots' do
|
157
|
+
Host::Managed.any_instance.stubs(:vm_exists?).returns(false)
|
158
|
+
get :index, params: { :host_id => proxmox_host.to_param }
|
159
|
+
assert_response :success
|
160
|
+
assert_not_nil assigns(:snapshots)
|
161
|
+
body = ActiveSupport::JSON.decode(@response.body)
|
162
|
+
assert_not_empty body
|
163
|
+
assert_not_empty body['results']
|
164
|
+
end
|
165
|
+
|
166
|
+
test 'should search VMware snapshot' do
|
167
|
+
get :index, params: { :host_id => host.to_param, :search => 'name= clean' }
|
168
|
+
assert_response :success
|
169
|
+
assert_not_nil assigns(:snapshots)
|
170
|
+
body = ActiveSupport::JSON.decode(@response.body)
|
171
|
+
assert_not_empty body
|
172
|
+
assert_not_empty body['results']
|
173
|
+
assert_equal body['results'].count, 1
|
174
|
+
end
|
175
|
+
|
176
|
+
test 'should search Proxmox snapshot' do
|
177
|
+
Host::Managed.any_instance.stubs(:vm_exists?).returns(false)
|
178
|
+
get :index, params: { :host_id => proxmox_host.to_param, :search => 'name= snapshot1' }
|
179
|
+
assert_response :success
|
180
|
+
assert_not_nil assigns(:snapshots)
|
181
|
+
body = ActiveSupport::JSON.decode(@response.body)
|
182
|
+
assert_not_empty body
|
183
|
+
assert_not_empty body['results']
|
184
|
+
assert_equal body['results'].count, 1
|
185
|
+
end
|
186
|
+
|
187
|
+
test 'should refute search Vmware snapshot' do
|
188
|
+
get :index, params: { :host_id => host.to_param, :search => 'name != clean' }
|
189
|
+
assert_response :internal_server_error
|
190
|
+
end
|
191
|
+
|
192
|
+
test 'should show Vmware snapshot' do
|
193
|
+
get :show, params: { :host_id => host.to_param, :id => snapshot_id }
|
194
|
+
assert_not_nil assigns(:snapshot)
|
195
|
+
assert_response :success
|
196
|
+
body = ActiveSupport::JSON.decode(@response.body)
|
197
|
+
assert_not_empty body
|
198
|
+
end
|
199
|
+
|
200
|
+
test 'should show Proxmox snapshot' do
|
201
|
+
Host::Managed.any_instance.stubs(:vm_exists?).returns(false)
|
202
|
+
get :show, params: { :host_id => proxmox_host.to_param, :id => proxmox_snapshot }
|
203
|
+
assert_not_nil assigns(:snapshot)
|
204
|
+
assert_response :success
|
205
|
+
body = ActiveSupport::JSON.decode(@response.body)
|
206
|
+
assert_not_empty body
|
207
|
+
end
|
208
|
+
|
209
|
+
test 'should 404 for unknown Vmware snapshot' do
|
210
|
+
get :show, params: { :host_id => host.to_param, :id => 'does-not-exist' }
|
211
|
+
assert_response :not_found
|
212
|
+
end
|
213
|
+
|
214
|
+
test 'should create Vmware snapshot' do
|
215
|
+
post :create, params: { :host_id => host.to_param, :name => 'test' }
|
216
|
+
assert_response :created
|
217
|
+
assert_not_nil assigns(:snapshot)
|
218
|
+
end
|
219
|
+
|
220
|
+
test 'should create Proxmox snapshot' do
|
221
|
+
Host::Managed.any_instance.stubs(:vm_exists?).returns(false)
|
222
|
+
post :create, params: { :host_id => proxmox_host.to_param, :name => 'test' }
|
223
|
+
assert_response :created
|
224
|
+
assert_not_nil assigns(:snapshot)
|
225
|
+
end
|
226
|
+
|
227
|
+
test 'should update Vmware snapshot' do
|
228
|
+
name = 'test'
|
229
|
+
put :update, params: { :host_id => host.to_param, :id => snapshot_id.to_param, :name => name.to_param }
|
230
|
+
assert_response :success
|
231
|
+
end
|
232
|
+
|
233
|
+
test 'should update Proxmox snapshot' do
|
234
|
+
Host::Managed.any_instance.stubs(:vm_exists?).returns(false)
|
235
|
+
description = 'snapshot1 updated'
|
236
|
+
put :update, params: { :host_id => proxmox_host.to_param, :id => proxmox_snapshot.to_param, :description => description.to_param }
|
237
|
+
assert_response :success
|
238
|
+
end
|
239
|
+
|
240
|
+
test 'should refute update Proxmox snapshot name' do
|
241
|
+
Host::Managed.any_instance.stubs(:vm_exists?).returns(false)
|
242
|
+
name = 'test'
|
243
|
+
put :update, params: { :host_id => proxmox_host.to_param, :id => proxmox_snapshot.to_param, :name => name.to_param }
|
244
|
+
assert_response :unprocessable_entity
|
245
|
+
end
|
246
|
+
|
247
|
+
test 'should destroy Vmware snapshot' do
|
248
|
+
delete :destroy, params: { :host_id => host.to_param, :id => snapshot_id.to_param }
|
249
|
+
assert_response :success
|
250
|
+
end
|
251
|
+
|
252
|
+
test 'should destroy Proxmox snapshot' do
|
253
|
+
Host::Managed.any_instance.stubs(:vm_exists?).returns(false)
|
254
|
+
delete :destroy, params: { :host_id => proxmox_host.to_param, :id => proxmox_snapshot.to_param }
|
255
|
+
assert_response :success
|
256
|
+
body = ActiveSupport::JSON.decode(@response.body)
|
257
|
+
assert_not_nil body['name']
|
258
|
+
assert_nil body['id']
|
259
|
+
end
|
260
|
+
|
261
|
+
test 'should revert Vmware snapshot' do
|
262
|
+
put :revert, params: { :host_id => host.to_param, :id => snapshot_id.to_param }
|
263
|
+
assert_response :success
|
264
|
+
end
|
143
265
|
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
266
|
+
test 'should revert Proxmox snapshot' do
|
267
|
+
Host::Managed.any_instance.stubs(:vm_exists?).returns(false)
|
268
|
+
put :revert, params: { :host_id => proxmox_host.to_param, :id => proxmox_snapshot.to_param }
|
269
|
+
assert_response :success
|
270
|
+
end
|
148
271
|
end
|
149
272
|
end
|