MCPcopy
hub / github.com/corpnewt/gibMacOS / get_parent

Method get_parent

Scripts/disk.py:292–320  ·  view source on GitHub ↗
(self, disk)

Source from the content-addressed store, hash-verified

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))

Callers 2

get_efiMethod · 0.95

Calls 5

get_identifierMethod · 0.95
is_apfsMethod · 0.95
get_physical_storeMethod · 0.95
is_core_storageMethod · 0.95
get_core_storage_pvMethod · 0.95

Tested by

no test coverage detected