Browse Source

fix #2: implement support for basePath

pull/25/head
Nicolas Massé 8 years ago
parent
commit
13b2659290
  1. 2
      tasks/read_openapi_file.yml
  2. 2
      tasks/update_mapping_rules.yml
  3. 14
      tests/3scale-saas-with-hosted-apicast-with-basePath.yml
  4. 36
      tests/api/echo-api-with-basePath.yaml

2
tasks/read_openapi_file.yml

@ -185,5 +185,5 @@
when: 'threescale_cicd_openapi_smoketest_operation is defined and threescale_cicd_openapi_smoketest_operation|length > 0'
- set_fact:
threescale_cicd_openapi_smoketest_path: '{{ threescale_cicd_api_operations[threescale_cicd_openapi_smoketest_operation].path }}'
threescale_cicd_openapi_smoketest_path: '{{ threescale_cicd_api_basepath }}{{ threescale_cicd_api_operations[threescale_cicd_openapi_smoketest_operation].path }}'
when: 'threescale_cicd_openapi_smoketest_operation is defined and threescale_cicd_openapi_smoketest_operation|length > 0'

2
tasks/update_mapping_rules.yml

@ -13,7 +13,7 @@
- name: Build a list of our expected/wanted mapping rules
set_fact:
threescale_cicd_tmp_wanted_mapping_rules: '{{ threescale_cicd_tmp_wanted_mapping_rules|combine({ threescale_cicd_tmp_operation.key: { "http_method": threescale_cicd_tmp_operation.value.verb.upper(), "pattern": threescale_cicd_tmp_operation.value.path ~ "$", "delta": 1 } }) }}'
threescale_cicd_tmp_wanted_mapping_rules: '{{ threescale_cicd_tmp_wanted_mapping_rules|combine({ threescale_cicd_tmp_operation.key: { "http_method": threescale_cicd_tmp_operation.value.verb.upper(), "pattern": threescale_cicd_api_basepath ~ threescale_cicd_tmp_operation.value.path ~ "$", "delta": 1 } }) }}'
with_dict: '{{ threescale_cicd_api_operations }}'
loop_control:
loop_var: threescale_cicd_tmp_operation

14
tests/3scale-saas-with-hosted-apicast-with-basePath.yml

@ -0,0 +1,14 @@
---
- name: Deploy the Echo API to a 3scale SaaS instance, with hosted APIcasts
hosts: threescale
gather_facts: no
vars:
threescale_cicd_openapi_file: '{{ playbook_dir }}/api/echo-api-with-basePath.yaml'
roles:
# Test first deployment
- { role: 'nmasse-itix.threescale-cicd', vars: { 'round': 1 } }
# Verify idempotence
- { role: 'nmasse-itix.threescale-cicd', vars: { 'round': 2 } }
post_tasks:
- import_tasks: 'cleanup.yaml'

36
tests/api/echo-api-with-basePath.yaml

@ -0,0 +1,36 @@
swagger: '2.0'
info:
x-threescale-system-name: 'echo-api-with-basepath'
title: 'Echo API'
description: 'A very simple API.'
contact:
name: 'Nicolas MASSE'
url: 'http://github.com/nmasse-itix'
email: nmasse@redhat.com
license:
name: 'MIT License'
url: 'https://opensource.org/licenses/MIT'
version: '1.0'
host: 'echo-api.3scale.net'
basePath: '/test-base'
schemes:
- http
paths:
/echo:
get:
operationId: Echo
tags:
- echo
summary: 'Get an echo'
description: 'Get an echo from the server'
x-threescale-smoketests-operation: true
responses:
200:
description: 'An Echo from the server'
security:
- apikey: []
securityDefinitions:
apikey:
name: api-key
in: header
type: apiKey
Loading…
Cancel
Save