Airflow 2.10.2 + ubuntu_jammy
Change-Id: I7c8a637efc1e969ab6814447e76068caaca0e66e
This commit is contained in:
parent
30e532f866
commit
be9f97b846
181
.zuul.yaml
181
.zuul.yaml
@ -13,42 +13,43 @@
|
||||
- project:
|
||||
templates:
|
||||
- docs-on-readthedocs
|
||||
- openstack-python38-jobs
|
||||
vars:
|
||||
rtd_webhook_id: '38572'
|
||||
rtd_project_name: 'airship-deckhand'
|
||||
check:
|
||||
jobs:
|
||||
- deckhand-tox-py38-postgresql
|
||||
- deckhand-functional-uwsgi-py38
|
||||
- deckhand-functional-docker-py38
|
||||
- deckhand-integration-uwsgi-py38
|
||||
- deckhand-integration-docker-py38
|
||||
- openstack-tox-py310
|
||||
- deckhand-tox-py310-postgresql
|
||||
- deckhand-functional-uwsgi-py310
|
||||
- deckhand-functional-docker-py310
|
||||
- deckhand-integration-uwsgi-py310
|
||||
- deckhand-integration-docker-py310
|
||||
- deckhand-chart-build-gate
|
||||
- deckhand-chart-build-latest-htk
|
||||
- deckhand-docker-build-gate
|
||||
- deckhand-openstack-tox-pep8-focal
|
||||
- deckhand-openstack-tox-cover-focal
|
||||
- deckhand-airskiff-deployment-focal-kubeadm
|
||||
- deckhand-openstack-tox-pep8-jammy
|
||||
- deckhand-openstack-tox-cover-jammy
|
||||
- deckhand-airskiff-deployment-jammy-kubeadm
|
||||
|
||||
gate:
|
||||
jobs:
|
||||
- deckhand-tox-py38-postgresql
|
||||
- deckhand-functional-uwsgi-py38
|
||||
- deckhand-functional-docker-py38
|
||||
- deckhand-integration-uwsgi-py38
|
||||
- deckhand-integration-docker-py38
|
||||
- openstack-tox-py310
|
||||
- deckhand-tox-py310-postgresql
|
||||
- deckhand-functional-uwsgi-py310
|
||||
- deckhand-functional-docker-py310
|
||||
- deckhand-integration-uwsgi-py310
|
||||
- deckhand-integration-docker-py310
|
||||
- deckhand-chart-build-gate
|
||||
- deckhand-chart-build-latest-htk
|
||||
- deckhand-docker-build-gate
|
||||
- deckhand-openstack-tox-pep8-focal
|
||||
- deckhand-openstack-tox-cover-focal
|
||||
- deckhand-openstack-tox-pep8-jammy
|
||||
- deckhand-openstack-tox-cover-jammy
|
||||
|
||||
|
||||
post:
|
||||
jobs:
|
||||
- deckhand-upload-git-mirror
|
||||
- deckhand-docker-publish-ubuntu_focal
|
||||
- deckhand-docker-publish-ubuntu_jammy
|
||||
|
||||
|
||||
- nodeset:
|
||||
@ -64,37 +65,37 @@
|
||||
label: ubuntu-bionic
|
||||
|
||||
- nodeset:
|
||||
name: deckhand-single-node-focal
|
||||
name: deckhand-single-node-jammy
|
||||
nodes:
|
||||
- name: primary
|
||||
label: ubuntu-focal
|
||||
label: ubuntu-jammy
|
||||
|
||||
- nodeset:
|
||||
name: deckhand-single-node-airskiff-focal
|
||||
name: deckhand-single-node-airskiff-jammy
|
||||
nodes:
|
||||
- name: primary
|
||||
label: ubuntu-focal
|
||||
label: ubuntu-jammy
|
||||
|
||||
- job:
|
||||
name: deckhand-openstack-tox-pep8-focal
|
||||
name: deckhand-openstack-tox-pep8-jammy
|
||||
parent: openstack-tox-pep8
|
||||
description: Runs pep8 job on focal
|
||||
nodeset: treasuremap-airskiff-1node-ubuntu_focal
|
||||
description: Runs pep8 job on jammy
|
||||
nodeset: treasuremap-airskiff-1node-ubuntu_jammy
|
||||
|
||||
- job:
|
||||
name: deckhand-openstack-tox-cover-focal
|
||||
name: deckhand-openstack-tox-cover-jammy
|
||||
parent: openstack-tox-cover
|
||||
description: Runs cover job on focal
|
||||
nodeset: treasuremap-airskiff-1node-ubuntu_focal
|
||||
description: Runs cover job on jammy
|
||||
nodeset: treasuremap-airskiff-1node-ubuntu_jammy
|
||||
|
||||
- job:
|
||||
name: deckhand-tox-py38-postgresql
|
||||
parent: openstack-tox-py38
|
||||
nodeset: treasuremap-airskiff-1node-ubuntu_focal
|
||||
name: deckhand-tox-py310-postgresql
|
||||
parent: openstack-tox-py310
|
||||
nodeset: treasuremap-airskiff-1node-ubuntu_jammy
|
||||
pre-run:
|
||||
- tools/gate/playbooks/prepare-hosts.yaml
|
||||
vars:
|
||||
tox_envlist: py38-postgresql
|
||||
tox_envlist: py310-postgresql
|
||||
|
||||
- job:
|
||||
name: deckhand-base
|
||||
@ -117,6 +118,7 @@
|
||||
- ^deckhand/tests/unit/.*$
|
||||
timeout: 10800
|
||||
pre-run:
|
||||
- tools/gate/playbooks/checkout-treasuremap-ref.yaml
|
||||
- tools/gate/playbooks/prepare-hosts.yaml
|
||||
- tools/gate/playbooks/mount-volumes.yaml
|
||||
- tools/gate/playbooks/deploy-env.yaml
|
||||
@ -125,6 +127,7 @@
|
||||
post-run:
|
||||
- tools/gate/playbooks/osh-infra-collect-logs.yaml
|
||||
vars:
|
||||
treasuremap_ref: refs/changes/43/927643/4
|
||||
extra_volume:
|
||||
size: 80G
|
||||
type: Linux
|
||||
@ -141,15 +144,16 @@
|
||||
loopback_device: /dev/loop100
|
||||
loopback_image: "/opt/ext_vol/openstack-helm/ceph-loop.img"
|
||||
ceph_osd_data_device: /dev/loop100
|
||||
kube_version_repo: "v1.29"
|
||||
kube_version: "1.29.5-1.1"
|
||||
kube_version_repo: "v1.30"
|
||||
kube_version: "1.30.3-1.1"
|
||||
calico_setup: true
|
||||
calico_version: "v3.27.0"
|
||||
calico_version: "v3.27.4"
|
||||
cilium_setup: false
|
||||
cilium_version: "1.15.6"
|
||||
helm_version: "v3.6.3"
|
||||
yq_version: "v4.6.0"
|
||||
crictl_version: "v1.26.1"
|
||||
cilium_version: "1.16.0"
|
||||
flannel_setup: false
|
||||
flannel_version: v0.25.4
|
||||
helm_version: "v3.15.4"
|
||||
crictl_version: "v1.30.1"
|
||||
zuul_osh_relative_path: ../../openstack/openstack-helm
|
||||
zuul_osh_infra_relative_path: ../../openstack/openstack-helm-infra
|
||||
zuul_treasuremap_relative_path: ../../airship/treasuremap
|
||||
@ -158,61 +162,61 @@
|
||||
|
||||
|
||||
- job:
|
||||
name: deckhand-functional-docker-py38
|
||||
name: deckhand-functional-docker-py310
|
||||
description: |
|
||||
Run tox-based functional tests for the Airship Deckhand project under
|
||||
cPython version 3.8. Uses tox with the ``functional-py38`` environment.
|
||||
Ubuntu (focal) image is built and used.
|
||||
cPython version 3.10. Uses tox with the ``functional-py310`` environment.
|
||||
Ubuntu (jammy) image is built and used.
|
||||
parent: deckhand-base
|
||||
run: tools/gate/playbooks/run-functional-tests-docker.yaml
|
||||
nodeset: treasuremap-airskiff-1node-ubuntu_focal
|
||||
nodeset: treasuremap-airskiff-1node-ubuntu_jammy
|
||||
vars:
|
||||
tox_envlist: py38-functional
|
||||
tox_envlist: py310-functional
|
||||
disable_keystone: true
|
||||
DISTRO: ubuntu_focal
|
||||
DISTRO: ubuntu_jammy
|
||||
irrelevant-files: *irrelevant-files
|
||||
|
||||
- job:
|
||||
name: deckhand-functional-uwsgi-py38
|
||||
name: deckhand-functional-uwsgi-py310
|
||||
description: |
|
||||
Run tox-based functional tests for the Airship Deckhand project using a
|
||||
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
|
||||
run: tools/gate/playbooks/run-functional-tests-uwsgi.yaml
|
||||
nodeset: treasuremap-airskiff-1node-ubuntu_focal
|
||||
nodeset: treasuremap-airskiff-1node-ubuntu_jammy
|
||||
vars:
|
||||
tox_envlist: py38-functional-dev
|
||||
DISTRO: ubuntu_focal
|
||||
tox_envlist: py310-functional-dev
|
||||
DISTRO: ubuntu_jammy
|
||||
irrelevant-files: *irrelevant-files
|
||||
|
||||
|
||||
- job:
|
||||
name: deckhand-integration-uwsgi-py38
|
||||
name: deckhand-integration-uwsgi-py310
|
||||
description: |
|
||||
Run tox-based integration tests for the Airship Deckhand project using a
|
||||
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
|
||||
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
|
||||
vars:
|
||||
disable_keystone: true
|
||||
DISTRO: ubuntu_focal
|
||||
DISTRO: ubuntu_jammy
|
||||
|
||||
- job:
|
||||
name: deckhand-integration-docker-py38
|
||||
name: deckhand-integration-docker-py310
|
||||
description: |
|
||||
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
|
||||
run: tools/gate/playbooks/run-integration-tests-docker.yaml
|
||||
nodeset: treasuremap-airskiff-1node-ubuntu_focal
|
||||
nodeset: treasuremap-airskiff-1node-ubuntu_jammy
|
||||
vars:
|
||||
tox_envlist: py38-functional
|
||||
tox_envlist: py310-functional
|
||||
disable_keystone: false
|
||||
DISTRO: ubuntu_focal
|
||||
DISTRO: ubuntu_jammy
|
||||
irrelevant-files: *irrelevant-files
|
||||
|
||||
- job:
|
||||
@ -221,9 +225,9 @@
|
||||
Build charts using pinned Helm toolkit.
|
||||
timeout: 900
|
||||
run: tools/gate/playbooks/build-charts.yaml
|
||||
nodeset: treasuremap-airskiff-1node-ubuntu_focal
|
||||
nodeset: treasuremap-airskiff-1node-ubuntu_jammy
|
||||
vars:
|
||||
HTK_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f
|
||||
HTK_COMMIT: 43fd7143481b6ddda0dbd2f26bf6ec39a417b15b
|
||||
|
||||
- job:
|
||||
name: deckhand-chart-build-latest-htk
|
||||
@ -231,48 +235,26 @@
|
||||
Build charts using latest Helm toolkit.
|
||||
timeout: 900
|
||||
run: tools/gate/playbooks/build-charts.yaml
|
||||
nodeset: treasuremap-airskiff-1node-ubuntu_focal
|
||||
nodeset: treasuremap-airskiff-1node-ubuntu_jammy
|
||||
vars:
|
||||
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:
|
||||
name: deckhand-airskiff-deployment-focal-kubeadm
|
||||
nodeset: treasuremap-airskiff-1node-ubuntu_focal
|
||||
name: deckhand-airskiff-deployment-jammy-kubeadm
|
||||
nodeset: treasuremap-airskiff-1node-ubuntu_jammy
|
||||
description: |
|
||||
Deploy Memcached using Airskiff and submitted Deckhand changes.
|
||||
parent: deckhand-base
|
||||
vars:
|
||||
site: airskiff
|
||||
HELM_ARTIFACT_URL: https://get.helm.sh/helm-v3.14.2-linux-amd64.tar.gz
|
||||
HTK_COMMIT: 05f2f45971abcf483189358d663e2b46c3fc2fe8
|
||||
OSH_INFRA_COMMIT: 05f2f45971abcf483189358d663e2b46c3fc2fe8
|
||||
OSH_COMMIT: 049e679939fbd3b0c659dd0977911b8dc3b5a015
|
||||
HELM_ARTIFACT_URL: https://get.helm.sh/helm-v3.15.4-linux-amd64.tar.gz
|
||||
HTK_COMMIT: 43fd7143481b6ddda0dbd2f26bf6ec39a417b15b
|
||||
OSH_INFRA_COMMIT: 43fd7143481b6ddda0dbd2f26bf6ec39a417b15b
|
||||
OSH_COMMIT: 540df5cb0dbdaed63c202e2d6f2b7891062f8203
|
||||
TREASUREMAP_COMMIT: refs/changes/43/927643/2
|
||||
CLONE_DECKHAND: false
|
||||
DISTRO: ubuntu_focal
|
||||
DISTRO: ubuntu_jammy
|
||||
DOCKER_REGISTRY: localhost:5000
|
||||
MAKE_DECKHAND_IMAGES: true
|
||||
gate_scripts_relative_path: ../../airship/treasuremap
|
||||
@ -286,6 +268,7 @@
|
||||
- ./tools/deployment/airskiff/developer/025-start-artifactory.sh
|
||||
- ./tools/deployment/airskiff/developer/026-reduce-site.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/common/os-env.sh
|
||||
- ./tools/gate/wait-for-shipyard.sh
|
||||
@ -295,7 +278,7 @@
|
||||
name: deckhand-docker-build-gate
|
||||
timeout: 3600
|
||||
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
|
||||
- ^.*\.rst$
|
||||
- ^doc/.*$
|
||||
@ -305,36 +288,36 @@
|
||||
- ^setup.cfg$
|
||||
vars:
|
||||
publish: false
|
||||
DISTRO: ubuntu_focal
|
||||
DISTRO: ubuntu_jammy
|
||||
tags:
|
||||
dynamic:
|
||||
patch_set: true
|
||||
|
||||
- job:
|
||||
name: deckhand-docker-publish-ubuntu_focal
|
||||
name: deckhand-docker-publish-ubuntu_jammy
|
||||
description: |
|
||||
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
|
||||
listed in vars section. Waits in Zuul queue for a node (VM) assignment.
|
||||
timeout: 3600
|
||||
run: tools/gate/playbooks/docker-image-build.yaml
|
||||
nodeset: treasuremap-airskiff-1node-ubuntu_focal
|
||||
nodeset: treasuremap-airskiff-1node-ubuntu_jammy
|
||||
secrets:
|
||||
- airship_deckhand_quay_creds
|
||||
irrelevant-files: *non-code-files-template
|
||||
vars:
|
||||
publish: true
|
||||
DISTRO: ubuntu_focal
|
||||
DISTRO: ubuntu_jammy
|
||||
tags:
|
||||
dynamic:
|
||||
branch: true
|
||||
commit: true
|
||||
static:
|
||||
- latest
|
||||
- airflow_2.8.2
|
||||
- airflow_2.10.0
|
||||
|
||||
- job:
|
||||
name: deckhand-docker-tag-ubuntu_focal
|
||||
name: deckhand-docker-tag-ubuntu_jammy
|
||||
description: |
|
||||
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,
|
||||
@ -347,7 +330,7 @@
|
||||
secrets:
|
||||
- airship_deckhand_quay_creds
|
||||
vars:
|
||||
DISTRO: ubuntu_focal
|
||||
DISTRO: ubuntu_jammy
|
||||
|
||||
|
||||
- secret:
|
||||
|
11
ChangeLog
11
ChangeLog
@ -1,7 +1,18 @@
|
||||
CHANGES
|
||||
=======
|
||||
|
||||
* Update deploy-env parameters
|
||||
* Kubeadm based Airskiff gate
|
||||
* Fix deckhand-api dependences
|
||||
* 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
|
||||
* [focal] Fix requests.body attribute deprecation
|
||||
* Update airskiff deployment gate
|
||||
|
12
Makefile
12
Makefile
@ -25,10 +25,11 @@ USE_PROXY ?= false
|
||||
PUSH_IMAGE ?= false
|
||||
# use this variable for image labels added in internal build process
|
||||
LABEL ?= org.airshipit.build=community
|
||||
DISTRO ?= ubuntu_focal
|
||||
DISTRO ?= ubuntu_jammy
|
||||
DISTRO_ALIAS ?= ubuntu_focal
|
||||
COMMIT ?= $(shell git rev-parse HEAD)
|
||||
IMAGE := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG}-${DISTRO}
|
||||
|
||||
IMAGE_ALIAS := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG}-${DISTRO_ALIAS}
|
||||
export
|
||||
|
||||
# Build Deckhand Docker image for this project
|
||||
@ -87,6 +88,13 @@ else
|
||||
$(_BASE_IMAGE_ARG) \
|
||||
-f images/deckhand/Dockerfile.$(DISTRO) .
|
||||
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)
|
||||
docker push $(IMAGE)
|
||||
endif
|
||||
|
@ -10,6 +10,7 @@ libpq-dev [platform:dpkg]
|
||||
libsasl2-dev [platform:dpkg]
|
||||
libssl-dev [platform:dpkg]
|
||||
libre2-dev [platform:dpkg]
|
||||
postgresql [platform:dpkg]
|
||||
postgresql-14 [platform:dpkg]
|
||||
postgresql-contrib [platform:dpkg]
|
||||
ethtool [platform:dpkg]
|
||||
net-tools [platform:dpkg]
|
||||
|
@ -15,7 +15,7 @@
|
||||
apiVersion: v1
|
||||
description: A Helm chart for Deckhand
|
||||
name: deckhand
|
||||
version: 0.2.1
|
||||
version: 0.2.2
|
||||
appVersion: 1.1.0
|
||||
keywords:
|
||||
- deckhand
|
||||
|
@ -340,7 +340,7 @@ pod:
|
||||
security_context:
|
||||
deckhand:
|
||||
pod:
|
||||
runAsUser: 65534
|
||||
runAsUser: 1000
|
||||
container:
|
||||
deckhand_api:
|
||||
readOnlyRootFilesystem: true
|
||||
@ -354,7 +354,7 @@ pod:
|
||||
allowPrivilegeEscalation: false
|
||||
db_sync:
|
||||
pod:
|
||||
runAsUser: 65534
|
||||
runAsUser: 1000
|
||||
container:
|
||||
deckhand_db_sync:
|
||||
readOnlyRootFilesystem: true
|
||||
|
@ -8,8 +8,8 @@
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -17,16 +17,20 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: create
|
||||
desc: Create initial documents
|
||||
PUT: /api/v1.0/buckets/a/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/sample-doc.yaml
|
||||
|
||||
- name: error
|
||||
desc: Trigger error case
|
||||
PUT: /api/v1.0/buckets/b/documents
|
||||
status: 409
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/sample-doc.yaml
|
||||
|
@ -16,8 +16,8 @@
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -25,18 +25,22 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: create_a
|
||||
desc: Create documents in one bucket (a)
|
||||
PUT: /api/v1.0/buckets/a/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/layering-needs-substitution-source.yaml
|
||||
|
||||
- name: verify_first_bucket
|
||||
desc: Verify document count and revisions
|
||||
GET: /api/v1.0/revisions/$RESPONSE['$.[0].status.revision']/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 3
|
||||
$.[*].metadata.name:
|
||||
@ -56,6 +60,8 @@ tests:
|
||||
desc: Create documents in a second bucket (b)
|
||||
PUT: /api/v1.0/buckets/b/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/passphrase.yaml
|
||||
|
||||
- name: verify_second_bucket
|
||||
@ -84,6 +90,8 @@ tests:
|
||||
desc: Verify initial revision is unchanged
|
||||
GET: /api/v1.0/revisions/$HISTORY['create_a'].$RESPONSE['$.[0].status.revision']/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 3
|
||||
$.[*].metadata.name:
|
||||
|
@ -9,8 +9,8 @@
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -18,18 +18,22 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: initialize
|
||||
desc: Create initial documents
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/deckhand-owned-sample.yaml
|
||||
|
||||
- name: verify_certificate_content
|
||||
desc: Verify Passphrase content
|
||||
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents?schema=deckhand/Certificate/v1
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].data: |
|
||||
@ -62,6 +66,8 @@ tests:
|
||||
desc: Verify Passphrase content
|
||||
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents?schema=deckhand/Passphrase/v1
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].data: hunter2
|
||||
|
@ -35,8 +35,8 @@
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -44,12 +44,14 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: initialize
|
||||
desc: Create initial documents
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/design-doc-layering-sample-3-layers.yaml
|
||||
|
||||
- name: verify_initial
|
||||
@ -58,6 +60,8 @@ tests:
|
||||
query_parameters:
|
||||
sort: metadata.name
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 4
|
||||
$.[*].metadata.name:
|
||||
@ -80,17 +84,23 @@ tests:
|
||||
desc: Push a duplicate bucket of documents
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/design-doc-layering-sample-3-layers.yaml
|
||||
|
||||
- name: verify_ignore
|
||||
desc: Verify duplicate documents were ignored
|
||||
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 4
|
||||
query_parameters:
|
||||
sort: metadata.name
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 4
|
||||
$.[*].metadata.name:
|
||||
@ -113,6 +123,8 @@ tests:
|
||||
desc: Update a single document, ignore other documents in the bucket
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/design-doc-layering-sample-with-update.yaml
|
||||
|
||||
- name: verify_update
|
||||
@ -121,6 +133,8 @@ tests:
|
||||
query_parameters:
|
||||
sort: metadata.name
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 4
|
||||
$.[*].metadata.name:
|
||||
@ -146,6 +160,8 @@ tests:
|
||||
query_parameters:
|
||||
sort: metadata.name
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 4
|
||||
$.[*].metadata.name:
|
||||
@ -169,6 +185,8 @@ tests:
|
||||
desc: Delete a single document
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/design-doc-layering-sample-with-delete.yaml
|
||||
|
||||
- name: verify_delete
|
||||
@ -177,6 +195,8 @@ tests:
|
||||
query_parameters:
|
||||
sort: metadata.name
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 3
|
||||
$.[*].status.revision:
|
||||
@ -199,6 +219,8 @@ tests:
|
||||
query_parameters:
|
||||
sort: metadata.name
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 4
|
||||
$.[*].metadata.name:
|
||||
@ -224,6 +246,8 @@ tests:
|
||||
query_parameters:
|
||||
sort: metadata.name
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 4
|
||||
$.[*].metadata.name:
|
||||
|
@ -8,8 +8,8 @@
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -17,18 +17,22 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: initialize
|
||||
desc: Create initial documents
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/unusual-documents.yaml
|
||||
|
||||
- name: verity_list_content
|
||||
desc: Verify list content
|
||||
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents?schema=unusual/List/v1
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].data:
|
||||
@ -40,6 +44,8 @@ tests:
|
||||
desc: Verify DictWithSecret content
|
||||
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents?schema=unusual/DictWithSecret/v1
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].data:
|
||||
@ -50,6 +56,8 @@ tests:
|
||||
desc: Verify String content
|
||||
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents?schema=unusual/String/v1
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].data: strings are useful
|
||||
@ -58,6 +66,8 @@ tests:
|
||||
desc: Verify Integer content
|
||||
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents?schema=unusual/Integer/v1
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].data: 9000
|
||||
|
@ -8,8 +8,8 @@
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -17,7 +17,7 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: add_bucket_layering
|
||||
desc: |-
|
||||
@ -25,6 +25,8 @@ tests:
|
||||
and site.
|
||||
PUT: /api/v1.0/buckets/layering/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: |-
|
||||
---
|
||||
schema: deckhand/LayeringPolicy/v1
|
||||
@ -41,12 +43,16 @@ tests:
|
||||
desc: Create documents for bucket a
|
||||
PUT: /api/v1.0/buckets/a/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/design-doc-layering-sample-split-bucket-a.yaml
|
||||
|
||||
- name: add_bucket_b
|
||||
desc: Create documents for bucket b
|
||||
PUT: /api/v1.0/buckets/b/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/design-doc-layering-sample-split-bucket-b.yaml
|
||||
|
||||
- name: verify_layering
|
||||
@ -57,6 +63,8 @@ tests:
|
||||
- schema
|
||||
- metadata.name
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 3
|
||||
$.[0].schema: deckhand/LayeringPolicy/v1
|
||||
|
@ -7,8 +7,8 @@
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -16,15 +16,19 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: initialize
|
||||
desc: Create initial documents
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/passphrase.yaml
|
||||
|
||||
- name: verify_missing_layering_policy_raises_conflict
|
||||
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
|
||||
status: 409
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
|
@ -8,8 +8,8 @@
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -17,12 +17,14 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: create_documents_for_validating_2_level_layering
|
||||
desc: Create documents for validating 2 levels of layering (global, site)
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/design-doc-layering-sample-2-layers.yaml
|
||||
|
||||
- name: verify_layering_2_layers
|
||||
@ -31,6 +33,8 @@ tests:
|
||||
query_parameters:
|
||||
sort: schema
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 2
|
||||
$.[0].schema: deckhand/LayeringPolicy/v1
|
||||
@ -47,12 +51,16 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers: {}
|
||||
|
||||
- name: create_documents_for_validating_3_level_layering
|
||||
desc: Create documents for validating 3 levels of layering (global, region, site)
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/design-doc-layering-sample-3-layers.yaml
|
||||
|
||||
- name: verify_layering_3_layers
|
||||
@ -61,6 +69,8 @@ tests:
|
||||
query_parameters:
|
||||
sort: schema
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 2
|
||||
$.[0].schema: deckhand/LayeringPolicy/v1
|
||||
|
@ -12,8 +12,8 @@
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -21,13 +21,15 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: create_documents_for_validating_replacement_of_sub_source
|
||||
desc: |
|
||||
Create documents for validating replacement of a substitution source.
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: |
|
||||
---
|
||||
schema: deckhand/LayeringPolicy/v1
|
||||
@ -102,6 +104,8 @@ tests:
|
||||
query_parameters:
|
||||
sort: metadata.name
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 3
|
||||
|
||||
@ -128,6 +132,8 @@ tests:
|
||||
Create documents for validating replacement of a layering source.
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: |
|
||||
---
|
||||
schema: deckhand/LayeringPolicy/v1
|
||||
@ -222,6 +228,8 @@ tests:
|
||||
query_parameters:
|
||||
sort: metadata.name
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 4
|
||||
|
||||
|
@ -29,8 +29,8 @@
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -38,7 +38,7 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: initialize_layering_policy_base_case
|
||||
desc: |
|
||||
@ -47,6 +47,8 @@ tests:
|
||||
is abstract has layer region.
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: |-
|
||||
---
|
||||
schema: deckhand/LayeringPolicy/v1
|
||||
@ -66,6 +68,8 @@ tests:
|
||||
substitutions from secret documents.
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/layering-and-substitution-sample.yaml
|
||||
|
||||
- name: verify_base_case
|
||||
@ -74,6 +78,8 @@ tests:
|
||||
query_parameters:
|
||||
metadata.name: armada-chart-01
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[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
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: |-
|
||||
---
|
||||
schema: deckhand/LayeringPolicy/v1
|
||||
@ -113,6 +121,8 @@ tests:
|
||||
Same case as before, except with a top empty layer.
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/layering-and-substitution-sample.yaml
|
||||
|
||||
- name: verify_empty_top_layer
|
||||
@ -121,6 +131,8 @@ tests:
|
||||
query_parameters:
|
||||
metadata.name: armada-chart-01
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].metadata.name: armada-chart-01
|
||||
@ -143,6 +155,8 @@ tests:
|
||||
empty
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: |-
|
||||
---
|
||||
schema: deckhand/LayeringPolicy/v1
|
||||
@ -162,6 +176,8 @@ tests:
|
||||
Same case as before, except with multiple empty top layers.
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/layering-and-substitution-sample.yaml
|
||||
|
||||
- name: verify_multiple_empty_top_layers
|
||||
@ -170,6 +186,8 @@ tests:
|
||||
query_parameters:
|
||||
metadata.name: armada-chart-01
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].metadata.name: armada-chart-01
|
||||
@ -192,6 +210,8 @@ tests:
|
||||
layers.
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: |-
|
||||
---
|
||||
schema: deckhand/LayeringPolicy/v1
|
||||
@ -212,6 +232,8 @@ tests:
|
||||
Same case as before, except with multiple empty interspersed layers.
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/layering-and-substitution-sample.yaml
|
||||
|
||||
- name: verify_multiple_empty_interspersed_layers
|
||||
@ -220,6 +242,8 @@ tests:
|
||||
query_parameters:
|
||||
metadata.name: armada-chart-01
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].metadata.name: armada-chart-01
|
||||
@ -241,6 +265,8 @@ tests:
|
||||
Initailize the layering policy with 2 layers.
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: |-
|
||||
---
|
||||
schema: deckhand/LayeringPolicy/v1
|
||||
@ -260,6 +286,8 @@ tests:
|
||||
the correct substitution order.
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/layering-and-substitution-dag-sample.yaml
|
||||
|
||||
- name: verify_substitution_dependency_chain
|
||||
@ -275,6 +303,8 @@ tests:
|
||||
schema: armada/Chart/v1
|
||||
sort: metadata.name
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 3
|
||||
$.[0].metadata.name: armada-chart-01
|
||||
|
@ -9,8 +9,8 @@
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -18,7 +18,7 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: initialize
|
||||
desc: |-
|
||||
@ -30,6 +30,8 @@ tests:
|
||||
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: |-
|
||||
---
|
||||
schema: deckhand/LayeringPolicy/v1
|
||||
@ -114,6 +116,8 @@ tests:
|
||||
schema: armada/Chart/v1
|
||||
metadata.name: nova
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[*].metadata.name: nova
|
||||
|
@ -9,8 +9,8 @@
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -18,12 +18,14 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: initialize
|
||||
desc: Create initial documents
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/replacement.yaml
|
||||
|
||||
- name: verify_replacement_document_receives_substitution
|
||||
@ -35,6 +37,8 @@ tests:
|
||||
query_parameters:
|
||||
schema: armada/Chart/v1
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[*].metadata.name: example-chart-01
|
||||
|
@ -28,8 +28,8 @@
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -37,12 +37,14 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: create_a
|
||||
desc: Create documents in bucket_a
|
||||
PUT: /api/v1.0/buckets/bucket_a/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: |-
|
||||
---
|
||||
schema: deckhand/LayeringPolicy/v1
|
||||
@ -70,6 +72,8 @@ tests:
|
||||
desc: Modify data value of doc-a document in bucket_a
|
||||
PUT: /api/v1.0/buckets/bucket_a/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: |-
|
||||
---
|
||||
schema: example/Kind/v1
|
||||
@ -88,6 +92,8 @@ tests:
|
||||
desc: Verify deepdiff of modified data value of doc-a document
|
||||
GET: /api/v1.0/revisions/1/deepdiff/2
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].'bucket_a': modified
|
||||
@ -105,6 +111,8 @@ tests:
|
||||
desc: Verify deepdiff when revision=0 comparision_revision=0
|
||||
GET: /api/v1.0/revisions/0/deepdiff/0
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0]: {}
|
||||
@ -113,6 +121,8 @@ tests:
|
||||
desc: Verify deepdiff when revision=0
|
||||
GET: /api/v1.0/revisions/0/deepdiff/2
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0]:
|
||||
@ -122,6 +132,8 @@ tests:
|
||||
desc: Verify deepdiff when comparision_revision=0
|
||||
GET: /api/v1.0/revisions/2/deepdiff/0
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0]:
|
||||
@ -131,6 +143,8 @@ tests:
|
||||
desc: Add new document doc-b in bucket_a
|
||||
PUT: /api/v1.0/buckets/bucket_a/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: |-
|
||||
---
|
||||
schema: example/Kind/v1
|
||||
@ -161,6 +175,8 @@ tests:
|
||||
desc: Verify deepdiff of newly added doc-b document
|
||||
GET: /api/v1.0/revisions/2/deepdiff/3
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].'bucket_a': modified
|
||||
@ -171,6 +187,8 @@ tests:
|
||||
desc: Delete document doc-b in bucket_a
|
||||
PUT: /api/v1.0/buckets/bucket_a/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: |-
|
||||
---
|
||||
schema: example/Kind/v1
|
||||
@ -189,6 +207,8 @@ tests:
|
||||
desc: Verify deepdiff of deleted doc-b document
|
||||
GET: /api/v1.0/revisions/3/deepdiff/4
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].'bucket_a': modified
|
||||
@ -199,6 +219,8 @@ tests:
|
||||
desc: Verify deepdiff of the same revisions
|
||||
GET: /api/v1.0/revisions/3/deepdiff/3
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].'bucket_a': unmodified
|
||||
@ -207,6 +229,8 @@ tests:
|
||||
desc: Verify deepdiff of different revisions of same document
|
||||
GET: /api/v1.0/revisions/2/deepdiff/4
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].'bucket_a': unmodified
|
||||
@ -215,6 +239,8 @@ tests:
|
||||
desc: Adding a new key in doc-a
|
||||
PUT: /api/v1.0/buckets/bucket_a/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: |-
|
||||
---
|
||||
schema: example/Kind/v1
|
||||
@ -234,6 +260,8 @@ tests:
|
||||
desc: Verify deepdiff of addition of a new key in doc-a
|
||||
GET: /api/v1.0/revisions/4/deepdiff/5
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].'bucket_a': modified
|
||||
@ -249,6 +277,8 @@ tests:
|
||||
desc: Removing a key in doc-a
|
||||
PUT: /api/v1.0/buckets/bucket_a/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: |-
|
||||
---
|
||||
schema: example/Kind/v1
|
||||
@ -267,6 +297,8 @@ tests:
|
||||
desc: Verify deepdiff of removal of a key in doc-a
|
||||
GET: /api/v1.0/revisions/5/deepdiff/6
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].'bucket_a': modified
|
||||
@ -282,8 +314,11 @@ tests:
|
||||
desc: Verify deepdiff when invalid revision id pass in input
|
||||
GET: /api/v1.0/revisions/test/deepdiff/2
|
||||
status: 400
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
|
||||
- name: verify_revision_not_found
|
||||
desc: Verify deepdiff when input revision id is not found
|
||||
GET: /api/v1.0/revisions/1000/deepdiff/2
|
||||
status: 404
|
||||
response_headers: {}
|
||||
|
@ -12,8 +12,8 @@
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -21,12 +21,14 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: create_a
|
||||
desc: Create documents in bucket a
|
||||
PUT: /api/v1.0/buckets/bucket_a/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: |-
|
||||
---
|
||||
schema: example/Kind/v1
|
||||
@ -45,11 +47,15 @@ tests:
|
||||
desc: Rollback to revision 0
|
||||
POST: /api/v1.0/rollback/0
|
||||
status: 201
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
|
||||
- name: verify_null_with_rollback_to_null
|
||||
desc: Validates response for null diff rollback to null revision
|
||||
GET: /api/v1.0/revisions/0/diff/$HISTORY['rollback_to_null'].$RESPONSE['$.[0].id']
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0]: {}
|
||||
@ -58,6 +64,8 @@ tests:
|
||||
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
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0]: {}
|
||||
@ -66,6 +74,8 @@ tests:
|
||||
desc: Create documents in bucket b
|
||||
PUT: /api/v1.0/buckets/bucket_b/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: |-
|
||||
---
|
||||
schema: example/Kind/v1
|
||||
@ -84,6 +94,8 @@ tests:
|
||||
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']
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0]:
|
||||
@ -93,6 +105,8 @@ tests:
|
||||
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']
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0]:
|
||||
|
@ -18,8 +18,8 @@
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -27,12 +27,14 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: create_a
|
||||
desc: Create documents in bucket a
|
||||
PUT: /api/v1.0/buckets/bucket_a/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: |-
|
||||
---
|
||||
schema: example/Kind/v1
|
||||
@ -51,6 +53,8 @@ tests:
|
||||
desc: Create documents in bucket b
|
||||
PUT: /api/v1.0/buckets/bucket_b/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: |-
|
||||
---
|
||||
schema: example/Kind/v1
|
||||
@ -69,6 +73,8 @@ tests:
|
||||
desc: Create documents in bucket c
|
||||
PUT: /api/v1.0/buckets/bucket_c/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: |-
|
||||
---
|
||||
schema: example/Kind/v1
|
||||
@ -87,6 +93,8 @@ tests:
|
||||
desc: Create documents in bucket d
|
||||
PUT: /api/v1.0/buckets/bucket_d/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: |-
|
||||
---
|
||||
schema: example/Kind/v1
|
||||
@ -105,6 +113,8 @@ tests:
|
||||
desc: Validates response for null diff for first revision
|
||||
GET: /api/v1.0/revisions/0/diff/$HISTORY['create_a'].$RESPONSE['$.[0].status.revision']
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0]:
|
||||
@ -114,6 +124,8 @@ tests:
|
||||
desc: Validates response for null diff for second revision
|
||||
GET: /api/v1.0/revisions/0/diff/$HISTORY['create_b'].$RESPONSE['$.[0].status.revision']
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0]:
|
||||
@ -124,6 +136,8 @@ tests:
|
||||
desc: Validates response for null diff for third revision
|
||||
GET: /api/v1.0/revisions/0/diff/$HISTORY['create_c'].$RESPONSE['$.[0].status.revision']
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0]:
|
||||
@ -135,6 +149,8 @@ tests:
|
||||
desc: Validates response for null diff for fourth revision
|
||||
GET: /api/v1.0/revisions/0/diff/$HISTORY['create_d'].$RESPONSE['$.[0].status.revision']
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0]:
|
||||
@ -147,6 +163,8 @@ tests:
|
||||
desc: Validates response for null diff for fourth revision
|
||||
GET: /api/v1.0/revisions/0/diff/0
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0]: {}
|
||||
@ -155,6 +173,8 @@ tests:
|
||||
desc: Update document in bucket c
|
||||
PUT: /api/v1.0/buckets/bucket_c/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: |-
|
||||
---
|
||||
schema: example/Kind/v1
|
||||
@ -173,6 +193,8 @@ tests:
|
||||
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']
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0]:
|
||||
@ -185,12 +207,16 @@ tests:
|
||||
desc: Delete documents from bucket b
|
||||
PUT: /api/v1.0/buckets/bucket_b/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: ""
|
||||
|
||||
- name: create_mistake
|
||||
desc: Create documents in bucket mistake
|
||||
PUT: /api/v1.0/buckets/bucket_mistake/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: |-
|
||||
---
|
||||
schema: example/Kind/v1
|
||||
@ -208,6 +234,8 @@ tests:
|
||||
desc: Delete documents from bucket mistake
|
||||
PUT: /api/v1.0/buckets/bucket_mistake/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: ""
|
||||
# Verification for whether a bucket_name was returned even though all the
|
||||
# documents for this bucket were deleted.
|
||||
@ -219,6 +247,8 @@ tests:
|
||||
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']
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0]:
|
||||
@ -231,6 +261,8 @@ tests:
|
||||
desc: Create documents in bucket e
|
||||
PUT: /api/v1.0/buckets/bucket_e/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: |-
|
||||
---
|
||||
schema: example/Kind/v1
|
||||
@ -249,6 +281,8 @@ tests:
|
||||
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']
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0]:
|
||||
@ -262,6 +296,8 @@ tests:
|
||||
desc: Validates response for null diff and now
|
||||
GET: /api/v1.0/revisions/0/diff/$HISTORY['create_e'].$RESPONSE['$.[0].status.revision']
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0]:
|
||||
|
@ -6,8 +6,8 @@
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -15,12 +15,14 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: initialize
|
||||
desc: Create initial documents
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/design-doc-layering-sample-3-layers.yaml
|
||||
|
||||
- name: filter_by_schema_partial_namespace
|
||||
@ -29,6 +31,8 @@ tests:
|
||||
query_parameters:
|
||||
schema: exam
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths: null
|
||||
|
||||
- name: filter_by_schema_partial_kind
|
||||
@ -37,6 +41,8 @@ tests:
|
||||
query_parameters:
|
||||
schema: example/Ki
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths: null
|
||||
|
||||
- name: filter_by_schema_incorrect_version
|
||||
@ -45,6 +51,8 @@ tests:
|
||||
query_parameters:
|
||||
schema: example/Kind/v2
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths: null
|
||||
|
||||
- name: filter_by_limit_illegal_value
|
||||
@ -53,3 +61,5 @@ tests:
|
||||
query_parameters:
|
||||
limit: 'illegal'
|
||||
status: 400
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
|
@ -10,8 +10,8 @@
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -19,12 +19,14 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: initialize
|
||||
desc: Create initial documents
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/design-doc-layering-sample-3-layers.yaml
|
||||
|
||||
- name: filter_by_schema
|
||||
@ -33,6 +35,8 @@ tests:
|
||||
query_parameters:
|
||||
schema: deckhand/LayeringPolicy/v1
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].metadata.name: layering-policy
|
||||
@ -44,6 +48,8 @@ tests:
|
||||
query_parameters:
|
||||
schema: example
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 3
|
||||
$.[0].metadata.name: global-1234
|
||||
@ -59,6 +65,8 @@ tests:
|
||||
query_parameters:
|
||||
schema: example/Kind
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 3
|
||||
$.[0].metadata.name: global-1234
|
||||
@ -74,6 +82,8 @@ tests:
|
||||
query_parameters:
|
||||
metadata.name: layering-policy
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].metadata.name: layering-policy
|
||||
@ -84,6 +94,8 @@ tests:
|
||||
query_parameters:
|
||||
metadata.label: key1=value1
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 2
|
||||
$.[*].metadata.name:
|
||||
@ -99,6 +111,8 @@ tests:
|
||||
query_parameters:
|
||||
metadata.layeringDefinition.abstract: true
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 2
|
||||
$.[*].metadata.name:
|
||||
@ -114,6 +128,8 @@ tests:
|
||||
query_parameters:
|
||||
metadata.layeringDefinition.layer: site
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].metadata.name: site-1234
|
||||
@ -126,6 +142,8 @@ tests:
|
||||
status.bucket: mop
|
||||
sort: metadata.name
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 4
|
||||
$.[*].metadata.name:
|
||||
@ -145,6 +163,8 @@ tests:
|
||||
query_parameters:
|
||||
sort: metadata.name
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 4
|
||||
$.[*].metadata.name:
|
||||
@ -159,6 +179,8 @@ tests:
|
||||
query_parameters:
|
||||
sort: schema
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 4
|
||||
$.[*].schema:
|
||||
@ -175,6 +197,8 @@ tests:
|
||||
- schema
|
||||
- metadata.name
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 4
|
||||
$.[*].schema:
|
||||
@ -196,6 +220,8 @@ tests:
|
||||
- metadata.name
|
||||
- schema
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 4
|
||||
$.[*].metadata.name:
|
||||
@ -218,6 +244,8 @@ tests:
|
||||
- schema
|
||||
limit: 2
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 2
|
||||
$.[*].metadata.name:
|
||||
|
@ -9,8 +9,8 @@
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -18,12 +18,14 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: initialize
|
||||
desc: Create initial documents
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/design-doc-layering-sample-3-layers.yaml
|
||||
|
||||
- name: filter_by_multiple_different_filters_expect_site
|
||||
@ -33,6 +35,8 @@ tests:
|
||||
metadata.layeringDefinition.layer: site
|
||||
metadata.layeringDefinition.abstract: false
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].metadata.name: site-1234
|
||||
@ -46,6 +50,8 @@ tests:
|
||||
metadata.layeringDefinition.layer: region
|
||||
metadata.layeringDefinition.abstract: true
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].metadata.name: region-1234
|
||||
@ -60,6 +66,8 @@ tests:
|
||||
- site
|
||||
- region
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 2
|
||||
$.[*].metadata.name:
|
||||
@ -77,6 +85,8 @@ tests:
|
||||
- foo=bar
|
||||
- baz=qux
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].metadata.name: site-1234
|
||||
|
@ -15,8 +15,8 @@
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -24,30 +24,38 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: initialize
|
||||
desc: Create initial documents
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/design-doc-layering-sample-3-layers.yaml
|
||||
|
||||
- name: update_single_document
|
||||
desc: Update a single document, ignore other documents in the bucket
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/design-doc-layering-sample-with-update.yaml
|
||||
|
||||
- name: delete_document
|
||||
desc: Delete a single document
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/design-doc-layering-sample-with-delete.yaml
|
||||
|
||||
- name: rollback
|
||||
desc: Rollback to revision 1
|
||||
POST: /api/v1.0/rollback/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']
|
||||
status: 201
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
|
||||
# Verify document history
|
||||
- name: verify_revision_1
|
||||
@ -56,6 +64,8 @@ tests:
|
||||
query_parameters:
|
||||
sort: metadata.name
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 4
|
||||
$.[*].metadata.name:
|
||||
@ -85,6 +95,8 @@ tests:
|
||||
query_parameters:
|
||||
sort: metadata.name
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 4
|
||||
$.[*].metadata.name:
|
||||
@ -114,6 +126,8 @@ tests:
|
||||
query_parameters:
|
||||
sort: metadata.name
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 3
|
||||
$.[*].metadata.name:
|
||||
@ -139,6 +153,8 @@ tests:
|
||||
query_parameters:
|
||||
sort: metadata.name
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 4
|
||||
$.[*].metadata.name:
|
||||
|
@ -26,8 +26,8 @@
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -35,18 +35,22 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: initialize
|
||||
desc: Create initial documents
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/design-doc-layering-sample-3-layers.yaml
|
||||
|
||||
- name: create_tag
|
||||
desc: Create a tag for the revision
|
||||
POST: /api/v1.0/revisions/$RESPONSE['$.[0].status.revision']/tags/foo
|
||||
status: 201
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
|
||||
response_multidoc_jsonpaths:
|
||||
$.[0].`len`: 1
|
||||
@ -56,6 +60,8 @@ tests:
|
||||
desc: Verify showing created tag works
|
||||
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags/foo
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
@ -65,6 +71,8 @@ tests:
|
||||
desc: Verify showing created tag on revision detail
|
||||
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].tags.`len`: 1
|
||||
@ -84,6 +92,8 @@ tests:
|
||||
desc: Create a tag with data for the revision
|
||||
POST: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags/bar
|
||||
status: 201
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/sample-tag-data.yaml
|
||||
|
||||
response_multidoc_jsonpaths:
|
||||
@ -97,6 +107,8 @@ tests:
|
||||
desc: Verify listing tags contains created tag
|
||||
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
@ -111,6 +123,8 @@ tests:
|
||||
desc: Verify showing created tag on revision detail
|
||||
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].tags.`len`: 2
|
||||
@ -132,12 +146,14 @@ tests:
|
||||
desc: Verify deleting tag works
|
||||
DELETE: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags/foo
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: verify_tag_delete
|
||||
desc: Verify listing tags contains non-deleted tag
|
||||
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
@ -150,6 +166,8 @@ tests:
|
||||
desc: Verify not showing deleted tag on revision detail
|
||||
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].tags.`len`: 1
|
||||
@ -161,6 +179,8 @@ tests:
|
||||
desc: Verify not showing deleted tag on revision list
|
||||
GET: /api/v1.0/revisions
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.[0].results.`len`: 1
|
||||
$.[0].results[0].tags.`len`: 1
|
||||
@ -170,12 +190,14 @@ tests:
|
||||
desc: Verify deleting tag works
|
||||
DELETE: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: verify_revision_detail_deleted_all
|
||||
desc: Verify empty tags on revision detail
|
||||
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].tags: {}
|
||||
@ -184,6 +206,8 @@ tests:
|
||||
desc: Verify empty tags on revision list
|
||||
GET: /api/v1.0/revisions
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.[0].results.`len`: 1
|
||||
$.[0].results[0].tags: []
|
||||
@ -192,6 +216,8 @@ tests:
|
||||
desc: Verify all tags have been deleted
|
||||
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
|
@ -9,8 +9,8 @@
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -18,7 +18,7 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
# Validates whether creating a revision works.
|
||||
# Required parameters:
|
||||
@ -28,6 +28,8 @@ tests:
|
||||
desc: Create initial documents
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/design-doc-layering-sample-3-layers.yaml
|
||||
|
||||
# Validates whether revision was created.
|
||||
@ -38,6 +40,8 @@ tests:
|
||||
desc: Verify that revision was created for document above
|
||||
GET: /api/v1.0/revisions/$RESPONSE['$.[0].status.revision']
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].id: $HISTORY['initialize'].$RESPONSE['$.[0].status.revision']
|
||||
@ -50,6 +54,8 @@ tests:
|
||||
desc: Verify that revision was created for document above
|
||||
GET: /api/v1.0/revisions
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].count: 1
|
||||
@ -64,7 +70,7 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
# Validates whether revision was deleted.
|
||||
# Required parameters:
|
||||
@ -74,3 +80,4 @@ tests:
|
||||
desc: Verify that the revision was deleted
|
||||
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']
|
||||
status: 404
|
||||
response_headers: {}
|
@ -7,8 +7,8 @@
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -16,35 +16,45 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: initialize
|
||||
desc: Create first revision for testing
|
||||
PUT: /api/v1.0/buckets/bucket_a/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/design-doc-layering-sample-3-layers.yaml
|
||||
|
||||
- name: initialize_again
|
||||
desc: Create second revision for testing
|
||||
PUT: /api/v1.0/buckets/bucket_b/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/sample-doc.yaml
|
||||
|
||||
- name: initialize_once_again
|
||||
desc: Create third revision for testing
|
||||
PUT: /api/v1.0/buckets/bucket_c/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/sample-schema.yaml
|
||||
|
||||
- name: create_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
|
||||
status: 201
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
|
||||
- name: create_another_tag
|
||||
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
|
||||
status: 201
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
|
||||
- name: verify_revision_list_for_one_valid_filter
|
||||
desc: Verify that revision is returned for filter tag="foo"
|
||||
@ -52,6 +62,8 @@ tests:
|
||||
query_parameters:
|
||||
tag: foo
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].count: 1
|
||||
@ -70,6 +82,8 @@ tests:
|
||||
- foo
|
||||
- bar
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].count: 1
|
||||
@ -85,6 +99,8 @@ tests:
|
||||
query_parameters:
|
||||
tag: baz
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].count: 0
|
||||
@ -96,6 +112,8 @@ tests:
|
||||
query_parameters:
|
||||
sort: id
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.[0].results.`len`: 3
|
||||
$.[0].results[*].id:
|
||||
@ -110,6 +128,8 @@ tests:
|
||||
sort: id
|
||||
order: desc
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.[0].results.`len`: 3
|
||||
$.[0].results[*].id:
|
||||
|
@ -8,8 +8,8 @@
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -17,12 +17,14 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: create
|
||||
desc: Create documents.
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/chained-substitution.yaml
|
||||
|
||||
- name: verify_intermediate_substitution
|
||||
@ -31,6 +33,8 @@ tests:
|
||||
query_parameters:
|
||||
sort: schema
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
query_parameters:
|
||||
schema: example/Middle/v1
|
||||
response_multidoc_jsonpaths:
|
||||
@ -44,6 +48,8 @@ tests:
|
||||
query_parameters:
|
||||
sort: schema
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
query_parameters:
|
||||
schema: example/Dest/v1
|
||||
response_multidoc_jsonpaths:
|
||||
|
@ -8,8 +8,8 @@
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -17,18 +17,22 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: add_bucket_a
|
||||
desc: Create documents for bucket a
|
||||
PUT: /api/v1.0/buckets/a/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/design-doc-substitution-sample-split-bucket-a.yaml
|
||||
|
||||
- name: add_bucket_b
|
||||
desc: Create documents for bucket b
|
||||
PUT: /api/v1.0/buckets/b/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/design-doc-substitution-sample-split-bucket-b.yaml
|
||||
|
||||
- name: verify_substitutions
|
||||
@ -37,6 +41,8 @@ tests:
|
||||
query_parameters:
|
||||
schema: armada/Chart/v1
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[*].metadata.name: example-chart-01
|
||||
|
@ -7,8 +7,8 @@
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -16,7 +16,7 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: initialize_documents_with_missing_src_substitution_path
|
||||
desc: |
|
||||
@ -24,6 +24,8 @@ tests:
|
||||
a path via `src.path` that doesn't exist in the source document.
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/substitution-results-in-none-bug.yaml
|
||||
|
||||
- name: verify_bad_request_raised
|
||||
@ -34,3 +36,5 @@ tests:
|
||||
query_parameters:
|
||||
schema: deckhand/Dest/v1
|
||||
status: 400
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
|
@ -9,8 +9,8 @@
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -18,12 +18,14 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: initialize
|
||||
desc: Create initial documents
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/design-doc-substitution-generic-sample.yaml
|
||||
|
||||
- name: verify_substitutions
|
||||
@ -32,6 +34,8 @@ tests:
|
||||
query_parameters:
|
||||
schema: armada/Chart/v1
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[0].metadata.name: example-chart-01
|
||||
|
@ -7,8 +7,8 @@
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -16,12 +16,14 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: initialize
|
||||
desc: Create initial documents
|
||||
PUT: /api/v1.0/buckets/mop/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: <@resources/design-doc-substitution-sample.yaml
|
||||
|
||||
- name: verify_substitutions
|
||||
@ -30,6 +32,8 @@ tests:
|
||||
query_parameters:
|
||||
schema: armada/Chart/v1
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[*].metadata.name: example-chart-01
|
||||
|
@ -7,18 +7,18 @@
|
||||
# expected destination paths.
|
||||
|
||||
defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
verbose: true
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
- name: purge
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: add_substitution_source_with_single_source_multi_dest
|
||||
desc: |-
|
||||
@ -26,6 +26,8 @@ tests:
|
||||
multiple destination paths.
|
||||
PUT: /api/v1.0/buckets/a/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: |-
|
||||
---
|
||||
schema: deckhand/LayeringPolicy/v1
|
||||
@ -70,6 +72,8 @@ tests:
|
||||
query_parameters:
|
||||
schema: armada/Chart/v1
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
response_multidoc_jsonpaths:
|
||||
$.`len`: 1
|
||||
$.[*].metadata.name: example-chart-01
|
||||
|
@ -16,7 +16,7 @@ tests:
|
||||
status: 204
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: create_encrypted_passphrase
|
||||
desc: Create passphrase with storagePolicy=encrypted
|
||||
|
@ -22,7 +22,7 @@ tests:
|
||||
status: 204
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: create_encrypted_passphrase_empty_payload_skips
|
||||
desc: |
|
||||
|
@ -7,8 +7,8 @@ defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
X-Auth-Token: $ENVIRON['TEST_AUTH_TOKEN']
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -16,12 +16,14 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: create_encrypted_passphrase
|
||||
desc: Create passphrase with storagePolicy=encrypted
|
||||
PUT: /api/v1.0/buckets/secret/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: |-
|
||||
---
|
||||
schema: deckhand/LayeringPolicy/v1
|
||||
@ -51,6 +53,8 @@ tests:
|
||||
desc: Verify that the rendering the document returns the secret payload.
|
||||
GET: /api/v1.0/revisions/$RESPONSE['$.[0].status.revision']/rendered-documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
query_parameters:
|
||||
cleartext-secrets: true
|
||||
metadata.name: my-passphrase
|
||||
|
@ -11,8 +11,8 @@ defaults:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
X-Auth-Token: $ENVIRON['TEST_AUTH_TOKEN']
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
# response_headers:
|
||||
# content-type: application/x-yaml
|
||||
verbose: true
|
||||
|
||||
tests:
|
||||
@ -20,7 +20,7 @@ tests:
|
||||
desc: Begin testing from known state.
|
||||
DELETE: /api/v1.0/revisions
|
||||
status: 204
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: encrypt_generic_document_for_secret_substitution
|
||||
desc: |
|
||||
@ -28,6 +28,8 @@ tests:
|
||||
substitution source with storagePolicy=encrypted.
|
||||
PUT: /api/v1.0/buckets/secret/documents
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
data: |-
|
||||
---
|
||||
schema: deckhand/LayeringPolicy/v1
|
||||
@ -72,6 +74,8 @@ tests:
|
||||
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
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
query_parameters:
|
||||
metadata.name: example-armada-cert
|
||||
cleartext-secrets: 'true'
|
||||
@ -99,6 +103,8 @@ tests:
|
||||
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
|
||||
status: 200
|
||||
response_headers:
|
||||
content-type: application/x-yaml
|
||||
query_parameters:
|
||||
cleartext-secrets: true
|
||||
metadata.name:
|
||||
|
@ -19,7 +19,7 @@ tests:
|
||||
status: 204
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: create_documents_for_secret_substitution
|
||||
desc: Create documents with substitution source with storagePolicy=encrypted
|
||||
|
@ -14,7 +14,7 @@ tests:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
X-Auth-Token: $ENVIRON['TEST_AUTH_TOKEN']
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: create_encrypted_passphrase
|
||||
desc: Create passphrase with storagePolicy=encrypted
|
||||
@ -72,7 +72,7 @@ tests:
|
||||
request_headers:
|
||||
content-type: application/x-yaml
|
||||
X-Auth-Token: $ENVIRON['TEST_AUTH_TOKEN']
|
||||
response_headers: null
|
||||
response_headers: {}
|
||||
|
||||
- name: validate_all_secrets_deleted_from_barbican
|
||||
desc: |-
|
||||
|
@ -56,6 +56,8 @@ if [ "$1" = 'server' ]; then
|
||||
--module deckhand.cmd
|
||||
elif [ "$1" = 'alembic' ]; then
|
||||
exec alembic ${@:2}
|
||||
elif [ "$1" = 'shell' ]; then
|
||||
exec bash
|
||||
else
|
||||
echo "Valid commands are 'alembic <command>' and 'server'"
|
||||
fi
|
||||
|
108
images/deckhand/Dockerfile.ubuntu_jammy
Normal file
108
images/deckhand/Dockerfile.ubuntu_jammy
Normal 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"]
|
@ -1,54 +1,51 @@
|
||||
alembic==1.13.1
|
||||
alembic==1.13.2
|
||||
amqp==5.2.0
|
||||
attrs==23.2.0
|
||||
attrs==24.2.0
|
||||
autopage==0.5.2
|
||||
backports.zoneinfo==0.2.1
|
||||
barbican==16.0.0
|
||||
bcrypt==4.1.2
|
||||
Beaker==1.12.1
|
||||
cachetools==5.3.2
|
||||
castellan==4.4.0
|
||||
certifi==2024.2.2
|
||||
cffi==1.16.0
|
||||
bcrypt==4.2.0
|
||||
Beaker==1.13.0
|
||||
cachetools==5.5.0
|
||||
castellan==5.1.1
|
||||
certifi==2024.8.30
|
||||
cffi==1.17.1
|
||||
charset-normalizer==3.3.2
|
||||
cliff==4.6.0
|
||||
cliff==4.7.0
|
||||
cmd2==2.4.3
|
||||
cryptography==41.0.7
|
||||
cryptography==42.0.8
|
||||
debtcollector==3.0.0
|
||||
decorator==5.1.1
|
||||
deepdiff==6.7.1
|
||||
deepdiff==8.0.1
|
||||
dnspython==2.6.1
|
||||
dogpile.cache==1.3.2
|
||||
eventlet==0.35.2
|
||||
dogpile.cache==1.3.3
|
||||
eventlet==0.37.0
|
||||
falcon==3.1.3
|
||||
fasteners==0.19
|
||||
fixtures==4.1.0
|
||||
futurist==3.0.0
|
||||
greenlet==3.0.3
|
||||
greenlet==3.1.0
|
||||
html5lib==0.9999999
|
||||
httpexceptor==1.4.0
|
||||
idna==3.6
|
||||
importlib-metadata==6.11.0
|
||||
importlib-resources==5.13.0
|
||||
idna==3.10
|
||||
iso8601==2.1.0
|
||||
Jinja2==3.1.3
|
||||
Jinja2==3.1.4
|
||||
jsonpath-ng==1.6.1
|
||||
jsonpickle==3.0.3
|
||||
jsonschema==4.21.1
|
||||
jsonpickle==3.3.0
|
||||
jsonschema==4.23.0
|
||||
jsonschema-specifications==2023.12.1
|
||||
keystoneauth1==5.1.2
|
||||
keystonemiddleware==10.2.0
|
||||
kombu==5.3.5
|
||||
kombu==5.4.1
|
||||
ldap3==2.9.1
|
||||
logutils==0.3.5
|
||||
Mako==1.3.2
|
||||
Mako==1.3.5
|
||||
MarkupSafe==2.1.5
|
||||
microversion-parse==1.0.1
|
||||
msgpack==1.0.7
|
||||
netaddr==1.2.1
|
||||
microversion-parse==2.0.0
|
||||
msgpack==1.1.0
|
||||
netaddr==1.3.0
|
||||
netifaces==0.11.0
|
||||
networkx==3.1
|
||||
ordered-set==4.1.0
|
||||
networkx==3.3
|
||||
orderly-set==5.2.2
|
||||
os-service-types==1.7.0
|
||||
oslo.cache==3.3.1
|
||||
oslo.concurrency==5.1.1
|
||||
@ -66,63 +63,60 @@ oslo.service==3.1.1
|
||||
oslo.upgradecheck==2.1.1
|
||||
oslo.utils==6.1.0
|
||||
oslo.versionedobjects==3.1.0
|
||||
packaging==23.2
|
||||
Paste==3.7.1
|
||||
packaging==24.1
|
||||
Paste==3.10.1
|
||||
PasteDeploy==3.1.0
|
||||
PasteScript==3.4.0
|
||||
pbr==6.0.0
|
||||
PasteScript==3.6.0
|
||||
pbr==6.1.0
|
||||
pecan==1.5.1
|
||||
pip==23.2.1
|
||||
pkgutil_resolve_name==1.3.10
|
||||
pip==24.1
|
||||
ply==3.11
|
||||
prettytable==3.10.0
|
||||
prettytable==3.11.0
|
||||
prometheus_client==0.20.0
|
||||
psycopg2-binary==2.9.9
|
||||
pyasn1==0.5.1
|
||||
pyasn1==0.6.1
|
||||
pycadf==3.1.1
|
||||
pycparser==2.21
|
||||
pycparser==2.22
|
||||
pylibyaml==0.1.0
|
||||
pyOpenSSL==24.0.0
|
||||
pyparsing==3.1.1
|
||||
pyperclip==1.8.2
|
||||
pyOpenSSL==24.2.1
|
||||
pyparsing==3.1.4
|
||||
pyperclip==1.9.0
|
||||
python-barbicanclient==5.5.0
|
||||
python-dateutil==2.8.2
|
||||
python-dateutil==2.9.0.post0
|
||||
python-keystoneclient==5.1.0
|
||||
python-memcached==1.62
|
||||
python-mimeparse==1.6.0
|
||||
pytz==2024.1
|
||||
PyYAML==6.0.1
|
||||
referencing==0.33.0
|
||||
python-mimeparse==2.0.0
|
||||
pytz==2024.2
|
||||
PyYAML==6.0.2
|
||||
referencing==0.35.1
|
||||
repoze.lru==0.7
|
||||
requests==2.31.0
|
||||
requests==2.32.3
|
||||
resolver==0.2.1
|
||||
rfc3986==1.5.0
|
||||
rfc3986==2.0.0
|
||||
Routes==2.5.1
|
||||
rpds-py==0.18.0
|
||||
rpds-py==0.20.0
|
||||
selector==0.10.1
|
||||
setuptools==68.2.2
|
||||
simplejson==3.19.2
|
||||
setuptools==70.1.0
|
||||
simplejson==3.19.3
|
||||
six==1.16.0
|
||||
SQLAlchemy==1.4.51
|
||||
SQLAlchemy==1.4.54
|
||||
sqlalchemy-migrate==0.13.0
|
||||
sqlparse==0.4.4
|
||||
sqlparse==0.5.1
|
||||
statsd==4.0.1
|
||||
stevedore==5.2.0
|
||||
stevedore==5.3.0
|
||||
Tempita==0.5.2
|
||||
testresources==2.0.1
|
||||
testscenarios==0.5.0
|
||||
testtools==2.7.1
|
||||
testtools==2.7.2
|
||||
tiddlyweb==2.4.3
|
||||
typing_extensions==4.9.0
|
||||
tzdata==2024.1
|
||||
urllib3==1.26.18
|
||||
uWSGI==2.0.24
|
||||
typing_extensions==4.12.2
|
||||
urllib3==2.2.2
|
||||
uWSGI==2.0.27
|
||||
vine==5.1.0
|
||||
wcwidth==0.2.13
|
||||
WebOb==1.8.7
|
||||
WebOb==1.8.8
|
||||
Werkzeug==2.2.3
|
||||
wheel==0.41.2
|
||||
wheel==0.43.0
|
||||
wrapt==1.16.0
|
||||
xattr==0.10.1
|
||||
yappi==1.6.0
|
||||
zipp==3.17.0
|
||||
|
@ -5,7 +5,7 @@ bandit==1.6.0
|
||||
# chardet==3.0.4
|
||||
# fixtures==3.0.0
|
||||
flake8==3.8.4
|
||||
gabbi==1.35.1
|
||||
gabbi==2.8.0
|
||||
# jsonpickle==1.4.1
|
||||
# openstacksdk==0.36.5
|
||||
openstacksdk==0.36.5
|
||||
@ -21,9 +21,9 @@ pytest-cov
|
||||
python-subunit==1.4.0
|
||||
# requests==2.23.0
|
||||
# six==1.16.0
|
||||
stestr==3.2.0
|
||||
stestr==4.1.0
|
||||
testrepository==0.0.20
|
||||
# testtools==2.5.0
|
||||
tox>=3.28.0, <4.0.0
|
||||
tox>=3.28.0
|
||||
# urllib3==1.25.11
|
||||
# yq==3.2.1
|
31
tools/gate/playbooks/checkout-treasuremap-ref.yaml
Normal file
31
tools/gate/playbooks/checkout-treasuremap-ref.yaml
Normal 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 }}"
|
||||
|
||||
...
|
@ -15,4 +15,7 @@
|
||||
roles:
|
||||
- bindep
|
||||
- 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
|
||||
...
|
||||
|
@ -17,9 +17,9 @@
|
||||
become: yes
|
||||
roles:
|
||||
- install-test-requirements
|
||||
- ensure-tox
|
||||
- build-images
|
||||
- deploy-postgresql
|
||||
- generate-test-config
|
||||
- deploy-deckhand
|
||||
- run-functional-tests
|
||||
- run-functional-tests
|
||||
|
@ -16,4 +16,5 @@
|
||||
gather_facts: False
|
||||
roles:
|
||||
- install-test-requirements
|
||||
- ensure-tox
|
||||
- run-functional-tests
|
||||
|
@ -19,7 +19,7 @@ osh_params:
|
||||
container_distro_version: focal
|
||||
# feature_gates:
|
||||
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
|
||||
OSH_INFRA_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f
|
||||
OSH_COMMIT: 2d9457e34ca4200ed631466bd87569b0214c92e7
|
||||
|
@ -35,7 +35,7 @@
|
||||
FEATURE_GATES: "{{ osh_params.feature_gates | default('') }}"
|
||||
RUN_HELM_TESTS: "{{ run_helm_tests | default('yes') }}"
|
||||
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') }}"
|
||||
OSH_INFRA_COMMIT: "{{ OSH_INFRA_COMMIT | default('cfff60ec10a6c386f38db79bb9f59a552c2b032f') }}"
|
||||
OSH_COMMIT: "{{ OSH_COMMIT | default('2d9457e34ca4200ed631466bd87569b0214c92e7') }}"
|
||||
|
@ -19,12 +19,12 @@ osh_params:
|
||||
container_distro_version: focal
|
||||
# feature_gates:
|
||||
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
|
||||
OSH_INFRA_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f
|
||||
OSH_COMMIT: 2d9457e34ca4200ed631466bd87569b0214c92e7
|
||||
COREDNS_VERSION: v1.11.1
|
||||
DISTRO: ubuntu_focal
|
||||
DISTRO: ubuntu_jammy
|
||||
DOCKER_REGISTRY: quay.io
|
||||
MAKE_ARMADA_IMAGES: false
|
||||
MAKE_DECKHAND_IMAGES: false
|
||||
|
@ -32,7 +32,7 @@
|
||||
FEATURE_GATES: "{{ osh_params.feature_gates | default('') }}"
|
||||
RUN_HELM_TESTS: "{{ run_helm_tests | default('yes') }}"
|
||||
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') }}"
|
||||
OSH_INFRA_COMMIT: "{{ OSH_INFRA_COMMIT | default('cfff60ec10a6c386f38db79bb9f59a552c2b032f') }}"
|
||||
OSH_COMMIT: "{{ OSH_COMMIT | default('2d9457e34ca4200ed631466bd87569b0214c92e7') }}"
|
||||
|
@ -57,7 +57,7 @@
|
||||
# services in the integration script called below.
|
||||
sudo -E -H pip3 install -e . --verbose --use-pep517
|
||||
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
|
||||
args:
|
||||
|
@ -17,7 +17,7 @@
|
||||
set -x
|
||||
|
||||
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 {
|
||||
|
20
tox.ini
20
tox.ini
@ -1,9 +1,9 @@
|
||||
[tox]
|
||||
minversion = 3.28
|
||||
minversion = 3.10
|
||||
# Flag indicating to perform the packaging operation or not.
|
||||
# Set it to true when using tox for an application, instead of a library.
|
||||
skipsdist = True
|
||||
envlist = py38,py38-{postgresql},functional-dev,cover,pep8,bandit,docs
|
||||
envlist = py310,py310-{postgresql},functional-dev,cover,pep8,bandit,docs
|
||||
|
||||
[testenv]
|
||||
# Install the current package in development mode with develop mode
|
||||
@ -34,7 +34,7 @@ passenv =
|
||||
deps =
|
||||
-r{toxinidir}/requirements-frozen.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 =
|
||||
find . -type f -name "*.pyc" -delete
|
||||
rm -Rf .testrepository/times.dbm
|
||||
@ -54,13 +54,13 @@ allowlist_externals=
|
||||
sh
|
||||
deps=
|
||||
-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=
|
||||
rm -f 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 =
|
||||
stestr
|
||||
find
|
||||
@ -70,7 +70,7 @@ commands =
|
||||
stestr run {posargs}
|
||||
stestr slowest
|
||||
|
||||
[testenv:py38-postgresql]
|
||||
[testenv:py310-postgresql]
|
||||
commands =
|
||||
{[testenv]commands}
|
||||
bash {toxinidir}/tools/run_pifpaf.sh '{posargs}'
|
||||
@ -79,8 +79,8 @@ allowlist_externals =
|
||||
find
|
||||
rm
|
||||
|
||||
[testenv:py38-functional]
|
||||
basepython=python3.8
|
||||
[testenv:py310-functional]
|
||||
basepython=python3.10
|
||||
allowlist_externals =
|
||||
find
|
||||
stestr
|
||||
@ -92,8 +92,8 @@ commands =
|
||||
stestr --test-path deckhand/tests/common/ run --serial --slowest --force-subunit-trace --color {posargs}
|
||||
|
||||
|
||||
[testenv:py38-functional-dev]
|
||||
basepython=python3.8
|
||||
[testenv:py310-functional-dev]
|
||||
basepython=python3.10
|
||||
# Minimalistic functional test job for running Deckhand functional tests
|
||||
# via uwsgi. Uses pifpaf for DB instantiation. Useful for developers.
|
||||
# Requires PostgreSQL be installed on host.
|
||||
|
Loading…
Reference in New Issue
Block a user