%PDF-1.4 %Óëéá 1 0 obj <> endobj 3 0 obj <> endobj 4 0 obj <
| Server IP : 212.252.79.165 / Your IP : 216.73.216.45 [ Web Server : Apache System : Linux 212-252-79-165.cprapid.com 5.15.0-153-generic #163-Ubuntu SMP Thu Aug 7 16:37:18 UTC 2025 x86_64 User : cehaburo ( 1001) PHP Version : 8.1.33 Disable Function : exec,passthru,shell_exec,system Domains : 48 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /lib/python3/dist-packages/uaclient/clouds/ |
Upload File : |
import abc
from typing import Any, Dict
from uaclient import config, contract
class AutoAttachInstance(metaclass=abc.ABCMeta):
@property
@abc.abstractmethod
def is_viable(self) -> bool:
"""Return True if the machine is a viable AutoAttachCloudInstance."""
pass
@abc.abstractmethod
def acquire_pro_token(self, cfg: config.UAConfig) -> str:
"""
Cloud-specific implementation of acquiring the pro token using whatever
method suits the platform
"""
pass
@abc.abstractmethod
def should_poll_for_pro_license(self) -> bool:
"""
Cloud-specific checks for whether the daemon should continously poll
for Ubuntu Pro licenses.
"""
pass
@abc.abstractmethod
def is_pro_license_present(self, *, wait_for_change: bool) -> bool:
"""
Check for an Ubuntu Pro license
"""
pass
class PublicCloudAutoAttachInstance(AutoAttachInstance, metaclass=abc.ABCMeta):
@property
@abc.abstractmethod
def identity_doc(self) -> Dict[str, Any]:
"""Return the identity document representing this cloud instance"""
pass
@property
@abc.abstractmethod
def cloud_type(self) -> str:
"""Return a string of the cloud type on which this instance runs"""
pass
def acquire_pro_token(self, cfg: config.UAConfig) -> str:
"""
Cloud-specific implementation of acquiring the pro token using whatever
method suits the platform
"""
contract_client = contract.UAContractClient(cfg)
token_response = contract_client.get_contract_token_for_cloud_instance(
cloud_type=self.cloud_type, data=self.identity_doc
)
return token_response["contractToken"]