xref: /spdk/test/sma/plugins/plugin2/__init__.py (revision 588dfe314bb83d86effdf67ec42837b11c2620bf)
1*588dfe31SMichal Berger#  SPDX-License-Identifier: BSD-3-Clause
2*588dfe31SMichal Berger#  Copyright (C) 2022 Intel Corporation.
3*588dfe31SMichal Berger#  All rights reserved.
4*588dfe31SMichal Berger
52bf49272SKonrad Sztyberfrom spdk.sma import DeviceManager
6cc3f842cSKonrad Sztyberfrom spdk.sma import CryptoEngine, get_crypto_engine
72bf49272SKonrad Sztyberfrom spdk.sma.proto import sma_pb2
82bf49272SKonrad Sztyber
92bf49272SKonrad Sztyber
10cc3f842cSKonrad Sztyberclass TestCryptoEngine(CryptoEngine):
11cc3f842cSKonrad Sztyber    def __init__(self):
12cc3f842cSKonrad Sztyber        super().__init__('crypto-plugin2')
13cc3f842cSKonrad Sztyber
14cc3f842cSKonrad Sztyber    def setup(self, volume_id, key, cipher, key2=None):
15cc3f842cSKonrad Sztyber        pass
16cc3f842cSKonrad Sztyber
17cc3f842cSKonrad Sztyber    def cleanup(self, volume_id):
18cc3f842cSKonrad Sztyber        pass
19cc3f842cSKonrad Sztyber
20cc3f842cSKonrad Sztyber    def verify(self, volume_id, key, cipher, key2=None):
21cc3f842cSKonrad Sztyber        pass
22cc3f842cSKonrad Sztyber
23cc3f842cSKonrad Sztyber    def get_crypto_bdev(self, volume_id):
24cc3f842cSKonrad Sztyber        return volume_id
25cc3f842cSKonrad Sztyber
26cc3f842cSKonrad Sztyber
272bf49272SKonrad Sztyberclass TestDeviceManager1(DeviceManager):
282bf49272SKonrad Sztyber    def __init__(self, client):
292bf49272SKonrad Sztyber        super().__init__('plugin2-device1', 'nvme', client)
302bf49272SKonrad Sztyber
312bf49272SKonrad Sztyber    def create_device(self, request):
32cc3f842cSKonrad Sztyber        crypto = get_crypto_engine().name
33cc3f842cSKonrad Sztyber        return sma_pb2.CreateDeviceResponse(handle=f'{self.protocol}:{self.name}:{crypto}')
342bf49272SKonrad Sztyber
352bf49272SKonrad Sztyber
362bf49272SKonrad Sztyberclass TestDeviceManager2(DeviceManager):
372bf49272SKonrad Sztyber    def __init__(self, client):
382bf49272SKonrad Sztyber        super().__init__('plugin2-device2', 'nvmf_tcp', client)
392bf49272SKonrad Sztyber
402bf49272SKonrad Sztyber    def create_device(self, request):
41cc3f842cSKonrad Sztyber        crypto = get_crypto_engine().name
42cc3f842cSKonrad Sztyber        return sma_pb2.CreateDeviceResponse(handle=f'{self.protocol}:{self.name}:{crypto}')
432bf49272SKonrad Sztyber
442bf49272SKonrad Sztyber
452bf49272SKonrad Sztyberdevices = [TestDeviceManager1, TestDeviceManager2]
46cc3f842cSKonrad Sztybercrypto_engines = [TestCryptoEngine]
47