mirror of https://github.com/google/oss-fuzz.git
Fix incorrect OSS-Fuzz build project deletion. (#4623)
This commit is contained in:
parent
04bc87103d
commit
8b10d4b705
|
@ -64,12 +64,12 @@ def create_scheduler(cloud_scheduler_client, project_name, schedule, tag,
|
||||||
cloud_scheduler_client.create_job(parent, job)
|
cloud_scheduler_client.create_job(parent, job)
|
||||||
|
|
||||||
|
|
||||||
def delete_scheduler(cloud_scheduler_client, project_name):
|
def delete_scheduler(cloud_scheduler_client, project_name, tag):
|
||||||
"""Deletes schedulers for projects that were removed."""
|
"""Deletes schedulers for projects that were removed."""
|
||||||
project_id = os.environ.get('GCP_PROJECT')
|
project_id = os.environ.get('GCP_PROJECT')
|
||||||
location_id = os.environ.get('FUNCTION_REGION')
|
location_id = os.environ.get('FUNCTION_REGION')
|
||||||
name = cloud_scheduler_client.job_path(project_id, location_id,
|
name = cloud_scheduler_client.job_path(project_id, location_id,
|
||||||
project_name + '-scheduler')
|
project_name + '-scheduler-' + tag)
|
||||||
cloud_scheduler_client.delete_job(name)
|
cloud_scheduler_client.delete_job(name)
|
||||||
|
|
||||||
|
|
||||||
|
@ -91,20 +91,30 @@ def update_scheduler(cloud_scheduler_client, project, schedule, tag):
|
||||||
cloud_scheduler_client.update_job(job, update_mask)
|
cloud_scheduler_client.update_job(job, update_mask)
|
||||||
|
|
||||||
|
|
||||||
|
def delete_project(cloud_scheduler_client, project):
|
||||||
|
"""Delete the given project."""
|
||||||
|
logging.info('Deleting project %s', project.name)
|
||||||
|
for tag in (build_project.FUZZING_BUILD_TAG,
|
||||||
|
build_and_run_coverage.COVERAGE_BUILD_TAG):
|
||||||
|
try:
|
||||||
|
delete_scheduler(cloud_scheduler_client, project.name, tag)
|
||||||
|
except exceptions.NotFound:
|
||||||
|
# Already deleted.
|
||||||
|
continue
|
||||||
|
except exceptions.GoogleAPICallError as error:
|
||||||
|
logging.error('Scheduler deletion for %s failed with %s', project.name,
|
||||||
|
error)
|
||||||
|
return
|
||||||
|
|
||||||
|
project.key.delete()
|
||||||
|
|
||||||
|
|
||||||
# pylint: disable=too-many-branches
|
# pylint: disable=too-many-branches
|
||||||
def sync_projects(cloud_scheduler_client, projects):
|
def sync_projects(cloud_scheduler_client, projects):
|
||||||
"""Sync projects with cloud datastore."""
|
"""Sync projects with cloud datastore."""
|
||||||
for project in Project.query():
|
for project in Project.query():
|
||||||
if project.name in projects:
|
if project.name not in projects:
|
||||||
continue
|
delete_project(cloud_scheduler_client, project)
|
||||||
|
|
||||||
logging.info('Deleting project %s', project.name)
|
|
||||||
try:
|
|
||||||
delete_scheduler(cloud_scheduler_client, project.name)
|
|
||||||
project.key.delete()
|
|
||||||
except exceptions.GoogleAPICallError as error:
|
|
||||||
logging.error('Scheduler deletion for %s failed with %s', project.name,
|
|
||||||
error)
|
|
||||||
|
|
||||||
existing_projects = {project.name for project in Project.query()}
|
existing_projects = {project.name for project in Project.query()}
|
||||||
for project_name in projects:
|
for project_name in projects:
|
||||||
|
|
Loading…
Reference in New Issue