model: Change resource.usage_tokens from list to dict
this way we can have efficient look-ups by token UUID
This commit is contained in:
parent
1b0ae2814b
commit
6544151ff9
|
@ -125,7 +125,7 @@ class Resource:
|
|||
self.description = desc
|
||||
self.status = "unknown"
|
||||
self.use_count = 0
|
||||
self.usage_tokens = []
|
||||
self.usage_tokens = {}
|
||||
self.determine_status()
|
||||
|
||||
def usage_inc(self):
|
||||
|
@ -144,15 +144,21 @@ class Resource:
|
|||
def usage_token_get(self, user_name: str, usage: str, duration_s: int) -> UsageToken:
|
||||
"""Create/obtain a new usage token."""
|
||||
token = UsageToken(self, user_name, usage, duration_s)
|
||||
self.usage_tokens.append(token)
|
||||
self.usage_tokens[token.uuid.hex] = token
|
||||
self.usage_inc()
|
||||
return token
|
||||
|
||||
def usage_token_put(self, token: UsageToken):
|
||||
"""Release/put an existing usage token."""
|
||||
self.usage_tokens.delete(token)
|
||||
uuid_hex = token.uuid.hex
|
||||
del self.usage_tokens[uuid_hex]
|
||||
self.usage_dec()
|
||||
|
||||
def usage_token_find(self, uuid_hex: str):
|
||||
if uuid_hex in self.usage_tokens:
|
||||
return self.usage_tokens[uuid_hex]
|
||||
return None
|
||||
|
||||
def get_status(self):
|
||||
"""Return the (cached) status of the resource."""
|
||||
return self.status
|
||||
|
|
Loading…
Reference in New Issue