(self, disk)
| 290 | return self._get_physical_disk(disk_id, "Logical Volume on ") |
| 291 | |
| 292 | def get_parent(self, disk): |
| 293 | # Disk can be a mount point, disk name, or disk identifier |
| 294 | disk_id = self.get_identifier(disk) |
| 295 | if self.is_apfs(disk_id): |
| 296 | disk_id = self.get_physical_store(disk_id) |
| 297 | elif self.is_core_storage(disk_id): |
| 298 | disk_id = self.get_core_storage_pv(disk_id) |
| 299 | if not disk_id: |
| 300 | return None |
| 301 | if self.is_apfs(disk_id): |
| 302 | # We have apfs - let's get the container ref |
| 303 | for a in self.apfs.get("Containers", []): |
| 304 | # Check if it's the whole container |
| 305 | if a.get("ContainerReference", "").lower() == disk_id.lower(): |
| 306 | return a["ContainerReference"] |
| 307 | # Check through each volume and return the parent's container ref |
| 308 | for v in a.get("Volumes", []): |
| 309 | if v.get("DeviceIdentifier", "").lower() == disk_id.lower(): |
| 310 | return a.get("ContainerReference", None) |
| 311 | else: |
| 312 | # Not apfs - go through all volumes and whole disks |
| 313 | for d in self.disks.get("AllDisksAndPartitions", []): |
| 314 | if d.get("DeviceIdentifier", "").lower() == disk_id.lower(): |
| 315 | return d["DeviceIdentifier"] |
| 316 | for p in d.get("Partitions", []): |
| 317 | if p.get("DeviceIdentifier", "").lower() == disk_id.lower(): |
| 318 | return d["DeviceIdentifier"] |
| 319 | # Didn't find anything |
| 320 | return None |
| 321 | |
| 322 | def get_efi(self, disk): |
| 323 | disk_id = self.get_parent(self.get_identifier(disk)) |
no test coverage detected