56 lines
2.0 KiB
Python
Executable File
56 lines
2.0 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import amulet
|
|
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-gateway.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_gateway_external_interface(self):
|
|
pg_sentry = self.deployment.sentry['plumgrid-gateway/0']
|
|
pg_options = self.deployment.services['plumgrid-gateway']['options']
|
|
external_interface = pg_options['external-interface']
|
|
if not external_interface:
|
|
amulet.raise_status(
|
|
amulet.FAIL,
|
|
msg='plumgrid external-interface parameter was not found.')
|
|
output, code = pg_sentry.run("ethtool {}".format(external_interface))
|
|
if code != 0:
|
|
amulet.raise_status(
|
|
amulet.FAIL,
|
|
msg='external interface not found on the host')
|
|
|
|
def test_plumgrid_gateway_started(self):
|
|
pg_sentry = self.deployment.sentry['plumgrid-gateway/0']
|
|
agent_state = pg_sentry.info['agent-state']
|
|
if agent_state != 'started':
|
|
amulet.raise_status(
|
|
amulet.FAIL,
|
|
msg='plumgrid gateway is not in a started state')
|
|
|
|
def test_plumgrid_gateway_relation(self):
|
|
pg_sentry = self.deployment.sentry['plumgrid-gateway/0']
|
|
relation = pg_sentry.relation(
|
|
'plumgrid', 'plumgrid-director:plumgrid')
|
|
if not relation['private-address']:
|
|
amulet.raise_status(
|
|
amulet.FAIL, msg='Relation not found.')
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|