Exemplo n.º 1
0
 def test_volume_type_encryption_get(self):
     for encryption in self.created:
         encryption_get = \
             db.volume_type_encryption_get(self.ctxt,
                                           encryption['volume_type_id'])
         self._assertEqualObjects(encryption, encryption_get,
                                  self._ignored_keys)
Exemplo n.º 2
0
 def test_volume_type_encryption_get(self):
     for encryption in self.created:
         encryption_get = \
             db.volume_type_encryption_get(self.ctxt,
                                           encryption['volume_type_id'])
         self._assertEqualObjects(encryption, encryption_get,
                                  self._ignored_keys)
Exemplo n.º 3
0
 def _get_volume_type_encryption(self, context, type_id):
     encryption_ref = db.volume_type_encryption_get(context, type_id)
     encryption_specs = {}
     if not encryption_ref:
         return encryption_specs
     for key, value in encryption_ref.iteritems():
         encryption_specs[key] = value
     return encryption_specs
Exemplo n.º 4
0
def get_volume_type_encryption(
        context: context.RequestContext,
        volume_type_id: Optional[str]) -> Optional[dict]:
    if volume_type_id is None:
        return None

    encryption = db.volume_type_encryption_get(context, volume_type_id)
    return encryption
Exemplo n.º 5
0
 def _get_volume_type_encryption(self, context, type_id):
     encryption_ref = db.volume_type_encryption_get(context, type_id)
     encryption_specs = {}
     if not encryption_ref:
         return encryption_specs
     for key, value in encryption_ref.items():
         encryption_specs[key] = value
     return encryption_specs
Exemplo n.º 6
0
 def test_volume_type_encryption_get(self):
     for encryption in self.created:
         print "encryption = %s" % encryption.__dict__
         encryption_get = \
             db.volume_type_encryption_get(self.ctxt,
                                           encryption['volume_type_id'])
         print "encryption_get = %s" % encryption_get.__dict__
         self._assertEqualObjects(encryption, encryption_get,
                                  self._ignored_keys)
Exemplo n.º 7
0
 def test_volume_type_encryption_get(self):
     for encryption in self.created:
         print "encryption = %s" % encryption.__dict__
         encryption_get = \
             db.volume_type_encryption_get(self.ctxt,
                                           encryption['volume_type_id'])
         print "encryption_get = %s" % encryption_get.__dict__
         self._assertEqualObjects(encryption, encryption_get,
                                  self._ignored_keys)
Exemplo n.º 8
0
    def _create(self, cipher, control_location, key_size, provider):
        volume_type = {
            'id': 'fake_type_id',
            'name': 'fake_type',
        }
        db.volume_type_create(context.get_admin_context(), volume_type)

        body = {
            "encryption": {
                'cipher': cipher,
                'control_location': control_location,
                'key_size': key_size,
                'provider': provider,
                'volume_type_id': volume_type['id']
            }
        }

        self.assertEqual(len(test_notifier.NOTIFICATIONS), 0)
        res = self._get_response(volume_type)
        res_dict = json.loads(res.body)
        self.assertEqual(200, res.status_code)
        # Confirm that volume type has no encryption information
        # before create.
        self.assertEqual('{}', res.body)

        # Create encryption specs for the volume type
        # with the defined body.
        res = self._get_response(volume_type,
                                 req_method='POST',
                                 req_body=json.dumps(body),
                                 req_headers='application/json')
        res_dict = json.loads(res.body)

        self.assertEqual(len(test_notifier.NOTIFICATIONS), 1)

        # check response
        self.assertIn('encryption', res_dict)
        self.assertEqual(cipher, res_dict['encryption']['cipher'])
        self.assertEqual(control_location,
                         res_dict['encryption']['control_location'])
        self.assertEqual(key_size, res_dict['encryption']['key_size'])
        self.assertEqual(provider, res_dict['encryption']['provider'])
        self.assertEqual(volume_type['id'],
                         res_dict['encryption']['volume_type_id'])

        # check database
        encryption = db.volume_type_encryption_get(context.get_admin_context(),
                                                   volume_type['id'])
        self.assertIsNotNone(encryption)
        self.assertEqual(cipher, encryption['cipher'])
        self.assertEqual(key_size, encryption['key_size'])
        self.assertEqual(provider, encryption['provider'])
        self.assertEqual(volume_type['id'], encryption['volume_type_id'])

        db.volume_type_destroy(context.get_admin_context(), volume_type['id'])
    def _create(self, cipher, control_location, key_size, provider):
        volume_type = self._default_volume_type
        db.volume_type_create(context.get_admin_context(), volume_type)

        body = {
            "encryption": {
                'cipher': cipher,
                'control_location': control_location,
                'key_size': key_size,
                'provider': provider,
                'volume_type_id': volume_type['id']
            }
        }

        self.assertEqual(0, len(self.notifier.notifications))
        res = self._get_response(volume_type)
        res_dict = jsonutils.loads(res.body)
        self.assertEqual(http_client.OK, res.status_code)
        # Confirm that volume type has no encryption information
        # before create.
        self.assertEqual(b'{}', res.body)

        # Create encryption specs for the volume type
        # with the defined body.
        res = self._get_response(volume_type,
                                 req_method='POST',
                                 req_body=jsonutils.dump_as_bytes(body),
                                 req_headers='application/json')
        res_dict = jsonutils.loads(res.body)

        self.assertEqual(1, len(self.notifier.notifications))

        # check response
        self.assertIn('encryption', res_dict)
        self.assertEqual(cipher, res_dict['encryption']['cipher'])
        self.assertEqual(control_location,
                         res_dict['encryption']['control_location'])
        self.assertEqual(key_size, res_dict['encryption']['key_size'])
        self.assertEqual(provider, res_dict['encryption']['provider'])
        self.assertEqual(volume_type['id'],
                         res_dict['encryption']['volume_type_id'])

        # check database
        encryption = db.volume_type_encryption_get(context.get_admin_context(),
                                                   volume_type['id'])
        self.assertIsNotNone(encryption)
        self.assertEqual(cipher, encryption['cipher'])
        self.assertEqual(key_size, encryption['key_size'])
        self.assertEqual(provider, encryption['provider'])
        self.assertEqual(volume_type['id'], encryption['volume_type_id'])

        db.volume_type_destroy(context.get_admin_context(), volume_type['id'])
Exemplo n.º 10
0
    def _create(self, cipher, control_location, key_size, provider):
        volume_type = {
            'id': 'fake_type_id',
            'name': 'fake_type',
        }
        db.volume_type_create(context.get_admin_context(), volume_type)

        body = {"encryption": {'cipher': cipher,
                               'control_location': control_location,
                               'key_size': key_size,
                               'provider': provider,
                               'volume_type_id': volume_type['id']}}

        self.assertEqual(len(test_notifier.NOTIFICATIONS), 0)
        res = self._get_response(volume_type)
        res_dict = json.loads(res.body)
        self.assertEqual(200, res.status_code)
        # Confirm that volume type has no encryption information
        # before create.
        self.assertEqual('{}', res.body)

        # Create encryption specs for the volume type
        # with the defined body.
        res = self._get_response(volume_type, req_method='POST',
                                 req_body=json.dumps(body),
                                 req_headers='application/json')
        res_dict = json.loads(res.body)

        self.assertEqual(len(test_notifier.NOTIFICATIONS), 1)

        # check response
        self.assertIn('encryption', res_dict)
        self.assertEqual(cipher, res_dict['encryption']['cipher'])
        self.assertEqual(control_location,
                         res_dict['encryption']['control_location'])
        self.assertEqual(key_size, res_dict['encryption']['key_size'])
        self.assertEqual(provider, res_dict['encryption']['provider'])
        self.assertEqual(volume_type['id'],
                         res_dict['encryption']['volume_type_id'])

        # check database
        encryption = db.volume_type_encryption_get(context.get_admin_context(),
                                                   volume_type['id'])
        self.assertIsNotNone(encryption)
        self.assertEqual(cipher, encryption['cipher'])
        self.assertEqual(key_size, encryption['key_size'])
        self.assertEqual(provider, encryption['provider'])
        self.assertEqual(volume_type['id'], encryption['volume_type_id'])

        db.volume_type_destroy(context.get_admin_context(), volume_type['id'])
Exemplo n.º 11
0
    def test_volume_type_encryption_delete(self):
        values = {
            "cipher": "fake_cipher",
            "key_size": 256,
            "provider": "fake_provider",
            "volume_type_id": "fake_type",
            "control_location": "front-end",
        }

        encryption = db.volume_type_encryption_create(self.ctxt, "fake_type", values)
        self._assertEqualObjects(values, encryption, self._ignored_keys)

        db.volume_type_encryption_delete(self.ctxt, encryption["volume_type_id"])
        encryption_get = db.volume_type_encryption_get(self.ctxt, encryption["volume_type_id"])
        self.assertIsNone(encryption_get)
Exemplo n.º 12
0
    def _create(self, cipher, control_location, key_size, provider):
        volume_type = {"id": "fake_type_id", "name": "fake_type"}
        db.volume_type_create(context.get_admin_context(), volume_type)

        body = {
            "encryption": {
                "cipher": cipher,
                "control_location": control_location,
                "key_size": key_size,
                "provider": provider,
                "volume_type_id": volume_type["id"],
            }
        }

        self.assertEqual(len(test_notifier.NOTIFICATIONS), 0)
        res = self._get_response(volume_type)
        res_dict = json.loads(res.body)
        self.assertEqual(200, res.status_code)
        # Confirm that volume type has no encryption information
        # before create.
        self.assertEqual("{}", res.body)

        # Create encryption specs for the volume type
        # with the defined body.
        res = self._get_response(
            volume_type, req_method="POST", req_body=json.dumps(body), req_headers="application/json"
        )
        res_dict = json.loads(res.body)

        self.assertEqual(len(test_notifier.NOTIFICATIONS), 1)

        # check response
        self.assertIn("encryption", res_dict)
        self.assertEqual(cipher, res_dict["encryption"]["cipher"])
        self.assertEqual(control_location, res_dict["encryption"]["control_location"])
        self.assertEqual(key_size, res_dict["encryption"]["key_size"])
        self.assertEqual(provider, res_dict["encryption"]["provider"])
        self.assertEqual(volume_type["id"], res_dict["encryption"]["volume_type_id"])

        # check database
        encryption = db.volume_type_encryption_get(context.get_admin_context(), volume_type["id"])
        self.assertIsNotNone(encryption)
        self.assertEqual(cipher, encryption["cipher"])
        self.assertEqual(key_size, encryption["key_size"])
        self.assertEqual(provider, encryption["provider"])
        self.assertEqual(volume_type["id"], encryption["volume_type_id"])

        db.volume_type_destroy(context.get_admin_context(), volume_type["id"])
    def _create(self, cipher, control_location, key_size, provider):
        volume_type = self._default_volume_type
        db.volume_type_create(context.get_admin_context(), volume_type)

        body = {"encryption": {'cipher': cipher,
                               'control_location': control_location,
                               'key_size': key_size,
                               'provider': provider,
                               'volume_type_id': volume_type['id']}}

        self.assertEqual(0, len(self.notifier.notifications))
        res = self._get_response(volume_type)
        res_dict = jsonutils.loads(res.body)
        self.assertEqual(http_client.OK, res.status_code)
        # Confirm that volume type has no encryption information
        # before create.
        self.assertEqual(b'{}', res.body)

        # Create encryption specs for the volume type
        # with the defined body.
        res = self._get_response(volume_type, req_method='POST',
                                 req_body=jsonutils.dump_as_bytes(body),
                                 req_headers='application/json')
        res_dict = jsonutils.loads(res.body)

        self.assertEqual(1, len(self.notifier.notifications))

        # check response
        self.assertIn('encryption', res_dict)
        self.assertEqual(cipher, res_dict['encryption']['cipher'])
        self.assertEqual(control_location,
                         res_dict['encryption']['control_location'])
        self.assertEqual(key_size, res_dict['encryption']['key_size'])
        self.assertEqual(provider, res_dict['encryption']['provider'])
        self.assertEqual(volume_type['id'],
                         res_dict['encryption']['volume_type_id'])

        # check database
        encryption = db.volume_type_encryption_get(context.get_admin_context(),
                                                   volume_type['id'])
        self.assertIsNotNone(encryption)
        self.assertEqual(cipher, encryption['cipher'])
        self.assertEqual(key_size, encryption['key_size'])
        self.assertEqual(provider, encryption['provider'])
        self.assertEqual(volume_type['id'], encryption['volume_type_id'])

        db.volume_type_destroy(context.get_admin_context(), volume_type['id'])
Exemplo n.º 14
0
    def test_volume_type_encryption_delete(self):
        values = {
            'cipher': 'fake_cipher',
            'key_size': 256,
            'provider': 'fake_provider',
            'volume_type_id': 'fake_type',
            'control_location': 'front-end',
        }

        encryption = db.volume_type_encryption_update_or_create(
            self.ctxt, 'fake_type', values)
        self._assertEqualObjects(values, encryption, self._ignored_keys)

        db.volume_type_encryption_delete(self.ctxt,
                                         encryption['volume_type_id'])
        encryption_get = \
            db.volume_type_encryption_get(self.ctxt,
                                          encryption['volume_type_id'])
        self.assertIsNone(encryption_get)
Exemplo n.º 15
0
    def test_volume_type_encryption_delete(self):
        values = {
            'cipher': 'fake_cipher',
            'key_size': 256,
            'provider': 'fake_provider',
            'volume_type_id': 'fake_type',
            'control_location': 'front-end',
        }

        encryption = db.volume_type_encryption_update_or_create(self.ctxt,
                                                                'fake_type',
                                                                values)
        self._assertEqualObjects(values, encryption, self._ignored_keys)

        db.volume_type_encryption_delete(self.ctxt,
                                         encryption['volume_type_id'])
        encryption_get = \
            db.volume_type_encryption_get(self.ctxt,
                                          encryption['volume_type_id'])
        self.assertEqual(None, encryption_get)
Exemplo n.º 16
0
def get_volume_type_encryption(context, volume_type_id):
    if volume_type_id is None:
        return None

    encryption = db.volume_type_encryption_get(context, volume_type_id)
    return encryption
Exemplo n.º 17
0
def get_volume_type_encryption(context, volume_type_id):
    if volume_type_id is None:
        return None

    encryption = db.volume_type_encryption_get(context, volume_type_id)
    return encryption
Exemplo n.º 18
0
def is_encrypted(context, volume_type_id):
    if volume_type_id is None:
        return False

    encryption = db.volume_type_encryption_get(context, volume_type_id)
    return encryption is not None
Exemplo n.º 19
0
def is_encrypted(context, volume_type_id):
    if volume_type_id is None:
        return False

    encryption = db.volume_type_encryption_get(context, volume_type_id)
    return encryption is not None