Check that Nagios requires authentication
This change also improves the log messages by displaying the URLs of the tested services. Change-Id: Ib19e59046b060f0a406b62e95db7b6696e0e69e3
This commit is contained in:
@@ -47,29 +47,31 @@ class ElasticsearchPluginApi(base_test.PluginApi):
|
||||
def get_plugin_vip(self):
|
||||
return self.helpers.get_plugin_vip(self.settings.vip_name)
|
||||
|
||||
def get_elasticsearch_url(self, query=''):
|
||||
return "http://{}:9200/{}".format(self.get_plugin_vip(), query)
|
||||
def get_elasticsearch_url(self, path=''):
|
||||
return "http://{}:9200/{}".format(self.get_plugin_vip(), path)
|
||||
|
||||
def get_kibana_url(self):
|
||||
return "http://{}:80/".format(self.get_plugin_vip())
|
||||
|
||||
def check_plugin_online(self):
|
||||
logger.info("Check that Elasticsearch is ready")
|
||||
elasticsearch_url = self.get_elasticsearch_url()
|
||||
logger.info("Checking Elasticsearch service at {}".format(
|
||||
elasticsearch_url))
|
||||
msg = "Elasticsearch responded with {0}, expected {1}"
|
||||
self.checkers.check_http_get_response(
|
||||
self.get_elasticsearch_url(), msg=msg)
|
||||
self.checkers.check_http_get_response(elasticsearch_url, msg=msg)
|
||||
|
||||
logger.info("Check that Kibana is running")
|
||||
kibana_url = self.get_kibana_url()
|
||||
logger.info("Checking Kibana service at {}".format(kibana_url))
|
||||
msg = "Kibana responded with {0}, expected {1}"
|
||||
self.checkers.check_http_get_response(
|
||||
self.get_kibana_url(), msg=msg,
|
||||
kibana_url, msg=msg,
|
||||
auth=(self.settings.kibana_username,
|
||||
self.settings.kibana_password)
|
||||
)
|
||||
|
||||
def check_elasticsearch_nodes_count(self, expected_count):
|
||||
logger.debug("Get information about Elasticsearch nodes")
|
||||
url = self.get_elasticsearch_url(query='_nodes')
|
||||
url = self.get_elasticsearch_url(path='_nodes')
|
||||
response = self.checkers.check_http_get_response(url)
|
||||
nodes_count = len(response.json()['nodes'])
|
||||
|
||||
|
||||
@@ -38,11 +38,11 @@ class InfluxdbPluginApi(base_test.PluginApi):
|
||||
def get_plugin_vip(self):
|
||||
return self.helpers.get_plugin_vip(self.settings.vip_name)
|
||||
|
||||
def get_grafana_url(self, resource=''):
|
||||
return "http://{0}:8000/{1}".format(self.get_plugin_vip(), resource)
|
||||
def get_grafana_url(self, path=''):
|
||||
return "http://{0}:8000/{1}".format(self.get_plugin_vip(), path)
|
||||
|
||||
def get_influxdb_url(self, resource=''):
|
||||
return "http://{0}:8086/{1}".format(self.get_plugin_vip(), resource)
|
||||
def get_influxdb_url(self, path=''):
|
||||
return "http://{0}:8086/{1}".format(self.get_plugin_vip(), path)
|
||||
|
||||
def do_influxdb_query(self,
|
||||
query,
|
||||
@@ -56,6 +56,8 @@ class InfluxdbPluginApi(base_test.PluginApi):
|
||||
params={"db": db, "u": user, "p": password, "q": query})
|
||||
|
||||
def check_plugin_online(self):
|
||||
logger.info("InfluxDB service is at {}".format(
|
||||
self.get_influxdb_url()))
|
||||
logger.info("Check that the InfluxDB server replies to ping requests")
|
||||
self.checkers.check_http_get_response(
|
||||
url=self.get_influxdb_url('ping'),
|
||||
@@ -77,11 +79,13 @@ class InfluxdbPluginApi(base_test.PluginApi):
|
||||
user=plugin_settings.influxdb_rootuser,
|
||||
password=plugin_settings.influxdb_rootpass)
|
||||
|
||||
logger.info("Grafana service is at {}".format(
|
||||
self.get_grafana_url()))
|
||||
logger.info("Check that the Grafana UI server is running")
|
||||
self.checkers.check_http_get_response(
|
||||
self.get_grafana_url('login'))
|
||||
|
||||
logger.info("Check that the Grafana user is authorized")
|
||||
logger.info("Check that the Grafana admin user is authorized")
|
||||
self.checkers.check_http_get_response(
|
||||
self.get_grafana_url('api/org'),
|
||||
auth=(plugin_settings.grafana_user, plugin_settings.grafana_pass))
|
||||
|
||||
@@ -45,16 +45,30 @@ class InfraAlertingPluginApi(base_test.PluginApi):
|
||||
return self.helpers.get_plugin_vip(self.settings.vip_name)
|
||||
|
||||
def check_plugin_online(self):
|
||||
logger.info("Check that the Nagios server is running")
|
||||
self.checkers.check_http_get_response(self.get_nagios_url())
|
||||
nagios_url = self.get_nagios_url()
|
||||
logger.info("Nagios UI is at {}".format(nagios_url))
|
||||
logger.info("Check that the '{}' user is authorized".format(
|
||||
self.settings.nagios_user))
|
||||
self.checkers.check_http_get_response(
|
||||
nagios_url,
|
||||
auth=(self.settings.nagios_user, self.settings.nagios_password)
|
||||
)
|
||||
logger.info("Check that the Nagios UI requires authentication")
|
||||
self.checkers.check_http_get_response(
|
||||
nagios_url, expected_code=401,
|
||||
auth=(self.settings.nagios_user, 'rogue')
|
||||
)
|
||||
|
||||
def get_nagios_url(self):
|
||||
def get_authenticated_nagios_url(self):
|
||||
return "http://{0}:{1}@{2}:8001".format(self.settings.nagios_user,
|
||||
self.settings.nagios_password,
|
||||
self.get_plugin_vip())
|
||||
|
||||
def get_nagios_url(self):
|
||||
return "http://{}:8001/".format(self.get_plugin_vip())
|
||||
|
||||
def open_nagios_page(self, link_text, anchor):
|
||||
driver = self.ui_tester.get_driver(self.get_nagios_url(),
|
||||
driver = self.ui_tester.get_driver(self.get_authenticated_nagios_url(),
|
||||
"//frame[2]", "Nagios Core")
|
||||
driver.switch_to.default_content()
|
||||
driver.switch_to.frame(driver.find_element_by_name("side"))
|
||||
|
||||
Reference in New Issue
Block a user