forked from p15670423/monkey
Added a pytest to test compatibility, fixed typo in folder name
This commit is contained in:
parent
f2c7b1a32b
commit
48dcc88035
|
@ -26,3 +26,10 @@ Launch the environment by going into `terraform` folder and running
|
||||||
terraform init
|
terraform init
|
||||||
terraform apply
|
terraform apply
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
1. Launch os_compat_ISLAND machine and upload your binaries/update island
|
||||||
|
2. Launch/Reboot all other os_compat test machines
|
||||||
|
3. Wait until machines boot and run monkey
|
||||||
|
4. Launch `test_compatibility.py` pytest script with island ip parameter
|
||||||
|
(e.g. `test_compatibility.py --island 111.111.111.111:5000`)
|
|
@ -0,0 +1,11 @@
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
|
||||||
|
def pytest_addoption(parser):
|
||||||
|
parser.addoption("--island", action="store", default="",
|
||||||
|
help="Specify the Monkey Island address (host+port).")
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(scope='module')
|
||||||
|
def island(request):
|
||||||
|
return request.config.getoption("--island")
|
|
@ -1,3 +1,7 @@
|
||||||
|
// Instances of machines in os_compat environment
|
||||||
|
// !!! Don't forget to add machines to test_compatibility.py if you add here !!!
|
||||||
|
|
||||||
|
|
||||||
resource "aws_instance" "island" {
|
resource "aws_instance" "island" {
|
||||||
ami = "ami-01cc9554aa0b4c00e"
|
ami = "ami-01cc9554aa0b4c00e"
|
||||||
instance_type = "t2.micro"
|
instance_type = "t2.micro"
|
|
@ -0,0 +1,64 @@
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
from envs.monkey_zoo.blackbox.island_client.monkey_island_client import MonkeyIslandClient
|
||||||
|
|
||||||
|
|
||||||
|
machine_list = {
|
||||||
|
"10.0.0.36": "centos_6",
|
||||||
|
"10.0.0.37": "centos_7",
|
||||||
|
"10.0.0.38": "centos_8",
|
||||||
|
"10.0.0.42": "suse_12",
|
||||||
|
"10.0.0.41": "suse_11",
|
||||||
|
"10.0.0.99": "kali_2019",
|
||||||
|
"10.0.0.86": "rhel_6",
|
||||||
|
"10.0.0.87": "rhel_7",
|
||||||
|
"10.0.0.88": "rhel_8",
|
||||||
|
"10.0.0.77": "debian_7",
|
||||||
|
"10.0.0.78": "debian_8",
|
||||||
|
"10.0.0.79": "debian_9",
|
||||||
|
"10.0.0.66": "oracle_6",
|
||||||
|
"10.0.0.67": "oracle_7",
|
||||||
|
"10.0.0.22": "ubuntu_12",
|
||||||
|
"10.0.0.23": "ubuntu_12_32",
|
||||||
|
"10.0.0.24": "ubuntu_14",
|
||||||
|
"10.0.0.29": "ubuntu_19",
|
||||||
|
"10.0.0.4": "windows_2003_r2_32",
|
||||||
|
"10.0.0.5": "windows_2003",
|
||||||
|
"10.0.0.8": "windows_2008",
|
||||||
|
"10.0.0.6": "windows_2008_32",
|
||||||
|
"10.0.0.7": "windows_2008_r2",
|
||||||
|
"10.0.0.12": "windows_2012",
|
||||||
|
"10.0.0.11": "windows_2012_r2",
|
||||||
|
"10.0.0.16": "windows_2016",
|
||||||
|
"10.0.0.19": "windows_2019",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(scope='class')
|
||||||
|
def island_client(island):
|
||||||
|
island_client_object = MonkeyIslandClient(island)
|
||||||
|
yield island_client_object
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.usefixtures('island_client')
|
||||||
|
# noinspection PyUnresolvedReferences
|
||||||
|
class TestOSCompatibility(object):
|
||||||
|
|
||||||
|
def test_os_compat(self, island_client):
|
||||||
|
print()
|
||||||
|
all_monkeys = island_client.get_all_monkeys_from_db()
|
||||||
|
ips_that_communicated = []
|
||||||
|
for monkey in all_monkeys:
|
||||||
|
for ip in monkey['ip_addresses']:
|
||||||
|
if ip in machine_list:
|
||||||
|
ips_that_communicated.append(ip)
|
||||||
|
break
|
||||||
|
for ip, os in machine_list.items():
|
||||||
|
if ip not in ips_that_communicated:
|
||||||
|
print("{} didn't communicate to island".format(os))
|
||||||
|
|
||||||
|
if len(ips_that_communicated) < len(machine_list):
|
||||||
|
assert False
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue