diff --git a/deckhand/conf/config.py b/deckhand/conf/config.py index ae64e3a2..d58f79d9 100644 --- a/deckhand/conf/config.py +++ b/deckhand/conf/config.py @@ -28,6 +28,7 @@ Barbican options for allowing Deckhand to communicate with Barbican. barbican_opts = [ cfg.StrOpt( 'api_endpoint', + default='http://127.0.0.1/key-manager', sample_default='http://barbican.example.org:9311/', help='URL override for the Barbican API endpoint.'), ] diff --git a/deckhand/engine/secrets_manager.py b/deckhand/engine/secrets_manager.py index 438c4636..9101a955 100644 --- a/deckhand/engine/secrets_manager.py +++ b/deckhand/engine/secrets_manager.py @@ -15,6 +15,7 @@ import copy import re +from oslo_config import cfg from oslo_log import log as logging import six @@ -23,6 +24,7 @@ from deckhand.engine import document_wrapper from deckhand import errors from deckhand import utils +CONF = cfg.CONF LOG = logging.getLogger(__name__) CLEARTEXT = 'cleartext' @@ -177,9 +179,8 @@ class SecretsSubstitution(object): (document.schema, document.name), document) def _is_barbican_ref(self, src_secret): - # TODO(fmontei): Make this more robust. return (isinstance(src_secret, six.string_types) and - 'key-manager/v1/secrets' in src_secret) + src_secret.startswith(CONF.barbican.api_endpoint)) def substitute_all(self, documents): """Substitute all documents that have a `metadata.substitutions` field. diff --git a/deckhand/tests/unit/base.py b/deckhand/tests/unit/base.py index 322cb638..3d0a0ce2 100644 --- a/deckhand/tests/unit/base.py +++ b/deckhand/tests/unit/base.py @@ -23,6 +23,7 @@ from oslo_log import log as logging import testtools from deckhand.db.sqlalchemy import api as db_api +from deckhand.tests.unit import fixtures as dh_fixtures CONF = cfg.CONF logging.register_options(CONF) @@ -34,6 +35,8 @@ class DeckhandTestCase(testtools.TestCase): def setUp(self): super(DeckhandTestCase, self).setUp() self.useFixture(fixtures.FakeLogger('deckhand')) + self.useFixture(dh_fixtures.ConfPatcher( + api_endpoint='http://127.0.0.1/key-manager', group='barbican')) def override_config(self, name, override, group=None): CONF.set_override(name, override, group)