Skip to content
Snippets Groups Projects
Commit fb51d7d9 authored by Varac's avatar Varac
Browse files

Merge branch '119_test_certs' into 'master'

119 test certs

Closes #119 and #122

See merge request openappstack/bootstrap!58
parents 53362b30 88388ef1
Branches
Tags
No related merge requests found
......@@ -61,7 +61,19 @@ testinfra:
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
- cd test/
- py.test -v --connection=ansible --ansible-inventory=./inventory.yml --hosts='ansible://*'
- py.test -v -m 'testinfra' --connection=ansible --ansible-inventory=./inventory.yml --hosts='ansible://*'
certs:
stage: test
image: "${CI_REGISTRY_IMAGE}/bootstrap-ci"
variables:
OAS_DOMAIN: 'ci-${CI_PIPELINE_ID}.ci.openappstack.net'
allow_failure: true
script:
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
- cd test/
- py.test -v -m 'certs' --connection=ansible --ansible-inventory=./inventory.yml --hosts='ansible://*'
terminate:
stage: cleanup
......
FROM alpine:3.9
LABEL Name="Openappstack bootstrap CI test image"
LABEL version="3.9"
LABEL name="Openappstack bootstrap CI test image"
LABEL version="4.0"
LABEL vendor1="Greenhost"
RUN apk --no-cache add \
chromium \
chromium-chromedriver \
curl \
# needed for installing pycurl python module
curl-dev \
gcc \
libffi-dev \
make \
......
#!/usr/bin/env python3
"""Validates remote TLS certs."""
import pycurl
import certifi
from io import BytesIO
import os
import pytest
def check_cert_url(url: str):
print('Testing URL: ', url)
buffer = BytesIO()
c = pycurl.Curl()
c.setopt(c.URL, url)
c.setopt(c.WRITEDATA, buffer)
c.setopt(c.CAINFO, certifi.where())
c.setopt(c.VERBOSE, True)
try:
c.perform()
valid_cert = True
except pycurl.error as e:
valid_cert = False
print('Cert error!')
if e.args[0] == pycurl.E_COULDNT_CONNECT and c.exception:
print(c.exception)
else:
print(e)
c.close()
return valid_cert
@pytest.mark.certs
def test_cert_validation(host):
domain = os.environ.get("OAS_DOMAIN")
assert domain, "Please export OAS_DOMAIN as environment variable."
# Check traefik cert
assert check_cert_url('https://traefi.%s/' % domain)
import pytest
@pytest.mark.testinfra
def test_docker_is_installed(host):
docker = host.package("docker-ce")
assert docker.is_installed
assert docker.version.startswith("5:18.09")
@pytest.mark.testinfra
def test_docker_running_and_enabled(host):
docker = host.service("docker")
assert docker.is_running
......
import pytest
@pytest.mark.testinfra
def test_release_is_bionic(host):
system_info = host.system_info
assert system_info.release == '9.8'
ansible~=2.6.0
behave-webdriver>=0.2.2
# Needed for ansible k8s resource
openshift>=0.8.6
psutil>=5.5.0
pycurl>=7.43.0.2
pytest>=4.3.0
requests>=2.19.1
tabulate>=0.8.3
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment