Server : nginx/1.18.0 System : Linux localhost 6.14.3-x86_64-linode168 #1 SMP PREEMPT_DYNAMIC Mon Apr 21 19:47:55 EDT 2025 x86_64 User : www-data ( 33) PHP Version : 8.0.16 Disable Function : 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_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /lib/python3/dist-packages/uaclient/jobs/ |
"""
Functions to be used when running metering jobs
"""
from uaclient import config
from uaclient.cli import assert_lock_file
from uaclient.contract import UAContractClient
from uaclient.entitlements import ENTITLEMENT_CLASSES
from uaclient.status import UserFacingStatus
@assert_lock_file("timer metering job")
def metering_enabled_resources(cfg: config.UAConfig) -> bool:
# We only run this job if there is no other job running.
# The reason for that is to avoid potential conflicts with
# auto-attach, attach and enable operations.
if not cfg.is_attached:
return False
enabled_services = [
ent(cfg).name
for ent in ENTITLEMENT_CLASSES
if ent(cfg).user_facing_status()[0] == UserFacingStatus.ACTIVE
]
contract = UAContractClient(cfg)
contract.report_machine_activity(enabled_services=enabled_services)
return True