Swann Croiset 1bac5769e9 Use standard HTTP ports for UI
All StackLight plugins will switch to use standard HTTP ports for their
UI (Kibana, Grafana and Nagios UI). This change checks whether Grafana
and Nagios use the old (non-standard) ports, if not the tests will use
the standard port numbers.
This avoids breaking the CI after the patches have landed in the
respective plugin repositories.


Co-Authored-By: Simon Pasquier <spasquier@mirantis.com>

Change-Id: Id94cae82b2bea92e049975ccc9e91e4383f52931
2016-07-11 15:12:50 +00:00

74 lines
2.4 KiB
Python

# Copyright 2016 Mirantis, 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.
from contextlib import closing
import socket
from proboscis import asserts
import requests
from stacklight_tests.helpers import remote_ops
def check_http_get_response(url, expected_code=200, msg=None, **kwargs):
"""Perform a HTTP GET request and assert that the HTTP server replies with
the expected code.
:param url: the requested URL
:type url: str
:param expected_code: the expected HTTP response code. Defaults to 200
:type expected_code: int
:param msg: the assertion message. Defaults to None
:type msg: str
:returns: HTTP response object
:rtype: requests.Response
"""
msg = msg or "%s responded with {0}, expected {1}" % url
r = requests.get(url, **kwargs)
asserts.assert_equal(
r.status_code, expected_code, msg.format(r.status_code, expected_code))
return r
def check_process_count(remote, process, count):
"""Check that the expected number of processes is running on a host.
:param remote: SSH connection to the node.
:type remote: SSHClient
:param process: the process name to match.
:type process: str
:param count: the number of processes to match.
:type count: int
:returns: list of PIDs.
:rtype: list
"""
msg = "Got {got} instances instead of {count} for process {process}."
pids = remote_ops.get_pids_of_process(remote, process)
asserts.assert_equal(
len(pids), count,
msg.format(process=process, count=count, got=len(pids)))
return pids
def check_port(address, port):
"""Check whether or not a TCP port is open.
:param address: server address
:type address: str
:param port: server port
:type port: str
"""
with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as sock:
return sock.connect_ex((address, port)) == 0