github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/acceptancetests/repository/charms/ubuntu/tests/10-deploy-test.py (about) 1 #!/usr/bin/python3 2 3 # This Amulet based tests 4 # The goal is to ensure the Ubuntu charm 5 # successfully deploys and can be accessed. 6 # Note the Ubuntu charm does not have any 7 # relations or config options. 8 9 import amulet 10 #import os 11 #import requests 12 13 # Timeout value, in seconds to deploy the environment 14 seconds = 900 15 16 # Set up the deployer module to interact and set up the environment. 17 d = amulet.Deployment() 18 19 # Define the environment in terms of charms, their config, and relations. 20 21 # Add the Ubuntu charm to the deployment. 22 d.add('ubuntu') 23 24 # Deploy the environment currently defined 25 try: 26 # Wait the defined about amount of time to deploy the environment. 27 # Setup makes sure the services are deployed, related, and in a 28 # "started" state. 29 d.setup(timeout=seconds) 30 # Use a sentry to ensure there are no remaining hooks being execute 31 # on any of the nodes 32 ## d.sentry.wait() 33 except amulet.helpers.TimeoutError: 34 # Pending the configuration the test will fail or be skipped 35 # if not deployed properly. 36 error_message = 'The environment did not deploy in %d seconds.' % seconds 37 amulet.raise_status(amulet.SKIP, msg=error_message) 38 except: 39 # Something else has gone wrong, raise the error so we can see it and this 40 # will automatically "FAIL" the test. 41 raise 42 43 # Access the Ubuntu instance to ensure it has been deployed correctly 44 45 # Define the commands to be ran 46 lsb_release_command = 'cat /etc/lsb-release' 47 uname_command = 'uname -a' 48 49 # Cat the release information 50 output, code = d.sentry.unit['ubuntu/0'].run(lsb_release_command) 51 # Confirm the lsb-release command was ran successfully 52 if (code != 0): 53 error_message = 'The ' + lsb_release_command + ' did not return the expected return code of 0.' 54 print(output) 55 amulet.raise_status(amulet.FAIL, msg=error_message) 56 else: 57 message = 'The lsb-release command successfully executed.' 58 print(output) 59 print(message) 60 61 # Get the uname -a output 62 output, code = d.sentry.unit['ubuntu/0'].run(uname_command) 63 # Confirm the uname command was ran successfully 64 if (code != 0): 65 error_message = 'The ' + uname_command + ' did not return the expected return code of 0.' 66 print(output) 67 amulet.raise_status(amulet.FAIL, msg=error_message) 68 else: 69 message = 'The uname command successfully executed.' 70 print(output) 71 print(message)