dom0/qvm-block: rework device name parsing to better support c0p1 name style
This commit is contained in:
		
							parent
							
								
									1cd3ef3456
								
							
						
					
					
						commit
						3b320878ac
					
				| @ -122,21 +122,14 @@ def block_name_to_majorminor(name): | |||||||
|     major = 0 |     major = 0 | ||||||
|     minor = 0 |     minor = 0 | ||||||
|     dXpY_style = False |     dXpY_style = False | ||||||
| 
 |  | ||||||
|     name_match = re.match(r"([a-z]+)([a-z])([0-9]*)", name) |  | ||||||
|     if not name_match: |  | ||||||
|         name_match = re.match(r"([a-z]+)([0-9]*)(?:p([0-9]+)?", name) |  | ||||||
|         if not name_match: |  | ||||||
|             raise QubesException("Invalid device name: %s" % name) |  | ||||||
|         else: |  | ||||||
|             dXpY_style = True |  | ||||||
| 
 |  | ||||||
|     disk = True |     disk = True | ||||||
|     if name_match.group(1) == "xvd": | 
 | ||||||
|  |     if name.startswith("xvd"): | ||||||
|         major = 202 |         major = 202 | ||||||
|     elif name_match.group(1) == "sd": |     elif name.startswith("sd"): | ||||||
|         major = 8 |         major = 8 | ||||||
|     elif name_match.group(1) == "mmcblk": |     elif name.startswith("mmcblk"): | ||||||
|  |         dXpY_style = True | ||||||
|         major = 179 |         major = 179 | ||||||
|     elif name.startswith("scd"): |     elif name.startswith("scd"): | ||||||
|         disk = False |         disk = False | ||||||
| @ -154,6 +147,13 @@ def block_name_to_majorminor(name): | |||||||
|         # Unknown device |         # Unknown device | ||||||
|         return (0, 0) |         return (0, 0) | ||||||
| 
 | 
 | ||||||
|  |     if not dXpY_style: | ||||||
|  |         name_match = re.match(r"^([a-z]+)([a-z])([0-9]*)$", name) | ||||||
|  |     else: | ||||||
|  |         name_match = re.match(r"^([a-z]+)([0-9]*)(?:p([0-9]+))?$", name) | ||||||
|  |     if not name_match: | ||||||
|  |         raise QubesException("Invalid device name: %s" % name) | ||||||
|  | 
 | ||||||
|     if disk: |     if disk: | ||||||
|         if dXpY_style: |         if dXpY_style: | ||||||
|             minor = int(name_match.group(2))*8 |             minor = int(name_match.group(2))*8 | ||||||
| @ -191,7 +191,7 @@ def block_find_unused_frontend(vm = None): | |||||||
|     return None |     return None | ||||||
| 
 | 
 | ||||||
| def block_list(vm = None, system_disks = False): | def block_list(vm = None, system_disks = False): | ||||||
|     device_re = re.compile(r"^[a-z0-9]{1,8}$") |     device_re = re.compile(r"^[a-z0-9]{1,12}$") | ||||||
|     # FIXME: any better idea of desc_re? |     # FIXME: any better idea of desc_re? | ||||||
|     desc_re = re.compile(r"^.{1,255}$") |     desc_re = re.compile(r"^.{1,255}$") | ||||||
|     mode_re = re.compile(r"^[rw]$") |     mode_re = re.compile(r"^[rw]$") | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Marek Marczykowski
						Marek Marczykowski