2424
2525_logger = logging .getLogger (__name__ )
2626
27- _LEGACY_SERVICES_DATE : datetime = datetime (year = 2020 , month = 8 , day = 19 , tzinfo = UTC )
27+ _OLD_SERVICES_CUTOFF_DATETIME : datetime = datetime (
28+ year = 2020 , month = 8 , day = 19 , tzinfo = UTC
29+ )
2830
2931
3032class InheritedData (TypedDict ):
@@ -37,15 +39,42 @@ def _is_frontend_service(service: ServiceMetaDataPublished) -> bool:
3739
3840
3941async def _is_old_service (app : FastAPI , service : ServiceMetaDataPublished ) -> bool :
42+ #
4043 # NOTE: https://github.com/ITISFoundation/osparc-simcore/pull/6003#discussion_r1658200909
41- # get service build date
42- client = get_director_client (app )
44+ #
45+ service_extras = await get_director_client (app ).get_service_extras (
46+ service .key , service .version
47+ )
48+
49+ # 1. w/o build details
50+ has_no_build_data = (
51+ not service_extras or service_extras .service_build_details is None
52+ )
53+ if has_no_build_data :
54+ _logger .debug (
55+ "Service %s:%s is considered legacy because it has no build details" ,
56+ service .key ,
57+ service .version ,
58+ )
59+ return True
60+
61+ # 2. check if built before cutoff date
62+ assert service_extras .service_build_details
63+ service_build_datetime = arrow .get (
64+ service_extras .service_build_details .build_date
65+ ).datetime
4366
44- data = await client .get_service_extras (service .key , service .version )
45- if not data or data .service_build_details is None :
67+ is_older_than_cutoff = service_build_datetime < _OLD_SERVICES_CUTOFF_DATETIME
68+ if is_older_than_cutoff :
69+ _logger .debug (
70+ "Service %s:%s is considered legacy because it was built before %s" ,
71+ service .key ,
72+ service .version ,
73+ _OLD_SERVICES_CUTOFF_DATETIME ,
74+ )
4675 return True
47- service_build_data = arrow . get ( data . service_build_details . build_date ). datetime
48- return bool ( service_build_data < _LEGACY_SERVICES_DATE )
76+
77+ return False
4978
5079
5180async def evaluate_default_service_ownership_and_rights (
0 commit comments