def test_run_plugin_post_echo_x_forwarded_path_reverse_proxy_rewrite(): s = "pds" try: apc = echo_pc plugin_config.add_plugin_configs([apc]) plugin.run_container(apc) container_name = apc["name"] time.sleep(CLIENT_DELAY) reverse_proxy_rewrite = "reverse_proxy_path" resp = requests.post(f"{base_url}/plugin/{container_name}/index.json", headers={"Content-Type": "application/json", "X-Forwarded-Path": reverse_proxy_rewrite}, json=s) assert resp.status_code == 200 assert resp.json()["data"] == json.dumps(s) assert resp.json()["method"] == "POST" assert "X-Forwarded-Path" in resp.json()["headers"] assert resp.json()["headers"]["X-Forwarded-Path"] == f"{reverse_proxy_rewrite}/v1/plugin/{container_name}" finally: plugin.stop_container(apc) plugin.remove_container(apc) plugin_config.delete_plugin_configs({})
def test_get_plugin_config_api(): with tempfile.TemporaryDirectory(prefix="/tmp/") as temp_dir_name: os.chmod(temp_dir_name, 0o755) s = "pds" with open(os.path.join(temp_dir_name, "index.json"), "w+") as f: f.write(json.dumps(s)) try: apc = pc(temp_dir_name) plugin_config.add_plugin_configs([apc]) ps = plugin_config.get_plugin_configs({"name": name}) assert len(ps) == 1 apc = ps[0] apc["_id"] = str(apc["_id"]) resp = requests.put(f"{base_url}/admin/plugin/{name}/container", headers=headers) assert (resp.status_code == 200 or resp.status_code == 204) resp = requests.get(f"{base_url}/admin/plugin/{name}", headers=headers) assert resp.status_code == 200 assert resp.json() == apc finally: api.delete_containers() plugin_config.delete_plugin_configs({})
def test_get_plugin_containers_api(): with tempfile.TemporaryDirectory(prefix="/tmp/") as temp_dir_name: os.chmod(temp_dir_name, 0o755) s = "pds" with open(os.path.join(temp_dir_name, "index.json"), "w+") as f: f.write(json.dumps(s)) try: apc = pc(temp_dir_name) apc2 = pc2(temp_dir_name) plugin_config.add_plugin_configs([apc, apc2]) ps = plugin_config.get_plugin_configs({}) assert len(ps) == 2 apc = ps[0] resp = requests.put(f"{base_url}/admin/container", headers=headers) assert (resp.status_code == 200 or resp.status_code == 204) resp = requests.get(f"{base_url}/admin/container", headers=headers) assert resp.status_code == 200 assert bag_equal(resp.json(), [{"name": name, "container": {"status": "running"}}, {"name": name2, "container": {"status": "running"}}]) finally: api.delete_containers() plugin_config.delete_plugin_configs({})
def test_add_plugin_config2(): try: apc = pc("/tmp") plugin_config.add_plugin_configs([apc]) with pytest.raises(Exception): plugin_config.add_plugin_configs([apc]) finally: plugin_config.delete_plugin_configs({})
def test_add_plugin_config(): try: apc = pc("/tmp") plugin_config.add_plugin_configs([apc]) ps = plugin_config.get_plugin_configs(fil) assert len(ps) == 1 finally: plugin_config.delete_plugin_configs({})
def test_delete_plugin_configs_name_regex(): try: apc = pc("/tmp") apc2 = pc2("/tmp") plugin_config.add_plugin_configs([apc, apc2]) ps = plugin_config.get_plugin_configs({}) assert len(ps) == 2 ps = plugin_config.get_plugin_configs(fil) assert len(ps) == 1 plugin_config.delete_plugin_configs({"name": {"$regex": "nginx.*"}}) ps = plugin_config.get_plugin_configs({}) assert len(ps) == 0 ps = plugin_config.get_plugin_configs(fil) assert len(ps) == 0 finally: plugin_config.delete_plugin_configs({})
def test_run_plugin_container_get_echo_405(): try: apc = echo_pc plugin_config.add_plugin_configs([apc]) container_name = apc["name"] ps = plugin_config.get_plugin_configs({"name": container_name}) assert len(ps) == 1 apc = ps[0] plugin.run_container(apc) time.sleep(CLIENT_DELAY) resp = requests.get(f"{base_url}/plugin/{container_name}/index.json?status=405") assert resp.status_code == 405 finally: api.delete_containers() plugin_config.delete_plugin_configs({})
def test_update_plugin_config(): try: apc = pc("/tmp") apc2 = pc2("/tmp") plugin_config.add_plugin_configs([apc]) ps = plugin_config.get_plugin_configs({}) assert len(ps) == 1 ps = plugin_config.get_plugin_configs(fil) assert len(ps) == 1 plugin_config.replace_plugin_config(name, apc2) ps = plugin_config.get_plugin_configs({}) assert len(ps) == 1 ps = plugin_config.get_plugin_configs(fil) assert len(ps) == 0 ps = plugin_config.get_plugin_configs(fil2) assert len(ps) == 1 finally: plugin_config.delete_plugin_configs({})
def test_run_plugin_container_post_echo_405(): s = "pds" try: apc = echo_pc plugin_config.add_plugin_configs([apc]) container_name = apc["name"] ps = plugin_config.get_plugin_configs({"name": container_name}) assert len(ps) == 1 apc = ps[0] plugin.run_container(apc) time.sleep(CLIENT_DELAY) resp = requests.post(f"{base_url}/plugin/{container_name}/index.json?status=405", headers={"Content-Type": "application/json"}, json=s) assert resp.status_code == 405 finally: api.delete_containers() plugin_config.delete_plugin_configs({})
def test_run_plugin_get_echo_x_forwarded_path(): try: apc = echo_pc plugin_config.add_plugin_configs([apc]) plugin.run_container(apc) container_name = apc["name"] time.sleep(CLIENT_DELAY) resp = requests.get(f"{base_url}/plugin/{container_name}/index.json") assert resp.status_code == 200 assert resp.json()["method"] == "GET" assert "X-Forwarded-Path" in resp.json()["headers"] assert resp.json()["headers"]["X-Forwarded-Path"] == f"/v1/plugin/{container_name}" finally: plugin.stop_container(apc) plugin.remove_container(apc) plugin_config.delete_plugin_configs({})
def test_run_plugin_container(): with tempfile.TemporaryDirectory(prefix="/tmp/") as temp_dir_name: os.chmod(temp_dir_name, 0o755) s = "pds" with open(os.path.join(temp_dir_name, "index.json"), "w+") as f: f.write(json.dumps(s)) try: apc = pc(temp_dir_name) plugin_config.add_plugin_configs([apc]) ps = plugin_config.get_plugin_configs({"name": name}) assert len(ps) == 1 apc = ps[0] plugin.run_container(apc) resp = requests.get(f"{base_url}/plugin/{name}/index.json") assert resp.status_code == 200 assert resp.json() == s finally: api.delete_containers() plugin_config.delete_plugin_configs({})
def test_get_plugin_configs_api_name_regex(): with tempfile.TemporaryDirectory(prefix="/tmp/") as temp_dir_name: os.chmod(temp_dir_name, 0o755) s = "pds" with open(os.path.join(temp_dir_name, "index.json"), "w+") as f: f.write(json.dumps(s)) try: apc = pc(temp_dir_name) apc2 = pc2(temp_dir_name) plugin_config.add_plugin_configs([apc, apc2]) ps = plugin_config.get_plugin_configs({}) assert len(ps) == 2 for apc0 in ps: apc0["_id"] = str(apc0["_id"]) resp = requests.get(f"{base_url}/admin/plugin?name_regex=nginx.*", headers=headers) assert resp.status_code == 200 assert bag_equal(resp.json(), ps) finally: plugin_config.delete_plugin_configs({})
def test_get_plugin_configs_name_regex(): with tempfile.TemporaryDirectory(prefix="/tmp/") as temp_dir_name: os.chmod(temp_dir_name, 0o755) s = "pds" with open(os.path.join(temp_dir_name, "index.json"), "w+") as f: f.write(json.dumps(s)) try: apc = pc(temp_dir_name) apc2 = pc2(temp_dir_name) plugin_config.add_plugin_configs([apc, apc2]) ps = plugin_config.get_plugin_configs({}) assert len(ps) == 2 for apc0 in ps: apc0["_id"] = str(apc0["_id"]) ps2 = plugin_config.get_plugin_configs({"name": {"$regex": "nginx.*"}}) for a in ps2: a["_id"] = str(a["_id"]) assert bag_equal(ps2, ps) finally: plugin_config.delete_plugin_configs({})
def add_plugin_configs(body): pc = plugin_config.add_plugin_configs(body) return len(pc)