in dialogflow-cx/vpc-sc-demo/backend/update_utilities.py [0:0]
def update_security_perimeter(request, api):
"""Update security perimeter."""
data = get_service_perimeter_data(request)
if "response" in data:
return data["response"]
token = data["token"]
project_id = data["project_id"]
restrict_access = data["restrict_access"]
access_policy_name = data["access_policy_name"]
service_perimeter_status = su.get_service_perimeter_status(
token, project_id, access_policy_name
)
response = update_service_perimeter_status_inplace(
api, restrict_access, service_perimeter_status
)
if response:
return response
headers = {}
headers["x-goog-user-project"] = project_id
headers["Authorization"] = f"Bearer {token}"
response = su.get_service_perimeter_data_uri(token, project_id, access_policy_name)
if "response" in response:
return response
service_perimeter_data_uri = response["uri"]
result = requests.patch(
service_perimeter_data_uri,
headers=headers,
json=service_perimeter_status,
params={"updateMask": "status.restrictedServices"},
timeout=10,
)
if result.status_code != 200:
logger.info(
" accesscontextmanager API rejected PATCH request: %s", result.text
)
return flask.Response(status=result.status_code, response=result.text)
return flask.Response(status=200)