@@ -64,6 +64,7 @@ def __init__(self):
64
64
self .logger = self .globals .get_logger ()
65
65
self .jwks_url = self .globals .get_config ().get_oauth_config ().get (Constants .PROPERTY_CONF_O_AUTH_JWKS_URL , None )
66
66
self .pdp_config = self .globals .get_config ().get_global_config ().get_pdp_config ()
67
+ self .infrastructure_project_id = self .globals .get_config ().get_runtime_config ().get (Constants .INFRASTRUCTURE_PROJECT_ID , None )
67
68
68
69
def get_logger (self ):
69
70
"""
@@ -218,7 +219,8 @@ def create_slice(self, *, token: str, slice_name: str, slice_graph: str, ssh_key
218
219
fabric_token = AccessChecker .validate_and_decode_token (token = token )
219
220
project , tags , project_name = fabric_token .first_project
220
221
allow_long_lived = True if Constants .SLICE_NO_LIMIT_LIFETIME in tags else False
221
- end_time = self .__validate_lease_end_time (lease_end_time = lease_end_time , allow_long_lived = allow_long_lived )
222
+ end_time = self .__validate_lease_end_time (lease_end_time = lease_end_time , allow_long_lived = allow_long_lived ,
223
+ project_id = project )
222
224
223
225
controller = self .controller_state .get_management_actor ()
224
226
self .logger .debug (f"create_slice invoked for Controller: { controller } " )
@@ -701,7 +703,8 @@ def renew_slice(self, *, token: str, slice_id: str, new_lease_end_time: str):
701
703
project , tags , project_name = fabric_token .first_project
702
704
allow_long_lived = True if Constants .SLICE_NO_LIMIT_LIFETIME in tags else False
703
705
new_end_time = self .__validate_lease_end_time (lease_end_time = new_lease_end_time ,
704
- allow_long_lived = allow_long_lived )
706
+ allow_long_lived = allow_long_lived ,
707
+ project_id = project )
705
708
706
709
reservations = controller .get_reservations (slice_id = slice_id )
707
710
if reservations is None or len (reservations ) < 1 :
@@ -748,11 +751,13 @@ def renew_slice(self, *, token: str, slice_id: str, new_lease_end_time: str):
748
751
self .logger .error (f"Exception occurred processing renew e: { e } " )
749
752
raise e
750
753
751
- def __validate_lease_end_time (self , lease_end_time : str , allow_long_lived : bool = False ) -> datetime :
754
+ def __validate_lease_end_time (self , lease_end_time : str , allow_long_lived : bool = False ,
755
+ project_id : str = None ) -> datetime :
752
756
"""
753
757
Validate Lease End Time
754
758
:param lease_end_time: New End Time
755
759
:param allow_long_lived: Allow long lived tokens
760
+ :param project_id: Project Id
756
761
:return End Time
757
762
:raises Exception if new end time is in past
758
763
"""
@@ -774,7 +779,7 @@ def __validate_lease_end_time(self, lease_end_time: str, allow_long_lived: bool
774
779
default_long_lived_duration = Constants .LONG_LIVED_SLICE_TIME_WEEKS
775
780
else :
776
781
default_long_lived_duration = Constants .DEFAULT_MAX_DURATION
777
- if (new_end_time - now ) > default_long_lived_duration :
782
+ if project_id not in self . infrastructure_project_id and (new_end_time - now ) > default_long_lived_duration :
778
783
self .logger .info (f"New term end time { new_end_time } exceeds system default "
779
784
f"{ default_long_lived_duration } , setting to system default: " )
780
785
0 commit comments