Ejemplo n.º 1
0
def stop_wipe_and_remove_all_labs(client_library: ClientLibrary):
    lab_list = client_library.get_lab_list()
    for lab_id in lab_list:
        lab = client_library.join_existing_lab(lab_id)
        lab.stop()
        lab.wipe()
        client_library.remove_lab(lab_id)
Ejemplo n.º 2
0
# set transport if needed - also proxy can be set if needed
# cl.licensing.licensing.set_transport(ssms=ssms, proxy_server="172.16.1.100", proxy_port=8888)
cl.licensing.set_transport(ssms=SSMS)
cl.licensing.install_certificate(cert=CERT)
# 'register_wait' method waits max 45s for registration status to become COMPLETED
# and another 45s for authorization status to become IN_COMPLIANCE
cl.licensing.register_wait(token=TOKEN)


lab_list = cl.get_lab_list()
for lab_id in lab_list:
    lab = cl.join_existing_lab(lab_id)
    lab.stop()
    lab.wipe()
    cl.remove_lab(lab_id)

lab = cl.create_lab()
lab = cl.join_existing_lab(lab_id="lab_1")

s1 = lab.create_node("s1", "server", 50, 100)
s2 = lab.create_node("s2", "server", 50, 200)
print(s1, s2)

# create a link between s1 and s2, equivalent to
#   s1_i1 = s1.create_interface()
#   s2_i1 = s2.create_interface()
#   lab.create_link(s1_i1, s2_i1)
lab.connect_two_nodes(s1, s2)

# this must remove the link between s1 and s2
Ejemplo n.º 3
0
def test_user_role_change(controller_url,
                          client_library_session: ClientLibrary):
    cl_admin = client_library_session
    cl_admin_uid = client_library_session.user_management.user_id(
        cl_admin.username)
    # create non admin users
    cl_user1, cl_user2 = "cl_user1", "cl_user2"
    password = "******"
    res = cl_admin.user_management.create_user(username=cl_user1, pwd=password)
    cl_user1_uid = res["id"]
    res = cl_admin.user_management.create_user(username=cl_user2, pwd=password)
    cl_user2_uid = res["id"]

    cl_user1 = ClientLibrary(
        controller_url,
        username=cl_user1,
        password=password,
        ssl_verify=False,
        allow_http=True,
    )
    cl_user2 = ClientLibrary(
        controller_url,
        username=cl_user2,
        password=password,
        ssl_verify=False,
        allow_http=True,
    )

    cl_user1.create_lab("lab1-cl_user1")
    cl_user1.create_lab("lab2-cl_user1")

    assert cl_user2.all_labs(show_all=True) == []
    # promote cl_user2 to admin
    cl_admin.user_management.update_user(user_id=cl_user2_uid, admin=True)
    # check if cl_user2 can see all the labs as admin
    all_labs = cl_user2.all_labs(show_all=True)
    assert len(all_labs) == 2
    assert all_labs[0].owner == cl_user1_uid

    # check if cl_user2 can create user and delete users
    res = cl_user2.user_management.create_user(username="******",
                                               pwd=password)
    assert cl_user2.user_management.get_user(user_id=res["id"])

    cl_user2.user_management.delete_user(user_id=res["id"])
    with pytest.raises(requests.exceptions.HTTPError) as err:
        cl_user2.user_management.get_user(user_id=res["id"])
    assert err.value.response.status_code == 404

    # check cl_user2 can see licensing
    assert cl_user2.licensing.status()

    for lab in all_labs:
        cl_user2.remove_lab(lab.id)
    assert cl_user2.all_labs(show_all=True) == []

    # promote cl_user1 to admin
    cl_admin.user_management.update_user(user_id=cl_user1_uid, admin=True)

    # check if cl_user1 can remove admin cl_user2
    cl_user1.user_management.delete_user(user_id=cl_user2_uid)
    with pytest.raises(requests.exceptions.HTTPError) as err:
        cl_user1.user_management.get_user(user_id=cl_user2_uid)
    assert err.value.response.status_code == 404

    # remove admin rights from cl_user1
    cl_admin.user_management.update_user(user_id=cl_user1_uid, admin=False)
    lab = cl_admin.create_lab("origin-lab")
    assert cl_user1.all_labs(show_all=True) == []

    with pytest.raises(requests.exceptions.HTTPError) as err:
        cl_user1.user_management.create_user(username="******", pwd=password)
    assert err.value.response.status_code == 403

    with pytest.raises(requests.exceptions.HTTPError) as err:
        cl_user1.licensing.status()
    assert err.value.response.status_code == 403

    cl_admin.user_management.delete_user(user_id=cl_user1_uid)

    # check that user cannot update its own user role
    with pytest.raises(requests.exceptions.HTTPError) as err:
        cl_admin.user_management.update_user(user_id=cl_admin_uid, admin=False)
    assert err.value.response.status_code == 400

    # cleanup
    cl_admin.remove_lab(lab.id)
Ejemplo n.º 4
0
if args.action == 'create':
    lab = import_lab(client_library, args.topology)

    f = open(".lab_id", "w")
    f.write(lab.id)
    f.close()

    print('Starting ' + lab.title + '...')
    lab.start(wait=True)

    print('Done!')

if args.action == 'destroy':
    f = open(".lab_id", "r")
    lab_id = f.read()
    f.close()

    print('Lab ID is ' + lab_id)
    lab = client_library.join_existing_lab(lab_id)

    print('Stoping lab' + lab_id)
    lab.stop()

    print('Wiping lab' + lab_id + ' out')
    lab.wipe()

    print('Removing lab' + lab_id)
    client_library.remove_lab(lab_id)

    print('Done!')