related_fields = { }
- # leases do not have arbitrary boundaries
- # f_from and t_until are rounded to this period of time
- # initial model is one hour
- granularity = 60*60
-
def validate_time (self, timestamp, round_up):
# convert to long
timestamp = Timestamp.cast_long(timestamp)
+ # retrieve configured granularity
+ granularity = self.api.config.PLC_RESERVATION_GRANULARITY
# the trick for rounding up rather than down
- if round_up: timestamp += (Lease.granularity-1)
+ if round_up: timestamp += (granularity-1)
# round down
- timestamp = (timestamp/Lease.granularity) * Lease.granularity
+ timestamp = (timestamp/granularity) * granularity
# return a SQL string
return Timestamp.sql_validate_utc(timestamp)
- # round UP
+ # round UP
def validate_t_from(self,timestamp):
return self.validate_time (timestamp, round_up=True)
- # round DOWN
+ # round DOWN
def validate_t_until (self, timestamp):
return self.validate_time (timestamp, round_up=False)
if lease_filter is not None:
-
- if isinstance (lease_filter, int):
- lease_filter = Filter (Lease.fields, {'lease_id': lease_filter})
- elif isinstance(lease_filter, (list, tuple, set)):
+ if isinstance(lease_filter, (list, tuple, set, int, long)):
lease_filter = Filter(Lease.fields, {'lease_id': lease_filter})
elif isinstance(lease_filter, dict):
lease_filter = LeaseFilter(Lease.fields, lease_filter)