Server IP : 185.86.78.101 / Your IP : 216.73.216.124 Web Server : Apache System : Linux 675867-vds-valikoshka1996.gmhost.pp.ua 5.4.0-150-generic #167-Ubuntu SMP Mon May 15 17:35:05 UTC 2023 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /lib/python3/dist-packages/uaclient/entitlements/ |
Upload File : |
from typing import Optional, Tuple # noqa: F401 from uaclient import apt, event_logger, messages, system, util from uaclient.entitlements import repo from uaclient.entitlements.base import IncompatibleService from uaclient.types import ( # noqa: F401 MessagingOperations, MessagingOperationsDict, StaticAffordance, ) event = event_logger.get_event_logger() REALTIME_KERNEL_DOCS_URL = "https://ubuntu.com/realtime-kernel" class RealtimeKernelEntitlement(repo.RepoEntitlement): name = "realtime-kernel" title = "Real-time kernel" description = "Ubuntu kernel with PREEMPT_RT patches integrated" help_doc_url = REALTIME_KERNEL_DOCS_URL repo_key_file = "ubuntu-advantage-realtime-kernel.gpg" apt_noninteractive = True supports_access_only = True def _check_for_reboot(self) -> bool: """Check if system needs to be rebooted.""" reboot_required = system.should_reboot( installed_pkgs=set(self.packages), installed_pkgs_regex=set(["linux-.*-realtime"]), ) event.needs_reboot(reboot_required) return reboot_required @property def incompatible_services(self) -> Tuple[IncompatibleService, ...]: from uaclient.entitlements.fips import ( FIPSEntitlement, FIPSUpdatesEntitlement, ) from uaclient.entitlements.livepatch import LivepatchEntitlement return ( IncompatibleService( FIPSEntitlement, messages.REALTIME_FIPS_INCOMPATIBLE ), IncompatibleService( FIPSUpdatesEntitlement, messages.REALTIME_FIPS_UPDATES_INCOMPATIBLE, ), IncompatibleService( LivepatchEntitlement, messages.REALTIME_LIVEPATCH_INCOMPATIBLE ), ) @property def static_affordances(self) -> Tuple[StaticAffordance, ...]: return ( ( messages.REALTIME_ERROR_INSTALL_ON_CONTAINER, lambda: system.is_container(), False, ), ) @property def messaging( self, ) -> MessagingOperationsDict: pre_enable = None # type: Optional[MessagingOperations] if not self.access_only: pre_enable = [ ( util.prompt_for_confirmation, { "msg": messages.REALTIME_PROMPT, "assume_yes": self.assume_yes, "default": True, }, ) ] return { "pre_enable": pre_enable, "pre_disable": [ ( util.prompt_for_confirmation, { "msg": messages.REALTIME_PRE_DISABLE_PROMPT, "assume_yes": self.assume_yes, }, ) ], } def remove_packages(self) -> None: packages = set(self.packages).intersection( set(apt.get_installed_packages_names()) ) if packages: apt.remove_packages( list(packages), messages.DISABLE_FAILED_TMPL.format(title=self.title), )