Re-add UUID limit matching for full UUIDs
This *was* valuable when passing a full UUID in, so go back to that. Verify first that the limit string is an actual UUID, and then compare against it if applicable.
This commit is contained in:
		| @@ -24,6 +24,8 @@ import re | ||||
| import lxml.objectify | ||||
| import lxml.etree | ||||
|  | ||||
| from uuid import UUID | ||||
|  | ||||
| import daemon_lib.common as common | ||||
|  | ||||
| import daemon_lib.ceph as ceph | ||||
| @@ -823,7 +825,17 @@ def get_list(zkhandler, node, state, limit, is_fuzzy=True): | ||||
|     full_vm_list = zkhandler.children('base.domain') | ||||
|  | ||||
|     # Set our limit to a sensible regex | ||||
|     if limit and is_fuzzy: | ||||
|     if limit: | ||||
|         # Check if the limit is a UUID | ||||
|         is_limit_uuid = False | ||||
|         try: | ||||
|             uuid_obj = UUID(limit, version=4) | ||||
|             limit = str(uuid_obj) | ||||
|             is_limit_uuid = True | ||||
|         except ValueError: | ||||
|             pass | ||||
|  | ||||
|         if is_fuzzy and not is_limit_uuid: | ||||
|             try: | ||||
|                 # Implcitly assume fuzzy limits | ||||
|                 if not re.match(r'\^.*', limit): | ||||
| @@ -842,7 +854,10 @@ def get_list(zkhandler, node, state, limit, is_fuzzy=True): | ||||
|  | ||||
|         # Check on limit | ||||
|         if limit: | ||||
|             # Try to match the limit against the UUID (if applicable) and name | ||||
|             try: | ||||
|                 if is_limit_uuid and re.match(limit, vm): | ||||
|                     is_limit_match = True | ||||
|                 if re.match(limit, name): | ||||
|                     is_limit_match = True | ||||
|             except Exception as e: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user