diff --git a/osmocom/lpmgd/model.py b/osmocom/lpmgd/model.py index 729d73b..22749fa 100644 --- a/osmocom/lpmgd/model.py +++ b/osmocom/lpmgd/model.py @@ -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