Server IP : 15.235.198.142 / Your IP : 216.73.216.168 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ballsack 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /proc/thread-self/root/usr/share/apport/package-hooks/ |
Upload File : |
"""Send reports about ubuntu-desktop-bootstrap to the correct Launchpad project.""" # pylint: disable=invalid-name # pylint: enable=invalid-name import re from pathlib import Path from apport import Report, hookutils from apport.ui import HookUI def attach_journal(report: Report, log_map: dict[str, Path]) -> None: """Attach installer environment journal log to report. Appends the installer specific journal to the log map if it exists, otherwise appends the system journal to the report directly. """ installer_journal = Path("/var/log/installer/installer-journal.txt") if installer_journal.exists(): log_map["InstallerJournal"] = installer_journal else: report["SystemJournal"] = hookutils.recent_syslog(re.compile(".")) def add_info(report: Report, unused_ui: HookUI) -> None: """Send reports about ubuntu-desktop-bootstrap to the correct Launchpad project.""" report["SourcePackage"] = "ubuntu-desktop-bootstrap" # rewrite this section so the report goes to the project in Launchpad report[ "CrashDB" ] = """\ { "impl": "launchpad", "project": "ubuntu-desktop-provision", "bug_pattern_url": "http://people.canonical.com/" "~ubuntu-archive/bugpatterns/bugpatterns.xml", } """ # Check if the snap was updated # TODO: Add logic to support this outside of the live environment. # It may be possible someone wants to report a bug against the # installer after first boot. report["SnapUpdated"] = str(Path("/run/subiquity/updating").exists()) prefix = Path("/var/log/installer/") curtin_dir = prefix / "curtin-install/" log_map = { "SubiquityLog": prefix / "subiquity-server-debug.log", "CurtinLog": prefix / "curtin-install.log", "CurtinError.tar": prefix / "curtin-errors.tar", "ProbeData": prefix / "block/probe-data.json", "UdbLog": prefix / "ubuntu_bootstrap.log", "SubiquityTraceback": prefix / "subiquity-traceback.txt", "CurtinAptConfig": prefix / "curtin-install/subiquity-curtin-apt.conf", "CurtinCurthooksConfig": curtin_dir / "subiquity-curthooks.conf", "CurtinExtractConfig": curtin_dir / "subiquity-extract.conf", "CurtinInitialConfig": curtin_dir / "subiquity-initial.conf", "CurtinPartitioningConfig": curtin_dir / "subiquity-partitioning.conf", } attach_journal(report, log_map) hookutils.attach_hardware(report) # Attach logs if they exist # The conventional way to attach logs would be to use the # hookutils.attach_file_if_exists method, but since subiquity logs # are mostly locked down with root r/w only then we will get a permission # error if the caller does not have permissions. Ask for elevated # permissions instead of requiring users know to run with sudo or similar command_mapping = {} for name, path in log_map.items(): if path.exists(): command_mapping[name] = f"cat {path.resolve()}" hookutils.attach_root_command_outputs(report, command_mapping) # Always set reports to private since we might collect sensitive data report["LaunchpadPrivate"] = "1"