403Webshell
Server IP : 172.24.0.40  /  Your IP : 216.73.216.10
Web Server : Apache
System : Linux dbweb26.ust.edu.ph 4.18.0-513.5.1.el8_9.x86_64 #1 SMP Fri Sep 29 05:21:10 EDT 2023 x86_64
User : apache ( 48)
PHP Version : 8.2.18
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /lib64/python3.6/site-packages/rhsmlib/services/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib64/python3.6/site-packages/rhsmlib/services/__pycache__/entitlement.cpython-36.pyc
3

a�e�X�@s�ddlmZmZmZddlZddlZddlZddlZddlZddl	m
Zddlm
Zddl	mZmZddlmZddlmZddlmZmZddljZeje�ZGd	d
�d
e�ZdS)�)�print_function�division�absolute_importN)�	injection)�ugettext)�
managerlib�utils)�EntCertActionInvoker)�certificate)�
exceptions�productsc@s�eZdZddd�Zedd��Zddd�Zd d
d�Zd!dd
�Zd"dd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zd#dd�ZdS)$�EntitlementServiceNcCs<||_tjtj�|_tjtj�|_tjtj�|_t	�|_
dS)N)�cp�inj�require�IDENTITY�identityZPROD_DIRZproduct_dirZENT_DIR�entitlement_dirr	�
entcertlib)�selfr�r�#/usr/lib64/python3.6/entitlement.py�__init__#s
zEntitlementService.__init__cCsnytjj|d�}Wn4tk
rFttd�tjdtj��d��YnX|j�tjj�j�krjttd���|S)z�
        Return new datetime parsed from date
        :param on_date: String representing date
        :return It returns datetime.datime structure representing date
        z%Y-%m-%dzGDate entered is invalid. Date should be in YYYY-MM-DD format (example: z )zPast dates are not allowed)	�datetimeZstrptime�
ValueError�_�timeZstrftimeZ	localtimeZdate�now)�cls�on_daterrr�
parse_date*s$zEntitlementService.parse_dateFcCs�tjtj|�}|j|kr||_|dkrJtjd�tjtj�}d|_|j�|j	�|j
j�r�|j�}|j
�}|jj�}|jj�}|j�}	|||||	d�}
ntd�diidd�}
tjdt|
��|
S)NTz'Deleting cache entitlement status cache)�statusZ	status_id�reasons�
reason_ids�validZUnknown�unknownFzentitlement status: %s)rr�CERT_SORTERr�log�debug�ENTITLEMENT_STATUS_CACHE�
server_status�delete_cache�loadr�is_validZget_system_statusZget_system_status_idr"Zget_name_message_mapZget_reason_ids_mapr�str)rr�force�sorter�status_cacheZoverall_statusZoverall_status_idr"r#r$r!rrr�
get_status<s6





zEntitlementService.get_statusrc

Ks,|
rtjtd�|
j���t|tj�r,|g}|s:dddg}|||||||||	|
d�
}|j|�i}d|kr�tj	|j
�j|dd�}dd	�|D�|d<d|kr�|j||dd
�}|r�dd	�|D�|d<ndd	�|D�|d<d|k�r(|j
|||||||	|
t|�t|�dd
�}|�r dd	�|D�|d<n||d<|S)NzUnknown arguments: %s�	installed�consumed�	available)
�pool_subsets�matches�	pool_only�match_installed�
no_overlap�
service_level�show_allr�future�
after_dateT)�	iso_datescSsg|]}|j��qSr)�_asdict)�.0�xrrr�
<listcomp>�sz0EntitlementService.get_pools.<locals>.<listcomp>)r;r7r?cSsg|]}|j�d�qS)�pool_id)r@)rArBrrrrC�scSsg|]}|j��qSr)r@)rArBrrrrC�s)r<rr:r9r7r;r=r>�page�items_per_pager?cSsg|]}|d�qS)�idr)rArBrrrrC�s)r�ValidationErrorr�keys�
isinstance�sixZstring_types�validate_optionsrZInstalledProductsr�list�get_consumed_product_pools�get_available_pools�int)rr6r7r8r9r:r;r<rr=r>rErF�kwargs�options�resultsr3r4r5rrr�	get_poolsgsX


zEntitlementService.get_poolscCs�tjddddddddd	d
ddd
dddddg�}tjddddddddd	d
dddd
dddddddg�}tjtj�}|jj�}tjtj�}g}	|jj	�|jj
�}
tj||d�}|dk	s�|dk	r�t
t
|j|
��}
|r�tj}ntj}�x�|
D�]�}
d}d}d}d}d}d}d}d}d}d}d}d}|
j}|�r�|j�p0d}|j�p<d}|
jjdk�r�|
jjdk�r�|j�pdd}|j�ppd}|j�p|d}nd}d}d}|j}|j}|j�p�d}|j�p�d}|j}|j �r�t!d�}nt!d�}|j"�r�t!d�}nt!d�}t!d�}t#|
j$d ��r|
j$j%}d!d"�|
j&D�}g}d}tjtj�j'��r�|
j(�rnd#|
j(k�rn|
j(d#|k�rd||
j(d#}|j)|�}|�s�|
|j*k�r�|j+t!d$��n:|
j,j-�t.j.j/t0j1��k�r�|j+t!d%��n|j+t!d&��n|j+t!d'��|dk�rB|dk�rB|dk�rB|	j+|||||||
j2|||
j3�|||||||
j,j4��||
j,j-��|��q�|	j+|||||||
j2|||
j3�||||||||||
j,j4��||
j,j-��|��q�W|	S)(N�OldConsumedStatusZsubscription_nameZprovides�sku�contract�account�serialrD�provides_managementZactive�
quantity_used�service_typer;Zstatus_detailsZsubscription_typeZstartsZends�system_type�ConsumedStatus�roles�usage�addons)�
filter_stringr;�ZNo��ZVirtualZPhysicalZYesz
Not AvailablerGcSsi|]}|j|j�qSr)�namerG)rA�prrr�
<dictcomp>szAEntitlementService.get_consumed_product_pools.<locals>.<dictcomp>ZCNzSubscription is currentzSubscription is expiredzSubscription has not begunz?Subscription management service doesn't support Status Details.)5�collections�
namedtuplerrr&r"Zget_subscription_reasons_mapZPOOLTYPE_CACHEr�refreshrMrZEntitlementCertificateFilter�filter�matchrZformat_iso8601_dateZformat_date�orderr\r;�version�major�minorr_r`rarfrVrWrXr[Z	virt_onlyrrZ�hasattrZpoolrGrZare_reasons_supportedZsubject�getZvalid_entitlement_certs�appendZvalid_range�endrrr
ZGMTrYr-Zbegin)rr;r7r?rUr^r0Zcert_reasons_mapZpooltype_cacheZconsumed_statusesZcertsZcert_filterZdate_formatterZcertrfrVrWrXr[r\r_r`rar]rZrnrDZprovided_productsr"Z	pool_typerrrrN�s"






z-EntitlementService.get_consumed_product_poolscsL|dk	rt|	d�}d|
}
nd}	}
d}}
|||||�||||
d�
}tjtj�}tjtj�}|j||�}t|�dkr�tj|||||||||
|d�
}|j	�}|j
||tj�|d�i}||_|j
��fdd�}�d	k	r�tt||��}|
dk�rH|	|
|
}|	d
|
|
}|dk�r|
}|||�}x|D]}|	|d<|
|d<�q.W|S)
a`
        Get list of available pools
        :param show_all:
        :param on_date:
        :param no_overlap:
        :param match_installed:
        :param matches:
        :param service_level:
        :param future:
        :param after_date:
        :param page:
        :param items_per_page:
        :param iso_dates:
        :return:
        Trer)
r<rr:r9r7r;r=r>rErF)
Zget_allZ	active_onZoverlappingZuninstalledrbr=r>rErFr?)�filter_optionsZpools�timeoutcs$d}|dr|d}�j�|j�kS)Nrcr;)�lower)Z	pool_dataZ
pool_level)r;rr�filter_pool_by_service_level�szLEntitlementService.get_available_pools.<locals>.filter_pool_by_service_levelN�rErF)rPrrrZAVAILABLE_ENTITLEMENT_CACHEZget_not_obsolete_data�lenrZget_available_entitlementsrw�uuidrZavailable_entitlementsZwrite_cacherMrl)rr<rr:r9r7r;r=r>rErFr?Z_pageZ_items_per_pagervr�cacheZavailable_poolsrw�dataryZlo_idxZhi_idx�itemr)r;rrOXsd



z&EntitlementService.get_available_poolscCsLtdddg�j|d�s&tjtd���|drJd|dkrJtjtd���n�|drnd|dkrntjtd	���n�|d
dk	r�tddg�j|d�r�tjtd���n�|dr�d|dkr�tjtd
���n�|dr�d|dkr�tjtd���n^|d�rtddg�j|d��rtjtd���n*|jj��rHd|dk�rHtjtd���dS)Nr3r4r5r6z_Error: invalid listing type provided.  Only "installed", "consumed", or "available" are allowedr<z0Error: --all is only applicable with --availablerz3Error: --ondate is only applicable with --availabler;zGError: --servicelevel is only applicable with --available or --consumedr9z<Error: --match-installed is only applicable with --availabler:z7Error: --no-overlap is only applicable with --availabler8zHError: --pool-only is only applicable with --available and/or --consumedz$Error: this system is not registered)�set�
issupersetrrHr�intersectionrr-)rrRrrrrL�s2

z#EntitlementService.validate_optionscCs|g}g}xj|D]b}y|||�|j|�Wqtjk
rn}z&|jdkrJ�|j|�tj|�WYdd}~XqXqW||fS)a(
        Method for unbinding entitlements
        :param unbind_method: unbindByPoolId or unbindBySerial
        :param consumer_uuid: UUID of consumer
        :param ids: List of serials or pool_ids
        :return: Tuple of two lists containing unbinded and not-unbinded subscriptions
        i�N)rt�
connectionZRestlibException�coder'�error)rZ
unbind_methodZ
consumer_uuidZids�successZfailureZid_�rerrr�_unbind_ids�s



 zEntitlementService._unbind_idscCs|jj|jj�}|jj�|S)zX
        Try to remove all entilements
        :return: Result of REST API call
        )rZ	unbindAllrr|r�update)rZresponserrr�remove_all_entitlements�s
z*EntitlementService.remove_all_entitlementscCsrg}tj|�}|jj�|jj|�}|j|jj|jj	|�\}}|r^x|D]}|j
||�qHW|jj�|||fS)z�
        Try to remove entitlements by pool IDs
        :param pool_ids: List of pool IDs
        :return: List of serial numbers of removed subscriptions
        )
r�unique_list_itemsrrkZlist_serials_for_pool_idsr�rZunbindByPoolIdrr|�extendrr�)rZpool_ids�removed_serialsZ	_pool_idsZpool_id_to_serialsZ
removed_poolsZunremoved_poolsrDrrr�remove_entitlements_by_pool_idss



z2EntitlementService.remove_entitlements_by_pool_idscCs6tj|�}|j|jj|jj|�\}}|jj�||fS)z�
        Try to remove pools by Serial numbers
        :param serials: List of serial numbers
        :return: List of serial numbers of already removed subscriptions
        )	rr�r�rZunbindBySerialrr|rr�)rZserialsZ_serialsr�Zunremoved_serialsrrr�remove_entitlements_by_serialss

z1EntitlementService.remove_entitlements_by_serialscCs>tjtjdd�}tjtj�}tjd|j�d|_|j�dS)z�
        This callback function is called, when there is detected any change in directory with entitlement
        certificates (e.g. certificate is installed or removed)
        :return:
        N)rz#Clearing in-memory cache of file %s)	rrr&r)r'r(Z
CACHE_FILEr*r,)rr0r1rrr�reload"s
zEntitlementService.reloadcCsn|dkr@tjtj�}|j�r$|j�tjtj�}|j�r@|j�|dkrd|jj|j	j
d�sdtjd�|j
j�S)z�
        Try to refresh entitlement certificate(s) from candlepin server
        :return: Report of EntCertActionInvoker
        TzOWarning: Unable to refresh entitlement certificates; service likely unavailable)rrZCONTENT_ACCESS_CACHE�exists�removeZCONTENT_ACCESS_MODE_CACHEr+rZregenEntitlementCertificatesrr|r'r(rr�)rZremove_cacher/Zcontent_accessZcontent_access_moderrrrk.s
zEntitlementService.refresh)N)NF)NNNNNNNNNNrr)NNF)NNNNNNNNrrF)FF)�__name__�
__module__�__qualname__r�classmethodr r2rTrNrOrLr�r�r�r�r�rkrrrrr
"s$

+
:
6
c#
r
)Z
__future__rrrrirZloggingrKrZsubscription_managerrrZsubscription_manager.i18nrrrrZsubscription_manager.entcertlibr	Zrhsmr
Zrhsmlib.servicesrrZrhsm.connectionr�Z	getLoggerr�r'�objectr
rrrr�<module>s



Youez - 2016 - github.com/yon3zu
LinuXploit