# 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.


testinfra_hosts = ['eavesdrop01.opendev.org']


def test_eavesdrop(host):
    rules = host.iptables.rules()
    rules = [x.strip() for x in rules]

    web = ('-A openstack-INPUT -p tcp -m state --state NEW'
           ' -m tcp --dport 80 -j ACCEPT')
    assert web in rules
    gerritbot_matrix_prom = ('-A openstack-INPUT -p tcp -m state --state NEW'
                             ' -m tcp --dport 9001 -j ACCEPT')
    assert gerritbot_matrix_prom in rules

def test_gerritbot_logs(host):

    log_file = host.file('/var/log/containers/docker-gerritbot.log')
    # A simple check that docker-compose and our container did something
    # We expect auth to fail so check that it did
    assert log_file.contains("Authentication (publickey) failed")

def test_gerritbot_running(host):
    # Check that the container hasn't stopped
    cmd = host.run("docker ps -a")
    assert 'gerritbot-docker_gerritbot_1' in cmd.stdout
    assert 'Up ' in cmd.stdout

def test_statusbot_running(host):
    # Check that the container hasn't stopped
    cmd = host.run("docker ps -a")
    assert 'statusbot-docker_statusbot_1' in cmd.stdout
    assert 'Up ' in cmd.stdout

def test_ptgbot(host):
    cmd = host.run('curl --insecure '
                   '--resolve ptg.opendev.org:443:127.0.0.1 '
                   'https://ptg.opendev.org/')
    assert 'Project Teams Gathering' in cmd.stdout