- requested_time = parse(expiration_time)
- if requested_time > Credential(string=ValidCreds[0]).get_lifetime():
- raise InsufficientRights('SliverStatus: Credential expires before requested expiration time')
-
- manager_base = 'sfa.managers'
-
- if self.api.interface in ['geni_am']:
- mgr_type = self.api.config.SFA_GENI_AGGREGATE_TYPE
- manager_module = manager_base + ".geni_am_%s" % mgr_type
- manager = __import__(manager_module, fromlist=[manager_base])
- return manager.RenewSliver(self.api, slice_xrn, ValidCreds, expiration_time)
-
- return ''
+ requested_time = utcparse(expiration_time)
+ max_renew_days = int(self.api.config.SFA_MAX_SLICE_RENEW)
+ if requested_time > Credential(string=valid_creds[0]).get_expiration():
+ raise InsufficientRights('Renewsliver: Credential expires before requested expiration time')
+ if requested_time > datetime.datetime.utcnow() + datetime.timedelta(days=max_renew_days):
+ raise Exception('Cannot renew > %s days from now' % max_renew_days)
+ return self.api.manager.RenewSliver(self.api, slice_xrn, valid_creds, expiration_time, options)