From aa9b791a0d1a1537fbeaada81e35f34283a436c0 Mon Sep 17 00:00:00 2001 From: Tony Mack Date: Tue, 21 Jan 2014 21:02:05 -0500 Subject: [PATCH] added support for geni_extend_alap (as long as possible) in RenewSliver --- sfa/managers/aggregate_manager.py | 12 +++++++++++- sfa/util/sfatime.py | 8 ++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/sfa/managers/aggregate_manager.py b/sfa/managers/aggregate_manager.py index 97b748ef..2ad3f9cc 100644 --- a/sfa/managers/aggregate_manager.py +++ b/sfa/managers/aggregate_manager.py @@ -1,6 +1,8 @@ import socket +import datetime from sfa.util.version import version_core -from sfa.util.xrn import Xrn +from sfa.util.xrn import Xrni +from sfa.util.sfatime import utcpase, adjust_datetime from sfa.util.callids import Callids from sfa.server.api_versions import ApiVersions @@ -87,6 +89,14 @@ class AggregateManager: xrn = Xrn(xrn, 'slice') slice_urn=xrn.get_urn() slice_hrn=xrn.get_hrn() + + if options.get('geni_extend_alap'): + now = datetime.datetime.now() + requested = utcparse(expiration_time) + max = adjust_datetime(now, days=30) + if requested > max: + expiration_time = max + return self.driver.renew_sliver (slice_urn, slice_hrn, creds, expiration_time, options) ### these methods could use an options extension for at least call_id diff --git a/sfa/util/sfatime.py b/sfa/util/sfatime.py index 48796892..e34a64e8 100644 --- a/sfa/util/sfatime.py +++ b/sfa/util/sfatime.py @@ -64,3 +64,11 @@ def datetime_to_utc(input): def datetime_to_epoch(input): return int(time.mktime(input.timetuple())) + +def adjust_datetime(input, days=0, hours=0, minutes=0, seconds=0): + """ + Adjust the input date by the specified delta (in seconds). + """ + dt = utcparse(input) + return dt + datetime.timedelta(days=days, hours=hours, minutes=minutes, seconds=seconds) + -- 2.43.0