示例#1
0
 def _create_snapshot(volume_id, size='0'):
     """Create a snapshot object."""
     snap = {}
     snap['volume_size'] = size
     snap['user_id'] = 'fake'
     snap['project_id'] = 'fake'
     snap['volume_id'] = volume_id
     snap['status'] = "creating"
     return db.snapshot_create(context.get_admin_context(), snap)['id']
示例#2
0
 def _create_snapshot(volume_id, size='0'):
     """Create a snapshot object."""
     snap = {}
     snap['volume_size'] = size
     snap['user_id'] = 'fake'
     snap['project_id'] = 'fake'
     snap['volume_id'] = volume_id
     snap['status'] = "creating"
     return db.snapshot_create(context.get_admin_context(), snap)['id']
示例#3
0
 def _create_snapshot(volume_id, size="0"):
     """Create a snapshot object."""
     snap = {}
     snap["volume_size"] = size
     snap["user_id"] = "fake"
     snap["project_id"] = "fake"
     snap["volume_id"] = volume_id
     snap["status"] = "creating"
     return db.snapshot_create(context.get_admin_context(), snap)["id"]
示例#4
0
 def test_snapshot_reset_status(self):
     # admin context
     ctx = context.RequestContext('admin', 'fake', is_admin=True)
     ctx.elevated()  # add roles
     # snapshot in 'error_deleting'
     volume = db.volume_create(ctx, {})
     snapshot = db.snapshot_create(ctx, {'status': 'error_deleting',
                                         'volume_id': volume['id']})
     req = webob.Request.blank('/v1/fake/snapshots/%s/action' %
                               snapshot['id'])
     req.method = 'POST'
     req.headers['content-type'] = 'application/json'
     # request status of 'error'
     req.body = jsonutils.dumps({'os-reset_status': {'status': 'error'}})
     # attach admin context to request
     req.environ['nova.context'] = ctx
     resp = req.get_response(app())
     # request is accepted
     self.assertEquals(resp.status_int, 202)
     snapshot = db.snapshot_get(ctx, snapshot['id'])
     # status changed to 'error'
     self.assertEquals(snapshot['status'], 'error')
示例#5
0
 def test_snapshot_reset_status(self):
     # admin context
     ctx = context.RequestContext('admin', 'fake', is_admin=True)
     ctx.elevated()  # add roles
     # snapshot in 'error_deleting'
     volume = db.volume_create(ctx, {})
     snapshot = db.snapshot_create(ctx, {'status': 'error_deleting',
                                         'volume_id': volume['id']})
     req = webob.Request.blank('/v1/fake/snapshots/%s/action' %
                               snapshot['id'])
     req.method = 'POST'
     req.headers['content-type'] = 'application/json'
     # request status of 'error'
     req.body = jsonutils.dumps({'os-reset_status': {'status': 'error'}})
     # attach admin context to request
     req.environ['nova.context'] = ctx
     resp = req.get_response(app())
     # request is accepted
     self.assertEquals(resp.status_int, 202)
     snapshot = db.snapshot_get(ctx, snapshot['id'])
     # status changed to 'error'
     self.assertEquals(snapshot['status'], 'error')
示例#6
0
 def test_invalid_status_for_snapshot(self):
     # admin context
     ctx = context.RequestContext('admin', 'fake', is_admin=True)
     ctx.elevated()  # add roles
     # snapshot in 'available'
     volume = db.volume_create(ctx, {})
     snapshot = db.snapshot_create(ctx, {'status': 'available',
                                         'volume_id': volume['id']})
     req = webob.Request.blank('/v1/fake/snapshots/%s/action' %
                               snapshot['id'])
     req.method = 'POST'
     req.headers['content-type'] = 'application/json'
     # 'attaching' is not a valid status for snapshots
     req.body = jsonutils.dumps({'os-reset_status': {'status':
                                                     'attaching'}})
     # attach admin context to request
     req.environ['nova.context'] = ctx
     resp = req.get_response(app())
     # request is accepted
     print resp
     self.assertEquals(resp.status_int, 400)
     snapshot = db.snapshot_get(ctx, snapshot['id'])
     # status is still 'available'
     self.assertEquals(snapshot['status'], 'available')
示例#7
0
 def test_invalid_status_for_snapshot(self):
     # admin context
     ctx = context.RequestContext('admin', 'fake', is_admin=True)
     ctx.elevated()  # add roles
     # snapshot in 'available'
     volume = db.volume_create(ctx, {})
     snapshot = db.snapshot_create(ctx, {'status': 'available',
                                         'volume_id': volume['id']})
     req = webob.Request.blank('/v1/fake/snapshots/%s/action' %
                               snapshot['id'])
     req.method = 'POST'
     req.headers['content-type'] = 'application/json'
     # 'attaching' is not a valid status for snapshots
     req.body = jsonutils.dumps({'os-reset_status': {'status':
                                                     'attaching'}})
     # attach admin context to request
     req.environ['nova.context'] = ctx
     resp = req.get_response(app())
     # request is accepted
     print resp
     self.assertEquals(resp.status_int, 400)
     snapshot = db.snapshot_get(ctx, snapshot['id'])
     # status is still 'available'
     self.assertEquals(snapshot['status'], 'available')