Add template validation, fix categories
This commit is contained in:
parent
91ee360307
commit
bc26eb978e
@ -3,6 +3,8 @@ import cattle
|
|||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
|
import re
|
||||||
|
# import yaml
|
||||||
|
|
||||||
|
|
||||||
def _base():
|
def _base():
|
||||||
@ -49,12 +51,33 @@ def catalog_service(catalog_bin):
|
|||||||
return CatalogService(catalog_bin)
|
return CatalogService(catalog_bin)
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture(scope='session')
|
||||||
def client():
|
def client():
|
||||||
url = 'http://localhost:8088/v1-catalog/schemas'
|
url = 'http://localhost:8088/v1-catalog/schemas'
|
||||||
return cattle.from_env(url=url)
|
return cattle.from_env(url=url)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(scope='session')
|
||||||
|
def templates(client):
|
||||||
|
templates = client.list_template()
|
||||||
|
assert len(templates) > 0
|
||||||
|
return templates
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(scope='session')
|
||||||
|
def requests():
|
||||||
|
return requests.Session()
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(scope='session')
|
||||||
|
def template_details(client, templates):
|
||||||
|
for template in templates:
|
||||||
|
template.versionDetails = {}
|
||||||
|
for version, link in template.versionLinks.iteritems():
|
||||||
|
template.versionDetails[version] = client._get(link)
|
||||||
|
return templates
|
||||||
|
|
||||||
|
|
||||||
def test_validate_exits_normal(catalog_service):
|
def test_validate_exits_normal(catalog_service):
|
||||||
catalog_service.assert_retcode(
|
catalog_service.assert_retcode(
|
||||||
0, '-catalogUrl',
|
0, '-catalogUrl',
|
||||||
@ -62,6 +85,35 @@ def test_validate_exits_normal(catalog_service):
|
|||||||
'-validate', '-port', '18088')
|
'-validate', '-port', '18088')
|
||||||
|
|
||||||
|
|
||||||
def test_catalog_list(client):
|
def test_stack_name(templates):
|
||||||
templates = client.list_template()
|
hostname_label = re.compile(r'^[a-zA-Z0-9\-]{1,63}$')
|
||||||
assert len(templates) > 0
|
for template in templates:
|
||||||
|
# stack_name must be a valid hostname label
|
||||||
|
assert hostname_label.match(template.id.split(':')[-1].split('*')[-1])
|
||||||
|
|
||||||
|
|
||||||
|
def test_maintainers(templates):
|
||||||
|
maintainer = re.compile(r'^([\S]+ ){2,5}<[^@]+@[^@]+\.[^@]+>$')
|
||||||
|
for template in templates:
|
||||||
|
# Maintainer will soon be a requirement
|
||||||
|
# assert template.maintainer
|
||||||
|
if template.maintainer:
|
||||||
|
assert maintainer.match(template.maintainer)
|
||||||
|
|
||||||
|
|
||||||
|
def test_versions(templates):
|
||||||
|
for template in templates:
|
||||||
|
# default version must be defined
|
||||||
|
assert template.defaultVersion
|
||||||
|
# template with default version must be defined
|
||||||
|
assert template.versionLinks[template.defaultVersion]
|
||||||
|
|
||||||
|
|
||||||
|
def test_template_questions(template_details):
|
||||||
|
for template in template_details:
|
||||||
|
for _, template in template.versionDetails.iteritems():
|
||||||
|
# there must exist a rancher-compose.yml file
|
||||||
|
assert template.files['rancher-compose.yml']
|
||||||
|
# rancherConfig = yaml.load(template.files['rancher-compose.yml'])
|
||||||
|
# there must exist at least one question
|
||||||
|
# assert len(rancherConfig['.catalog']['questions']) > 0
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
cattle==0.5.1
|
cattle==0.5.3
|
||||||
|
pyyaml==3.11
|
||||||
|
|
||||||
flake8
|
flake8
|
||||||
pytest==2.3.5
|
pytest==2.8.7
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
name: "K8s Example Guestbook"
|
name: "K8s Example Guestbook"
|
||||||
description: "It's a guestbook"
|
description: "It's a guestbook"
|
||||||
version: 1.0.0
|
version: 1.0.0
|
||||||
category: Test
|
category: Blogging
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
name: "K8s Example WordPress"
|
name: "K8s Example WordPress"
|
||||||
description: "Blogging platform"
|
description: "Blogging platform"
|
||||||
version: 1.0.0
|
version: 1.0.0
|
||||||
category: "Blog tool, publishing platform and CMS"
|
category: Blogging
|
||||||
|
@ -2,4 +2,4 @@ name: Wordpress
|
|||||||
description: |
|
description: |
|
||||||
Blog tool, publishing platform and CMS
|
Blog tool, publishing platform and CMS
|
||||||
version: latest-rancher1
|
version: latest-rancher1
|
||||||
category: Blog
|
category: Blogging
|
||||||
|
@ -2,4 +2,4 @@ name: MongoDB
|
|||||||
description: |
|
description: |
|
||||||
MongoDB Replica Set.
|
MongoDB Replica Set.
|
||||||
version: 3.2-rancher1
|
version: 3.2-rancher1
|
||||||
category: Database
|
category: Databases
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
name: Alfresco
|
name: Alfresco
|
||||||
description: |
|
description: |
|
||||||
Slef hosted your EDM with Alfresco on few seconds.
|
An ECM and BPM platform.
|
||||||
version: 5.1.0
|
version: 5.1.0
|
||||||
category: EDM
|
category: EDM
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
.catalog:
|
.catalog:
|
||||||
name: Drone Rancher Node Manager
|
name: Drone Rancher Node Manager
|
||||||
version: 0.1.0-cloundautique1
|
version: 0.1.0-cloudnautique1
|
||||||
description: |
|
description: |
|
||||||
(Experimental) Poll Rancher Metadata for Drone Agents
|
(Experimental) Poll Rancher Metadata for Drone Agents
|
||||||
and add/remove nodes accordingly.
|
and add/remove nodes accordingly.
|
||||||
|
@ -2,5 +2,5 @@ name: Drone Rancher Node Manager
|
|||||||
description: |
|
description: |
|
||||||
(Experimental) Dynamically add remove Drone worker nodes
|
(Experimental) Dynamically add remove Drone worker nodes
|
||||||
version: 0.1.0-cloudnautique1
|
version: 0.1.0-cloudnautique1
|
||||||
category: "Continuous Integration"
|
category: Continuous Integration
|
||||||
minimum_rancher_version: v0.56.0
|
minimum_rancher_version: v0.56.0
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
.catalog:
|
.catalog:
|
||||||
name: "Elasticsearch"
|
name: "Elasticsearch"
|
||||||
version: "2.2.1-rancher1"
|
version: "2.2.2-rancher1"
|
||||||
description: "Elasticsearch. You know, for search"
|
description: "Elasticsearch. You know, for search"
|
||||||
questions:
|
questions:
|
||||||
- variable: cluster_name
|
- variable: cluster_name
|
||||||
|
@ -2,4 +2,4 @@ name: MariaDB Galera Cluster
|
|||||||
description: |
|
description: |
|
||||||
(Experimental) Synchronous multi-master cluster for MariaDB
|
(Experimental) Synchronous multi-master cluster for MariaDB
|
||||||
version: 10.0.22-rancher1
|
version: 10.0.22-rancher1
|
||||||
category: Database
|
category: Databases
|
||||||
|
@ -2,7 +2,7 @@ name: gocd-agent
|
|||||||
description: |
|
description: |
|
||||||
(Experimental) Gocd agent
|
(Experimental) Gocd agent
|
||||||
version: 16.2.1-rancher1
|
version: 16.2.1-rancher1
|
||||||
category: "Continuous Integration"
|
category: Continuous Integration
|
||||||
maintainer: "Raul Sanchez <rawmind@gmail.com>"
|
maintainer: "Raul Sanchez <rawmind@gmail.com>"
|
||||||
minimum_rancher_version: v0.59.0
|
minimum_rancher_version: v0.59.0
|
||||||
license:
|
license:
|
||||||
|
@ -2,7 +2,7 @@ name: gocd-server
|
|||||||
description: |
|
description: |
|
||||||
(Experimental) Gocd server
|
(Experimental) Gocd server
|
||||||
version: 16.2.1-rancher1
|
version: 16.2.1-rancher1
|
||||||
category: "Continuous Integration"
|
category: Continuous Integration
|
||||||
maintainer: "Raul Sanchez <rawmind@gmail.com>"
|
maintainer: "Raul Sanchez <rawmind@gmail.com>"
|
||||||
minimum_rancher_version: v0.59.0
|
minimum_rancher_version: v0.59.0
|
||||||
license:
|
license:
|
||||||
|
@ -2,6 +2,6 @@ name: Janitor
|
|||||||
description: |
|
description: |
|
||||||
Automatic cleanup of unused images on hosts, in order to save disk space.
|
Automatic cleanup of unused images on hosts, in order to save disk space.
|
||||||
version: v1.5.2
|
version: v1.5.2
|
||||||
category: monitoring
|
category: Monitoring
|
||||||
maintainer: Steve Shipway <s.shipway@auckland.ac.nz>
|
maintainer: Steve Shipway <s.shipway@auckland.ac.nz>
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
name: Apache Kafka
|
name: Apache Kafka
|
||||||
description: |
|
description: |
|
||||||
(Experimental) Kafka cluster
|
(Experimental) Kafka cluster
|
||||||
version: 0.8.2-rancher1
|
version: 0.9.0-rancher1
|
||||||
category: clustering
|
category: Clustering
|
||||||
maintainer: "Raul Sanchez <rawmind@gmail.com>"
|
maintainer: "Raul Sanchez <rawmind@gmail.com>"
|
||||||
minimum_rancher_version: v0.56.0
|
minimum_rancher_version: v0.56.0
|
||||||
license:
|
license:
|
||||||
|
@ -2,5 +2,5 @@ name: Minecraft
|
|||||||
description: |
|
description: |
|
||||||
Multiplayer block game for wasting lots of time
|
Multiplayer block game for wasting lots of time
|
||||||
version: v1.8
|
version: v1.8
|
||||||
category: entertainment
|
category: Entertainment
|
||||||
maintainer: Steve Shipway <s.shipway@auckland.ac.nz>
|
maintainer: Steve Shipway <s.shipway@auckland.ac.nz>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
.catalog:
|
.catalog:
|
||||||
name: "Nuxeo Platform"
|
name: "Nuxeo Platform"
|
||||||
version: "rancher-1.0"
|
version: 8.1-rancher1
|
||||||
description: |
|
description: |
|
||||||
Enterprise Content Management
|
Enterprise Content Management
|
||||||
Platform for Business Applications
|
Platform for Business Applications
|
||||||
|
@ -2,5 +2,5 @@ name: Nuxeo Platform
|
|||||||
description: |
|
description: |
|
||||||
Enterprise Content Management
|
Enterprise Content Management
|
||||||
Platform for Business Applications
|
Platform for Business Applications
|
||||||
version: 8.1
|
version: 8.1-rancher1
|
||||||
category: ECM
|
category: ECM
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
.catalog:
|
.catalog:
|
||||||
name: "Odoo"
|
name: "Odoo"
|
||||||
version: "0.1-educaas"
|
version: v0.1-educaas
|
||||||
description: "ERP management powered by Odoo"
|
description: "ERP management powered by Odoo"
|
||||||
uuid: odoo-0
|
uuid: odoo-0
|
||||||
questions:
|
questions:
|
||||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
@ -1,6 +1,6 @@
|
|||||||
.catalog:
|
.catalog:
|
||||||
name: "Taiga"
|
name: "Taiga"
|
||||||
version: "v0.1-educaas"
|
version: "v0.1-educaas1"
|
||||||
description: "Project management platform for agile developers"
|
description: "Project management platform for agile developers"
|
||||||
uuid: taiga-0
|
uuid: taiga-0
|
||||||
minimum_rancher_version: v0.51.0
|
minimum_rancher_version: v0.51.0
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
.catalog:
|
.catalog:
|
||||||
name: "Wordpress"
|
name: "Wordpress"
|
||||||
version: "v0.1-educaas"
|
version: "v0.1-educaas1"
|
||||||
description: "Blog tool, publishing platform and CMS"
|
description: "Blog tool, publishing platform and CMS"
|
||||||
uuid: Wordpress-0
|
uuid: Wordpress-0
|
||||||
minimum_rancher_version: v0.51.0
|
minimum_rancher_version: v0.51.0
|
||||||
|
@ -2,4 +2,4 @@ name: Wordpress
|
|||||||
description: |
|
description: |
|
||||||
Blog tool, publishing platform and CMS
|
Blog tool, publishing platform and CMS
|
||||||
version: v0.1-educaas1
|
version: v0.1-educaas1
|
||||||
category: Blog
|
category: Blogging
|
||||||
|
@ -2,7 +2,7 @@ name: Apache Zookeeper
|
|||||||
description: |
|
description: |
|
||||||
(Experimental) Zookeeper cluster
|
(Experimental) Zookeeper cluster
|
||||||
version: 3.4.6-rancher1
|
version: 3.4.6-rancher1
|
||||||
category: clustering
|
category: Clustering
|
||||||
maintainer: "Raul Sanchez <rawmind@gmail.com>"
|
maintainer: "Raul Sanchez <rawmind@gmail.com>"
|
||||||
minimum_rancher_version: v0.56.0
|
minimum_rancher_version: v0.56.0
|
||||||
license:
|
license:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user