Added some documentation and improved logging in Blackbox

This commit is contained in:
Shay Nehmad 2019-10-06 15:05:34 +03:00
parent b7d28cc86e
commit dde2e1a7e4
3 changed files with 22 additions and 2 deletions

View File

@ -3,3 +3,17 @@
1. Download google sdk: https://cloud.google.com/sdk/docs/ 1. Download google sdk: https://cloud.google.com/sdk/docs/
2. Download service account key for MonkeyZoo project (if you deployed MonkeyZoo via terraform scripts then you already have it). 2. Download service account key for MonkeyZoo project (if you deployed MonkeyZoo via terraform scripts then you already have it).
GCP console -> IAM -> service accounts(you can use the same key used to authenticate terraform scripts) GCP console -> IAM -> service accounts(you can use the same key used to authenticate terraform scripts)
3. Deploy the relevant branch + complied executables to the Island machine on GCP.
### Running the tests
In order to execute the entire test suite, you must know the external IP of the Island machine on GCP. You can find
this information in the GCP Console `Compute Engine/VM Instances` under _External IP_.
#### Running in command line
Run the following command:
`monkey\envs\monkey_zoo\blackbox>python -m pytest --island=35.207.152.72:5000 test_blackbox.py`
#### Running in PyCharm
Configure a PyTest configuration with the additional argument `--island=35.207.152.72` on the
`monkey\envs\monkey_zoo\blackbox`.

View File

@ -16,8 +16,9 @@ class MonkeyIslandRequests(object):
def try_get_jwt_from_server(self): def try_get_jwt_from_server(self):
try: try:
return self.get_jwt_from_server() return self.get_jwt_from_server()
except requests.ConnectionError: except requests.ConnectionError as err:
LOGGER.error("Unable to connect to island, aborting!") LOGGER.error(
"Unable to connect to island, aborting! Error information: {}. Server: {}".format(err, self.addr))
assert False assert False
def get_jwt_from_server(self): def get_jwt_from_server(self):

View File

@ -26,6 +26,11 @@ class GCPHandler(object):
LOGGER.error("GCP Handler failed to initialize: %s." % e) LOGGER.error("GCP Handler failed to initialize: %s." % e)
def start_machines(self, machine_list): def start_machines(self, machine_list):
"""
Start all the machines in the list.
:param machine_list: A space-separated string with all the machine names. Example:
start_machines(`" ".join(["elastic-3", "mssql-16"])`)
"""
LOGGER.info("Setting up all GCP machines...") LOGGER.info("Setting up all GCP machines...")
try: try:
subprocess.call((GCPHandler.MACHINE_STARTING_COMMAND % (machine_list, self.zone)), shell=True) subprocess.call((GCPHandler.MACHINE_STARTING_COMMAND % (machine_list, self.zone)), shell=True)