Commit Graph

9 Commits

Author SHA1 Message Date
Roman Gorshunov 5241d1d6ea Fix deckhand-integration-uwsgi-py35 tests
During Gabbi tests server returns one of

  application/json
  application/json; charset=UTF-8

in a Content-Type HTTP header, depending on which test is being run.
This might be related to different pip/pip3 versions and dependencies
installed being used during standalone vs. containerized tests.

This patch allows for both returned header's values to be accepted as
valid as a remediate solution until versions of packages and pip/pip3
usage is unified.

Change-Id: Ifb8f2d68e3474946b3df154cb016cc18cfc95d23
2020-03-01 19:47:29 +01:00
Phil Sphicas 4ccb4368ce Barbican driver simplification
Under some circumstances, the payloads retrieved from Barbican do not
match what was stored. This primarily affects surrounding whitespace[0],
but the implications for passphrases are significant, and even for PEM
encoded data, a difference in whitespace in a configmap is enough to
trigger a chart upgrade.

In general, the effort to align Deckhand document types with Barbican
secret types adds complexity without tangible benefit. Barbican does no
enforcement of the contents of the data, and if it did, that could lead
to further incompatibilities.

This change uses the 'opaque' secret type for all secret document types.
Before storage (or caching), the payload is serialized using `repr`, and
base64 encoded. Upon retrieval, the payload is base64 decoded and parsed
back into an object with `ast.literal_eval`.

[0]: https://storyboard.openstack.org/#!/story/2007017

Change-Id: I9c2f3427f52a87aad718f95160cf688db35e1b83
2020-01-24 22:26:29 +00:00
anthony.bellino 7defe473d2 Redact rendered Documents
- Uses the rendered-documents endpoint
- Adds a query parameter ?cleartext-secrets
- Adds unit tests, updates integration tests

Change-Id: I02423b9bf7456008d707b3cd91edc4fc281fa5fc
2018-10-24 22:42:25 -04:00
Aaron Sheffield 349e5600df Redacts Raw Documents
- If a document has a storage policy of encrypted
 - Redacts (sha256) the data section.
 - Redacts (sha256) the substition paths.
- Uses the same /documents endpoint, adds a new query parameter
  ?cleartext-secrets=true to show the non-redacted values.

Change-Id: I42808901b97c667a1148c00fbb7717a0847c9981
2018-10-19 23:56:12 -05:00
Felipe Monteiro 11eeb69f44 integration tests: Add Barbican validation/assertions
This patchset adds Barbican validation/assertions to integration
tests by querying the Barbican API server where appropriate
and validating that the expected data is returned in order
to sanity-check the integration scenarios further.

Change-Id: If5d30712b289f09ac9712ee205673be4150cda16
2018-07-22 16:32:57 +00:00
Felipe Monteiro b1113a9b59 Fix failing integration uwsgi job
This patchset fixes failing integration uwsgi jobs due to
recent schema changes here: [0]. Basically, some of the
YAMLs that are used for the integration tests are missing
storagePolicy or layeringDefinition properties; this
patch set corrects the issues to get the job passing
again.

[0] https://review.openstack.org/#/c/579023/6

Change-Id: I4fb48bb770aaa31539231046b3f0bd11af25f927
2018-07-11 21:35:22 -04:00
Felipe Monteiro 444e4d9dcc [fix gate] Unblock failing integration job
This PS fixes the integration job failing on the following:

  Unable to match $.[0].data.`split(:, 0, 1)` + "://" +
  $.[0].data.`split(/, 2, 3)` + "/v1" as
  http://barbican.openstack.svc.cluster.local:80/,
  got http://barbican.openstack.svc.cluster.local:80/v1

This change corrects this issue.

Change-Id: Iccc172efa37fe06df3af59a569bbc6f135c773fe
2018-05-07 18:05:13 +00:00
Felipe Monteiro 2165e8b396 [test] Cover all secret Deckhand types in integration tests
This patch set accomplishes 2 things:
1) Fixes an issue in Deckhand caused by improperly using the wrong
   Barbican secret type for the PrivateKey Deckhand document type.
2) Tests all Deckhand secret types against Barbican via integration
   testing.

The current error being raised is this: "Provided object does not match
schema 'Secret': u'privatekey' is not one of ['symmetric', 'passphrase',
'private', 'public', 'certificate', 'opaque']."

Change-Id: I8231c87782902850fe0632d0346c567c7481e95f
2018-04-27 14:25:29 -04:00
Felipe Monteiro f30484a14c Add integration tests
This patch set adds integration tests to Deckhand
where "integration" means the interaction between
Deckhand, Barbican and Keystone. OSH is used to
deploy Keystone and Barbican and Docker to deploy
PostgreSQL and Deckhand.

Unlike functional testing in Deckhand, all
integration tests use the default in-code policy
defaults and an admin token supplied by keystone
to validate authN and authZ.

The test scenarios consist of Deckhand secret
lifecycle management as well as document rendering
with secrets retrieved from Barbican.

Change-Id: Ib5ae1b345b2a4bd579671ec4ae9a232c2e3887dc
2018-04-18 09:05:04 -04:00