40 lines
1.7 KiB
Python
Executable File
40 lines
1.7 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import amulet
|
|
import requests
|
|
import unittest
|
|
|
|
class TestDeployment(unittest.TestCase):
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
cls.deployment = amulet.Deployment(series='trusty')
|
|
cls.deployment.load_bundle_file(bundle_file='files/plumgrid-director.yaml', deployment_name='test')
|
|
try:
|
|
cls.deployment.setup(timeout=2000)
|
|
cls.deployment.sentry.wait()
|
|
except amulet.helpers.TimeoutError:
|
|
amulet.raise_status(amulet.SKIP, msg="Environment wasn't stood up in time")
|
|
except:
|
|
raise
|
|
|
|
def test_plumgrid_director_gui(self):
|
|
plumgrid_vip = self.deployment.services['plumgrid-director']['options']['plumgrid-virtual-ip']
|
|
if not plumgrid_vip:
|
|
amulet.raise_status(amulet.FAIL, msg='plumgrid virtual ip was not found.')
|
|
gui_req = requests.get("https://{}/".format(plumgrid_vip), verify=False)
|
|
if not gui_req.ok:
|
|
amulet.raise_status(amulet.FAIL, msg='unable to access plumgrid gui.')
|
|
|
|
def test_plumgrid_director_started(self):
|
|
agent_state = self.deployment.sentry['plumgrid-director/0'].info['agent-state']
|
|
if agent_state != 'started':
|
|
amulet.raise_status(amulet.FAIL, msg='plumgrid director is not in a started state')
|
|
|
|
def test_plumgrid_director_relation(self):
|
|
relation = self.deployment.sentry['plumgrid-director/0'].relation('plumgrid-plugin', 'neutron-iovisor:plumgrid-plugin')
|
|
if not relation['private-address']:
|
|
amulet.raise_status(amulet.FAIL, msg='private address was not set in the plumgrid director relation')
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|