예제 #1
0
    def test_encrypt(self, _get_vault_path, _dmcrypt, _systemd):
        _get_vault_path.return_value = 'backend/host/uuid'
        _dmcrypt.generate_key.return_value = 'testkey'

        args = mock.MagicMock()
        args.uuid = 'passed-UUID'
        args.block_device = ['/dev/sdb']

        client = mock.MagicMock()
        client.read.return_value = {
            'data': {
                'dmcrypt_key': 'testkey'
            }
        }

        shell._encrypt_block_device(args, client, self.config)

        _dmcrypt.luks_format.assert_called_with(
            'testkey', '/dev/sdb', 'passed-UUID'
        )
        _dmcrypt.luks_open.assert_called_with(
            'testkey', 'passed-UUID'
        )
        _systemd.enable.assert_called_with(
            '*****@*****.**'
        )
예제 #2
0
    def test_vault_read_operation(self, _get_vault_path, _dmcrypt, _systemd):
        _get_vault_path.return_value = 'backend/host/uuid'
        _dmcrypt.generate_key.return_value = 'testkey'

        args = mock.MagicMock()
        args.uuid = 'passed-UUID'
        args.block_device = ['/dev/sdb']

        client = mock.MagicMock()
        client.read.return_value = {'data': {'dmcrypt_key': 'testkey'}}

        self.assertIsNot(
            exceptions.VaultReadError,
            shell._encrypt_block_device(args, client, self.config))

        client.read.side_effect = exceptions.VaultReadError(
            'backend/host/uuid', 'Write Failed')
        self.assertRaises(exceptions.VaultReadError,
                          shell._encrypt_block_device, args, client,
                          self.config)