def _reset_status(self, ctxt, model, req, db_access_method,
                      valid_code, valid_status=None, body=None, version='2.7'):
        if float(version) > 2.6:
            action_name = 'reset_status'
        else:
            action_name = 'os-reset_status'
        if body is None:
            body = {action_name: {'status': constants.STATUS_ERROR}}
        req.method = 'POST'
        req.headers['content-type'] = 'application/json'
        req.headers['X-Openstack-Manila-Api-Version'] = version
        req.body = six.b(jsonutils.dumps(body))
        req.environ['manila.context'] = ctxt

        resp = req.get_response(fakes.app())

        # validate response code and model status
        self.assertEqual(valid_code, resp.status_int)

        if valid_code == 404:
            self.assertRaises(exception.NotFound,
                              db_access_method,
                              ctxt,
                              model['id'])
        else:
            actual_model = db_access_method(ctxt, model['id'])
            self.assertEqual(valid_status, actual_model['status'])
    def _reset_status(self, context, instance, req,
                      valid_code=202, valid_status=None, body=None):
        if body is None:
            body = {'reset_status': {'status': constants.STATUS_ERROR}}

        req.body = six.b(jsonutils.dumps(body))
        req.environ['manila.context'] = context

        with mock.patch.object(
                policy, 'check_policy', fakes.mock_fake_admin_check):
            resp = req.get_response(fakes.app())

        # validate response code and model status
        self.assertEqual(valid_code, resp.status_int)

        if valid_code == 404:
            self.assertRaises(exception.ShareSnapshotInstanceNotFound,
                              (share_snapshot_instances.db.
                               share_snapshot_instance_get),
                              context,
                              instance['id'])
        else:
            actual_instance = (
                share_snapshot_instances.db.share_snapshot_instance_get(
                    context, instance['id']))
            self.assertEqual(valid_status, actual_instance['status'])
    def _force_delete(self, ctxt, model, req, db_access_method, valid_code,
                      check_model_in_db=False, version='2.7'):
        if float(version) > 2.6:
            action_name = 'force_delete'
        else:
            action_name = 'os-force_delete'
        body = {action_name: {'status': constants.STATUS_ERROR}}
        req.method = 'POST'
        req.headers['content-type'] = 'application/json'
        req.headers['X-Openstack-Manila-Api-Version'] = version
        req.body = six.b(jsonutils.dumps(body))
        req.environ['manila.context'] = ctxt

        with mock.patch.object(
                policy, 'check_policy', fakes.mock_fake_admin_check):
            resp = req.get_response(fakes.app())

        # validate response
        self.assertEqual(valid_code, resp.status_int)

        if valid_code == 202 and check_model_in_db:
            self.assertRaises(exception.NotFound,
                              db_access_method,
                              ctxt,
                              model['id'])
    def _reset_status(self,
                      ctxt,
                      model,
                      req,
                      db_access_method,
                      valid_code,
                      valid_status=None,
                      body=None,
                      version='2.7'):
        if float(version) > 2.6:
            action_name = 'reset_status'
        else:
            action_name = 'os-reset_status'
        if body is None:
            body = {action_name: {'status': constants.STATUS_ERROR}}
        req.method = 'POST'
        req.headers['content-type'] = 'application/json'
        req.headers['X-Openstack-Manila-Api-Version'] = version
        req.body = jsonutils.dumps(body).encode("utf-8")
        req.environ['manila.context'] = ctxt

        with mock.patch.object(policy, 'check_policy',
                               fakes.mock_fake_admin_check):
            resp = req.get_response(fakes.app())

        # validate response code and model status
        self.assertEqual(valid_code, resp.status_int)

        actual_model = db_access_method(ctxt, model['id'])
        self.assertEqual(valid_status, actual_model['status'])
    def _reset_status(
        self, ctxt, model, req, db_access_method, valid_code, valid_status=None, body=None, version="2.7"
    ):
        if float(version) > 2.6:
            action_name = "reset_status"
        else:
            action_name = "os-reset_status"
        if body is None:
            body = {action_name: {"status": constants.STATUS_ERROR}}
        req.method = "POST"
        req.headers["content-type"] = "application/json"
        req.headers["X-Openstack-Manila-Api-Version"] = version
        req.body = six.b(jsonutils.dumps(body))
        req.environ["manila.context"] = ctxt

        with mock.patch.object(policy, "check_policy", fakes.mock_fake_admin_check):
            resp = req.get_response(fakes.app())

        # validate response code and model status
        self.assertEqual(valid_code, resp.status_int)

        if valid_code == 404:
            self.assertRaises(exception.NotFound, db_access_method, ctxt, model["id"])
        else:
            actual_model = db_access_method(ctxt, model["id"])
            self.assertEqual(valid_status, actual_model["status"])
Beispiel #6
0
    def _reset_status(self,
                      ctxt,
                      model,
                      req,
                      db_access_method,
                      valid_code,
                      valid_status=None,
                      body=None):
        if body is None:
            body = {'os-reset_status': {'status': constants.STATUS_ERROR}}
        req.method = 'POST'
        req.headers['content-type'] = 'application/json'
        req.body = six.b(jsonutils.dumps(body))
        req.environ['manila.context'] = ctxt

        resp = req.get_response(fakes.app())

        # validate response code and model status
        self.assertEqual(valid_code, resp.status_int)

        if valid_code == 404:
            self.assertRaises(exception.NotFound, db_access_method, ctxt,
                              model['id'])
        else:
            actual_model = db_access_method(ctxt, model['id'])
            self.assertEqual(valid_status, actual_model['status'])
    def test_share_groups_reset_status_with_different_roles(
            self, role, valid_code, valid_status, version):
        ctxt = self._get_context(role)
        share_group, req = self._setup_share_group_data()

        action_name = 'reset_status'
        body = {action_name: {'status': constants.STATUS_ERROR}}
        req.method = 'POST'
        req.headers['content-type'] = 'application/json'
        req.body = six.b(jsonutils.dumps(body))
        req.headers['X-Openstack-Manila-Api-Version'] = self.api_version
        req.environ['manila.context'] = ctxt

        with mock.patch.object(
                policy, 'check_policy', fakes.mock_fake_admin_check):
            resp = req.get_response(fakes.app())

        # validate response code and model status
        self.assertEqual(valid_code, resp.status_int)

        if valid_code == 404:
            self.assertRaises(
                exception.NotFound,
                db.share_group_get, ctxt, share_group['id'])
        else:
            actual_model = db.share_group_get(ctxt, share_group['id'])
            self.assertEqual(valid_status, actual_model['status'])
    def _reset_status(self, context, replica, req,
                      valid_code=202, status_attr='status',
                      valid_status=None, body=None):

        if status_attr == 'status':
            action_name = 'reset_status'
            body = body or {action_name: {'status': constants.STATUS_ERROR}}
        else:
            action_name = 'reset_replica_state'
            body = body or {
                action_name: {'replica_state': constants.STATUS_ERROR},
            }

        req.body = six.b(jsonutils.dumps(body))
        req.environ['manila.context'] = context

        with mock.patch.object(
                policy, 'check_policy', fakes.mock_fake_admin_check):
            resp = req.get_response(fakes.app())

        # validate response code and model status
        self.assertEqual(valid_code, resp.status_int)

        if valid_code == 404:
            self.assertRaises(exception.ShareReplicaNotFound,
                              share_replicas.db.share_replica_get,
                              context,
                              replica['id'])
        else:
            actual_replica = share_replicas.db.share_replica_get(
                context, replica['id'])
            self.assertEqual(valid_status, actual_replica[status_attr])
    def _force_delete(self,
                      ctxt,
                      model,
                      req,
                      db_access_method,
                      valid_code,
                      check_model_in_db=False,
                      version='2.7'):
        if float(version) > 2.6:
            action_name = 'force_delete'
        else:
            action_name = 'os-force_delete'
        body = {action_name: {'status': constants.STATUS_ERROR}}
        req.method = 'POST'
        req.headers['content-type'] = 'application/json'
        req.headers['X-Openstack-Manila-Api-Version'] = version
        req.body = jsonutils.dumps(body).encode("utf-8")
        req.environ['manila.context'] = ctxt

        with mock.patch.object(policy, 'check_policy',
                               fakes.mock_fake_admin_check):
            resp = req.get_response(fakes.app())

        # validate response
        self.assertEqual(valid_code, resp.status_int)

        if valid_code == 202 and check_model_in_db:
            self.assertRaises(exception.NotFound, db_access_method, ctxt,
                              model['id'])
    def _reset_status(self,
                      context,
                      instance,
                      req,
                      valid_code=202,
                      valid_status=None,
                      body=None):
        if body is None:
            body = {'reset_status': {'status': constants.STATUS_ERROR}}

        req.body = six.b(jsonutils.dumps(body))
        req.environ['manila.context'] = context

        with mock.patch.object(policy, 'check_policy',
                               fakes.mock_fake_admin_check):
            resp = req.get_response(fakes.app())

        # validate response code and model status
        self.assertEqual(valid_code, resp.status_int)

        if valid_code == 404:
            self.assertRaises(
                exception.ShareSnapshotInstanceNotFound,
                (share_snapshot_instances.db.share_snapshot_instance_get),
                context, instance['id'])
        else:
            actual_instance = (
                share_snapshot_instances.db.share_snapshot_instance_get(
                    context, instance['id']))
            self.assertEqual(valid_status, actual_instance['status'])
Beispiel #11
0
    def _reset_status(self,
                      context,
                      replica,
                      req,
                      valid_code=202,
                      status_attr='status',
                      valid_status=None,
                      body=None):

        if status_attr == 'status':
            action_name = 'reset_status'
            body = body or {action_name: {'status': constants.STATUS_ERROR}}
        else:
            action_name = 'reset_replica_state'
            body = body or {
                action_name: {
                    'replica_state': constants.STATUS_ERROR
                },
            }

        req.body = jsonutils.dumps(body).encode("utf-8")
        req.environ['manila.context'] = context

        with mock.patch.object(policy, 'check_policy',
                               fakes.mock_fake_admin_check):
            resp = req.get_response(fakes.app())

        # validate response code and model status
        self.assertEqual(valid_code, resp.status_int)

        actual_replica = share_replicas.db.share_replica_get(
            context, replica['id'])
        self.assertEqual(valid_status, actual_replica[status_attr])
Beispiel #12
0
    def test_share_groups_reset_status_with_different_roles(
            self, role, valid_code, valid_status, version):
        ctxt = self._get_context(role)
        share_group, req = self._setup_share_group_data()

        action_name = 'reset_status'
        body = {action_name: {'status': constants.STATUS_ERROR}}
        req.method = 'POST'
        req.headers['content-type'] = 'application/json'
        req.body = six.b(jsonutils.dumps(body))
        req.headers['X-Openstack-Manila-Api-Version'] = self.api_version
        req.environ['manila.context'] = ctxt

        with mock.patch.object(policy, 'check_policy',
                               fakes.mock_fake_admin_check):
            resp = req.get_response(fakes.app())

        # validate response code and model status
        self.assertEqual(valid_code, resp.status_int)

        if valid_code == 404:
            self.assertRaises(exception.NotFound, db.share_group_get, ctxt,
                              share_group['id'])
        else:
            actual_model = db.share_group_get(ctxt, share_group['id'])
            self.assertEqual(valid_status, actual_model['status'])
    def _force_delete(self, ctxt, model, req, db_access_method, valid_code):
        action_name = 'os-force_delete'
        req.method = 'POST'
        req.headers['content-type'] = 'application/json'
        req.body = six.b(jsonutils.dumps({action_name: {}}))
        req.environ['manila.context'] = ctxt

        resp = req.get_response(fakes.app())

        # Validate response
        self.assertEqual(valid_code, resp.status_int)
Beispiel #14
0
    def _force_delete(self, context, req, valid_code=202):
        body = {'force_delete': {}}
        req.environ['manila.context'] = context
        req.body = jsonutils.dumps(body).encode("utf-8")

        with mock.patch.object(policy, 'check_policy',
                               fakes.mock_fake_admin_check):
            resp = req.get_response(fakes.app())

        # validate response
        self.assertEqual(valid_code, resp.status_int)
    def _force_delete(self, context, req, valid_code=202):
        body = {'force_delete': {}}
        req.environ['manila.context'] = context
        req.body = six.b(jsonutils.dumps(body))

        with mock.patch.object(
                policy, 'check_policy', fakes.mock_fake_admin_check):
            resp = req.get_response(fakes.app())

        # validate response
        self.assertEqual(valid_code, resp.status_int)
Beispiel #16
0
    def _force_delete(self, ctxt, model, req, db_access_method, valid_code):
        action_name = 'os-force_delete'
        req.method = 'POST'
        req.headers['content-type'] = 'application/json'
        req.body = six.b(jsonutils.dumps({action_name: {}}))
        req.environ['manila.context'] = ctxt

        resp = req.get_response(fakes.app())

        # Validate response
        self.assertEqual(valid_code, resp.status_int)
Beispiel #17
0
    def _force_delete(self, ctxt, model, req, db_access_method, valid_code,
                      version='2.7'):
        if float(version) > 2.6:
            action_name = 'force_delete'
        else:
            action_name = 'os-force_delete'
        req.method = 'POST'
        req.headers['content-type'] = 'application/json'
        req.headers['X-Openstack-Manila-Api-Version'] = version
        req.body = six.b(jsonutils.dumps({action_name: {}}))
        req.environ['manila.context'] = ctxt

        resp = req.get_response(fakes.app())

        # Validate response
        self.assertEqual(valid_code, resp.status_int)
    def _force_delete(self, ctxt, model, req, db_access_method, valid_code,
                      version='2.7'):
        if float(version) > 2.6:
            action_name = 'force_delete'
        else:
            action_name = 'os-force_delete'
        req.method = 'POST'
        req.headers['content-type'] = 'application/json'
        req.headers['X-Openstack-Manila-Api-Version'] = version
        req.body = six.b(jsonutils.dumps({action_name: {}}))
        req.environ['manila.context'] = ctxt

        resp = req.get_response(fakes.app())

        # Validate response
        self.assertEqual(valid_code, resp.status_int)
Beispiel #19
0
    def _force_delete(self, ctxt, model, req, db_access_method, valid_code,
                      check_model_in_db=False):
        req.method = 'POST'
        req.headers['content-type'] = 'application/json'
        req.body = jsonutils.dumps({'os-force_delete': {}}).encode("utf-8")
        req.environ['manila.context'] = ctxt

        resp = req.get_response(fakes.app())

        # validate response
        self.assertEqual(valid_code, resp.status_int)

        if valid_code == 202 and check_model_in_db:
            self.assertRaises(exception.NotFound,
                              db_access_method,
                              ctxt,
                              model['id'])
Beispiel #20
0
    def test_resync_replica_not_found(self):

        replica, req = self._create_replica_get_req()
        share_replicas.db.share_replica_delete(
            self.admin_context, replica['id'], need_to_update_usages=False)
        share_api_call = self.mock_object(self.controller.share_api,
                                          'update_share_replica')
        body = {'resync': {}}
        req.body = six.b(jsonutils.dumps(body))
        req.environ['manila.context'] = self.admin_context

        with mock.patch.object(
                policy, 'check_policy', fakes.mock_fake_admin_check):
            resp = req.get_response(fakes.app())

        self.assertEqual(404, resp.status_int)
        self.assertFalse(share_api_call.called)
    def _reset_status(self, ctxt, model, req, db_access_method,
                      valid_code, valid_status=None, body=None):
        action_name = 'os-reset_status'
        if body is None:
            body = {action_name: {'status': constants.STATUS_ERROR}}
        req.method = 'POST'
        req.headers['content-type'] = 'application/json'
        req.body = six.b(jsonutils.dumps(body))
        req.environ['manila.context'] = ctxt

        resp = req.get_response(fakes.app())

        # validate response code and model status
        self.assertEqual(valid_code, resp.status_int)

        actual_model = db_access_method(ctxt, model['id'])
        self.assertEqual(valid_status, actual_model['status'])
Beispiel #22
0
    def _force_delete(self, ctxt, model, req, db_access_method, valid_code,
                      check_model_in_db=False):
        req.method = 'POST'
        req.headers['content-type'] = 'application/json'
        req.body = six.b(jsonutils.dumps({'os-force_delete': {}}))
        req.environ['manila.context'] = ctxt

        resp = req.get_response(fakes.app())

        # validate response
        self.assertEqual(valid_code, resp.status_int)

        if valid_code == 202 and check_model_in_db:
            self.assertRaises(exception.NotFound,
                              db_access_method,
                              ctxt,
                              model['id'])
    def test_resync_replica_not_found(self):

        replica, req = self._create_replica_get_req()
        share_replicas.db.share_replica_delete(
            self.admin_context, replica['id'])
        share_api_call = self.mock_object(self.controller.share_api,
                                          'update_share_replica')

        body = {'resync': {}}
        req.body = six.b(jsonutils.dumps(body))
        req.environ['manila.context'] = self.admin_context

        with mock.patch.object(
                policy, 'check_policy', fakes.mock_fake_admin_check):
            resp = req.get_response(fakes.app())

        self.assertEqual(404, resp.status_int)
        self.assertFalse(share_api_call.called)
Beispiel #24
0
    def test_share_group_force_delete_with_different_roles(self, role,
                                                           resp_code, version):
        ctxt = self._get_context(role)
        share_group, req = self._setup_share_group_data()
        req.method = 'POST'
        req.headers['content-type'] = 'application/json'
        action_name = 'force_delete'
        body = {action_name: {}}
        req.body = six.b(jsonutils.dumps(body))
        req.headers['X-Openstack-Manila-Api-Version'] = self.api_version
        req.environ['manila.context'] = ctxt

        with mock.patch.object(
                policy, 'check_policy', fakes.mock_fake_admin_check):
            resp = req.get_response(fakes.app())

        # validate response
        self.assertEqual(resp_code, resp.status_int)
Beispiel #25
0
    def test_share_group_force_delete_with_different_roles(
            self, role, resp_code, version):
        ctxt = self._get_context(role)
        share_group, req = self._setup_share_group_data()
        req.method = 'POST'
        req.headers['content-type'] = 'application/json'
        action_name = 'force_delete'
        body = {action_name: {}}
        req.body = six.b(jsonutils.dumps(body))
        req.headers['X-Openstack-Manila-Api-Version'] = self.api_version
        req.environ['manila.context'] = ctxt

        with mock.patch.object(policy, 'check_policy',
                               fakes.mock_fake_admin_check):
            resp = req.get_response(fakes.app())

        # validate response
        self.assertEqual(resp_code, resp.status_int)
    def test_share_group_snapshot_force_delete_with_different_roles(
            self, role, resp_code, version):
        group_snap, req = self._setup_share_group_snapshot_data()
        ctxt = self._get_context(role)
        req.method = 'POST'
        req.headers['content-type'] = 'application/json'
        action_name = 'force_delete'
        body = {action_name: {'status': constants.STATUS_ERROR}}
        req.body = jsonutils.dumps(body).encode("utf-8")
        req.headers['X-Openstack-Manila-Api-Version'] = self.api_version
        req.headers['X-Openstack-Manila-Api-Experimental'] = True
        req.environ['manila.context'] = ctxt

        with mock.patch.object(policy, 'check_policy',
                               fakes.mock_fake_admin_check):
            resp = req.get_response(fakes.app())

        # Validate response
        self.assertEqual(resp_code, resp.status_int)
    def test_resync_API_exception(self):

        replica, req = self._create_replica_get_req(
            replica_state=constants.REPLICA_STATE_OUT_OF_SYNC)
        self.mock_object(share_replicas.db, 'share_replica_get',
                         mock.Mock(return_value=replica))
        share_api_call = self.mock_object(
            share.API, 'update_share_replica', mock.Mock(
                side_effect=exception.InvalidHost(reason='')))

        body = {'resync': None}
        req.body = six.b(jsonutils.dumps(body))
        req.environ['manila.context'] = self.admin_context

        with mock.patch.object(
                policy, 'check_policy', fakes.mock_fake_admin_check):
            resp = req.get_response(fakes.app())

        self.assertEqual(400, resp.status_int)
        share_api_call.assert_called_once_with(self.admin_context, replica)
Beispiel #28
0
    def test_resync_API_exception(self):

        replica, req = self._create_replica_get_req(
            replica_state=constants.REPLICA_STATE_OUT_OF_SYNC)
        self.mock_object(share_replicas.db, 'share_replica_get',
                         mock.Mock(return_value=replica))
        share_api_call = self.mock_object(
            share.API, 'update_share_replica',
            mock.Mock(side_effect=exception.InvalidHost(reason='')))

        body = {'resync': None}
        req.body = jsonutils.dumps(body).encode("utf-8")
        req.environ['manila.context'] = self.admin_context

        with mock.patch.object(policy, 'check_policy',
                               fakes.mock_fake_admin_check):
            resp = req.get_response(fakes.app())

        self.assertEqual(400, resp.status_int)
        share_api_call.assert_called_once_with(self.admin_context, replica)
    def test_resync(self, replica_state):

        replica, req = self._create_replica_get_req(
            replica_state=replica_state, host='skywalker@jedi#temple')
        share_api_call = self.mock_object(
            share.API, 'update_share_replica', mock.Mock(return_value=None))
        body = {'resync': {}}
        req.body = six.b(jsonutils.dumps(body))
        req.environ['manila.context'] = self.admin_context

        with mock.patch.object(
                policy, 'check_policy', fakes.mock_fake_admin_check):
            resp = req.get_response(fakes.app())

        if replica_state == constants.REPLICA_STATE_ACTIVE:
            self.assertEqual(200, resp.status_int)
            self.assertFalse(share_api_call.called)
        else:
            self.assertEqual(202, resp.status_int)
            self.assertTrue(share_api_call.called)
Beispiel #30
0
    def test_resync(self, replica_state):

        replica, req = self._create_replica_get_req(
            replica_state=replica_state, host='skywalker@jedi#temple')
        share_api_call = self.mock_object(share.API, 'update_share_replica',
                                          mock.Mock(return_value=None))
        body = {'resync': {}}
        req.body = six.b(jsonutils.dumps(body))
        req.environ['manila.context'] = self.admin_context

        with mock.patch.object(policy, 'check_policy',
                               fakes.mock_fake_admin_check):
            resp = req.get_response(fakes.app())

        if replica_state == constants.REPLICA_STATE_ACTIVE:
            self.assertEqual(200, resp.status_int)
            self.assertFalse(share_api_call.called)
        else:
            self.assertEqual(202, resp.status_int)
            self.assertTrue(share_api_call.called)
Beispiel #31
0
    def test_consistency_group_force_delete_with_different_roles(
            self, role, resp_code, version):
        ctxt = self._get_context(role)
        cg, req = self._setup_cg_data(version=version)
        req.method = 'POST'
        req.headers['content-type'] = 'application/json'
        if float(version) > 2.6:
            action_name = 'force_delete'
        else:
            action_name = 'os-force_delete'
        body = {action_name: {}}
        req.body = six.b(jsonutils.dumps(body))
        req.environ['manila.context'] = ctxt

        with mock.patch.object(policy, 'check_policy',
                               fakes.mock_fake_admin_check):
            resp = req.get_response(fakes.app())

        # validate response
        self.assertEqual(resp_code, resp.status_int)
    def test_cgsnapshot_force_delete_with_different_roles(self, role,
                                                          resp_code, version):
        cgsnap, req = self._setup_cgsnapshot_data()
        ctxt = self._get_context(role)
        req.method = 'POST'
        req.headers['content-type'] = 'application/json'
        if float(version) > 2.6:
            action_name = 'force_delete'
        else:
            action_name = 'os-force_delete'
        body = {action_name: {'status': constants.STATUS_ERROR}}
        req.body = six.b(jsonutils.dumps(body))
        req.headers['X-Openstack-Manila-Api-Version'] = version
        req.environ['manila.context'] = ctxt

        with mock.patch.object(
                policy, 'check_policy', fakes.mock_fake_admin_check):
            resp = req.get_response(fakes.app())

        # Validate response
        self.assertEqual(resp_code, resp.status_int)
    def test_consistency_group_force_delete_with_different_roles(self, role,
                                                                 resp_code,
                                                                 version):
        ctxt = self._get_context(role)
        cg, req = self._setup_cg_data(version=version)
        req.method = 'POST'
        req.headers['content-type'] = 'application/json'
        if float(version) > 2.6:
            action_name = 'force_delete'
        else:
            action_name = 'os-force_delete'
        body = {action_name: {}}
        req.body = six.b(jsonutils.dumps(body))
        req.environ['manila.context'] = ctxt

        with mock.patch.object(
                policy, 'check_policy', fakes.mock_fake_admin_check):
            resp = req.get_response(fakes.app())

        # validate response
        self.assertEqual(resp_code, resp.status_int)
Beispiel #34
0
    def test_cgsnapshot_force_delete_with_different_roles(
            self, role, resp_code, version):
        cgsnap, req = self._setup_cgsnapshot_data()
        ctxt = self._get_context(role)
        req.method = 'POST'
        req.headers['content-type'] = 'application/json'
        if float(version) > 2.6:
            action_name = 'force_delete'
        else:
            action_name = 'os-force_delete'
        body = {action_name: {'status': constants.STATUS_ERROR}}
        req.body = six.b(jsonutils.dumps(body))
        req.headers['X-Openstack-Manila-Api-Version'] = version
        req.environ['manila.context'] = ctxt

        with mock.patch.object(policy, 'check_policy',
                               fakes.mock_fake_admin_check):
            resp = req.get_response(fakes.app())

        # Validate response
        self.assertEqual(resp_code, resp.status_int)
    def _reset_status(self, ctxt, model, req, db_access_method,
                      valid_code, valid_status=None, body=None, version='2.7'):
        if float(version) > 2.6:
            action_name = 'reset_status'
        else:
            action_name = 'os-reset_status'
        if body is None:
            body = {action_name: {'status': constants.STATUS_ERROR}}
        req.method = 'POST'
        req.headers['content-type'] = 'application/json'
        req.headers['X-Openstack-Manila-Api-Version'] = version
        req.body = six.b(jsonutils.dumps(body))
        req.environ['manila.context'] = ctxt

        with mock.patch.object(
                policy, 'check_policy', fakes.mock_fake_admin_check):
            resp = req.get_response(fakes.app())

        # validate response code and model status
        self.assertEqual(valid_code, resp.status_int)

        actual_model = db_access_method(ctxt, model['id'])
        self.assertEqual(valid_status, actual_model['status'])
Beispiel #36
0
    def _reset_status(self,
                      ctxt,
                      model,
                      req,
                      db_access_method,
                      valid_code,
                      valid_status=None,
                      body=None):
        action_name = 'os-reset_status'
        if body is None:
            body = {action_name: {'status': constants.STATUS_ERROR}}
        req.method = 'POST'
        req.headers['content-type'] = 'application/json'
        req.body = jsonutils.dumps(body).encode("utf-8")
        req.environ['manila.context'] = ctxt

        resp = req.get_response(fakes.app())

        # validate response code and model status
        self.assertEqual(valid_code, resp.status_int)

        actual_model = db_access_method(ctxt, model['id'])
        self.assertEqual(valid_status, actual_model['status'])
    def _reset_status(self,
                      context,
                      instance,
                      req,
                      valid_code=202,
                      valid_status=None,
                      body=None):
        if body is None:
            body = {'reset_status': {'status': constants.STATUS_ERROR}}

        req.body = jsonutils.dumps(body).encode("utf-8")
        req.environ['manila.context'] = context

        with mock.patch.object(policy, 'check_policy',
                               fakes.mock_fake_admin_check):
            resp = req.get_response(fakes.app())

        # validate response code and model status
        self.assertEqual(valid_code, resp.status_int)

        actual_instance = (
            share_snapshot_instances.db.share_snapshot_instance_get(
                context, instance['id']))
        self.assertEqual(valid_status, actual_instance['status'])