HEX
Server: Apache
System: Linux a16-asgard6.hospedagemuolhost.com.br 5.14.0-570.52.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 15 06:39:08 EDT 2025 x86_64
User: maoristu4c3dbd03 (1436)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/lib64/python3.9/site-packages/rhsmlib/dbus/objects/__pycache__/syspurpose.cpython-39.pyc
a

X�Zh� �@s�dZddlmZddlZddlZddlZddlmZmZm	Z	m
Z
ddlmZddl
mZddlmZddlmZdd	lmZer�dd
lmZe�e�e�ZGdd�dej�ZGd
d�dej�ZGdd�dej�ZdS)z�
This module contains implementation of D-Bus object representing system purpose.
It uses interface: com.redhat.RHSM1.Syspurpose and path:
/com/redhat/RHSM1/Syspurpose
�)�
TYPE_CHECKINGN)�	constants�base_object�util�
dbus_utils)�
syspurpose)�SyspurposeStore)�init_dep_injection)�	ungettext)�Locale)�
UEPConnectionc@s2eZdZdZdejZdZdZdd�Z	dd�Z
d	S)
�ThreeWayMergeConflictz@
    Raise this exception, when client application tries to
    z%s.ErrorF�warncCs
||_dS)z�
        Initialize this exception
        :param conflict_fields: dictionary with conflicted attributes.
            The key is attribute and value is current value set on server.
        N��conflict_fields)�selfr�r�E/usr/lib64/python3.9/site-packages/rhsmlib/dbus/objects/syspurpose.py�__init__2szThreeWayMergeConflict.__init__cCsNg}|j��D]\}}|�dj||d��qd�|�}tddt|��j|d�S)zW
        Text representation of exception
        :return: string of exception
        z%{conflict_attr} of "{existing_value}")Z
conflict_attrZexisting_valuez, zuWarning: The following field was recently set for this system by the entitlement server administrator: {conflict_msg}zwWarning: The following fields were recently set for this system by the entitlement server administrator: {conflict_msg})�conflict_msg)r�items�append�format�joinr
�len)r�	conflicts�key�valuerrrr�__str__:s ��
��zThreeWayMergeConflict.__str__N)�__name__�
__module__�__qualname__�__doc__r�SYSPURPOSE_INTERFACEZ_dbus_error_nameZinclude_tracebackZseverityrrrrrrr
)s
r
c@sFeZdZed�dd�Zed�dd�Zed�dd�Zeed�d	d
�ZdS)�SyspurposeDBusImplementation)�returnc
CsPd}t�|�}z
|j}Wn2tyJ}zt�t|���WYd}~n
d}~00|S)Nz$/etc/rhsm/syspurpose/syspurpose.json)r�read�contents�	Exception�dbus�
DBusException�str)rZsystem_purpose_path�storer'�excrrr�get_system_purposeTs

$z/SyspurposeDBusImplementation.get_system_purposecCs.|�i�}t�|�}|��d}|�|�}|S)N�status)�	build_uepr�
SyspurposeZget_syspurpose_statusZget_overall_status)r�uep�system_purposeZ
raw_statusr/rrr�get_system_purpose_status_s



z6SyspurposeDBusImplementation.get_system_purpose_statuscCsF|�i�}t�|�}|��}|durB|��r8t�d��n
t�d��|S)Nz*Unable to get valid system purpose fields.zHUnable to get valid system purpose fields. The system is not registered.)r0rr1Z!get_owner_syspurpose_valid_fieldsZ
is_registeredr)r*)rr2r3�valid_fieldsrrr�get_valid_fieldshs

�z-SyspurposeDBusImplementation.get_valid_fields)�valuesr%cCsb|�i�}t�|�}|�|�}i}|��D]$\}}||vr*|||kr*|||<q*|r^t|d��|S)Nr)r0rr1Zset_syspurpose_valuesrr
)rr7r2r3�
new_valuesrrrrrr�set_system_purposexs




z/SyspurposeDBusImplementation.set_system_purposeN)	rr r!�dictr.r+r4r6r9rrrrr$Ss	r$cs�eZdZdZejZejZd�fdd�	Z	e
jejddd�e
je
j
ddd����Ze
jejddd�e
j
dd	d
���Ze
jejddd�e
j
ddd���Ze
jejd
dd�e
je
j
dd����Ze
jejdd�e
j
dd���Z�ZS)�SyspurposeDBusObjectzs
    A D-Bus object interacting with subscription-manager to get
    information about current system purpose.
    Ncs"tt|�j|||d�t�|_dS)N)�conn�object_path�bus_name)�superr;rr$�impl)rr<r=r>��	__class__rrr�szSyspurposeDBusObject.__init__�s)Zin_signatureZ
out_signaturecCs,tj|td�}t�|�|j��}t�|�S)z�
        D-Bus method for getting current system purpose
        :param locale: string with locale
        :param sender:
        :return: json representation of system purpose contents
        �Z
expected_type)	r�dbus_to_pythonr+r�setr@r.�json�dumps)r�locale�senderr3rrr�
GetSyspurpose�s

z"SyspurposeDBusObject.GetSyspurposecCs&tj|td�}t�|�|j��}|S)z�
        D-Bus method for getting system purpose status
        :param locale: string representing locale
        :param sender: object representing application which called this method
        :return:
        rD)rrEr+rrFr@r4)rrIrJr/rrr�GetSyspurposeStatus�s


z(SyspurposeDBusObject.GetSyspurposeStatuscCs,tj|td�}t�|�|j��}t�|�S)a
        Method for getting valid syspurpose attributes and values
        :param locale: string with locale
        :param sender: object representing application which called this method
        :return: string representing dictionary with valid fields
        rD)	rrEr+rrFr@r6rGrH)rrIrJr5rrr�GetValidFields�s


z#SyspurposeDBusObject.GetValidFieldsza{sv}scCs<tj|td�}tj|td�}t�|�|j�|�}t�	|�S)a/
        Set syspurpose values
        :param syspurpose_values: Dictionary with all syspurpose values
        :param locale: String with locale
        :param sender: Object representing client application that called this method
        :return: String with successfully set syspurpose values
        rD)
rrEr:r+rrFr@r9rGrH)rZsyspurpose_valuesrIrJr8rrr�
SetSyspurpose�s

z"SyspurposeDBusObject.SetSyspurpose�)Z	signaturecCst�dtj�dS)z{
        Signal fired, when system purpose is created/deleted/changed
        :param sender:
        :return: None
        zD-Bus signal %s emittedN)�log�debugrr#)rrrr�SyspurposeChanged�sz&SyspurposeDBusObject.SyspurposeChanged)NNN)N)N)N)rr r!r"rZSYSPURPOSE_DBUS_PATHZdefault_dbus_pathr#Zinterface_namerrZdbus_service_methodZdbus_handle_senderZdbus_handle_exceptionsrKrLrMrNZdbus_service_signalrR�
__classcell__rrrArr;�sP�
�
�
��r;)r"�typingrr)rGZloggingZrhsmlib.dbusrrrrZrhsmlib.servicesrZsyspurpose.filesrZ"subscription_manager.injectioninitr	Zsubscription_manager.i18nr
rZrhsm.connectionrZ	getLoggerrrPr*r
ZBaseImplementationr$Z
BaseObjectr;rrrr�<module>s"
*5