Airflow 2.10.2 + ubuntu_jammy

Change-Id: I7c8a637efc1e969ab6814447e76068caaca0e66e
This commit is contained in:
Sergiy Markin 2024-08-29 00:10:11 +00:00
parent 30e532f866
commit be9f97b846
55 changed files with 791 additions and 289 deletions

View File

@ -13,42 +13,43 @@
- project: - project:
templates: templates:
- docs-on-readthedocs - docs-on-readthedocs
- openstack-python38-jobs
vars: vars:
rtd_webhook_id: '38572' rtd_webhook_id: '38572'
rtd_project_name: 'airship-deckhand' rtd_project_name: 'airship-deckhand'
check: check:
jobs: jobs:
- deckhand-tox-py38-postgresql - openstack-tox-py310
- deckhand-functional-uwsgi-py38 - deckhand-tox-py310-postgresql
- deckhand-functional-docker-py38 - deckhand-functional-uwsgi-py310
- deckhand-integration-uwsgi-py38 - deckhand-functional-docker-py310
- deckhand-integration-docker-py38 - deckhand-integration-uwsgi-py310
- deckhand-integration-docker-py310
- deckhand-chart-build-gate - deckhand-chart-build-gate
- deckhand-chart-build-latest-htk - deckhand-chart-build-latest-htk
- deckhand-docker-build-gate - deckhand-docker-build-gate
- deckhand-openstack-tox-pep8-focal - deckhand-openstack-tox-pep8-jammy
- deckhand-openstack-tox-cover-focal - deckhand-openstack-tox-cover-jammy
- deckhand-airskiff-deployment-focal-kubeadm - deckhand-airskiff-deployment-jammy-kubeadm
gate: gate:
jobs: jobs:
- deckhand-tox-py38-postgresql - openstack-tox-py310
- deckhand-functional-uwsgi-py38 - deckhand-tox-py310-postgresql
- deckhand-functional-docker-py38 - deckhand-functional-uwsgi-py310
- deckhand-integration-uwsgi-py38 - deckhand-functional-docker-py310
- deckhand-integration-docker-py38 - deckhand-integration-uwsgi-py310
- deckhand-integration-docker-py310
- deckhand-chart-build-gate - deckhand-chart-build-gate
- deckhand-chart-build-latest-htk - deckhand-chart-build-latest-htk
- deckhand-docker-build-gate - deckhand-docker-build-gate
- deckhand-openstack-tox-pep8-focal - deckhand-openstack-tox-pep8-jammy
- deckhand-openstack-tox-cover-focal - deckhand-openstack-tox-cover-jammy
post: post:
jobs: jobs:
- deckhand-upload-git-mirror - deckhand-upload-git-mirror
- deckhand-docker-publish-ubuntu_focal - deckhand-docker-publish-ubuntu_jammy
- nodeset: - nodeset:
@ -64,37 +65,37 @@
label: ubuntu-bionic label: ubuntu-bionic
- nodeset: - nodeset:
name: deckhand-single-node-focal name: deckhand-single-node-jammy
nodes: nodes:
- name: primary - name: primary
label: ubuntu-focal label: ubuntu-jammy
- nodeset: - nodeset:
name: deckhand-single-node-airskiff-focal name: deckhand-single-node-airskiff-jammy
nodes: nodes:
- name: primary - name: primary
label: ubuntu-focal label: ubuntu-jammy
- job: - job:
name: deckhand-openstack-tox-pep8-focal name: deckhand-openstack-tox-pep8-jammy
parent: openstack-tox-pep8 parent: openstack-tox-pep8
description: Runs pep8 job on focal description: Runs pep8 job on jammy
nodeset: treasuremap-airskiff-1node-ubuntu_focal nodeset: treasuremap-airskiff-1node-ubuntu_jammy
- job: - job:
name: deckhand-openstack-tox-cover-focal name: deckhand-openstack-tox-cover-jammy
parent: openstack-tox-cover parent: openstack-tox-cover
description: Runs cover job on focal description: Runs cover job on jammy
nodeset: treasuremap-airskiff-1node-ubuntu_focal nodeset: treasuremap-airskiff-1node-ubuntu_jammy
- job: - job:
name: deckhand-tox-py38-postgresql name: deckhand-tox-py310-postgresql
parent: openstack-tox-py38 parent: openstack-tox-py310
nodeset: treasuremap-airskiff-1node-ubuntu_focal nodeset: treasuremap-airskiff-1node-ubuntu_jammy
pre-run: pre-run:
- tools/gate/playbooks/prepare-hosts.yaml - tools/gate/playbooks/prepare-hosts.yaml
vars: vars:
tox_envlist: py38-postgresql tox_envlist: py310-postgresql
- job: - job:
name: deckhand-base name: deckhand-base
@ -117,6 +118,7 @@
- ^deckhand/tests/unit/.*$ - ^deckhand/tests/unit/.*$
timeout: 10800 timeout: 10800
pre-run: pre-run:
- tools/gate/playbooks/checkout-treasuremap-ref.yaml
- tools/gate/playbooks/prepare-hosts.yaml - tools/gate/playbooks/prepare-hosts.yaml
- tools/gate/playbooks/mount-volumes.yaml - tools/gate/playbooks/mount-volumes.yaml
- tools/gate/playbooks/deploy-env.yaml - tools/gate/playbooks/deploy-env.yaml
@ -125,6 +127,7 @@
post-run: post-run:
- tools/gate/playbooks/osh-infra-collect-logs.yaml - tools/gate/playbooks/osh-infra-collect-logs.yaml
vars: vars:
treasuremap_ref: refs/changes/43/927643/4
extra_volume: extra_volume:
size: 80G size: 80G
type: Linux type: Linux
@ -141,15 +144,16 @@
loopback_device: /dev/loop100 loopback_device: /dev/loop100
loopback_image: "/opt/ext_vol/openstack-helm/ceph-loop.img" loopback_image: "/opt/ext_vol/openstack-helm/ceph-loop.img"
ceph_osd_data_device: /dev/loop100 ceph_osd_data_device: /dev/loop100
kube_version_repo: "v1.29" kube_version_repo: "v1.30"
kube_version: "1.29.5-1.1" kube_version: "1.30.3-1.1"
calico_setup: true calico_setup: true
calico_version: "v3.27.0" calico_version: "v3.27.4"
cilium_setup: false cilium_setup: false
cilium_version: "1.15.6" cilium_version: "1.16.0"
helm_version: "v3.6.3" flannel_setup: false
yq_version: "v4.6.0" flannel_version: v0.25.4
crictl_version: "v1.26.1" helm_version: "v3.15.4"
crictl_version: "v1.30.1"
zuul_osh_relative_path: ../../openstack/openstack-helm zuul_osh_relative_path: ../../openstack/openstack-helm
zuul_osh_infra_relative_path: ../../openstack/openstack-helm-infra zuul_osh_infra_relative_path: ../../openstack/openstack-helm-infra
zuul_treasuremap_relative_path: ../../airship/treasuremap zuul_treasuremap_relative_path: ../../airship/treasuremap
@ -158,61 +162,61 @@
- job: - job:
name: deckhand-functional-docker-py38 name: deckhand-functional-docker-py310
description: | description: |
Run tox-based functional tests for the Airship Deckhand project under Run tox-based functional tests for the Airship Deckhand project under
cPython version 3.8. Uses tox with the ``functional-py38`` environment. cPython version 3.10. Uses tox with the ``functional-py310`` environment.
Ubuntu (focal) image is built and used. Ubuntu (jammy) image is built and used.
parent: deckhand-base parent: deckhand-base
run: tools/gate/playbooks/run-functional-tests-docker.yaml run: tools/gate/playbooks/run-functional-tests-docker.yaml
nodeset: treasuremap-airskiff-1node-ubuntu_focal nodeset: treasuremap-airskiff-1node-ubuntu_jammy
vars: vars:
tox_envlist: py38-functional tox_envlist: py310-functional
disable_keystone: true disable_keystone: true
DISTRO: ubuntu_focal DISTRO: ubuntu_jammy
irrelevant-files: *irrelevant-files irrelevant-files: *irrelevant-files
- job: - job:
name: deckhand-functional-uwsgi-py38 name: deckhand-functional-uwsgi-py310
description: | description: |
Run tox-based functional tests for the Airship Deckhand project using a Run tox-based functional tests for the Airship Deckhand project using a
minimalistic deployment consisting of uwsgi for Deckhand API and pifpaf minimalistic deployment consisting of uwsgi for Deckhand API and pifpaf
for ephemeral PostgreSQL DB, under cPython version 3.8. for ephemeral PostgreSQL DB, under cPython version 3.10.
parent: deckhand-base parent: deckhand-base
run: tools/gate/playbooks/run-functional-tests-uwsgi.yaml run: tools/gate/playbooks/run-functional-tests-uwsgi.yaml
nodeset: treasuremap-airskiff-1node-ubuntu_focal nodeset: treasuremap-airskiff-1node-ubuntu_jammy
vars: vars:
tox_envlist: py38-functional-dev tox_envlist: py310-functional-dev
DISTRO: ubuntu_focal DISTRO: ubuntu_jammy
irrelevant-files: *irrelevant-files irrelevant-files: *irrelevant-files
- job: - job:
name: deckhand-integration-uwsgi-py38 name: deckhand-integration-uwsgi-py310
description: | description: |
Run tox-based integration tests for the Airship Deckhand project using a Run tox-based integration tests for the Airship Deckhand project using a
minimalistic deployment consisting of uwsgi for Deckhand API and pifpaf minimalistic deployment consisting of uwsgi for Deckhand API and pifpaf
for ephemeral PostgreSQL DB, under cPython version 3.8. for ephemeral PostgreSQL DB, under cPython version 3.10.
parent: deckhand-base parent: deckhand-base
run: tools/gate/playbooks/run-integration-tests-uwsgi.yaml run: tools/gate/playbooks/run-integration-tests-uwsgi.yaml
nodeset: treasuremap-airskiff-1node-ubuntu_focal nodeset: treasuremap-airskiff-1node-ubuntu_jammy
irrelevant-files: *irrelevant-files irrelevant-files: *irrelevant-files
vars: vars:
disable_keystone: true disable_keystone: true
DISTRO: ubuntu_focal DISTRO: ubuntu_jammy
- job: - job:
name: deckhand-integration-docker-py38 name: deckhand-integration-docker-py310
description: | description: |
Run tox-based integration tests for the Airship Deckhand project under Run tox-based integration tests for the Airship Deckhand project under
cPython version 3.8. Builds ubuntu (focal) deckhand image. cPython version 3.10. Builds ubuntu (jammy) deckhand image.
parent: deckhand-base parent: deckhand-base
run: tools/gate/playbooks/run-integration-tests-docker.yaml run: tools/gate/playbooks/run-integration-tests-docker.yaml
nodeset: treasuremap-airskiff-1node-ubuntu_focal nodeset: treasuremap-airskiff-1node-ubuntu_jammy
vars: vars:
tox_envlist: py38-functional tox_envlist: py310-functional
disable_keystone: false disable_keystone: false
DISTRO: ubuntu_focal DISTRO: ubuntu_jammy
irrelevant-files: *irrelevant-files irrelevant-files: *irrelevant-files
- job: - job:
@ -221,9 +225,9 @@
Build charts using pinned Helm toolkit. Build charts using pinned Helm toolkit.
timeout: 900 timeout: 900
run: tools/gate/playbooks/build-charts.yaml run: tools/gate/playbooks/build-charts.yaml
nodeset: treasuremap-airskiff-1node-ubuntu_focal nodeset: treasuremap-airskiff-1node-ubuntu_jammy
vars: vars:
HTK_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f HTK_COMMIT: 43fd7143481b6ddda0dbd2f26bf6ec39a417b15b
- job: - job:
name: deckhand-chart-build-latest-htk name: deckhand-chart-build-latest-htk
@ -231,48 +235,26 @@
Build charts using latest Helm toolkit. Build charts using latest Helm toolkit.
timeout: 900 timeout: 900
run: tools/gate/playbooks/build-charts.yaml run: tools/gate/playbooks/build-charts.yaml
nodeset: treasuremap-airskiff-1node-ubuntu_focal nodeset: treasuremap-airskiff-1node-ubuntu_jammy
vars: vars:
HTK_COMMIT: master HTK_COMMIT: master
# - job:
# name: deckhand-airskiff-deployment-focal
# voting: true
# nodeset: treasuremap-airskiff-1node-ubuntu_focal
# description: |
# Deploy Memcached using Airskiff and submitted Deckhand changes.
# timeout: 9600
# pre-run:
# - tools/gate/playbooks/git-config.yaml
# - tools/gate/playbooks/airskiff-reduce-site.yaml
# run: tools/gate/playbooks/airskiff-deploy.yaml
# post-run: tools/gate/playbooks/debug-report.yaml
# required-projects:
# - airship/treasuremap
# vars:
# CLONE_DECKHAND: false
# DECKHAND_IMAGE_DISTRO: ubuntu_focal
# HELM_ARTIFACT_URL: https://get.helm.sh/helm-v3.14.2-linux-amd64.tar.gz
# HTK_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f
# OSH_INFRA_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f
# OSH_COMMIT: 2d9457e34ca4200ed631466bd87569b0214c92e7
# DISTRO: ubuntu_focal
# irrelevant-files: *irrelevant-files
- job: - job:
name: deckhand-airskiff-deployment-focal-kubeadm name: deckhand-airskiff-deployment-jammy-kubeadm
nodeset: treasuremap-airskiff-1node-ubuntu_focal nodeset: treasuremap-airskiff-1node-ubuntu_jammy
description: | description: |
Deploy Memcached using Airskiff and submitted Deckhand changes. Deploy Memcached using Airskiff and submitted Deckhand changes.
parent: deckhand-base parent: deckhand-base
vars: vars:
site: airskiff site: airskiff
HELM_ARTIFACT_URL: https://get.helm.sh/helm-v3.14.2-linux-amd64.tar.gz HELM_ARTIFACT_URL: https://get.helm.sh/helm-v3.15.4-linux-amd64.tar.gz
HTK_COMMIT: 05f2f45971abcf483189358d663e2b46c3fc2fe8 HTK_COMMIT: 43fd7143481b6ddda0dbd2f26bf6ec39a417b15b
OSH_INFRA_COMMIT: 05f2f45971abcf483189358d663e2b46c3fc2fe8 OSH_INFRA_COMMIT: 43fd7143481b6ddda0dbd2f26bf6ec39a417b15b
OSH_COMMIT: 049e679939fbd3b0c659dd0977911b8dc3b5a015 OSH_COMMIT: 540df5cb0dbdaed63c202e2d6f2b7891062f8203
TREASUREMAP_COMMIT: refs/changes/43/927643/2
CLONE_DECKHAND: false CLONE_DECKHAND: false
DISTRO: ubuntu_focal DISTRO: ubuntu_jammy
DOCKER_REGISTRY: localhost:5000 DOCKER_REGISTRY: localhost:5000
MAKE_DECKHAND_IMAGES: true MAKE_DECKHAND_IMAGES: true
gate_scripts_relative_path: ../../airship/treasuremap gate_scripts_relative_path: ../../airship/treasuremap
@ -286,6 +268,7 @@
- ./tools/deployment/airskiff/developer/025-start-artifactory.sh - ./tools/deployment/airskiff/developer/025-start-artifactory.sh
- ./tools/deployment/airskiff/developer/026-reduce-site.sh - ./tools/deployment/airskiff/developer/026-reduce-site.sh
- ./tools/deployment/airskiff/developer/030-armada-bootstrap.sh - ./tools/deployment/airskiff/developer/030-armada-bootstrap.sh
# - ./tools/deployment/airskiff/common/sleep.sh
- ./tools/deployment/airskiff/developer/100-deploy-osh.sh - ./tools/deployment/airskiff/developer/100-deploy-osh.sh
- ./tools/deployment/airskiff/common/os-env.sh - ./tools/deployment/airskiff/common/os-env.sh
- ./tools/gate/wait-for-shipyard.sh - ./tools/gate/wait-for-shipyard.sh
@ -295,7 +278,7 @@
name: deckhand-docker-build-gate name: deckhand-docker-build-gate
timeout: 3600 timeout: 3600
run: tools/gate/playbooks/docker-image-build.yaml run: tools/gate/playbooks/docker-image-build.yaml
nodeset: treasuremap-airskiff-1node-ubuntu_focal nodeset: treasuremap-airskiff-1node-ubuntu_jammy
irrelevant-files: &non-code-files-template irrelevant-files: &non-code-files-template
- ^.*\.rst$ - ^.*\.rst$
- ^doc/.*$ - ^doc/.*$
@ -305,36 +288,36 @@
- ^setup.cfg$ - ^setup.cfg$
vars: vars:
publish: false publish: false
DISTRO: ubuntu_focal DISTRO: ubuntu_jammy
tags: tags:
dynamic: dynamic:
patch_set: true patch_set: true
- job: - job:
name: deckhand-docker-publish-ubuntu_focal name: deckhand-docker-publish-ubuntu_jammy
description: | description: |
Runs on every merge, unless files in a dictionary below are changed. Runs on every merge, unless files in a dictionary below are changed.
Builds and publishes container ubuntu images on quay.io with a set of tags Builds and publishes container ubuntu images on quay.io with a set of tags
listed in vars section. Waits in Zuul queue for a node (VM) assignment. listed in vars section. Waits in Zuul queue for a node (VM) assignment.
timeout: 3600 timeout: 3600
run: tools/gate/playbooks/docker-image-build.yaml run: tools/gate/playbooks/docker-image-build.yaml
nodeset: treasuremap-airskiff-1node-ubuntu_focal nodeset: treasuremap-airskiff-1node-ubuntu_jammy
secrets: secrets:
- airship_deckhand_quay_creds - airship_deckhand_quay_creds
irrelevant-files: *non-code-files-template irrelevant-files: *non-code-files-template
vars: vars:
publish: true publish: true
DISTRO: ubuntu_focal DISTRO: ubuntu_jammy
tags: tags:
dynamic: dynamic:
branch: true branch: true
commit: true commit: true
static: static:
- latest - latest
- airflow_2.8.2 - airflow_2.10.0
- job: - job:
name: deckhand-docker-tag-ubuntu_focal name: deckhand-docker-tag-ubuntu_jammy
description: | description: |
Runs on every merge when files in a dictionalry below are changed, and Runs on every merge when files in a dictionalry below are changed, and
adds git commit id tag onto the ubuntu container image published on quay.io, adds git commit id tag onto the ubuntu container image published on quay.io,
@ -347,7 +330,7 @@
secrets: secrets:
- airship_deckhand_quay_creds - airship_deckhand_quay_creds
vars: vars:
DISTRO: ubuntu_focal DISTRO: ubuntu_jammy
- secret: - secret:

View File

@ -1,7 +1,18 @@
CHANGES CHANGES
======= =======
* Update deploy-env parameters
* Kubeadm based Airskiff gate
* Fix deckhand-api dependences
* Airflow stable 2.8.2 * Airflow stable 2.8.2
* Airflow stable 2.8.1
* Use deploy-env role
* Rollback python deps update
* Remove openstack-helm nodeset
* Update helm toolkit reference
* Deprecating the Ingress Class Annotation
* Airflow stable 2.6.2
* Deckhand updates
* Restored ubuntu\_bionic image build * Restored ubuntu\_bionic image build
* [focal] Fix requests.body attribute deprecation * [focal] Fix requests.body attribute deprecation
* Update airskiff deployment gate * Update airskiff deployment gate

View File

@ -25,10 +25,11 @@ USE_PROXY ?= false
PUSH_IMAGE ?= false PUSH_IMAGE ?= false
# use this variable for image labels added in internal build process # use this variable for image labels added in internal build process
LABEL ?= org.airshipit.build=community LABEL ?= org.airshipit.build=community
DISTRO ?= ubuntu_focal DISTRO ?= ubuntu_jammy
DISTRO_ALIAS ?= ubuntu_focal
COMMIT ?= $(shell git rev-parse HEAD) COMMIT ?= $(shell git rev-parse HEAD)
IMAGE := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG}-${DISTRO} IMAGE := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG}-${DISTRO}
IMAGE_ALIAS := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG}-${DISTRO_ALIAS}
export export
# Build Deckhand Docker image for this project # Build Deckhand Docker image for this project
@ -87,6 +88,13 @@ else
$(_BASE_IMAGE_ARG) \ $(_BASE_IMAGE_ARG) \
-f images/deckhand/Dockerfile.$(DISTRO) . -f images/deckhand/Dockerfile.$(DISTRO) .
endif endif
ifneq ($(DISTRO), $(DISTRO_ALIAS))
docker tag $(IMAGE) $(IMAGE_ALIAS)
endif
ifeq ($(DOCKER_REGISTRY), localhost:5000)
docker push $(IMAGE)
docker push $(IMAGE_ALIAS)
endif
ifeq ($(PUSH_IMAGE), true) ifeq ($(PUSH_IMAGE), true)
docker push $(IMAGE) docker push $(IMAGE)
endif endif

View File

@ -10,6 +10,7 @@ libpq-dev [platform:dpkg]
libsasl2-dev [platform:dpkg] libsasl2-dev [platform:dpkg]
libssl-dev [platform:dpkg] libssl-dev [platform:dpkg]
libre2-dev [platform:dpkg] libre2-dev [platform:dpkg]
postgresql [platform:dpkg] postgresql-14 [platform:dpkg]
postgresql-contrib [platform:dpkg] postgresql-contrib [platform:dpkg]
ethtool [platform:dpkg] ethtool [platform:dpkg]
net-tools [platform:dpkg]

View File

@ -15,7 +15,7 @@
apiVersion: v1 apiVersion: v1
description: A Helm chart for Deckhand description: A Helm chart for Deckhand
name: deckhand name: deckhand
version: 0.2.1 version: 0.2.2
appVersion: 1.1.0 appVersion: 1.1.0
keywords: keywords:
- deckhand - deckhand

View File

@ -340,7 +340,7 @@ pod:
security_context: security_context:
deckhand: deckhand:
pod: pod:
runAsUser: 65534 runAsUser: 1000
container: container:
deckhand_api: deckhand_api:
readOnlyRootFilesystem: true readOnlyRootFilesystem: true
@ -354,7 +354,7 @@ pod:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
db_sync: db_sync:
pod: pod:
runAsUser: 65534 runAsUser: 1000
container: container:
deckhand_db_sync: deckhand_db_sync:
readOnlyRootFilesystem: true readOnlyRootFilesystem: true

View File

@ -8,8 +8,8 @@
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -17,16 +17,20 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: create - name: create
desc: Create initial documents desc: Create initial documents
PUT: /api/v1.0/buckets/a/documents PUT: /api/v1.0/buckets/a/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/sample-doc.yaml data: <@resources/sample-doc.yaml
- name: error - name: error
desc: Trigger error case desc: Trigger error case
PUT: /api/v1.0/buckets/b/documents PUT: /api/v1.0/buckets/b/documents
status: 409 status: 409
response_headers:
content-type: application/x-yaml
data: <@resources/sample-doc.yaml data: <@resources/sample-doc.yaml

View File

@ -16,8 +16,8 @@
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -25,18 +25,22 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: create_a - name: create_a
desc: Create documents in one bucket (a) desc: Create documents in one bucket (a)
PUT: /api/v1.0/buckets/a/documents PUT: /api/v1.0/buckets/a/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/layering-needs-substitution-source.yaml data: <@resources/layering-needs-substitution-source.yaml
- name: verify_first_bucket - name: verify_first_bucket
desc: Verify document count and revisions desc: Verify document count and revisions
GET: /api/v1.0/revisions/$RESPONSE['$.[0].status.revision']/documents GET: /api/v1.0/revisions/$RESPONSE['$.[0].status.revision']/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 3 $.`len`: 3
$.[*].metadata.name: $.[*].metadata.name:
@ -56,6 +60,8 @@ tests:
desc: Create documents in a second bucket (b) desc: Create documents in a second bucket (b)
PUT: /api/v1.0/buckets/b/documents PUT: /api/v1.0/buckets/b/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/passphrase.yaml data: <@resources/passphrase.yaml
- name: verify_second_bucket - name: verify_second_bucket
@ -84,6 +90,8 @@ tests:
desc: Verify initial revision is unchanged desc: Verify initial revision is unchanged
GET: /api/v1.0/revisions/$HISTORY['create_a'].$RESPONSE['$.[0].status.revision']/documents GET: /api/v1.0/revisions/$HISTORY['create_a'].$RESPONSE['$.[0].status.revision']/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 3 $.`len`: 3
$.[*].metadata.name: $.[*].metadata.name:

View File

@ -9,8 +9,8 @@
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -18,18 +18,22 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: initialize - name: initialize
desc: Create initial documents desc: Create initial documents
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/deckhand-owned-sample.yaml data: <@resources/deckhand-owned-sample.yaml
- name: verify_certificate_content - name: verify_certificate_content
desc: Verify Passphrase content desc: Verify Passphrase content
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents?schema=deckhand/Certificate/v1 GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents?schema=deckhand/Certificate/v1
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].data: | $.[0].data: |
@ -62,6 +66,8 @@ tests:
desc: Verify Passphrase content desc: Verify Passphrase content
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents?schema=deckhand/Passphrase/v1 GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents?schema=deckhand/Passphrase/v1
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].data: hunter2 $.[0].data: hunter2

View File

@ -35,8 +35,8 @@
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -44,12 +44,14 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: initialize - name: initialize
desc: Create initial documents desc: Create initial documents
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-3-layers.yaml data: <@resources/design-doc-layering-sample-3-layers.yaml
- name: verify_initial - name: verify_initial
@ -58,6 +60,8 @@ tests:
query_parameters: query_parameters:
sort: metadata.name sort: metadata.name
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 4 $.`len`: 4
$.[*].metadata.name: $.[*].metadata.name:
@ -80,17 +84,23 @@ tests:
desc: Push a duplicate bucket of documents desc: Push a duplicate bucket of documents
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-3-layers.yaml data: <@resources/design-doc-layering-sample-3-layers.yaml
- name: verify_ignore - name: verify_ignore
desc: Verify duplicate documents were ignored desc: Verify duplicate documents were ignored
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 4 $.`len`: 4
query_parameters: query_parameters:
sort: metadata.name sort: metadata.name
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 4 $.`len`: 4
$.[*].metadata.name: $.[*].metadata.name:
@ -113,6 +123,8 @@ tests:
desc: Update a single document, ignore other documents in the bucket desc: Update a single document, ignore other documents in the bucket
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-with-update.yaml data: <@resources/design-doc-layering-sample-with-update.yaml
- name: verify_update - name: verify_update
@ -121,6 +133,8 @@ tests:
query_parameters: query_parameters:
sort: metadata.name sort: metadata.name
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 4 $.`len`: 4
$.[*].metadata.name: $.[*].metadata.name:
@ -146,6 +160,8 @@ tests:
query_parameters: query_parameters:
sort: metadata.name sort: metadata.name
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 4 $.`len`: 4
$.[*].metadata.name: $.[*].metadata.name:
@ -169,6 +185,8 @@ tests:
desc: Delete a single document desc: Delete a single document
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-with-delete.yaml data: <@resources/design-doc-layering-sample-with-delete.yaml
- name: verify_delete - name: verify_delete
@ -177,6 +195,8 @@ tests:
query_parameters: query_parameters:
sort: metadata.name sort: metadata.name
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 3 $.`len`: 3
$.[*].status.revision: $.[*].status.revision:
@ -199,6 +219,8 @@ tests:
query_parameters: query_parameters:
sort: metadata.name sort: metadata.name
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 4 $.`len`: 4
$.[*].metadata.name: $.[*].metadata.name:
@ -224,6 +246,8 @@ tests:
query_parameters: query_parameters:
sort: metadata.name sort: metadata.name
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 4 $.`len`: 4
$.[*].metadata.name: $.[*].metadata.name:

View File

@ -8,8 +8,8 @@
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -17,18 +17,22 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: initialize - name: initialize
desc: Create initial documents desc: Create initial documents
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/unusual-documents.yaml data: <@resources/unusual-documents.yaml
- name: verity_list_content - name: verity_list_content
desc: Verify list content desc: Verify list content
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents?schema=unusual/List/v1 GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents?schema=unusual/List/v1
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].data: $.[0].data:
@ -40,6 +44,8 @@ tests:
desc: Verify DictWithSecret content desc: Verify DictWithSecret content
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents?schema=unusual/DictWithSecret/v1 GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents?schema=unusual/DictWithSecret/v1
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].data: $.[0].data:
@ -50,6 +56,8 @@ tests:
desc: Verify String content desc: Verify String content
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents?schema=unusual/String/v1 GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents?schema=unusual/String/v1
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].data: strings are useful $.[0].data: strings are useful
@ -58,6 +66,8 @@ tests:
desc: Verify Integer content desc: Verify Integer content
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents?schema=unusual/Integer/v1 GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents?schema=unusual/Integer/v1
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].data: 9000 $.[0].data: 9000

View File

@ -8,8 +8,8 @@
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -17,7 +17,7 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: add_bucket_layering - name: add_bucket_layering
desc: |- desc: |-
@ -25,6 +25,8 @@ tests:
and site. and site.
PUT: /api/v1.0/buckets/layering/documents PUT: /api/v1.0/buckets/layering/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: |- data: |-
--- ---
schema: deckhand/LayeringPolicy/v1 schema: deckhand/LayeringPolicy/v1
@ -41,12 +43,16 @@ tests:
desc: Create documents for bucket a desc: Create documents for bucket a
PUT: /api/v1.0/buckets/a/documents PUT: /api/v1.0/buckets/a/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-split-bucket-a.yaml data: <@resources/design-doc-layering-sample-split-bucket-a.yaml
- name: add_bucket_b - name: add_bucket_b
desc: Create documents for bucket b desc: Create documents for bucket b
PUT: /api/v1.0/buckets/b/documents PUT: /api/v1.0/buckets/b/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-split-bucket-b.yaml data: <@resources/design-doc-layering-sample-split-bucket-b.yaml
- name: verify_layering - name: verify_layering
@ -57,6 +63,8 @@ tests:
- schema - schema
- metadata.name - metadata.name
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 3 $.`len`: 3
$.[0].schema: deckhand/LayeringPolicy/v1 $.[0].schema: deckhand/LayeringPolicy/v1

View File

@ -7,8 +7,8 @@
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -16,15 +16,19 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: initialize - name: initialize
desc: Create initial documents desc: Create initial documents
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/passphrase.yaml data: <@resources/passphrase.yaml
- name: verify_missing_layering_policy_raises_conflict - name: verify_missing_layering_policy_raises_conflict
desc: Verify that attempting to render documents without a layering policy raises a 409 desc: Verify that attempting to render documents without a layering policy raises a 409
GET: /api/v1.0/revisions/$RESPONSE['$.[0].status.revision']/rendered-documents GET: /api/v1.0/revisions/$RESPONSE['$.[0].status.revision']/rendered-documents
status: 409 status: 409
response_headers:
content-type: application/x-yaml

View File

@ -8,8 +8,8 @@
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -17,12 +17,14 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: create_documents_for_validating_2_level_layering - name: create_documents_for_validating_2_level_layering
desc: Create documents for validating 2 levels of layering (global, site) desc: Create documents for validating 2 levels of layering (global, site)
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-2-layers.yaml data: <@resources/design-doc-layering-sample-2-layers.yaml
- name: verify_layering_2_layers - name: verify_layering_2_layers
@ -31,6 +33,8 @@ tests:
query_parameters: query_parameters:
sort: schema sort: schema
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 2 $.`len`: 2
$.[0].schema: deckhand/LayeringPolicy/v1 $.[0].schema: deckhand/LayeringPolicy/v1
@ -47,12 +51,16 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers:
content-type: application/x-yaml
response_headers: {}
- name: create_documents_for_validating_3_level_layering - name: create_documents_for_validating_3_level_layering
desc: Create documents for validating 3 levels of layering (global, region, site) desc: Create documents for validating 3 levels of layering (global, region, site)
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-3-layers.yaml data: <@resources/design-doc-layering-sample-3-layers.yaml
- name: verify_layering_3_layers - name: verify_layering_3_layers
@ -61,6 +69,8 @@ tests:
query_parameters: query_parameters:
sort: schema sort: schema
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 2 $.`len`: 2
$.[0].schema: deckhand/LayeringPolicy/v1 $.[0].schema: deckhand/LayeringPolicy/v1

View File

@ -12,8 +12,8 @@
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -21,13 +21,15 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: create_documents_for_validating_replacement_of_sub_source - name: create_documents_for_validating_replacement_of_sub_source
desc: | desc: |
Create documents for validating replacement of a substitution source. Create documents for validating replacement of a substitution source.
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: | data: |
--- ---
schema: deckhand/LayeringPolicy/v1 schema: deckhand/LayeringPolicy/v1
@ -102,6 +104,8 @@ tests:
query_parameters: query_parameters:
sort: metadata.name sort: metadata.name
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 3 $.`len`: 3
@ -128,6 +132,8 @@ tests:
Create documents for validating replacement of a layering source. Create documents for validating replacement of a layering source.
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: | data: |
--- ---
schema: deckhand/LayeringPolicy/v1 schema: deckhand/LayeringPolicy/v1
@ -222,6 +228,8 @@ tests:
query_parameters: query_parameters:
sort: metadata.name sort: metadata.name
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 4 $.`len`: 4

View File

@ -29,8 +29,8 @@
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -38,7 +38,7 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: initialize_layering_policy_base_case - name: initialize_layering_policy_base_case
desc: | desc: |
@ -47,6 +47,8 @@ tests:
is abstract has layer region. is abstract has layer region.
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: |- data: |-
--- ---
schema: deckhand/LayeringPolicy/v1 schema: deckhand/LayeringPolicy/v1
@ -66,6 +68,8 @@ tests:
substitutions from secret documents. substitutions from secret documents.
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/layering-and-substitution-sample.yaml data: <@resources/layering-and-substitution-sample.yaml
- name: verify_base_case - name: verify_base_case
@ -74,6 +78,8 @@ tests:
query_parameters: query_parameters:
metadata.name: armada-chart-01 metadata.name: armada-chart-01
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].metadata.name: armada-chart-01 $.[0].metadata.name: armada-chart-01
@ -95,6 +101,8 @@ tests:
Re-initailize the layering policy with 3 layers so that the top is empty Re-initailize the layering policy with 3 layers so that the top is empty
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: |- data: |-
--- ---
schema: deckhand/LayeringPolicy/v1 schema: deckhand/LayeringPolicy/v1
@ -113,6 +121,8 @@ tests:
Same case as before, except with a top empty layer. Same case as before, except with a top empty layer.
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/layering-and-substitution-sample.yaml data: <@resources/layering-and-substitution-sample.yaml
- name: verify_empty_top_layer - name: verify_empty_top_layer
@ -121,6 +131,8 @@ tests:
query_parameters: query_parameters:
metadata.name: armada-chart-01 metadata.name: armada-chart-01
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].metadata.name: armada-chart-01 $.[0].metadata.name: armada-chart-01
@ -143,6 +155,8 @@ tests:
empty empty
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: |- data: |-
--- ---
schema: deckhand/LayeringPolicy/v1 schema: deckhand/LayeringPolicy/v1
@ -162,6 +176,8 @@ tests:
Same case as before, except with multiple empty top layers. Same case as before, except with multiple empty top layers.
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/layering-and-substitution-sample.yaml data: <@resources/layering-and-substitution-sample.yaml
- name: verify_multiple_empty_top_layers - name: verify_multiple_empty_top_layers
@ -170,6 +186,8 @@ tests:
query_parameters: query_parameters:
metadata.name: armada-chart-01 metadata.name: armada-chart-01
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].metadata.name: armada-chart-01 $.[0].metadata.name: armada-chart-01
@ -192,6 +210,8 @@ tests:
layers. layers.
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: |- data: |-
--- ---
schema: deckhand/LayeringPolicy/v1 schema: deckhand/LayeringPolicy/v1
@ -212,6 +232,8 @@ tests:
Same case as before, except with multiple empty interspersed layers. Same case as before, except with multiple empty interspersed layers.
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/layering-and-substitution-sample.yaml data: <@resources/layering-and-substitution-sample.yaml
- name: verify_multiple_empty_interspersed_layers - name: verify_multiple_empty_interspersed_layers
@ -220,6 +242,8 @@ tests:
query_parameters: query_parameters:
metadata.name: armada-chart-01 metadata.name: armada-chart-01
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].metadata.name: armada-chart-01 $.[0].metadata.name: armada-chart-01
@ -241,6 +265,8 @@ tests:
Initailize the layering policy with 2 layers. Initailize the layering policy with 2 layers.
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: |- data: |-
--- ---
schema: deckhand/LayeringPolicy/v1 schema: deckhand/LayeringPolicy/v1
@ -260,6 +286,8 @@ tests:
the correct substitution order. the correct substitution order.
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/layering-and-substitution-dag-sample.yaml data: <@resources/layering-and-substitution-dag-sample.yaml
- name: verify_substitution_dependency_chain - name: verify_substitution_dependency_chain
@ -275,6 +303,8 @@ tests:
schema: armada/Chart/v1 schema: armada/Chart/v1
sort: metadata.name sort: metadata.name
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 3 $.`len`: 3
$.[0].metadata.name: armada-chart-01 $.[0].metadata.name: armada-chart-01

View File

@ -9,8 +9,8 @@
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -18,7 +18,7 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: initialize - name: initialize
desc: |- desc: |-
@ -30,6 +30,8 @@ tests:
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: |- data: |-
--- ---
schema: deckhand/LayeringPolicy/v1 schema: deckhand/LayeringPolicy/v1
@ -114,6 +116,8 @@ tests:
schema: armada/Chart/v1 schema: armada/Chart/v1
metadata.name: nova metadata.name: nova
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[*].metadata.name: nova $.[*].metadata.name: nova

View File

@ -9,8 +9,8 @@
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -18,12 +18,14 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: initialize - name: initialize
desc: Create initial documents desc: Create initial documents
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/replacement.yaml data: <@resources/replacement.yaml
- name: verify_replacement_document_receives_substitution - name: verify_replacement_document_receives_substitution
@ -35,6 +37,8 @@ tests:
query_parameters: query_parameters:
schema: armada/Chart/v1 schema: armada/Chart/v1
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[*].metadata.name: example-chart-01 $.[*].metadata.name: example-chart-01

View File

@ -28,8 +28,8 @@
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -37,12 +37,14 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: create_a - name: create_a
desc: Create documents in bucket_a desc: Create documents in bucket_a
PUT: /api/v1.0/buckets/bucket_a/documents PUT: /api/v1.0/buckets/bucket_a/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: |- data: |-
--- ---
schema: deckhand/LayeringPolicy/v1 schema: deckhand/LayeringPolicy/v1
@ -70,6 +72,8 @@ tests:
desc: Modify data value of doc-a document in bucket_a desc: Modify data value of doc-a document in bucket_a
PUT: /api/v1.0/buckets/bucket_a/documents PUT: /api/v1.0/buckets/bucket_a/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: |- data: |-
--- ---
schema: example/Kind/v1 schema: example/Kind/v1
@ -88,6 +92,8 @@ tests:
desc: Verify deepdiff of modified data value of doc-a document desc: Verify deepdiff of modified data value of doc-a document
GET: /api/v1.0/revisions/1/deepdiff/2 GET: /api/v1.0/revisions/1/deepdiff/2
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].'bucket_a': modified $.[0].'bucket_a': modified
@ -105,6 +111,8 @@ tests:
desc: Verify deepdiff when revision=0 comparision_revision=0 desc: Verify deepdiff when revision=0 comparision_revision=0
GET: /api/v1.0/revisions/0/deepdiff/0 GET: /api/v1.0/revisions/0/deepdiff/0
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0]: {} $.[0]: {}
@ -113,6 +121,8 @@ tests:
desc: Verify deepdiff when revision=0 desc: Verify deepdiff when revision=0
GET: /api/v1.0/revisions/0/deepdiff/2 GET: /api/v1.0/revisions/0/deepdiff/2
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0]: $.[0]:
@ -122,6 +132,8 @@ tests:
desc: Verify deepdiff when comparision_revision=0 desc: Verify deepdiff when comparision_revision=0
GET: /api/v1.0/revisions/2/deepdiff/0 GET: /api/v1.0/revisions/2/deepdiff/0
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0]: $.[0]:
@ -131,6 +143,8 @@ tests:
desc: Add new document doc-b in bucket_a desc: Add new document doc-b in bucket_a
PUT: /api/v1.0/buckets/bucket_a/documents PUT: /api/v1.0/buckets/bucket_a/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: |- data: |-
--- ---
schema: example/Kind/v1 schema: example/Kind/v1
@ -161,6 +175,8 @@ tests:
desc: Verify deepdiff of newly added doc-b document desc: Verify deepdiff of newly added doc-b document
GET: /api/v1.0/revisions/2/deepdiff/3 GET: /api/v1.0/revisions/2/deepdiff/3
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].'bucket_a': modified $.[0].'bucket_a': modified
@ -171,6 +187,8 @@ tests:
desc: Delete document doc-b in bucket_a desc: Delete document doc-b in bucket_a
PUT: /api/v1.0/buckets/bucket_a/documents PUT: /api/v1.0/buckets/bucket_a/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: |- data: |-
--- ---
schema: example/Kind/v1 schema: example/Kind/v1
@ -189,6 +207,8 @@ tests:
desc: Verify deepdiff of deleted doc-b document desc: Verify deepdiff of deleted doc-b document
GET: /api/v1.0/revisions/3/deepdiff/4 GET: /api/v1.0/revisions/3/deepdiff/4
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].'bucket_a': modified $.[0].'bucket_a': modified
@ -199,6 +219,8 @@ tests:
desc: Verify deepdiff of the same revisions desc: Verify deepdiff of the same revisions
GET: /api/v1.0/revisions/3/deepdiff/3 GET: /api/v1.0/revisions/3/deepdiff/3
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].'bucket_a': unmodified $.[0].'bucket_a': unmodified
@ -207,6 +229,8 @@ tests:
desc: Verify deepdiff of different revisions of same document desc: Verify deepdiff of different revisions of same document
GET: /api/v1.0/revisions/2/deepdiff/4 GET: /api/v1.0/revisions/2/deepdiff/4
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].'bucket_a': unmodified $.[0].'bucket_a': unmodified
@ -215,6 +239,8 @@ tests:
desc: Adding a new key in doc-a desc: Adding a new key in doc-a
PUT: /api/v1.0/buckets/bucket_a/documents PUT: /api/v1.0/buckets/bucket_a/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: |- data: |-
--- ---
schema: example/Kind/v1 schema: example/Kind/v1
@ -234,6 +260,8 @@ tests:
desc: Verify deepdiff of addition of a new key in doc-a desc: Verify deepdiff of addition of a new key in doc-a
GET: /api/v1.0/revisions/4/deepdiff/5 GET: /api/v1.0/revisions/4/deepdiff/5
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].'bucket_a': modified $.[0].'bucket_a': modified
@ -249,6 +277,8 @@ tests:
desc: Removing a key in doc-a desc: Removing a key in doc-a
PUT: /api/v1.0/buckets/bucket_a/documents PUT: /api/v1.0/buckets/bucket_a/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: |- data: |-
--- ---
schema: example/Kind/v1 schema: example/Kind/v1
@ -267,6 +297,8 @@ tests:
desc: Verify deepdiff of removal of a key in doc-a desc: Verify deepdiff of removal of a key in doc-a
GET: /api/v1.0/revisions/5/deepdiff/6 GET: /api/v1.0/revisions/5/deepdiff/6
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].'bucket_a': modified $.[0].'bucket_a': modified
@ -282,8 +314,11 @@ tests:
desc: Verify deepdiff when invalid revision id pass in input desc: Verify deepdiff when invalid revision id pass in input
GET: /api/v1.0/revisions/test/deepdiff/2 GET: /api/v1.0/revisions/test/deepdiff/2
status: 400 status: 400
response_headers:
content-type: application/x-yaml
- name: verify_revision_not_found - name: verify_revision_not_found
desc: Verify deepdiff when input revision id is not found desc: Verify deepdiff when input revision id is not found
GET: /api/v1.0/revisions/1000/deepdiff/2 GET: /api/v1.0/revisions/1000/deepdiff/2
status: 404 status: 404
response_headers: {}

View File

@ -12,8 +12,8 @@
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -21,12 +21,14 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: create_a - name: create_a
desc: Create documents in bucket a desc: Create documents in bucket a
PUT: /api/v1.0/buckets/bucket_a/documents PUT: /api/v1.0/buckets/bucket_a/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: |- data: |-
--- ---
schema: example/Kind/v1 schema: example/Kind/v1
@ -45,11 +47,15 @@ tests:
desc: Rollback to revision 0 desc: Rollback to revision 0
POST: /api/v1.0/rollback/0 POST: /api/v1.0/rollback/0
status: 201 status: 201
response_headers:
content-type: application/x-yaml
- name: verify_null_with_rollback_to_null - name: verify_null_with_rollback_to_null
desc: Validates response for null diff rollback to null revision desc: Validates response for null diff rollback to null revision
GET: /api/v1.0/revisions/0/diff/$HISTORY['rollback_to_null'].$RESPONSE['$.[0].id'] GET: /api/v1.0/revisions/0/diff/$HISTORY['rollback_to_null'].$RESPONSE['$.[0].id']
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0]: {} $.[0]: {}
@ -58,6 +64,8 @@ tests:
desc: Validates response for rollback to null revision with null revision desc: Validates response for rollback to null revision with null revision
GET: /api/v1.0/revisions/$HISTORY['rollback_to_null'].$RESPONSE['$.[0].id']/diff/0 GET: /api/v1.0/revisions/$HISTORY['rollback_to_null'].$RESPONSE['$.[0].id']/diff/0
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0]: {} $.[0]: {}
@ -66,6 +74,8 @@ tests:
desc: Create documents in bucket b desc: Create documents in bucket b
PUT: /api/v1.0/buckets/bucket_b/documents PUT: /api/v1.0/buckets/bucket_b/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: |- data: |-
--- ---
schema: example/Kind/v1 schema: example/Kind/v1
@ -84,6 +94,8 @@ tests:
desc: Validates response for diff with rollack to null and create bucket b desc: Validates response for diff with rollack to null and create bucket b
GET: /api/v1.0/revisions/$HISTORY['rollback_to_null'].$RESPONSE['$.[0].id']/diff/$HISTORY['create_b'].$RESPONSE['$.[0].status.revision'] GET: /api/v1.0/revisions/$HISTORY['rollback_to_null'].$RESPONSE['$.[0].id']/diff/$HISTORY['create_b'].$RESPONSE['$.[0].status.revision']
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0]: $.[0]:
@ -93,6 +105,8 @@ tests:
desc: Validates response for diff with rollack to null and create bucket b desc: Validates response for diff with rollack to null and create bucket b
GET: /api/v1.0/revisions/$HISTORY['create_b'].$RESPONSE['$.[0].status.revision']/diff/$HISTORY['rollback_to_null'].$RESPONSE['$.[0].id'] GET: /api/v1.0/revisions/$HISTORY['create_b'].$RESPONSE['$.[0].status.revision']/diff/$HISTORY['rollback_to_null'].$RESPONSE['$.[0].id']
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0]: $.[0]:

View File

@ -18,8 +18,8 @@
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -27,12 +27,14 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: create_a - name: create_a
desc: Create documents in bucket a desc: Create documents in bucket a
PUT: /api/v1.0/buckets/bucket_a/documents PUT: /api/v1.0/buckets/bucket_a/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: |- data: |-
--- ---
schema: example/Kind/v1 schema: example/Kind/v1
@ -51,6 +53,8 @@ tests:
desc: Create documents in bucket b desc: Create documents in bucket b
PUT: /api/v1.0/buckets/bucket_b/documents PUT: /api/v1.0/buckets/bucket_b/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: |- data: |-
--- ---
schema: example/Kind/v1 schema: example/Kind/v1
@ -69,6 +73,8 @@ tests:
desc: Create documents in bucket c desc: Create documents in bucket c
PUT: /api/v1.0/buckets/bucket_c/documents PUT: /api/v1.0/buckets/bucket_c/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: |- data: |-
--- ---
schema: example/Kind/v1 schema: example/Kind/v1
@ -87,6 +93,8 @@ tests:
desc: Create documents in bucket d desc: Create documents in bucket d
PUT: /api/v1.0/buckets/bucket_d/documents PUT: /api/v1.0/buckets/bucket_d/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: |- data: |-
--- ---
schema: example/Kind/v1 schema: example/Kind/v1
@ -105,6 +113,8 @@ tests:
desc: Validates response for null diff for first revision desc: Validates response for null diff for first revision
GET: /api/v1.0/revisions/0/diff/$HISTORY['create_a'].$RESPONSE['$.[0].status.revision'] GET: /api/v1.0/revisions/0/diff/$HISTORY['create_a'].$RESPONSE['$.[0].status.revision']
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0]: $.[0]:
@ -114,6 +124,8 @@ tests:
desc: Validates response for null diff for second revision desc: Validates response for null diff for second revision
GET: /api/v1.0/revisions/0/diff/$HISTORY['create_b'].$RESPONSE['$.[0].status.revision'] GET: /api/v1.0/revisions/0/diff/$HISTORY['create_b'].$RESPONSE['$.[0].status.revision']
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0]: $.[0]:
@ -124,6 +136,8 @@ tests:
desc: Validates response for null diff for third revision desc: Validates response for null diff for third revision
GET: /api/v1.0/revisions/0/diff/$HISTORY['create_c'].$RESPONSE['$.[0].status.revision'] GET: /api/v1.0/revisions/0/diff/$HISTORY['create_c'].$RESPONSE['$.[0].status.revision']
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0]: $.[0]:
@ -135,6 +149,8 @@ tests:
desc: Validates response for null diff for fourth revision desc: Validates response for null diff for fourth revision
GET: /api/v1.0/revisions/0/diff/$HISTORY['create_d'].$RESPONSE['$.[0].status.revision'] GET: /api/v1.0/revisions/0/diff/$HISTORY['create_d'].$RESPONSE['$.[0].status.revision']
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0]: $.[0]:
@ -147,6 +163,8 @@ tests:
desc: Validates response for null diff for fourth revision desc: Validates response for null diff for fourth revision
GET: /api/v1.0/revisions/0/diff/0 GET: /api/v1.0/revisions/0/diff/0
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0]: {} $.[0]: {}
@ -155,6 +173,8 @@ tests:
desc: Update document in bucket c desc: Update document in bucket c
PUT: /api/v1.0/buckets/bucket_c/documents PUT: /api/v1.0/buckets/bucket_c/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: |- data: |-
--- ---
schema: example/Kind/v1 schema: example/Kind/v1
@ -173,6 +193,8 @@ tests:
desc: Validates response for null diff between the first 4 buckets and single update desc: Validates response for null diff between the first 4 buckets and single update
GET: /api/v1.0/revisions/$HISTORY['create_d'].$RESPONSE['$.[0].status.revision']/diff/$HISTORY['update_c'].$RESPONSE['$.[0].status.revision'] GET: /api/v1.0/revisions/$HISTORY['create_d'].$RESPONSE['$.[0].status.revision']/diff/$HISTORY['update_c'].$RESPONSE['$.[0].status.revision']
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0]: $.[0]:
@ -185,12 +207,16 @@ tests:
desc: Delete documents from bucket b desc: Delete documents from bucket b
PUT: /api/v1.0/buckets/bucket_b/documents PUT: /api/v1.0/buckets/bucket_b/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: "" data: ""
- name: create_mistake - name: create_mistake
desc: Create documents in bucket mistake desc: Create documents in bucket mistake
PUT: /api/v1.0/buckets/bucket_mistake/documents PUT: /api/v1.0/buckets/bucket_mistake/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: |- data: |-
--- ---
schema: example/Kind/v1 schema: example/Kind/v1
@ -208,6 +234,8 @@ tests:
desc: Delete documents from bucket mistake desc: Delete documents from bucket mistake
PUT: /api/v1.0/buckets/bucket_mistake/documents PUT: /api/v1.0/buckets/bucket_mistake/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: "" data: ""
# Verification for whether a bucket_name was returned even though all the # Verification for whether a bucket_name was returned even though all the
# documents for this bucket were deleted. # documents for this bucket were deleted.
@ -219,6 +247,8 @@ tests:
desc: Validates response for deletion between the last 2 revisions desc: Validates response for deletion between the last 2 revisions
GET: /api/v1.0/revisions/$HISTORY['create_mistake'].$RESPONSE['$.[0].status.revision']/diff/$HISTORY['delete_mistake'].$RESPONSE['$.[0].status.revision'] GET: /api/v1.0/revisions/$HISTORY['create_mistake'].$RESPONSE['$.[0].status.revision']/diff/$HISTORY['delete_mistake'].$RESPONSE['$.[0].status.revision']
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0]: $.[0]:
@ -231,6 +261,8 @@ tests:
desc: Create documents in bucket e desc: Create documents in bucket e
PUT: /api/v1.0/buckets/bucket_e/documents PUT: /api/v1.0/buckets/bucket_e/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: |- data: |-
--- ---
schema: example/Kind/v1 schema: example/Kind/v1
@ -249,6 +281,8 @@ tests:
desc: Validates response for null diff between the first 4 buckets and now desc: Validates response for null diff between the first 4 buckets and now
GET: /api/v1.0/revisions/$HISTORY['create_d'].$RESPONSE['$.[0].status.revision']/diff/$HISTORY['create_e'].$RESPONSE['$.[0].status.revision'] GET: /api/v1.0/revisions/$HISTORY['create_d'].$RESPONSE['$.[0].status.revision']/diff/$HISTORY['create_e'].$RESPONSE['$.[0].status.revision']
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0]: $.[0]:
@ -262,6 +296,8 @@ tests:
desc: Validates response for null diff and now desc: Validates response for null diff and now
GET: /api/v1.0/revisions/0/diff/$HISTORY['create_e'].$RESPONSE['$.[0].status.revision'] GET: /api/v1.0/revisions/0/diff/$HISTORY['create_e'].$RESPONSE['$.[0].status.revision']
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0]: $.[0]:

View File

@ -6,8 +6,8 @@
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -15,12 +15,14 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: initialize - name: initialize
desc: Create initial documents desc: Create initial documents
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-3-layers.yaml data: <@resources/design-doc-layering-sample-3-layers.yaml
- name: filter_by_schema_partial_namespace - name: filter_by_schema_partial_namespace
@ -29,6 +31,8 @@ tests:
query_parameters: query_parameters:
schema: exam schema: exam
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: null response_multidoc_jsonpaths: null
- name: filter_by_schema_partial_kind - name: filter_by_schema_partial_kind
@ -37,6 +41,8 @@ tests:
query_parameters: query_parameters:
schema: example/Ki schema: example/Ki
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: null response_multidoc_jsonpaths: null
- name: filter_by_schema_incorrect_version - name: filter_by_schema_incorrect_version
@ -45,6 +51,8 @@ tests:
query_parameters: query_parameters:
schema: example/Kind/v2 schema: example/Kind/v2
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: null response_multidoc_jsonpaths: null
- name: filter_by_limit_illegal_value - name: filter_by_limit_illegal_value
@ -53,3 +61,5 @@ tests:
query_parameters: query_parameters:
limit: 'illegal' limit: 'illegal'
status: 400 status: 400
response_headers:
content-type: application/x-yaml

View File

@ -10,8 +10,8 @@
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -19,12 +19,14 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: initialize - name: initialize
desc: Create initial documents desc: Create initial documents
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-3-layers.yaml data: <@resources/design-doc-layering-sample-3-layers.yaml
- name: filter_by_schema - name: filter_by_schema
@ -33,6 +35,8 @@ tests:
query_parameters: query_parameters:
schema: deckhand/LayeringPolicy/v1 schema: deckhand/LayeringPolicy/v1
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].metadata.name: layering-policy $.[0].metadata.name: layering-policy
@ -44,6 +48,8 @@ tests:
query_parameters: query_parameters:
schema: example schema: example
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 3 $.`len`: 3
$.[0].metadata.name: global-1234 $.[0].metadata.name: global-1234
@ -59,6 +65,8 @@ tests:
query_parameters: query_parameters:
schema: example/Kind schema: example/Kind
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 3 $.`len`: 3
$.[0].metadata.name: global-1234 $.[0].metadata.name: global-1234
@ -74,6 +82,8 @@ tests:
query_parameters: query_parameters:
metadata.name: layering-policy metadata.name: layering-policy
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].metadata.name: layering-policy $.[0].metadata.name: layering-policy
@ -84,6 +94,8 @@ tests:
query_parameters: query_parameters:
metadata.label: key1=value1 metadata.label: key1=value1
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 2 $.`len`: 2
$.[*].metadata.name: $.[*].metadata.name:
@ -99,6 +111,8 @@ tests:
query_parameters: query_parameters:
metadata.layeringDefinition.abstract: true metadata.layeringDefinition.abstract: true
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 2 $.`len`: 2
$.[*].metadata.name: $.[*].metadata.name:
@ -114,6 +128,8 @@ tests:
query_parameters: query_parameters:
metadata.layeringDefinition.layer: site metadata.layeringDefinition.layer: site
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].metadata.name: site-1234 $.[0].metadata.name: site-1234
@ -126,6 +142,8 @@ tests:
status.bucket: mop status.bucket: mop
sort: metadata.name sort: metadata.name
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 4 $.`len`: 4
$.[*].metadata.name: $.[*].metadata.name:
@ -145,6 +163,8 @@ tests:
query_parameters: query_parameters:
sort: metadata.name sort: metadata.name
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 4 $.`len`: 4
$.[*].metadata.name: $.[*].metadata.name:
@ -159,6 +179,8 @@ tests:
query_parameters: query_parameters:
sort: schema sort: schema
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 4 $.`len`: 4
$.[*].schema: $.[*].schema:
@ -175,6 +197,8 @@ tests:
- schema - schema
- metadata.name - metadata.name
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 4 $.`len`: 4
$.[*].schema: $.[*].schema:
@ -196,6 +220,8 @@ tests:
- metadata.name - metadata.name
- schema - schema
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 4 $.`len`: 4
$.[*].metadata.name: $.[*].metadata.name:
@ -218,6 +244,8 @@ tests:
- schema - schema
limit: 2 limit: 2
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 2 $.`len`: 2
$.[*].metadata.name: $.[*].metadata.name:

View File

@ -9,8 +9,8 @@
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -18,12 +18,14 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: initialize - name: initialize
desc: Create initial documents desc: Create initial documents
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-3-layers.yaml data: <@resources/design-doc-layering-sample-3-layers.yaml
- name: filter_by_multiple_different_filters_expect_site - name: filter_by_multiple_different_filters_expect_site
@ -33,6 +35,8 @@ tests:
metadata.layeringDefinition.layer: site metadata.layeringDefinition.layer: site
metadata.layeringDefinition.abstract: false metadata.layeringDefinition.abstract: false
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].metadata.name: site-1234 $.[0].metadata.name: site-1234
@ -46,6 +50,8 @@ tests:
metadata.layeringDefinition.layer: region metadata.layeringDefinition.layer: region
metadata.layeringDefinition.abstract: true metadata.layeringDefinition.abstract: true
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].metadata.name: region-1234 $.[0].metadata.name: region-1234
@ -60,6 +66,8 @@ tests:
- site - site
- region - region
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 2 $.`len`: 2
$.[*].metadata.name: $.[*].metadata.name:
@ -77,6 +85,8 @@ tests:
- foo=bar - foo=bar
- baz=qux - baz=qux
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].metadata.name: site-1234 $.[0].metadata.name: site-1234

View File

@ -15,8 +15,8 @@
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -24,30 +24,38 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: initialize - name: initialize
desc: Create initial documents desc: Create initial documents
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-3-layers.yaml data: <@resources/design-doc-layering-sample-3-layers.yaml
- name: update_single_document - name: update_single_document
desc: Update a single document, ignore other documents in the bucket desc: Update a single document, ignore other documents in the bucket
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-with-update.yaml data: <@resources/design-doc-layering-sample-with-update.yaml
- name: delete_document - name: delete_document
desc: Delete a single document desc: Delete a single document
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-with-delete.yaml data: <@resources/design-doc-layering-sample-with-delete.yaml
- name: rollback - name: rollback
desc: Rollback to revision 1 desc: Rollback to revision 1
POST: /api/v1.0/rollback/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision'] POST: /api/v1.0/rollback/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']
status: 201 status: 201
response_headers:
content-type: application/x-yaml
# Verify document history # Verify document history
- name: verify_revision_1 - name: verify_revision_1
@ -56,6 +64,8 @@ tests:
query_parameters: query_parameters:
sort: metadata.name sort: metadata.name
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 4 $.`len`: 4
$.[*].metadata.name: $.[*].metadata.name:
@ -85,6 +95,8 @@ tests:
query_parameters: query_parameters:
sort: metadata.name sort: metadata.name
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 4 $.`len`: 4
$.[*].metadata.name: $.[*].metadata.name:
@ -114,6 +126,8 @@ tests:
query_parameters: query_parameters:
sort: metadata.name sort: metadata.name
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 3 $.`len`: 3
$.[*].metadata.name: $.[*].metadata.name:
@ -139,6 +153,8 @@ tests:
query_parameters: query_parameters:
sort: metadata.name sort: metadata.name
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 4 $.`len`: 4
$.[*].metadata.name: $.[*].metadata.name:

View File

@ -26,8 +26,8 @@
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -35,18 +35,22 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: initialize - name: initialize
desc: Create initial documents desc: Create initial documents
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-3-layers.yaml data: <@resources/design-doc-layering-sample-3-layers.yaml
- name: create_tag - name: create_tag
desc: Create a tag for the revision desc: Create a tag for the revision
POST: /api/v1.0/revisions/$RESPONSE['$.[0].status.revision']/tags/foo POST: /api/v1.0/revisions/$RESPONSE['$.[0].status.revision']/tags/foo
status: 201 status: 201
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.[0].`len`: 1 $.[0].`len`: 1
@ -56,6 +60,8 @@ tests:
desc: Verify showing created tag works desc: Verify showing created tag works
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags/foo GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags/foo
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
@ -65,6 +71,8 @@ tests:
desc: Verify showing created tag on revision detail desc: Verify showing created tag on revision detail
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision'] GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].tags.`len`: 1 $.[0].tags.`len`: 1
@ -84,6 +92,8 @@ tests:
desc: Create a tag with data for the revision desc: Create a tag with data for the revision
POST: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags/bar POST: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags/bar
status: 201 status: 201
response_headers:
content-type: application/x-yaml
data: <@resources/sample-tag-data.yaml data: <@resources/sample-tag-data.yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
@ -97,6 +107,8 @@ tests:
desc: Verify listing tags contains created tag desc: Verify listing tags contains created tag
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
@ -111,6 +123,8 @@ tests:
desc: Verify showing created tag on revision detail desc: Verify showing created tag on revision detail
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision'] GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].tags.`len`: 2 $.[0].tags.`len`: 2
@ -132,12 +146,14 @@ tests:
desc: Verify deleting tag works desc: Verify deleting tag works
DELETE: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags/foo DELETE: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags/foo
status: 204 status: 204
response_headers: null response_headers: {}
- name: verify_tag_delete - name: verify_tag_delete
desc: Verify listing tags contains non-deleted tag desc: Verify listing tags contains non-deleted tag
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
@ -150,6 +166,8 @@ tests:
desc: Verify not showing deleted tag on revision detail desc: Verify not showing deleted tag on revision detail
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision'] GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].tags.`len`: 1 $.[0].tags.`len`: 1
@ -161,6 +179,8 @@ tests:
desc: Verify not showing deleted tag on revision list desc: Verify not showing deleted tag on revision list
GET: /api/v1.0/revisions GET: /api/v1.0/revisions
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.[0].results.`len`: 1 $.[0].results.`len`: 1
$.[0].results[0].tags.`len`: 1 $.[0].results[0].tags.`len`: 1
@ -170,12 +190,14 @@ tests:
desc: Verify deleting tag works desc: Verify deleting tag works
DELETE: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags DELETE: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags
status: 204 status: 204
response_headers: null response_headers: {}
- name: verify_revision_detail_deleted_all - name: verify_revision_detail_deleted_all
desc: Verify empty tags on revision detail desc: Verify empty tags on revision detail
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision'] GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].tags: {} $.[0].tags: {}
@ -184,6 +206,8 @@ tests:
desc: Verify empty tags on revision list desc: Verify empty tags on revision list
GET: /api/v1.0/revisions GET: /api/v1.0/revisions
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.[0].results.`len`: 1 $.[0].results.`len`: 1
$.[0].results[0].tags: [] $.[0].results[0].tags: []
@ -192,6 +216,8 @@ tests:
desc: Verify all tags have been deleted desc: Verify all tags have been deleted
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1

View File

@ -9,8 +9,8 @@
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -18,7 +18,7 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
# Validates whether creating a revision works. # Validates whether creating a revision works.
# Required parameters: # Required parameters:
@ -28,6 +28,8 @@ tests:
desc: Create initial documents desc: Create initial documents
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-3-layers.yaml data: <@resources/design-doc-layering-sample-3-layers.yaml
# Validates whether revision was created. # Validates whether revision was created.
@ -38,6 +40,8 @@ tests:
desc: Verify that revision was created for document above desc: Verify that revision was created for document above
GET: /api/v1.0/revisions/$RESPONSE['$.[0].status.revision'] GET: /api/v1.0/revisions/$RESPONSE['$.[0].status.revision']
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].id: $HISTORY['initialize'].$RESPONSE['$.[0].status.revision'] $.[0].id: $HISTORY['initialize'].$RESPONSE['$.[0].status.revision']
@ -50,6 +54,8 @@ tests:
desc: Verify that revision was created for document above desc: Verify that revision was created for document above
GET: /api/v1.0/revisions GET: /api/v1.0/revisions
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].count: 1 $.[0].count: 1
@ -64,7 +70,7 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
# Validates whether revision was deleted. # Validates whether revision was deleted.
# Required parameters: # Required parameters:
@ -74,3 +80,4 @@ tests:
desc: Verify that the revision was deleted desc: Verify that the revision was deleted
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision'] GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']
status: 404 status: 404
response_headers: {}

View File

@ -7,8 +7,8 @@
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -16,35 +16,45 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: initialize - name: initialize
desc: Create first revision for testing desc: Create first revision for testing
PUT: /api/v1.0/buckets/bucket_a/documents PUT: /api/v1.0/buckets/bucket_a/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-3-layers.yaml data: <@resources/design-doc-layering-sample-3-layers.yaml
- name: initialize_again - name: initialize_again
desc: Create second revision for testing desc: Create second revision for testing
PUT: /api/v1.0/buckets/bucket_b/documents PUT: /api/v1.0/buckets/bucket_b/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/sample-doc.yaml data: <@resources/sample-doc.yaml
- name: initialize_once_again - name: initialize_once_again
desc: Create third revision for testing desc: Create third revision for testing
PUT: /api/v1.0/buckets/bucket_c/documents PUT: /api/v1.0/buckets/bucket_c/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/sample-schema.yaml data: <@resources/sample-schema.yaml
- name: create_tag - name: create_tag
desc: Create a tag for testing filtering a revision by tag desc: Create a tag for testing filtering a revision by tag
POST: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags/foo POST: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags/foo
status: 201 status: 201
response_headers:
content-type: application/x-yaml
- name: create_another_tag - name: create_another_tag
desc: Create another tag for testing filtering a revision by many tags desc: Create another tag for testing filtering a revision by many tags
POST: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags/bar POST: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags/bar
status: 201 status: 201
response_headers:
content-type: application/x-yaml
- name: verify_revision_list_for_one_valid_filter - name: verify_revision_list_for_one_valid_filter
desc: Verify that revision is returned for filter tag="foo" desc: Verify that revision is returned for filter tag="foo"
@ -52,6 +62,8 @@ tests:
query_parameters: query_parameters:
tag: foo tag: foo
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].count: 1 $.[0].count: 1
@ -70,6 +82,8 @@ tests:
- foo - foo
- bar - bar
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].count: 1 $.[0].count: 1
@ -85,6 +99,8 @@ tests:
query_parameters: query_parameters:
tag: baz tag: baz
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].count: 0 $.[0].count: 0
@ -96,6 +112,8 @@ tests:
query_parameters: query_parameters:
sort: id sort: id
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.[0].results.`len`: 3 $.[0].results.`len`: 3
$.[0].results[*].id: $.[0].results[*].id:
@ -110,6 +128,8 @@ tests:
sort: id sort: id
order: desc order: desc
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.[0].results.`len`: 3 $.[0].results.`len`: 3
$.[0].results[*].id: $.[0].results[*].id:

View File

@ -8,8 +8,8 @@
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -17,12 +17,14 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: create - name: create
desc: Create documents. desc: Create documents.
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/chained-substitution.yaml data: <@resources/chained-substitution.yaml
- name: verify_intermediate_substitution - name: verify_intermediate_substitution
@ -31,6 +33,8 @@ tests:
query_parameters: query_parameters:
sort: schema sort: schema
status: 200 status: 200
response_headers:
content-type: application/x-yaml
query_parameters: query_parameters:
schema: example/Middle/v1 schema: example/Middle/v1
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
@ -44,6 +48,8 @@ tests:
query_parameters: query_parameters:
sort: schema sort: schema
status: 200 status: 200
response_headers:
content-type: application/x-yaml
query_parameters: query_parameters:
schema: example/Dest/v1 schema: example/Dest/v1
response_multidoc_jsonpaths: response_multidoc_jsonpaths:

View File

@ -8,8 +8,8 @@
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -17,18 +17,22 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: add_bucket_a - name: add_bucket_a
desc: Create documents for bucket a desc: Create documents for bucket a
PUT: /api/v1.0/buckets/a/documents PUT: /api/v1.0/buckets/a/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-substitution-sample-split-bucket-a.yaml data: <@resources/design-doc-substitution-sample-split-bucket-a.yaml
- name: add_bucket_b - name: add_bucket_b
desc: Create documents for bucket b desc: Create documents for bucket b
PUT: /api/v1.0/buckets/b/documents PUT: /api/v1.0/buckets/b/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-substitution-sample-split-bucket-b.yaml data: <@resources/design-doc-substitution-sample-split-bucket-b.yaml
- name: verify_substitutions - name: verify_substitutions
@ -37,6 +41,8 @@ tests:
query_parameters: query_parameters:
schema: armada/Chart/v1 schema: armada/Chart/v1
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[*].metadata.name: example-chart-01 $.[*].metadata.name: example-chart-01

View File

@ -7,8 +7,8 @@
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -16,7 +16,7 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: initialize_documents_with_missing_src_substitution_path - name: initialize_documents_with_missing_src_substitution_path
desc: | desc: |
@ -24,6 +24,8 @@ tests:
a path via `src.path` that doesn't exist in the source document. a path via `src.path` that doesn't exist in the source document.
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/substitution-results-in-none-bug.yaml data: <@resources/substitution-results-in-none-bug.yaml
- name: verify_bad_request_raised - name: verify_bad_request_raised
@ -34,3 +36,5 @@ tests:
query_parameters: query_parameters:
schema: deckhand/Dest/v1 schema: deckhand/Dest/v1
status: 400 status: 400
response_headers:
content-type: application/x-yaml

View File

@ -9,8 +9,8 @@
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -18,12 +18,14 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: initialize - name: initialize
desc: Create initial documents desc: Create initial documents
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-substitution-generic-sample.yaml data: <@resources/design-doc-substitution-generic-sample.yaml
- name: verify_substitutions - name: verify_substitutions
@ -32,6 +34,8 @@ tests:
query_parameters: query_parameters:
schema: armada/Chart/v1 schema: armada/Chart/v1
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[0].metadata.name: example-chart-01 $.[0].metadata.name: example-chart-01

View File

@ -7,8 +7,8 @@
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -16,12 +16,14 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: initialize - name: initialize
desc: Create initial documents desc: Create initial documents
PUT: /api/v1.0/buckets/mop/documents PUT: /api/v1.0/buckets/mop/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-substitution-sample.yaml data: <@resources/design-doc-substitution-sample.yaml
- name: verify_substitutions - name: verify_substitutions
@ -30,6 +32,8 @@ tests:
query_parameters: query_parameters:
schema: armada/Chart/v1 schema: armada/Chart/v1
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[*].metadata.name: example-chart-01 $.[*].metadata.name: example-chart-01

View File

@ -7,18 +7,18 @@
# expected destination paths. # expected destination paths.
defaults: defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
- name: purge - name: purge
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: add_substitution_source_with_single_source_multi_dest - name: add_substitution_source_with_single_source_multi_dest
desc: |- desc: |-
@ -26,6 +26,8 @@ tests:
multiple destination paths. multiple destination paths.
PUT: /api/v1.0/buckets/a/documents PUT: /api/v1.0/buckets/a/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: |- data: |-
--- ---
schema: deckhand/LayeringPolicy/v1 schema: deckhand/LayeringPolicy/v1
@ -70,6 +72,8 @@ tests:
query_parameters: query_parameters:
schema: armada/Chart/v1 schema: armada/Chart/v1
status: 200 status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: response_multidoc_jsonpaths:
$.`len`: 1 $.`len`: 1
$.[*].metadata.name: example-chart-01 $.[*].metadata.name: example-chart-01

View File

@ -16,7 +16,7 @@ tests:
status: 204 status: 204
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: null response_headers: {}
- name: create_encrypted_passphrase - name: create_encrypted_passphrase
desc: Create passphrase with storagePolicy=encrypted desc: Create passphrase with storagePolicy=encrypted

View File

@ -22,7 +22,7 @@ tests:
status: 204 status: 204
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: null response_headers: {}
- name: create_encrypted_passphrase_empty_payload_skips - name: create_encrypted_passphrase_empty_payload_skips
desc: | desc: |

View File

@ -7,8 +7,8 @@ defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
X-Auth-Token: $ENVIRON['TEST_AUTH_TOKEN'] X-Auth-Token: $ENVIRON['TEST_AUTH_TOKEN']
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -16,12 +16,14 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: create_encrypted_passphrase - name: create_encrypted_passphrase
desc: Create passphrase with storagePolicy=encrypted desc: Create passphrase with storagePolicy=encrypted
PUT: /api/v1.0/buckets/secret/documents PUT: /api/v1.0/buckets/secret/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: |- data: |-
--- ---
schema: deckhand/LayeringPolicy/v1 schema: deckhand/LayeringPolicy/v1
@ -51,6 +53,8 @@ tests:
desc: Verify that the rendering the document returns the secret payload. desc: Verify that the rendering the document returns the secret payload.
GET: /api/v1.0/revisions/$RESPONSE['$.[0].status.revision']/rendered-documents GET: /api/v1.0/revisions/$RESPONSE['$.[0].status.revision']/rendered-documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
query_parameters: query_parameters:
cleartext-secrets: true cleartext-secrets: true
metadata.name: my-passphrase metadata.name: my-passphrase

View File

@ -11,8 +11,8 @@ defaults:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
X-Auth-Token: $ENVIRON['TEST_AUTH_TOKEN'] X-Auth-Token: $ENVIRON['TEST_AUTH_TOKEN']
response_headers: # response_headers:
content-type: application/x-yaml # content-type: application/x-yaml
verbose: true verbose: true
tests: tests:
@ -20,7 +20,7 @@ tests:
desc: Begin testing from known state. desc: Begin testing from known state.
DELETE: /api/v1.0/revisions DELETE: /api/v1.0/revisions
status: 204 status: 204
response_headers: null response_headers: {}
- name: encrypt_generic_document_for_secret_substitution - name: encrypt_generic_document_for_secret_substitution
desc: | desc: |
@ -28,6 +28,8 @@ tests:
substitution source with storagePolicy=encrypted. substitution source with storagePolicy=encrypted.
PUT: /api/v1.0/buckets/secret/documents PUT: /api/v1.0/buckets/secret/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
data: |- data: |-
--- ---
schema: deckhand/LayeringPolicy/v1 schema: deckhand/LayeringPolicy/v1
@ -72,6 +74,8 @@ tests:
desc: Verify that secret ref was created for example-armada-cert among multiple created documents. desc: Verify that secret ref was created for example-armada-cert among multiple created documents.
GET: /api/v1.0/revisions/$RESPONSE['$.[0].status.revision']/documents GET: /api/v1.0/revisions/$RESPONSE['$.[0].status.revision']/documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
query_parameters: query_parameters:
metadata.name: example-armada-cert metadata.name: example-armada-cert
cleartext-secrets: 'true' cleartext-secrets: 'true'
@ -99,6 +103,8 @@ tests:
desc: Verify secret payload is injected in destination document as well as example-armada-cert. desc: Verify secret payload is injected in destination document as well as example-armada-cert.
GET: /api/v1.0/revisions/$HISTORY['encrypt_generic_document_for_secret_substitution'].$RESPONSE['$.[0].status.revision']/rendered-documents GET: /api/v1.0/revisions/$HISTORY['encrypt_generic_document_for_secret_substitution'].$RESPONSE['$.[0].status.revision']/rendered-documents
status: 200 status: 200
response_headers:
content-type: application/x-yaml
query_parameters: query_parameters:
cleartext-secrets: true cleartext-secrets: true
metadata.name: metadata.name:

View File

@ -19,7 +19,7 @@ tests:
status: 204 status: 204
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
response_headers: null response_headers: {}
- name: create_documents_for_secret_substitution - name: create_documents_for_secret_substitution
desc: Create documents with substitution source with storagePolicy=encrypted desc: Create documents with substitution source with storagePolicy=encrypted

View File

@ -14,7 +14,7 @@ tests:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
X-Auth-Token: $ENVIRON['TEST_AUTH_TOKEN'] X-Auth-Token: $ENVIRON['TEST_AUTH_TOKEN']
response_headers: null response_headers: {}
- name: create_encrypted_passphrase - name: create_encrypted_passphrase
desc: Create passphrase with storagePolicy=encrypted desc: Create passphrase with storagePolicy=encrypted
@ -72,7 +72,7 @@ tests:
request_headers: request_headers:
content-type: application/x-yaml content-type: application/x-yaml
X-Auth-Token: $ENVIRON['TEST_AUTH_TOKEN'] X-Auth-Token: $ENVIRON['TEST_AUTH_TOKEN']
response_headers: null response_headers: {}
- name: validate_all_secrets_deleted_from_barbican - name: validate_all_secrets_deleted_from_barbican
desc: |- desc: |-

View File

@ -56,6 +56,8 @@ if [ "$1" = 'server' ]; then
--module deckhand.cmd --module deckhand.cmd
elif [ "$1" = 'alembic' ]; then elif [ "$1" = 'alembic' ]; then
exec alembic ${@:2} exec alembic ${@:2}
elif [ "$1" = 'shell' ]; then
exec bash
else else
echo "Valid commands are 'alembic <command>' and 'server'" echo "Valid commands are 'alembic <command>' and 'server'"
fi fi

View File

@ -0,0 +1,108 @@
# Copyright 2018 AT&T Intellectual Property. All other rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
ARG FROM=ubuntu:jammy
FROM ${FROM}
LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc://#airshipit@freenode'
LABEL org.opencontainers.image.url='https://airshipit.org'
LABEL org.opencontainers.image.documentation='https://airship-deckhand.readthedocs.org'
LABEL org.opencontainers.image.source='https://opendev.org/airship/deckhand'
LABEL org.opencontainers.image.vendor='The Airship Authors'
LABEL org.opencontainers.image.licenses='Apache-2.0'
ENV DEBIAN_FRONTEND noninteractive
ENV container docker
ENV PORT 9000
# Expose port 9000 for application
EXPOSE $PORT
RUN set -x && \
apt-get update && apt-get upgrade -y && \
apt-get -y install \
automake \
ca-certificates \
curl \
g++ \
gcc \
git \
libffi-dev \
libpq-dev \
libssl-dev \
libtool \
make \
netbase \
netcat \
python3 \
python3-dateutil \
python3-dev \
python3-pip \
python3-setuptools \
--no-install-recommends \
&& python3 -m pip install -U pip \
&& apt-get clean \
&& rm -rf \
/var/lib/apt/lists/* \
/tmp/* \
/var/tmp/* \
/usr/share/man \
/usr/share/doc \
/usr/share/doc-base
# Install LibYAML
ENV LD_LIBRARY_PATH=/usr/local/lib
ARG LIBYAML_VERSION=0.2.5
RUN set -ex \
&& git clone https://github.com/yaml/libyaml.git \
&& cd libyaml \
&& git checkout $LIBYAML_VERSION \
&& ./bootstrap \
&& ./configure \
&& make \
&& make install \
&& cd .. \
&& rm -fr libyaml
# Create deckhand user
RUN useradd -ms /bin/bash deckhand
# Clone the deckhand repository
COPY . /home/deckhand/
# Change permissions
RUN chown -R deckhand: /home/deckhand \
&& chmod +x /home/deckhand/entrypoint.sh
# Set work directory and install dependencies
WORKDIR /home/deckhand
RUN pip3 install --no-cache-dir -r requirements-frozen.txt
# Setting deckhand version for BPR
ENV PBR_VERSION 1.1
# RUN python3 setup.py install --verbose
RUN pip3 install -e . --verbose --use-pep517 \
&& echo "/home/deckhand" \
> /usr/local/lib/python3.10/dist-packages/deckhand.pth
# Set user to deckhand
USER deckhand
# Execute entrypoint
ENTRYPOINT ["/home/deckhand/entrypoint.sh"]
CMD ["server"]

View File

@ -1,54 +1,51 @@
alembic==1.13.1 alembic==1.13.2
amqp==5.2.0 amqp==5.2.0
attrs==23.2.0 attrs==24.2.0
autopage==0.5.2 autopage==0.5.2
backports.zoneinfo==0.2.1
barbican==16.0.0 barbican==16.0.0
bcrypt==4.1.2 bcrypt==4.2.0
Beaker==1.12.1 Beaker==1.13.0
cachetools==5.3.2 cachetools==5.5.0
castellan==4.4.0 castellan==5.1.1
certifi==2024.2.2 certifi==2024.8.30
cffi==1.16.0 cffi==1.17.1
charset-normalizer==3.3.2 charset-normalizer==3.3.2
cliff==4.6.0 cliff==4.7.0
cmd2==2.4.3 cmd2==2.4.3
cryptography==41.0.7 cryptography==42.0.8
debtcollector==3.0.0 debtcollector==3.0.0
decorator==5.1.1 decorator==5.1.1
deepdiff==6.7.1 deepdiff==8.0.1
dnspython==2.6.1 dnspython==2.6.1
dogpile.cache==1.3.2 dogpile.cache==1.3.3
eventlet==0.35.2 eventlet==0.37.0
falcon==3.1.3 falcon==3.1.3
fasteners==0.19 fasteners==0.19
fixtures==4.1.0 fixtures==4.1.0
futurist==3.0.0 futurist==3.0.0
greenlet==3.0.3 greenlet==3.1.0
html5lib==0.9999999 html5lib==0.9999999
httpexceptor==1.4.0 httpexceptor==1.4.0
idna==3.6 idna==3.10
importlib-metadata==6.11.0
importlib-resources==5.13.0
iso8601==2.1.0 iso8601==2.1.0
Jinja2==3.1.3 Jinja2==3.1.4
jsonpath-ng==1.6.1 jsonpath-ng==1.6.1
jsonpickle==3.0.3 jsonpickle==3.3.0
jsonschema==4.21.1 jsonschema==4.23.0
jsonschema-specifications==2023.12.1 jsonschema-specifications==2023.12.1
keystoneauth1==5.1.2 keystoneauth1==5.1.2
keystonemiddleware==10.2.0 keystonemiddleware==10.2.0
kombu==5.3.5 kombu==5.4.1
ldap3==2.9.1 ldap3==2.9.1
logutils==0.3.5 logutils==0.3.5
Mako==1.3.2 Mako==1.3.5
MarkupSafe==2.1.5 MarkupSafe==2.1.5
microversion-parse==1.0.1 microversion-parse==2.0.0
msgpack==1.0.7 msgpack==1.1.0
netaddr==1.2.1 netaddr==1.3.0
netifaces==0.11.0 netifaces==0.11.0
networkx==3.1 networkx==3.3
ordered-set==4.1.0 orderly-set==5.2.2
os-service-types==1.7.0 os-service-types==1.7.0
oslo.cache==3.3.1 oslo.cache==3.3.1
oslo.concurrency==5.1.1 oslo.concurrency==5.1.1
@ -66,63 +63,60 @@ oslo.service==3.1.1
oslo.upgradecheck==2.1.1 oslo.upgradecheck==2.1.1
oslo.utils==6.1.0 oslo.utils==6.1.0
oslo.versionedobjects==3.1.0 oslo.versionedobjects==3.1.0
packaging==23.2 packaging==24.1
Paste==3.7.1 Paste==3.10.1
PasteDeploy==3.1.0 PasteDeploy==3.1.0
PasteScript==3.4.0 PasteScript==3.6.0
pbr==6.0.0 pbr==6.1.0
pecan==1.5.1 pecan==1.5.1
pip==23.2.1 pip==24.1
pkgutil_resolve_name==1.3.10
ply==3.11 ply==3.11
prettytable==3.10.0 prettytable==3.11.0
prometheus_client==0.20.0 prometheus_client==0.20.0
psycopg2-binary==2.9.9 psycopg2-binary==2.9.9
pyasn1==0.5.1 pyasn1==0.6.1
pycadf==3.1.1 pycadf==3.1.1
pycparser==2.21 pycparser==2.22
pylibyaml==0.1.0 pylibyaml==0.1.0
pyOpenSSL==24.0.0 pyOpenSSL==24.2.1
pyparsing==3.1.1 pyparsing==3.1.4
pyperclip==1.8.2 pyperclip==1.9.0
python-barbicanclient==5.5.0 python-barbicanclient==5.5.0
python-dateutil==2.8.2 python-dateutil==2.9.0.post0
python-keystoneclient==5.1.0 python-keystoneclient==5.1.0
python-memcached==1.62 python-memcached==1.62
python-mimeparse==1.6.0 python-mimeparse==2.0.0
pytz==2024.1 pytz==2024.2
PyYAML==6.0.1 PyYAML==6.0.2
referencing==0.33.0 referencing==0.35.1
repoze.lru==0.7 repoze.lru==0.7
requests==2.31.0 requests==2.32.3
resolver==0.2.1 resolver==0.2.1
rfc3986==1.5.0 rfc3986==2.0.0
Routes==2.5.1 Routes==2.5.1
rpds-py==0.18.0 rpds-py==0.20.0
selector==0.10.1 selector==0.10.1
setuptools==68.2.2 setuptools==70.1.0
simplejson==3.19.2 simplejson==3.19.3
six==1.16.0 six==1.16.0
SQLAlchemy==1.4.51 SQLAlchemy==1.4.54
sqlalchemy-migrate==0.13.0 sqlalchemy-migrate==0.13.0
sqlparse==0.4.4 sqlparse==0.5.1
statsd==4.0.1 statsd==4.0.1
stevedore==5.2.0 stevedore==5.3.0
Tempita==0.5.2 Tempita==0.5.2
testresources==2.0.1 testresources==2.0.1
testscenarios==0.5.0 testscenarios==0.5.0
testtools==2.7.1 testtools==2.7.2
tiddlyweb==2.4.3 tiddlyweb==2.4.3
typing_extensions==4.9.0 typing_extensions==4.12.2
tzdata==2024.1 urllib3==2.2.2
urllib3==1.26.18 uWSGI==2.0.27
uWSGI==2.0.24
vine==5.1.0 vine==5.1.0
wcwidth==0.2.13 wcwidth==0.2.13
WebOb==1.8.7 WebOb==1.8.8
Werkzeug==2.2.3 Werkzeug==2.2.3
wheel==0.41.2 wheel==0.43.0
wrapt==1.16.0 wrapt==1.16.0
xattr==0.10.1 xattr==0.10.1
yappi==1.6.0 yappi==1.6.0
zipp==3.17.0

View File

@ -5,7 +5,7 @@ bandit==1.6.0
# chardet==3.0.4 # chardet==3.0.4
# fixtures==3.0.0 # fixtures==3.0.0
flake8==3.8.4 flake8==3.8.4
gabbi==1.35.1 gabbi==2.8.0
# jsonpickle==1.4.1 # jsonpickle==1.4.1
# openstacksdk==0.36.5 # openstacksdk==0.36.5
openstacksdk==0.36.5 openstacksdk==0.36.5
@ -21,9 +21,9 @@ pytest-cov
python-subunit==1.4.0 python-subunit==1.4.0
# requests==2.23.0 # requests==2.23.0
# six==1.16.0 # six==1.16.0
stestr==3.2.0 stestr==4.1.0
testrepository==0.0.20 testrepository==0.0.20
# testtools==2.5.0 # testtools==2.5.0
tox>=3.28.0, <4.0.0 tox>=3.28.0
# urllib3==1.25.11 # urllib3==1.25.11
# yq==3.2.1 # yq==3.2.1

View File

@ -0,0 +1,31 @@
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
---
- hosts: all
tasks:
- name: Checkout treasuremap ref
shell: |
set -xe;
: "${TREASUREMAP_REF:=v1.9}"
cd ../treasuremap
git fetch https://review.opendev.org/airship/treasuremap ${TREASUREMAP_REF} && git checkout FETCH_HEAD
args:
chdir: "{{ zuul.project.src_dir }}"
environment:
TREASUREMAP_REF: "{{ treasuremap_ref }}"
...

View File

@ -15,4 +15,7 @@
roles: roles:
- bindep - bindep
- start-zuul-console - start-zuul-console
- role: add-authorized-keys
public_keys:
- public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDA7eM8WFJrqQmki8rR0O3QBHyl8xq42jb1RduwuRwjWoGYJI5cX7Fx+7VR4A9ITCoiqxKS8DMfgKbt5jKC6SmvMALULZsnYlthB34KywurgxsW6fgp68DHWQ7J4CCBhoIpl0W3JW7s6b0vHLhab59r0E+AYemBVuWUqbFEy8nDAHcQv1S/2o1udhmljIN7c2ogO4KAJ7Lge0BoIP9ps4u6AVwyQZixp4anU9DHGNA/UQj4M5UyuALj5buEAuATBe9Vqj4sOvZjObPJAGPUrNRrGEWAFk+lSZHRzKXo0eeWtPqoh5UN9UDb5Pocg1krncMIZwjHKovlD1z/O1y91aY5LM1wxm/7aaIiX8eCihyVZaOuDCLF7WDT2SMs7ABcotX2MDtVQTrNNV3MmMAScFNDflzPKszd7cdjLl6PBq8bvPxmCkLmnitPTGOoh9d8i+JlbINvgx1pguYrpeciIyreCO1rjTW3MgB0tyoMEa31V+7HrauBMeNnE68YTqLTIB0= smarkin@mirantis.com
... ...

View File

@ -17,9 +17,9 @@
become: yes become: yes
roles: roles:
- install-test-requirements - install-test-requirements
- ensure-tox
- build-images - build-images
- deploy-postgresql - deploy-postgresql
- generate-test-config - generate-test-config
- deploy-deckhand - deploy-deckhand
- run-functional-tests - run-functional-tests
- run-functional-tests

View File

@ -16,4 +16,5 @@
gather_facts: False gather_facts: False
roles: roles:
- install-test-requirements - install-test-requirements
- ensure-tox
- run-functional-tests - run-functional-tests

View File

@ -19,7 +19,7 @@ osh_params:
container_distro_version: focal container_distro_version: focal
# feature_gates: # feature_gates:
site: airskiff site: airskiff
HELM_ARTIFACT_URL: https://get.helm.sh/helm-v3.14.2-linux-amd64.tar.gz HELM_ARTIFACT_URL: https://get.helm.sh/helm-v3.15.4-linux-amd64.tar.gz
HTK_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f HTK_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f
OSH_INFRA_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f OSH_INFRA_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f
OSH_COMMIT: 2d9457e34ca4200ed631466bd87569b0214c92e7 OSH_COMMIT: 2d9457e34ca4200ed631466bd87569b0214c92e7

View File

@ -35,7 +35,7 @@
FEATURE_GATES: "{{ osh_params.feature_gates | default('') }}" FEATURE_GATES: "{{ osh_params.feature_gates | default('') }}"
RUN_HELM_TESTS: "{{ run_helm_tests | default('yes') }}" RUN_HELM_TESTS: "{{ run_helm_tests | default('yes') }}"
PL_SITE: "{{ site | default('airskiff') }}" PL_SITE: "{{ site | default('airskiff') }}"
HELM_ARTIFACT_URL: "{{ HELM_ARTIFACT_URL | default('https://get.helm.sh/helm-v3.14.2-linux-amd64.tar.gz') }}" HELM_ARTIFACT_URL: "{{ HELM_ARTIFACT_URL | default('https://get.helm.sh/helm-v3.15.4-linux-amd64.tar.gz') }}"
HTK_COMMIT: "{{ HTK_COMMIT | default('cfff60ec10a6c386f38db79bb9f59a552c2b032f') }}" HTK_COMMIT: "{{ HTK_COMMIT | default('cfff60ec10a6c386f38db79bb9f59a552c2b032f') }}"
OSH_INFRA_COMMIT: "{{ OSH_INFRA_COMMIT | default('cfff60ec10a6c386f38db79bb9f59a552c2b032f') }}" OSH_INFRA_COMMIT: "{{ OSH_INFRA_COMMIT | default('cfff60ec10a6c386f38db79bb9f59a552c2b032f') }}"
OSH_COMMIT: "{{ OSH_COMMIT | default('2d9457e34ca4200ed631466bd87569b0214c92e7') }}" OSH_COMMIT: "{{ OSH_COMMIT | default('2d9457e34ca4200ed631466bd87569b0214c92e7') }}"

View File

@ -19,12 +19,12 @@ osh_params:
container_distro_version: focal container_distro_version: focal
# feature_gates: # feature_gates:
site: airskiff site: airskiff
HELM_ARTIFACT_URL: https://get.helm.sh/helm-v3.14.2-linux-amd64.tar.gz HELM_ARTIFACT_URL: https://get.helm.sh/helm-v3.15.4-linux-amd64.tar.gz
HTK_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f HTK_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f
OSH_INFRA_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f OSH_INFRA_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f
OSH_COMMIT: 2d9457e34ca4200ed631466bd87569b0214c92e7 OSH_COMMIT: 2d9457e34ca4200ed631466bd87569b0214c92e7
COREDNS_VERSION: v1.11.1 COREDNS_VERSION: v1.11.1
DISTRO: ubuntu_focal DISTRO: ubuntu_jammy
DOCKER_REGISTRY: quay.io DOCKER_REGISTRY: quay.io
MAKE_ARMADA_IMAGES: false MAKE_ARMADA_IMAGES: false
MAKE_DECKHAND_IMAGES: false MAKE_DECKHAND_IMAGES: false

View File

@ -32,7 +32,7 @@
FEATURE_GATES: "{{ osh_params.feature_gates | default('') }}" FEATURE_GATES: "{{ osh_params.feature_gates | default('') }}"
RUN_HELM_TESTS: "{{ run_helm_tests | default('yes') }}" RUN_HELM_TESTS: "{{ run_helm_tests | default('yes') }}"
PL_SITE: "{{ site | default('airskiff') }}" PL_SITE: "{{ site | default('airskiff') }}"
HELM_ARTIFACT_URL: "{{ HELM_ARTIFACT_URL | default('https://get.helm.sh/helm-v3.14.2-linux-amd64.tar.gz') }}" HELM_ARTIFACT_URL: "{{ HELM_ARTIFACT_URL | default('https://get.helm.sh/helm-v3.15.4-linux-amd64.tar.gz') }}"
HTK_COMMIT: "{{ HTK_COMMIT | default('cfff60ec10a6c386f38db79bb9f59a552c2b032f') }}" HTK_COMMIT: "{{ HTK_COMMIT | default('cfff60ec10a6c386f38db79bb9f59a552c2b032f') }}"
OSH_INFRA_COMMIT: "{{ OSH_INFRA_COMMIT | default('cfff60ec10a6c386f38db79bb9f59a552c2b032f') }}" OSH_INFRA_COMMIT: "{{ OSH_INFRA_COMMIT | default('cfff60ec10a6c386f38db79bb9f59a552c2b032f') }}"
OSH_COMMIT: "{{ OSH_COMMIT | default('2d9457e34ca4200ed631466bd87569b0214c92e7') }}" OSH_COMMIT: "{{ OSH_COMMIT | default('2d9457e34ca4200ed631466bd87569b0214c92e7') }}"

View File

@ -57,7 +57,7 @@
# services in the integration script called below. # services in the integration script called below.
sudo -E -H pip3 install -e . --verbose --use-pep517 sudo -E -H pip3 install -e . --verbose --use-pep517
sudo -E -H pip3 install -r requirements-frozen.txt sudo -E -H pip3 install -r requirements-frozen.txt
echo "$(pwd)" | sudo tee /usr/local/lib/python3.8/dist-packages/deckhand.pth echo "$(pwd)" | sudo tee /usr/local/lib/python3.10/dist-packages/deckhand.pth
pifpaf run postgresql -- ./tools/integration-tests.sh pifpaf run postgresql -- ./tools/integration-tests.sh
args: args:

View File

@ -17,7 +17,7 @@
set -x set -x
HELM=$1 HELM=$1
HELM_ARTIFACT_URL=${HELM_ARTIFACT_URL:-"https://get.helm.sh/helm-v3.14.2-linux-amd64.tar.gz"} HELM_ARTIFACT_URL=${HELM_ARTIFACT_URL:-"https://get.helm.sh/helm-v3.15.4-linux-amd64.tar.gz"}
function install_helm_binary { function install_helm_binary {

20
tox.ini
View File

@ -1,9 +1,9 @@
[tox] [tox]
minversion = 3.28 minversion = 3.10
# Flag indicating to perform the packaging operation or not. # Flag indicating to perform the packaging operation or not.
# Set it to true when using tox for an application, instead of a library. # Set it to true when using tox for an application, instead of a library.
skipsdist = True skipsdist = True
envlist = py38,py38-{postgresql},functional-dev,cover,pep8,bandit,docs envlist = py310,py310-{postgresql},functional-dev,cover,pep8,bandit,docs
[testenv] [testenv]
# Install the current package in development mode with develop mode # Install the current package in development mode with develop mode
@ -34,7 +34,7 @@ passenv =
deps = deps =
-r{toxinidir}/requirements-frozen.txt -r{toxinidir}/requirements-frozen.txt
-r{toxinidir}/test-requirements.txt -r{toxinidir}/test-requirements.txt
-c https://raw.githubusercontent.com/apache/airflow/constraints-2.8.2/constraints-3.8.txt -c https://raw.githubusercontent.com/apache/airflow/constraints-2.10.2/constraints-3.10.txt
commands = commands =
find . -type f -name "*.pyc" -delete find . -type f -name "*.pyc" -delete
rm -Rf .testrepository/times.dbm rm -Rf .testrepository/times.dbm
@ -54,13 +54,13 @@ allowlist_externals=
sh sh
deps= deps=
-r{toxinidir}/requirements-direct.txt -r{toxinidir}/requirements-direct.txt
-c https://raw.githubusercontent.com/apache/airflow/constraints-2.8.2/constraints-3.8.txt -c https://raw.githubusercontent.com/apache/airflow/constraints-2.10.2/constraints-3.10.txt
commands= commands=
rm -f requirements-frozen.txt rm -f requirements-frozen.txt
sh -c "pip freeze --all | grep -vE 'deckhand|pyinotify|pkg-resources==0.0.0' > requirements-frozen.txt" sh -c "pip freeze --all | grep -vE 'deckhand|pyinotify|pkg-resources==0.0.0' > requirements-frozen.txt"
[testenv:py38] [testenv:py310]
allowlist_externals = allowlist_externals =
stestr stestr
find find
@ -70,7 +70,7 @@ commands =
stestr run {posargs} stestr run {posargs}
stestr slowest stestr slowest
[testenv:py38-postgresql] [testenv:py310-postgresql]
commands = commands =
{[testenv]commands} {[testenv]commands}
bash {toxinidir}/tools/run_pifpaf.sh '{posargs}' bash {toxinidir}/tools/run_pifpaf.sh '{posargs}'
@ -79,8 +79,8 @@ allowlist_externals =
find find
rm rm
[testenv:py38-functional] [testenv:py310-functional]
basepython=python3.8 basepython=python3.10
allowlist_externals = allowlist_externals =
find find
stestr stestr
@ -92,8 +92,8 @@ commands =
stestr --test-path deckhand/tests/common/ run --serial --slowest --force-subunit-trace --color {posargs} stestr --test-path deckhand/tests/common/ run --serial --slowest --force-subunit-trace --color {posargs}
[testenv:py38-functional-dev] [testenv:py310-functional-dev]
basepython=python3.8 basepython=python3.10
# Minimalistic functional test job for running Deckhand functional tests # Minimalistic functional test job for running Deckhand functional tests
# via uwsgi. Uses pifpaf for DB instantiation. Useful for developers. # via uwsgi. Uses pifpaf for DB instantiation. Useful for developers.
# Requires PostgreSQL be installed on host. # Requires PostgreSQL be installed on host.