tripleo-common/workbooks/swift.yaml

50 lines
1.6 KiB
YAML

---
version: '2.0'
name: tripleo.swift.v1
description: TripleO Swift Utility Workflows
workflows:
container_exists:
description: >-
Verify if a Swift container exists
Given the name of a Swift container this workflow will verify if it
already exists. The workflow will ERROR if it doesn't and end in
SUCCESS if it does.
If create_container: true is passed in, then the container will be
created if it doesn't exist. In this case, if the workflow fails the
container failed to create.
input:
- container
- headers: {}
- create_container: false
tags:
- tripleo-common-managed
tasks:
# We use the "prefix" input to only list the containers starting with
# the container name we want to find. There is no way to do an exact
# match, but this will greatly reduce the possible number of results.
get_containers:
action: swiftservice.list
input:
options:
prefix: <% $.container %>
publish:
container_exists: <% bool(task().result) and $.container in task().result[0].listing.name %>
create_input: <% $.headers and {"container" => $.container, "headers" => $.headers} or {"container" => $.container} %>
on-success:
- succeed: <% $.container_exists %>
- fail: <% not $.create_container and not $.container_exists %>
- create_container: <% $.create_container and not $.container_exists %>
create_container:
action: swift.put_container
input: <% $.create_input %>