~ubuntu-branches/ubuntu/raring/cinder/raring-updates

« back to all changes in this revision

Viewing changes to cinder/tests/api/v1/test_snapshots.py

Tags: upstream-2013.1~g2
ImportĀ upstreamĀ versionĀ 2013.1~g2

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
from cinder import flags
25
25
from cinder.openstack.common import log as logging
26
26
from cinder import test
27
 
from cinder.tests.api.openstack import fakes
 
27
from cinder.tests.api import fakes
 
28
from cinder.tests.api.v1 import stubs
28
29
from cinder import volume
29
30
 
30
31
 
36
37
 
37
38
 
38
39
def _get_default_snapshot_param():
39
 
    return {
40
 
        'id': UUID,
41
 
        'volume_id': 12,
42
 
        'status': 'available',
43
 
        'volume_size': 100,
44
 
        'created_at': None,
45
 
        'display_name': 'Default name',
46
 
        'display_description': 'Default description',
47
 
        }
 
40
    return {'id': UUID,
 
41
            'volume_id': 12,
 
42
            'status': 'available',
 
43
            'volume_size': 100,
 
44
            'created_at': None,
 
45
            'display_name': 'Default name',
 
46
            'display_description': 'Default description', }
48
47
 
49
48
 
50
49
def stub_snapshot_create(self, context, volume_id, name, description):
79
78
        self.controller = snapshots.SnapshotsController()
80
79
 
81
80
        self.stubs.Set(db, 'snapshot_get_all_by_project',
82
 
                       fakes.stub_snapshot_get_all_by_project)
 
81
                       stubs.stub_snapshot_get_all_by_project)
83
82
        self.stubs.Set(db, 'snapshot_get_all',
84
 
                      fakes.stub_snapshot_get_all)
 
83
                       stubs.stub_snapshot_get_all)
85
84
 
86
85
    def test_snapshot_create(self):
87
86
        self.stubs.Set(volume.api.API, "create_snapshot", stub_snapshot_create)
88
 
        self.stubs.Set(volume.api.API, 'get', fakes.stub_volume_get)
 
87
        self.stubs.Set(volume.api.API, 'get', stubs.stub_volume_get)
89
88
        snapshot = {"volume_id": '12',
90
 
                "force": False,
91
 
                "display_name": "Snapshot Test Name",
92
 
                "display_description": "Snapshot Test Desc"}
 
89
                    "force": False,
 
90
                    "display_name": "Snapshot Test Name",
 
91
                    "display_description": "Snapshot Test Desc"}
93
92
        body = dict(snapshot=snapshot)
94
93
        req = fakes.HTTPRequest.blank('/v1/snapshots')
95
94
        resp_dict = self.controller.create(req, body)
96
95
 
97
96
        self.assertTrue('snapshot' in resp_dict)
98
97
        self.assertEqual(resp_dict['snapshot']['display_name'],
99
 
                        snapshot['display_name'])
 
98
                         snapshot['display_name'])
100
99
        self.assertEqual(resp_dict['snapshot']['display_description'],
101
 
                        snapshot['display_description'])
 
100
                         snapshot['display_description'])
102
101
 
103
102
    def test_snapshot_create_force(self):
104
 
        self.stubs.Set(volume.api.API, "create_snapshot_force",
105
 
            stub_snapshot_create)
106
 
        self.stubs.Set(volume.api.API, 'get', fakes.stub_volume_get)
 
103
        self.stubs.Set(volume.api.API,
 
104
                       "create_snapshot_force",
 
105
                       stub_snapshot_create)
 
106
        self.stubs.Set(volume.api.API, 'get', stubs.stub_volume_get)
107
107
        snapshot = {"volume_id": '12',
108
 
                "force": True,
109
 
                "display_name": "Snapshot Test Name",
110
 
                "display_description": "Snapshot Test Desc"}
 
108
                    "force": True,
 
109
                    "display_name": "Snapshot Test Name",
 
110
                    "display_description": "Snapshot Test Desc"}
111
111
        body = dict(snapshot=snapshot)
112
112
        req = fakes.HTTPRequest.blank('/v1/snapshots')
113
113
        resp_dict = self.controller.create(req, body)
114
114
 
115
115
        self.assertTrue('snapshot' in resp_dict)
116
116
        self.assertEqual(resp_dict['snapshot']['display_name'],
117
 
                        snapshot['display_name'])
 
117
                         snapshot['display_name'])
118
118
        self.assertEqual(resp_dict['snapshot']['display_description'],
119
 
                        snapshot['display_description'])
 
119
                         snapshot['display_description'])
120
120
 
121
121
        snapshot = {"volume_id": "12",
122
 
                "force": "**&&^^%%$$##@@",
123
 
                "display_name": "Snapshot Test Name",
124
 
                "display_description": "Snapshot Test Desc"}
 
122
                    "force": "**&&^^%%$$##@@",
 
123
                    "display_name": "Snapshot Test Name",
 
124
                    "display_description": "Snapshot Test Desc"}
125
125
        body = dict(snapshot=snapshot)
126
126
        req = fakes.HTTPRequest.blank('/v1/snapshots')
127
127
        self.assertRaises(exception.InvalidParameterValue,
132
132
    def test_snapshot_update(self):
133
133
        self.stubs.Set(volume.api.API, "get_snapshot", stub_snapshot_get)
134
134
        self.stubs.Set(volume.api.API, "update_snapshot",
135
 
                       fakes.stub_snapshot_update)
136
 
        updates = {
137
 
            "display_name": "Updated Test Name",
138
 
        }
 
135
                       stubs.stub_snapshot_update)
 
136
        updates = {"display_name": "Updated Test Name", }
139
137
        body = {"snapshot": updates}
140
138
        req = fakes.HTTPRequest.blank('/v1/snapshots/%s' % UUID)
141
139
        res_dict = self.controller.update(req, UUID, body)
207
205
                          snapshot_id)
208
206
 
209
207
    def test_snapshot_detail(self):
210
 
        self.stubs.Set(volume.api.API, "get_all_snapshots",
211
 
            stub_snapshot_get_all)
 
208
        self.stubs.Set(volume.api.API,
 
209
                       "get_all_snapshots",
 
210
                       stub_snapshot_get_all)
212
211
        req = fakes.HTTPRequest.blank('/v1/snapshots/detail')
213
212
        resp_dict = self.controller.detail(req)
214
213
 
222
221
    def test_snapshot_list_by_status(self):
223
222
        def stub_snapshot_get_all_by_project(context, project_id):
224
223
            return [
225
 
                fakes.stub_snapshot(1, display_name='backup1',
226
 
                                    status='available'),
227
 
                fakes.stub_snapshot(2, display_name='backup2',
228
 
                                    status='available'),
229
 
                fakes.stub_snapshot(3, display_name='backup3',
 
224
                stubs.stub_snapshot(1, display_name='backup1',
 
225
                                    status='available'),
 
226
                stubs.stub_snapshot(2, display_name='backup2',
 
227
                                    status='available'),
 
228
                stubs.stub_snapshot(3, display_name='backup3',
230
229
                                    status='creating'),
231
230
            ]
232
231
        self.stubs.Set(db, 'snapshot_get_all_by_project',
255
254
    def test_snapshot_list_by_volume(self):
256
255
        def stub_snapshot_get_all_by_project(context, project_id):
257
256
            return [
258
 
                fakes.stub_snapshot(1, volume_id='vol1', status='creating'),
259
 
                fakes.stub_snapshot(2, volume_id='vol1', status='available'),
260
 
                fakes.stub_snapshot(3, volume_id='vol2', status='available'),
 
257
                stubs.stub_snapshot(1, volume_id='vol1', status='creating'),
 
258
                stubs.stub_snapshot(2, volume_id='vol1', status='available'),
 
259
                stubs.stub_snapshot(3, volume_id='vol2', status='available'),
261
260
            ]
262
261
        self.stubs.Set(db, 'snapshot_get_all_by_project',
263
262
                       stub_snapshot_get_all_by_project)
284
283
    def test_snapshot_list_by_name(self):
285
284
        def stub_snapshot_get_all_by_project(context, project_id):
286
285
            return [
287
 
                fakes.stub_snapshot(1, display_name='backup1'),
288
 
                fakes.stub_snapshot(2, display_name='backup2'),
289
 
                fakes.stub_snapshot(3, display_name='backup3'),
 
286
                stubs.stub_snapshot(1, display_name='backup1'),
 
287
                stubs.stub_snapshot(2, display_name='backup2'),
 
288
                stubs.stub_snapshot(3, display_name='backup3'),
290
289
            ]
291
290
        self.stubs.Set(db, 'snapshot_get_all_by_project',
292
291
                       stub_snapshot_get_all_by_project)
350
349
            created_at=datetime.datetime.now(),
351
350
            display_name='snap_name',
352
351
            display_description='snap_desc',
353
 
            volume_id='vol_id',
354
 
            )
 
352
            volume_id='vol_id', )
355
353
        text = serializer.serialize(dict(snapshot=raw_snapshot))
356
354
 
357
355
        print text
361
359
 
362
360
    def test_snapshot_index_detail_serializer(self):
363
361
        serializer = snapshots.SnapshotsTemplate()
364
 
        raw_snapshots = [dict(
365
 
                id='snap1_id',
366
 
                status='snap1_status',
367
 
                size=1024,
368
 
                created_at=datetime.datetime.now(),
369
 
                display_name='snap1_name',
370
 
                display_description='snap1_desc',
371
 
                volume_id='vol1_id',
372
 
                ),
373
 
                       dict(
374
 
                id='snap2_id',
375
 
                status='snap2_status',
376
 
                size=1024,
377
 
                created_at=datetime.datetime.now(),
378
 
                display_name='snap2_name',
379
 
                display_description='snap2_desc',
380
 
                volume_id='vol2_id',
381
 
                )]
 
362
        raw_snapshots = [dict(id='snap1_id',
 
363
                              status='snap1_status',
 
364
                              size=1024,
 
365
                              created_at=datetime.datetime.now(),
 
366
                              display_name='snap1_name',
 
367
                              display_description='snap1_desc',
 
368
                              volume_id='vol1_id', ),
 
369
                         dict(id='snap2_id',
 
370
                              status='snap2_status',
 
371
                              size=1024,
 
372
                              created_at=datetime.datetime.now(),
 
373
                              display_name='snap2_name',
 
374
                              display_description='snap2_desc',
 
375
                              volume_id='vol2_id', )]
382
376
        text = serializer.serialize(dict(snapshots=raw_snapshots))
383
377
 
384
378
        print text