Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
git clone https://github.com/Hawkular-QE/cf-ui.git
cd cf-ui
./setup.sh
source .cf-ui/bin/activate
```
## Configuration
```shell
Expand All @@ -13,7 +14,9 @@ Edit the following property values in the conf/properties.properties file so tha
MIQ_HOSTNAME=
HAWKULAR_HOSTNAME=
HAWKULAR_PORT=

OPENSHIFT_HOSTNAME=
OPENSHIFT_USERNAME=
OPENSHIFT_PASSWORD=
```
### Using Chrome web driver
Chrome driver is by default installed into .cf-ui directory and it is necessary to set PATH to it so Python Interpreter would know where to find the driver.
Expand Down
23 changes: 5 additions & 18 deletions common/db.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ class db():
sql_domains = 'select * from middleware_domains'
sql_server_groups = 'select * from middleware_server_groups'
sql_messagings = 'select * from middleware_messagings'
sql_containers = "select * from middleware_servers where lives_on_type LIKE '%Container%'"

def __init__(self, web_session, miq_ip = None, username = None, password = None, db_port = None):

Expand Down Expand Up @@ -85,29 +86,15 @@ def get_messagings(self):
return self.execute(self.sql_messagings)

# Container Provider
def get_container_providers(self):
providers = []
rows = self.execute(self.sql_providers)

for row in rows:
if 'ContainerManager' in row.get('type'):
providers.append(row)

return providers

def is_container_provider_present(self):
def is_container_provider_present(self, name):
rows = self.execute(self.sql_providers)

if len(rows) == 0:
self.get_container_module()

for row in rows:
if (self.web_session.OPENSHIFT_HOSTNAME in row.get('name')) \
or (self.web_session.OPENSHIFT_PROVIDER_NAME in row.get('name')):
if name in row.get('name'):
return True

return False

def get_container_nodes(self):
return self.execute(self.sql_container_nodes)

def get_container_servers(self):
return self.execute(self.sql_containers)
41 changes: 23 additions & 18 deletions scripts/automation/docker/deploy-eap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,23 @@
remote_user: root

vars:
OS_URL:

OS_USERNAME:
OS_PASSWORD:
OS_PROJECT:
# Set to "yes" to delete project or leave undefined to not delete project
OS_DELETE_PROJECT:

OC: "/usr/bin/oc"

EAP_APP:
EAP_IMAGE: "jboss-eap-7/eap70-openshift"

HAWKULAR_REST_URL:
HAWKULAR_REST_USER: "jdoe"
HAWKULAR_REST_PASSWORD: "password"

tasks:
- block:
- name: Set Facts
set_fact:
OS_URL: "{{os_url}}"
OS_USERNAME: "{{os_username}}"
OS_PASSWORD: "{{os_password}}"
OS_PROJECT: "{{os_project}}"
OS_DELETE_PROJECT: "{{os_delete_proeject}}"
EAP_APP: "{{eap_app}}"
HAWKULAR_REST_URL: "{{hawkular_rest_url}}"
HAWKULAR_REST_USERNAME: "{{hawkular_rest_username}}"
HAWKULAR_REST_PASSWORD: "{{hawkular_rest_password}}"

- block:
- name: Check OS_URL
shell: "echo {{OS_URL}}"
Expand All @@ -39,6 +38,12 @@
shell: "echo {{HAWKULAR_REST_URL}}"
failed_when: (echo.stdout|length == 0)

- block:
- name: Check 'oc' version is v3.5
shell: "{{OC}} version"
register: version
failed_when: "('v3.5' not in version.stdout)"

- block:
- name: Login to "{{OS_URL}}"
shell: "{{OC}} login {{OS_URL}} -u={{OS_USERNAME}} -p={{OS_PASSWORD}} --insecure-skip-tls-verify"
Expand All @@ -49,14 +54,14 @@
- name: Detete Project "{{OS_PROJECT}}"
shell: "{{OC}} delete project {{OS_PROJECT}}"
register: delete_project
when: OS_DELETE_PROJECT != 'yes'
when: OS_DELETE_PROJECT == 'yes'
failed_when: "('Now using project' not in delete_project.stdout) and ('not found' in delete_project.stdout)"

- block:
- name: Wait for Project "{{OS_PROJECT}}" to be deleted
shell: "{{OC}} get project {{OS_PROJECT}}"
register: get_project
when: OS_DELETE_PROJECT != 'yes'
when: OS_DELETE_PROJECT == 'yes'
failed_when: (get_project.stderr.find("Error from server") == -1) and (get_project.stdout.find("Terminating") == -1)
until: ("Error from server" in get_project.stderr)
retries: 100
Expand All @@ -72,11 +77,11 @@
- name: Oc Project "{{OS_PROJECT}}"
shell: "{{OC}} project {{OS_PROJECT}}"
register: oc_project
failed_when: "('Now using project' not in oc_project.stdout) or ('does not exist on' in oc_project.stdout)"
failed_when: "('Already on project' not in oc_project.stdout) and ('Now using project' not in oc_project.stdout)"

- block:
- name: Deploy App {{EAP_APP}}
shell: '{{OC}} process -f {{EAP_APP}} -v "AB_HAWKULAR_REST_URL={{HAWKULAR_REST_URL}},AB_HAWKULAR_REST_USER={{HAWKULAR_REST_USER}},AB_HAWKULAR_REST_PASSWORD={{HAWKULAR_REST_PASSWORD}},IMAGE={{EAP_IMAGE}}" | {{OC}} create -f -'
shell: '{{OC}} process -f {{EAP_APP}} -p AB_HAWKULAR_REST_URL={{HAWKULAR_REST_URL}} -p AB_HAWKULAR_REST_USER={{HAWKULAR_REST_USERNAME}} -p AB_HAWKULAR_REST_PASSWORD={{HAWKULAR_REST_PASSWORD}} -p IMAGE={{EAP_IMAGE}} | {{OC}} create -f -'

- block:
- name: Wait for deploy complete
Expand Down
33 changes: 22 additions & 11 deletions scripts/automation/docker/deploy-hawkular.yaml
Original file line number Diff line number Diff line change
@@ -1,23 +1,27 @@
---
- hosts: [OpenShiftServers]
---
-
hosts:
- OpenShiftServers
remote_user: root

vars:
OS_URL:
OS_USERNAME:
OS_PASSWORD:
OS_PROJECT:

OC: "/usr/bin/oc"

HAWKULAR_APP: "https://raw.githubusercontent.com/hawkular/hawkular-services/master/openshift/hawkular-services-ephemeral.yaml"
HAWKULAR_IMAGE: 'jboss-mm-7-tech-preview/middleware-manager'
HAWKULAR_IMAGE: "jboss-mm-7-tech-preview/middleware-manager"
HAWKULAR_USERNAME: "jdoe"
HAWKULAR_PASSWORD: "password"
HAWKULAR_TEST_MODE: "true"
HAWKULAR_ROUTE_FILE: "./hawkular-route.txt"

tasks:
- block:
- name: Set Facts
set_fact:
OS_URL: "{{os_url}}"
OS_USERNAME: "{{os_username}}"
OS_PASSWORD: "{{os_password}}"
OS_PROJECT: "{{os_project}}"

- block:
- name: Check OS_URL
shell: "echo {{OS_URL}}"
Expand All @@ -33,6 +37,12 @@
shell: "echo {{OS_PROJECT}}"
failed_when: (echo.stdout|length == 0)

- block:
- name: Check 'oc' version is v3.5
shell: "{{OC}} version"
register: version
failed_when: "('v3.5' not in version.stdout)"

- block:
- name: Login to "{{OS_URL}}"
shell: "{{OC}} login {{OS_URL}} -u={{OS_USERNAME}} -p={{OS_PASSWORD}} --insecure-skip-tls-verify"
Expand All @@ -58,11 +68,11 @@
- name: Create New Project "{{OS_PROJECT}}"
shell: "{{OC}} new-project {{OS_PROJECT}}"
register: new_project
failed_when: (new_project.stdout.find("Now using project") == -1)
failed_when: (new_project.stdout.find("Now using project") == -1) and (new_project.stdout.find("Already on project") == -1)

- block:
- name: Deploy App "{{HAWKULAR_APP}}"
shell: '{{OC}} process -f {{HAWKULAR_APP}} -v "HAWKULAR_SERVICES_IMAGE={{HAWKULAR_IMAGE}},HAWKULAR_USER={{HAWKULAR_USERNAME}},HAWKULAR_PASSWORD={{HAWKULAR_PASSWORD}},TEST_MODE={{HAWKULAR_TEST_MODE}}" | {{OC}} create -f -'
shell: '{{OC}} process -f {{HAWKULAR_APP}} -p HAWKULAR_SERVICES_IMAGE={{HAWKULAR_IMAGE}} -p HAWKULAR_USER={{HAWKULAR_USERNAME}} -p HAWKULAR_PASSWORD={{HAWKULAR_PASSWORD}} | {{OC}} create -f -'

- block:
- name: Wait for deploy complete
Expand All @@ -84,3 +94,4 @@
- name: Writing Route "{{get_route.stdout}}" to file "{{HAWKULAR_ROUTE_FILE}}"
copy: content="{{get_route.stdout}}" dest={{HAWKULAR_ROUTE_FILE}}


2 changes: 0 additions & 2 deletions scripts/automation/docker/hosts

This file was deleted.

14 changes: 14 additions & 0 deletions scripts/automation/docker/inventory-eap
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
[OpenShiftServers]
<IP of 'oc' host>

[OpenShiftServers:vars]
os_url="https://changeme.openshift.ui.com:8443"
os_username="username"
os_password="password"
os_project="openshift-project"
os_delete_proeject='no'
eap_app="openshift-eap-7-hawkular-agent-template.yaml"
hawkular_rest_url="http://hawkular-services.com"
hawkular_rest_username="jdoe"
hawkular_rest_password="password"

9 changes: 9 additions & 0 deletions scripts/automation/docker/inventory-hawkular
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[OpenShiftServers]
<IP of 'oc' host>

[OpenShiftServers:vars]
os_url="https://changeme.openshift.ui.com:8443"
os_username="username"
os_password="password"
os_project="openshift-project"

13 changes: 13 additions & 0 deletions tests/test_openshift_provider.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
import pytest
from common.session import session
from views.mm_openshift_provider import mm_openshift_providers
from views.eap_crosslink import eap_crosslink
from views.topology_crosslink import topology_crosslink
from views.providers import providers
from views.eap_crosslink import eap_crosslink


@pytest.fixture (scope='session')
Expand All @@ -13,3 +17,12 @@ def web_session(request):
def test_cfui_add_provider(web_session):
provs = mm_openshift_providers(web_session)
provs.add_mm_openshift_provider()

def test_cfui_eap_crosslink(web_session):
provs = eap_crosslink(web_session)
provs.crosslink_eap()

def test_cfui_topology_crosslink(web_session):
provs= topology_crosslink(web_session)
provs.crosslink_topology()

8 changes: 7 additions & 1 deletion tests/test_topology.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import pytest
from common.session import session
from views.topology import topology

from common.db import db

@pytest.fixture (scope='session')
def web_session(request):
Expand Down Expand Up @@ -37,3 +37,9 @@ def test_cfui_domains_entities(web_session):

def test_cfui_messaging_entities(web_session):
assert topology(web_session).validate_middleware_messaging_entities()

def test_cfui_container_entities(web_session):
if not db(web_session).is_container_provider_present(web_session.OPENSHIFT_PROVIDER_NAME):
pytest.skip("Skip test - No Container Provider found.")
assert topology(web_session).validate_middleware_container_entities()

35 changes: 35 additions & 0 deletions views/eap_crosslink.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
from common.ui_utils import ui_utils
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from hawkular.hawkular_api import hawkular_api
from common.view import view
from common.db import db
from common.openshift_utils import openshift_utils
import time
from common.timeout import timeout

class eap_crosslink():
web_session = None
MIQ_BASE_VERSION = "master"
ui_utils = None

def __init__(self, web_session):
self.web_session = web_session
self.web_driver = web_session.web_driver
self.hawkular_api = hawkular_api(self.web_session)

def crosslink_eap(self):
self.web_session.web_driver.get("{}/middleware_server/show_list".format(self.web_session.MIQ_URL))
ui_utils(self.web_session).sleep(10)
assert ui_utils(self.web_session).waitForTextOnPage("Middleware Servers", 40)
self.web_driver.find_element_by_xpath("//span[contains(.,'Local')]").click()
assert ui_utils(self.web_session).waitForTextOnPage("Local (Summary)", 15)
self.web_driver.find_element_by_xpath("//td[contains(.,'Underlying Container')]").click()
assert ui_utils(self.web_session).waitForTextOnPage("hawkular-services (Summary)", 15)
self.web_driver.find_element_by_xpath("//td[contains(.,'Containers Provider')]").click()
assert ui_utils(self.web_session).waitForTextOnPage("Aggregated Node Utilization", 15)

return True


Loading