Skip to content

Commit

Permalink
🚑️ hotfix GC first deploy (#2899)
Browse files Browse the repository at this point in the history
  • Loading branch information
pcrespov authored Mar 17, 2022
1 parent 1dea3f5 commit 09c200d
Show file tree
Hide file tree
Showing 9 changed files with 43 additions and 22 deletions.
File renamed without changes.
3 changes: 2 additions & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

# files and folders recursively
.codeclimate.yml @sanderegg @pcrespov
.env-* @pcrespov
.env-* @pcrespov @Surfict @mrnicegyu11
.travis.yml @sanderegg
Makefile @pcrespov @sanderegg

Expand All @@ -26,6 +26,7 @@ Makefile @pcrespov @sanderegg
/services/api-server/ @pcrespov
/services/catalog/ @pcrespov @sanderegg
/services/director*/ @sanderegg @pcrespov
/services/docker-compose*.yml @sanderegg @Surfict @mrnicegyu11
/services/dynamic-sidecar/ @GitHK
/services/migration/ @pcrespov
/services/static-webserver @GitHK
Expand Down
2 changes: 1 addition & 1 deletion services/docker-compose.devel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ services:
SC_BOOT_MODE: debug-ptvsd
WEBSERVER_LOGLEVEL: ${LOG_LEVEL:-DEBUG}

webserver-garbage-collector:
wb-garbage-collector:
volumes: *webserver-volumes-dev
environment:
<<: *webserver-environment-dev
Expand Down
2 changes: 1 addition & 1 deletion services/docker-compose.local.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ services:
- traefik.http.routers.${SWARM_STACK_NAME}_webserver_local.priority=3
- traefik.http.routers.${SWARM_STACK_NAME}_webserver_local.middlewares=${SWARM_STACK_NAME}_gzip@docker, ${SWARM_STACK_NAME_NO_HYPHEN}_sslheader@docker, ${SWARM_STACK_NAME}_webserver_retry

webserver-garbage-collector:
wb-garbage-collector:
environment:
SC_BOOT_MODE: ${SC_BOOT_MODE:-default}
WEBSERVER_LOGLEVEL: ${LOG_LEVEL:-INFO}
Expand Down
4 changes: 2 additions & 2 deletions services/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ services:
- default
- interactive_services_subnet

webserver-garbage-collector:
wb-garbage-collector:
image: ${DOCKER_REGISTRY:-itisfoundation}/webserver:${DOCKER_IMAGE_TAG:-latest}
init: true
hostname: "{{.Node.Hostname}}-{{.Service.Name}}-{{.Task.Slot}}"
Expand All @@ -247,7 +247,7 @@ services:
WEBSERVER_GARBAGE_COLLECTOR: '{"GARBAGE_COLLECTOR_INTERVAL_S": 30}'
env_file:
- ../.env
- ../.env-webserver-garbage-collector
- ../.env-wb-garbage-collector

healthcheck:
test:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from servicelib.aiohttp.application_setup import ModuleCategory, app_module_setup

from .garbage_collector_task import run_background_task
from .projects.projects_db import setup_projects_db
from .projects.plugin import setup_projects_db, setup_projects_model_schema

logger = logging.getLogger(__name__)

Expand All @@ -17,7 +17,10 @@
)
def setup_garbage_collector(app: web.Application):

## project-api needs access to db
## needs a partial init of projects plugin since this plugin uses projects-api
# - project-api needs access to db
setup_projects_db(app)
# - projects-api needs access to schema
setup_projects_model_schema(app)

app.cleanup_ctx.append(run_background_task)
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,10 @@
A project is a document defining a osparc study
It contains metadata about the study (e.g. name, description, owner, etc) and a workbench section that describes the study pipeline
"""
import json
import logging
from pprint import pformat

from aiohttp import web
from servicelib.aiohttp.application_keys import APP_JSONSCHEMA_SPECS_KEY
from servicelib.aiohttp.application_setup import ModuleCategory, app_module_setup
from servicelib.aiohttp.rest_routing import (
get_handlers_from_namespace,
Expand All @@ -17,8 +15,8 @@
)

from .._constants import APP_OPENAPI_SPECS_KEY, APP_SETTINGS_KEY
from .._resources import resources
from . import projects_handlers, projects_nodes_handlers, projects_tags_handlers
from .project_models import setup_projects_model_schema
from .projects_access import setup_projects_access
from .projects_db import setup_projects_db

Expand Down Expand Up @@ -87,13 +85,5 @@ def setup_projects(app: web.Application) -> bool:
# app.router.add_routes( _create_routes("node", specs, nodes_handlers) )

# json-schemas for projects datasets
# FIXME: schemas are hard-coded to api/V0!!!
with resources.stream("api/v0/schemas/project-v0.0.1.json") as fh:
project_schema = json.load(fh)

if APP_JSONSCHEMA_SPECS_KEY in app:
app[APP_JSONSCHEMA_SPECS_KEY]["projects"] = project_schema
else:
app[APP_JSONSCHEMA_SPECS_KEY] = {"projects": project_schema}

setup_projects_model_schema(app)
return True
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
import json
from enum import Enum
from typing import Any, Dict, Optional, Tuple

from aiohttp import web
from aiopg.sa.result import RowProxy
from simcore_postgres_database.models.projects import ProjectType

from .._constants import APP_JSONSCHEMA_SPECS_KEY
from .._resources import resources

# TODO: extend
ProjectDict = Dict[str, Any]
ProjectProxy = RowProxy
Expand All @@ -23,4 +28,23 @@ def to_project_type_db(cls, api_type: "ProjectTypeAPI") -> Optional[ProjectType]
}[api_type]


__all__: Tuple[str, ...] = ("ProjectDict", "ProjectProxy")
def setup_projects_model_schema(app: web.Application):
# NOTE: inits once per app
# FIXME: schemas are hard-coded to api/V0!!!
with resources.stream("api/v0/schemas/project-v0.0.1.json") as fh:
project_schema = json.load(fh)

if app.get(APP_JSONSCHEMA_SPECS_KEY) is None:
app[APP_JSONSCHEMA_SPECS_KEY] = {"projects": project_schema}

elif app[APP_JSONSCHEMA_SPECS_KEY].get("projects") is None:
app[APP_JSONSCHEMA_SPECS_KEY]["projects"] = project_schema

return app[APP_JSONSCHEMA_SPECS_KEY]["projects"]


__all__: Tuple[str, ...] = (
"ProjectDict",
"ProjectProxy",
"setup_projects_model_schema",
)
Original file line number Diff line number Diff line change
Expand Up @@ -866,5 +866,8 @@ async def update_project_without_checking_permissions(


def setup_projects_db(app: web.Application):
db = ProjectDBAPI(app)
app[APP_PROJECT_DBAPI] = db
# NOTE: inits once per app
if app.get(APP_PROJECT_DBAPI) is None:
db = ProjectDBAPI(app)
app[APP_PROJECT_DBAPI] = db
return app[APP_PROJECT_DBAPI]

0 comments on commit 09c200d

Please sign in to comment.