# Copyright 2018 Red Hat, Inc.
#
# 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.

import pytest

testinfra_hosts = ['nl01.opendev.org', 'nb01.opendev.org']


def test_clouds_yaml(host):
    cfg_file = '/etc/openstack/clouds.yaml'
    clouds_yaml = host.file(cfg_file)
    assert clouds_yaml.exists

    assert b'password' in clouds_yaml.content

def test_kube_config(host):
    if not host.backend.get_hostname().startswith('nl'):
        pytest.skip()
    kubeconfig = host.file('/home/nodepool/.kube/config')
    assert kubeconfig.exists

    assert b'nodepool_k8s_key' in kubeconfig.content

def test_launcher_container_running(host):
    if host.backend.get_hostname() != 'nl01.opendev.org':
        pytest.skip()

    cmd = host.run("docker ps -a --format '{{ .Names }}'")
    assert 'nodepool-docker_nodepool-launcher_1' in cmd.stdout

def test_builder_container_running(host):
    if host.backend.get_hostname() != 'nb01.opendev.org':
        pytest.skip()

    cmd = host.run("docker ps -a --format '{{ .Names }}'")
    assert 'nodepool-builder-compose_nodepool-builder_1' in cmd.stdout

def test_builder_webserver_running(host):
    if host.backend.get_hostname() != 'nb01.opendev.org':
        pytest.skip()

    apache = host.service('apache2')
    assert apache.is_running

    cmd = host.run('curl --insecure '
                   '--resolve nb01.opendev.org:443:127.0.0.1 '
                   'https://nb01.opendev.org/')
    assert 'Index of /' in cmd.stdout