def setUp(self):
     super(WhenUsingKeystoneEventConsumer, self).setUp()
     self.kek_repo = rep.get_kek_datum_repository()
     self.project_repo = rep.get_project_repository()
     self.secret_meta_repo = rep.get_secret_meta_repository()
     self.secret_repo = rep.get_secret_repository()
     self.transport_key_repo = rep.get_transport_key_repository()
Example #2
0
def create_transport_key(plugin_name="plugin",
                         transport_key="tkey",
                         session=None):
    transport_key = models.TransportKey(plugin_name, transport_key)
    transport_key_repo = repositories.get_transport_key_repository()
    transport_key_repo.create_from(transport_key, session=session)
    return transport_key
 def setUp(self):
     super(WhenUsingKeystoneEventConsumer, self).setUp()
     self.kek_repo = rep.get_kek_datum_repository()
     self.project_repo = rep.get_project_repository()
     self.secret_meta_repo = rep.get_secret_meta_repository()
     self.secret_repo = rep.get_secret_repository()
     self.transport_key_repo = rep.get_transport_key_repository()
Example #4
0
 def __init__(self, secret):
     LOG.debug('=== Creating SecretController ===')
     super().__init__()
     self.secret = secret
     self.consumers = consumers.SecretConsumersController(secret)
     self.consumer_repo = repo.get_secret_consumer_repository()
     self.transport_key_repo = repo.get_transport_key_repository()
Example #5
0
def _get_plugin_name_and_transport_key(transport_key_id):
    plugin_name = None
    transport_key = None
    if transport_key_id is not None:
        transport_key_repo = repos.get_transport_key_repository()
        transport_key_model = transport_key_repo.get(
            entity_id=transport_key_id)
        if transport_key_model is None:
            raise ValueError("Invalid transport key ID provided")

        plugin_name = transport_key_model.plugin_name
        if plugin_name is None:
            raise ValueError("Invalid plugin name for transport key")

        transport_key = transport_key_model.transport_key

    return plugin_name, transport_key
Example #6
0
def _get_plugin_name_and_transport_key(transport_key_id):
    plugin_name = None
    transport_key = None
    if transport_key_id is not None:
        transport_key_repo = repos.get_transport_key_repository()
        transport_key_model = transport_key_repo.get(
            entity_id=transport_key_id)
        if transport_key_model is None:
            raise ValueError("Invalid transport key ID provided")

        plugin_name = transport_key_model.plugin_name
        if plugin_name is None:
            raise ValueError("Invalid plugin name for transport key")

        transport_key = transport_key_model.transport_key

    return plugin_name, transport_key
Example #7
0
def _get_plugin_name_and_transport_key(transport_key_id):
    plugin_name = None
    transport_key = None
    if transport_key_id is not None:
        transport_key_repo = repos.get_transport_key_repository()
        try:
            transport_key_model = transport_key_repo.get(
                entity_id=transport_key_id)
        except exception.NotFound:
            raise exception.ProvidedTransportKeyNotFound(str(transport_key_id))

        plugin_name = transport_key_model.plugin_name
        if plugin_name is None:
            raise ValueError("Invalid plugin name for transport key")

        transport_key = transport_key_model.transport_key

    return plugin_name, transport_key
Example #8
0
def _get_plugin_name_and_transport_key(transport_key_id):
    plugin_name = None
    transport_key = None
    if transport_key_id is not None:
        transport_key_repo = repos.get_transport_key_repository()
        try:
            transport_key_model = transport_key_repo.get(
                entity_id=transport_key_id)
        except exception.NotFound:
            raise exception.ProvidedTransportKeyNotFound(str(transport_key_id))

        plugin_name = transport_key_model.plugin_name
        if plugin_name is None:
            raise ValueError("Invalid plugin name for transport key")

        transport_key = transport_key_model.transport_key

    return plugin_name, transport_key
Example #9
0
class TransportKey(base.BarbicanObject, base.BarbicanPersistentObject,
                   object_base.VersionedObjectDictCompat):
    fields = {
        'plugin_name': fields.StringField(),
        'transport_key': fields.StringField(),
        'status': fields.StringField(nullable=True, default=base.States.ACTIVE)
    }

    db_model = models.TransportKey
    db_repo = repo.get_transport_key_repository()

    def _validate_fields(self, change_fields):
        msg = u._("Must supply non-None {0} argument for TransportKey entry.")

        if change_fields.get('plugin_name') is None:
            raise exception.MissingArgumentError(msg.format("plugin_name"))

        if change_fields.get('transport_key') is None:
            raise exception.MissingArgumentError(msg.format("transport_key"))

    @classmethod
    def get_by_create_date(cls,
                           plugin_name=None,
                           offset_arg=None,
                           limit_arg=None,
                           suppress_exception=False,
                           session=None):
        transport_keys_db, offset, limit, total = \
            cls.db_repo.get_by_create_date(plugin_name, offset_arg, limit_arg,
                                           suppress_exception, session)
        transport_keys_obj = [
            cls()._from_db_object(transport_key)
            for transport_key in transport_keys_db
        ]
        return transport_keys_obj, offset, limit, total

    @classmethod
    def get_latest_transport_key(cls,
                                 plugin_name,
                                 suppress_exception=False,
                                 session=None):
        transport_key_db = cls.db_repo.get_latest_transport_key(
            plugin_name, suppress_exception, session)
        return cls()._from_db_object(transport_key_db)
Example #10
0
def _get_transport_key_model(key_spec, transport_key_needed):
    key_model = None
    if transport_key_needed:
        # get_plugin_store() will throw an exception if no suitable
        # plugin with transport key is found
        plugin_manager = secret_store.get_manager()
        store_plugin = plugin_manager.get_plugin_store(
            key_spec=key_spec, transport_key_needed=True)
        plugin_name = utils.generate_fullname_for(store_plugin)

        key_repo = repos.get_transport_key_repository()
        key_model = key_repo.get_latest_transport_key(plugin_name)

        if not key_model or not store_plugin.is_transport_key_current(
                key_model.transport_key):
            # transport key does not exist or is not current.
            # need to get a new transport key
            transport_key = store_plugin.get_transport_key()
            new_key_model = models.TransportKey(plugin_name, transport_key)
            key_model = key_repo.create_from(new_key_model)
    return key_model
Example #11
0
def _get_transport_key_model(key_spec, transport_key_needed):
    key_model = None
    if transport_key_needed:
        # get_plugin_store() will throw an exception if no suitable
        # plugin with transport key is found
        plugin_manager = secret_store.get_manager()
        store_plugin = plugin_manager.get_plugin_store(
            key_spec=key_spec, transport_key_needed=True)
        plugin_name = utils.generate_fullname_for(store_plugin)

        key_repo = repos.get_transport_key_repository()
        key_model = key_repo.get_latest_transport_key(plugin_name)

        if not key_model or not store_plugin.is_transport_key_current(
                key_model.transport_key):
            # transport key does not exist or is not current.
            # need to get a new transport key
            transport_key = store_plugin.get_transport_key()
            new_key_model = models.TransportKey(plugin_name, transport_key)
            key_model = key_repo.create_from(new_key_model)
    return key_model
Example #12
0
 def __init__(self, secret):
     LOG.debug('=== Creating SecretController ===')
     self.secret = secret
     self.transport_key_repo = repo.get_transport_key_repository()
Example #13
0
 def __init__(self, secret):
     LOG.debug('=== Creating SecretController ===')
     self.secret = secret
     self.transport_key_repo = repo.get_transport_key_repository()
Example #14
0
# See the License for the specific language governing permissions and
# limitations under the License.
import base64
import os

import mock

from barbican.common import validators
from barbican.model import models
from barbican.model import repositories
from barbican.openstack.common import timeutils
from barbican.tests import utils

project_repo = repositories.get_project_repository()
secrets_repo = repositories.get_secret_repository()
tkey_repo = repositories.get_transport_key_repository()


@utils.parameterized_test_case
class WhenTestingSecretsResource(utils.BarbicanAPIBaseTestCase):

    def test_can_create_new_secret_one_step(self):
        resp, secret_uuid = create_secret(
            self.app,
            payload=b'not-encrypted',
            content_type='text/plain'
        )

        self.assertEqual(201, resp.status_int)
        self.assertIsNotNone(secret_uuid)
Example #15
0
def create_transport_key(plugin_name="plugin", transport_key="tkey",
                         session=None):
    transport_key = models.TransportKey(plugin_name, transport_key)
    transport_key_repo = repositories.get_transport_key_repository()
    transport_key_repo.create_from(transport_key, session=session)
    return transport_key
Example #16
0
# See the License for the specific language governing permissions and
# limitations under the License.
import base64
import os

import mock
from oslo_utils import timeutils

from barbican.common import validators
from barbican.model import models
from barbican.model import repositories
from barbican.tests import utils

project_repo = repositories.get_project_repository()
secrets_repo = repositories.get_secret_repository()
tkey_repo = repositories.get_transport_key_repository()


@utils.parameterized_test_case
class WhenTestingSecretsResource(utils.BarbicanAPIBaseTestCase):
    def test_can_create_new_secret_one_step(self):
        resp, secret_uuid = create_secret(self.app,
                                          payload=b'not-encrypted',
                                          content_type='text/plain')

        self.assertEqual(201, resp.status_int)
        self.assertIsNotNone(secret_uuid)

    def test_can_create_new_secret_without_payload(self):
        resp, secret_uuid = create_secret(self.app, name='test')
        self.assertEqual(201, resp.status_int)