def test_artifacts_exclusive_to_user(self): users = [ { "email": "*****@*****.**", "password": "******", "username": "******" }, { "email": "*****@*****.**", "password": "******", "username": "******" }, ] for user in users: auth.set_tenant(user["username"], user["email"], user["password"]) with artifact_lock: with tempfile.NamedTemporaryFile() as artifact_file: artifact = image.make_artifact(conftest.get_valid_image(), conftest.machine_name, user["email"], artifact_file) deploy.upload_image(artifact) for user in users: auth.set_tenant(user["username"], user["email"], user["password"]) artifacts_for_user = deploy.get_artifacts() # make sure that one a single artifact exist for a given tenant assert len(artifacts_for_user) assert artifacts_for_user[0]["name"] == user["email"]
def test_multi_tenancy_setup(self): """ Simply make sure we are able to run the multi tenancy setup and bootstrap 2 different devices to different tenants """ auth.reset_auth_token() users = [ { "email": "*****@*****.**", "password": "******", "container": "mender-client" }, { "email": "*****@*****.**", "password": "******", "container": "client2" }, ] for user in users: auth.new_tenant(user["email"], user["password"]) t = auth.current_tenant["tenant_token"] new_tenant_client(user["container"], t) print "sleeping" time.sleep(1000) adm.accept_devices(1) print adm.get_devices() self.perform_update() # deploy to each device for user in users: auth.set_tenant(user["email"], user["password"]) t = auth.current_tenant["tenant_token"] adm.accept_devices(1)
def test_clients_exclusive_to_user(self): users = [ { "email": "*****@*****.**", "password": "******", "username": "******", "container": "mender-client-exclusive-1", "client_id": "", "device_id": "" }, { "email": "*****@*****.**", "password": "******", "username": "******", "container": "mender-client-exclusive-2", "client_id": "", "device_id": "" } ] for user in users: auth.set_tenant(user["username"], user["email"], user["password"]) t = auth.current_tenant["tenant_token"] new_tenant_client(user["container"], t) adm.accept_devices(1) # get the new devices client_id and setting it to the our test parameter assert len(inv.get_devices()) == 1 user["client_id"] = inv.get_devices()[0]["id"] user["device_id"] = adm.get_devices()[0]["device_id"] for user in users: # make sure that the correct number of clients appear for the given tenant auth.set_tenant(user["username"], user["email"], user["password"]) assert len(inv.get_devices()) == 1 assert inv.get_devices()[0]["id"] == user["client_id"] for user in users: # wait until inventory is populated auth.set_tenant(user["username"], user["email"], user["password"]) deviceauth.decommission(user["client_id"]) timeout = time.time() + (60 * 5) device_id = user["device_id"] while time.time() < timeout: newAdmissions = adm.get_devices()[0] if device_id != newAdmissions["device_id"] \ and user["client_id"] != newAdmissions["id"]: logger.info("device [%s] not found in inventory [%s]" % (device_id, str(newAdmissions))) break else: logger.info("device [%s] found in inventory..." % (device_id)) time.sleep(.5) else: assert False, "decommissioned device still available in admissions"