feat(device-core): ship host telemetry and scalable VPS inventory
This commit is contained in:
@@ -1104,10 +1104,17 @@ def ensure_service_user(name=SERVICE_USER, home_dir="/var/lib/nodedc-b2-vps"):
|
||||
|
||||
def extract_vendor_binary(archive: Path, member_name: str, target: Path, mode=0o755):
|
||||
with tarfile.open(archive, "r:*") as package:
|
||||
try:
|
||||
member = package.getmember(member_name)
|
||||
except KeyError:
|
||||
accepted_names = {member_name, f"./{member_name}"}
|
||||
matches = [
|
||||
candidate
|
||||
for candidate in package.getmembers()
|
||||
if candidate.name in accepted_names
|
||||
]
|
||||
if not matches:
|
||||
die(f"vendor binary member missing: {member_name}")
|
||||
if len(matches) != 1:
|
||||
die(f"vendor binary member ambiguous: {member_name}")
|
||||
member = matches[0]
|
||||
if not member.isfile() or member.issym() or member.islnk():
|
||||
die(f"vendor binary member unsafe: {member_name}")
|
||||
source = package.extractfile(member)
|
||||
|
||||
Reference in New Issue
Block a user