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/rhsm/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib64/python3.6/site-packages/rhsm/__pycache__/certificate.cpython-36.pyc
3

a�e`z�@s�ddlmZmZmZddlZddlZddlZddlmZddlm	Z	m
Z
ddlmZddl
Z
ddlZe
je�Zejd�Zejd�Zdd	�Zd
d�Zdd
�ZGdd�de	�Zdd�Zdd�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�Z Gdd�de�Z!Gd d!�d!e	�Z"Gd"d#�d#e#�Z$Gd$d%�d%e�Z%Gd&d'�d'e�Z&Gd(d)�d)e�Z'Gd*d+�d+e�Z(Gd,d-�d-e(�Z)Gd.d/�d/e(�Z*Gd0d1�d1e+�Z,dS)2�)�print_function�division�absolute_importN)�datetime)�tzinfo�	timedelta)�_certificatez([0-9]+\.)+[0-9]+:z.*prim:\s(\w*)\s*:*(.*)cCsddlm}|�j|�S)Nr)�_CertFactory)�rhsm.certificate2r	�create_from_file)�pathr	�r
�#/usr/lib64/python3.6/certificate.pyr6srcCsddlm}|�j|�S)Nr)r	)r
r	�create_from_pem)�pemr	r
r
rr;srcCsg}|r|jd�}|S)zN
    Split a comma separated list of tags from a certificate into a list.
    �,)�split)Ztag_strZtagsr
r
r�
parse_tags@s
rc@s0eZdZdZed�Zdd�Zdd�Zdd�ZdS)	�UTCrcCs|jS)N)�_ZERO)�self�dtr
r
r�	utcoffsetOsz
UTC.utcoffsetcCsdS)Nrr
)rrr
r
r�tznameRsz
UTC.tznamecCs|jS)N)r)rrr
r
r�dstUszUTC.dstN)	�__name__�
__module__�__qualname__�__doc__rrrrrr
r
r
rrJs
rcCstjj|�S)N)�dateutil�parser�parse)�dater
r
r�get_datetime_from_x509Ysr#cs.�fdd�}�j|_�j|_|jj�j�|S)z�
    A decorator that marks a function as deprecated. This will cause a
    warning to be emitted any time that function is used by a caller.
    cstjd�jtd��||�S)NzCall to deprecated function: %s)�category)�warnings�warnr�DeprecationWarning)�args�kwargs)�funcr
r�new_funcbszdeprecated.<locals>.new_func)rr�__dict__�update)r*r+r
)r*r�
deprecated]s
r.c@s�eZdZdZed%dd��Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
d&dd�Zd'dd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�ZdS)(�Certificatez�
    Represents and x.509 certificate.

    :ivar x509: The :obj:`X509` backing object.
    :type x509: :class:`X509`
    :ivar __ext: A dictionary of extensions `OID`:value
    :type __ext: dict of :obj:`Extensions`
    NcCs|j|�d|_dS)z`
        :param content: The (optional) PEM encoded content.
        :type content: str
        N)�_updater)r�contentr
r
r�__init__vs
zCertificate.__init__cCsd|r"tj|d�}|dkr*td��ntj�}t|�|_||_|jj�|_|jj	�|_
|jdd�|_dS)N)rzError loading certificateZsubjectAltName)�name)
r�load�CertificateExceptionZX509�
Extensions�_Certificate__ext�x509Zget_subject�subjZget_serial_number�serialZ
get_extension�altName)rr1r8r
r
rr0s

zCertificate._updatecCs|jS)zf
        Get the serial number

        :return: The x.509 serial number
        :rtype:  str
        )r:)rr
r
r�serialNumber�szCertificate.serialNumbercCs|jS)z�
        Get the certificate subject.

        note: Missing NID mapping for UID added to patch openssl.

        :return: A dictionary of subject fields.
        :rtype: dict
        )r9)rr
r
r�subject�s	zCertificate.subjectcCs|jS)z�
        Return the alternate name of the certificate.

        :return: A string representation of the alternate name
        :rtype: str
        )r;)rr
r
r�
alternateName�szCertificate.alternateNamecCstt|jj��t|jj���S)zv
        Get the valid date range.

        :return: The valid date range.
        :rtype: :class:`DateRange`
        )�	DateRanger#r8Zget_not_beforeZ
get_not_after)rr
r
r�
validRange�szCertificate.validRangecCs0|j�}tj�}|r|}|jt�d�}|j|�S)z~
        Get whether the certificate is valid based on date.

        :return: True if valid.
        :rtype: boolean
        )r)r@r�utcnow�replace�GMT�has_date)r�on_date�valid_range�gmtr
r
r�valid�szCertificate.validcCs2|j�}tj�}|r|}|jt�d�}|j�|kS)z�
        Get whether the certificate is expired based on date.

        :return: True if valid.
        :rtype: boolean
        )r)r@rrArBrC�end)rrErFrGr
r
r�expired�szCertificate.expiredcCsgS)z�
        Get whether the certificate contains bogus data or is otherwise unsuitable.

        The certificate may be valid but still be considered bogus.

        :return: List of reasons if bogus
        :rtype: list
        r
)rr
r
r�bogus�s	zCertificate.boguscCs|jS)zt
        Get custom extensions.

        :return: An extensions object.
        :rtype: :class:`Extensions`
        )r7)rr
r
r�
extensions�szCertificate.extensionsc
Cs4t|�}|j�}z|j|�Wd|j�X||_dS)z�
        Read a certificate file.

        :param pem_path: The path to a .pem file.
        :type pem_path: str
        :return: A certificate
        :rtype: :class:`Certificate`
        N)�open�readr0�closer)r�pem_path�fr1r
r
rrN�s	
zCertificate.readcCs*t|d�}|j|j��||_|j�|S)z�
        Write the certificate.

        :param pem_path: The path to the .pem file.
        :type pem_path: str
        :return: self
        :rtype :class:`Certificate`
        �w)rM�write�toPEMrrO)rrPrQr
r
rrS�s
	
zCertificate.writecCs$t|d�rtj|j�ntd��dS)zC
        Delete the file associated with this certificate.
        rzno path, not deletedN)�hasattr�os�unlinkr�	Exception)rr
r
r�deletes
zCertificate.deletecCs
|jj�S)zo
        Get PEM representation of the certificate.

        :return: A PEM string
        :rtype: str
        )r8Zas_pem)rr
r
rrTszCertificate.toPEMcCs
|jj�S)N)r8Zas_text)rr
r
r�__str__szCertificate.__str__cCs(|j�}d}t|d�r|j}d||fS)Nrz[sn: %d, path: "%s"])r<rUr)rZsnZ	cert_pathr
r
r�__repr__s

zCertificate.__repr__cCs<|j�}|j�}|j�}|j�}||kr,dS||kr8dSdS)N�r���)r@rI)r�otherrFZexp1Zother_valid_rangeZexp2r
r
r�__cmp__"szCertificate.__cmp__)N)N)N)rrrrr.r2r0r<r=r>r@rHrJrKrLrNrSrYrTrZr[r_r
r
r
rr/ls&		



		r/csDeZdZdZdZ�fdd�Zdd�Zdd�Zd	d
�Zdd�Z	�Z
S)
�RedhatCertificatezj
    Represents a Red Hat certificate.

    :cvar REDHAT: The Red Hat base OID.
    :type REDHAT: str
    z1.3.6.1.4.1.2312.9cstt|�j||�|j�dS)N)�superr`r2�_extract_redhat_extensions)rr(r))�	__class__r
rr28szRedhatCertificate.__init__cCs|j�j|j�|_dS)N)rL�branch�REDHAT�_RedhatCertificate__redhat)rr
r
rrb<sz,RedhatCertificate._extract_redhat_extensionscCstj||�|j�dS)N)r/r0rb)rr1r
r
rr0?szRedhatCertificate._updatecCs|jS)z�
        Get the extension subtree for the `redhat` namespace.

        :return: The extensions with the Red Hat namespace trimmed.
        :rtype: :class:`Extensions`
        )rf)rr
r
r�redhatCszRedhatCertificate.redhatcCsDtj|�}|j�dkr |jd�|j�jd�}|s@|jd|�|S)Nr\zSerial number must be > 0�CNzInvalid common name: %s)r/rKr<�appendr=�get)rrKZcnr
r
rrKLs

zRedhatCertificate.bogus)rrrrrer2rbr0rgrK�
__classcell__r
r
)rcrr`.s	r`c@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�ProductCertificatez�
    Represents a Red Hat product/entitlement certificate.

    It is OID schema aware and provides methods to
    get product information.
    cCsR|j�}|jdd�}|rN|d}|d}|jd�}|d}|j|�}t||�SdS)z�
        Get the product defined in the certificate.

        :return: A product object.
        :rtype: :class:`Product`
        z1.*.1r\rN)rg�find�rtrimrd�Product)r�rhnsZproducts�p�oid�root�
product_id�extr
r
r�
getProduct^s

zProductCertificate.getProductcCsXg}|j�}xF|jd�D]8}|d}|jd�}|d}|j|�}|jt||��qW|S)z�
        Get a list products defined in the certificate.

        :return: A list of product objects.
        :rtype: list of :class:`Product`
        z1.*.1rr\)rgrmrnrdriro)r�lstrprqrrrsrtrur
r
r�getProductsos

zProductCertificate.getProductscCstj|�}|S)N)r`rK)rrKr
r
rrK�s
zProductCertificate.boguscCs�g}|jd�|jd�|jtj|��|jd�|jd�|jd|j��|jd|j�jd��x|j�D]}|jt|��qpWdj|�S)NzRAW:z#===================================zMODEL:zSerial#: %szSubject (CN): %srh�
)	rir/rZr<r=rjrx�str�join)r�srqr
r
rrZ�s



zProductCertificate.__str__N)rrrrrvrxrKrZr
r
r
rrlVs
rlcspeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	e
�fdd��Ze
dd��Zdd�Z
dd�Z�ZS)�EntitlementCertificatez0
    Represents an entitlement certificate.
    cCs`tj||�|j�}|jddd�}|rV|d}|d}|jd�}|j|�}t|�|_nd|_dS)Nz4.1r\Tr)rlr0rgrmrnrd�Order�order)rr1rprrqrrrsrur
r
rr0�s

zEntitlementCertificate._updatecCsFt|d�r:tj|j�|jjd�}d|d}tj|�ntd��dS)zC
        Delete the file associated with this certificate.
        r�.z
%s-key.pemrzno path, not deletedN)rUrVrWrrrX)r�partsZkey_pathr
r
rrY�s
zEntitlementCertificate.deletecCs|jS)z�
        Get the :obj:`order` object defined in the certificate.

        :return: An order object.
        :rtype: :class:`Order`
        )r)rr
r
r�getOrder�szEntitlementCertificate.getOrdercCs|j�|j�S)z�
        Get all entitlements defined in the certificate.

        :return: A list of entitlement object.
        :rtype: List of :class:`Entitlement`
        )�getContentEntitlements�getRoleEntitlements)rr
r
r�getEntitlements�sz&EntitlementCertificate.getEntitlementscCsRg}|j�}|jd�}x6|D].}|d}|jd�}|j|�}|jt|��qW|S)z�
        Get the B{content} entitlements defined in the certificate.

        :return: A list of entitlement object.
        :rtype: [:obj:`Content`,..]
        z2.*.1.1rr\)rgrmrnrdri�Content)rrwrp�entitlements�entrrrsrur
r
rr��s



z-EntitlementCertificate.getContentEntitlementscCsRg}|j�}|jd�}x6|D].}|d}|jd�}|j|�}|jt|��qW|S)z�
        Get the *role* entitlements defined in the certificate.

        :return: A list of entitlement object.
        :rtype: [:obj:`Role`,..]
        z3.*.1rr\)rgrmrnrdri�Role)rrwrpr�r�rrrsrur
r
rr��s



z*EntitlementCertificate.getRoleEntitlementscstt|�j�S)N)rar}r@)r)rcr
r�validRangeWithGracePeriod�sz0EntitlementCertificate.validRangeWithGracePeriodcCs|j�j�S)N)r��has_now)rr
r
r�validWithGracePeriod�sz+EntitlementCertificate.validWithGracePeriodcCs$tj|�}|j�dkr |jd�|S)NzNo order infomation)rlrKr�ri)rrKr
r
rrK�s

zEntitlementCertificate.boguscCsTg}|j�}|jtj|��x|j�D]}|jt|��q&W|jt|��dj|�S)Nry)r�rirlrZr�rzr{)rr|rr�r
r
rrZ�szEntitlementCertificate.__str__)rrrrr0rYr�r�r�r�r.r�r�rKrZrkr
r
)rcrr}�s	r}c@sDeZdZdZedd��Zdd�Zdd�Zdd	�Zd
d�Z	dd
�Z
dS)�Keyzc
    The (private|public) key.

    :ivar content: The PEM encoded key.
    :type content: str
    cCs*t|�}|j�}|j�t|�}||_|S)zp
        Read the key.

        :param pem_path: The path to the .pem file.
        :type pem_path: str
        )rMrNrOr�r)�clsrPrQr1�keyr
r
rrN	szKey.readcCs||_d|_dS)zQ
        :param content: The PEM encoded key.
        :type content: str
        N)r1r)rr1r
r
rr2szKey.__init__cCs6g}|jr(tj|jd�}|s2|jd�n
|jd�|S)N)rzInvalid key datazNo key data provided)r1rZload_private_keyri)rrKr�r
r
rrK s
z	Key.boguscCs4t|d�}|j|j�||_|j�tj|d�|S)z�
        Write the key.

        :param pem_path: The path to the .pem file.
        :type pem_path: str
        :return: self
        rRi�)rMrSr1rrOrV�chmod)rrPrQr
r
rrS,s
z	Key.writecCs$t|d�rtj|j�ntd��dS)z;
        Delete the file associated with this key.
        rzno path, not deletedN)rUrVrWrrX)rr
r
rrY;s
z
Key.deletecCs|jS)N)r1)rr
r
rrZDszKey.__str__N)rrrr�classmethodrNr2rKrSrYrZr
r
r
rr�s	r�c@s`eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	e
dd��Ze
dd��Zdd�Z
dS)r?z�
    Date range object.

    :ivar begin_date: The begining date
    :type begin_date: :class:`datetime`
    :ivar end_date: The ending date
    :type end_date: :class:`datetime`
    cCs|j|�|_|j|�|_dS)N)�_convert_to_utc�_begin�_end)rZ
begin_dateZend_dater
r
rr2RszDateRange.__init__cCs(|jdkr|jt�d�S|jt��SdS)N)r)rrBrCZ
astimezone)rZ	timestampr
r
rr�Vs
zDateRange._convert_to_utccCs|jS)z~
        Get range beginning.

        :return: The beginning date in UTC.
        :rtype: :class:`datatime.datetime`
        )r�)rr
r
r�begin\szDateRange.begincCs|jS)zr
        Get range end.

        :return: The end date in UTC.
        :rtype: :class:`datetime.datetime`
        )r�)rr
r
rrIesz
DateRange.endcCs tj�}|jt�d�}|j|�S)z�
        Get whether the certificate is valid based on the date now.

        :return: True if valid.
        :rtype: boolean
        )r)rrArBrCrD)rrGr
r
rr�nszDateRange.has_nowcCs||j�ko||j�kS)z�
        Get whether the certificate is valid based on the date.

        :param: date
        :type: :class:`datetime.datetime`
        :return: True if valid.
        :rtype: boolean
        )r�rI)rr"r
r
rrDys	zDateRange.has_datecCs
|j|�S)N)rD)rr"r
r
r�hasDate�szDateRange.hasDatecCs|j�S)N)r�)rr
r
r�hasNow�szDateRange.hasNowcCsd|j|jfS)Nz
	%s
	%s)r�r�)rr
r
rrZ�szDateRange.__str__N)rrrrr2r�r�rIr�rDr.r�r�rZr
r
r
rr?Hs		r?c@s(eZdZdZdd�Zdd�Zdd�ZdS)rCcCs
tdd�S)Nr)�seconds)r)r�	date_timer
r
rr�sz
GMT.utcoffsetcCsdS)NrCr
)rr�r
r
rr�sz
GMT.tznamecCs
tdd�S)Nr)r�)r)rr�r
r
rr�szGMT.dstN)rrrrrrrr
r
r
rrC�srCc@sLeZdZdZdd�Zdd�Zddd�Zddd�Zd
d�Zdd�Z	dd�Z
dS)r6z2
    Represents x.509 (v3) custom extensions.
    cCs$t|t�r|j|�n
|j|�dS)z{
        :param x509: An :module:`rhsm._certificate` :class:`X509` object or dict.
        :type x509: :obj:`X509`
        N)�
isinstance�dictr-�_parse)rr8r
r
rr2�s
zExtensions.__init__cCs4i}x&t|j��D]\}}|||j|�<qWt|�S)z�
        Left trim *n* parts.

        :param n: The number of parts to trim.
        :type n: int
        :return: The trimmed OID
        :rtype: :class:`Extensions`
        )�list�items�ltrimr6)r�n�drr�vr
r
rr��s	zExtensions.ltrimNcCs&|j|dd�}|r|ddS|SdS)a
        Get the value of an extension by *oid*.

        Note: The *oid* may contain (*) wildcards.

        :param oid: An `OID` that may contain (*) wildcards.
        :type oid: str|`OID`
        :return: The value of the first extension matched.
        :rtype: str
        r\TrN)rm)rrr�defaultrur
r
rrj�szExtensions.getrFc	Cs�g}d}t|t�rt|�}|r,t|j��}nt|j��}xB|D]:}|j|�rj||}|j||f�|d}|r>||kr>Pq>W|S)a�
        Find all extensions matching the oid.

        Note: The oid may contain (*) wildcards.

        :param oid: An OID that may contain (*) wildcards.
        :type oid: str|`OID`
        :param limit: Limit the number returned, 0=unlimited
        :type limit: int
        :param ignoreOrder Should oids be ordered
        :type ignoreOrder: bool
        :return: A list of matching items.
        :rtype: (`OID`, value)
        :see: OID.match()
        rr\)r�rz�OIDr��keys�sorted�matchri)	rrr�limitZignoreOrderru�foundZkeyset�kr�r
r
rrm�s


zExtensions.findcCsfi}t|t�rt|�}|dr(|jd�}t|�d}x(|j|�D]\}}|j|�}|||<q@Wt|�S)z�
        Find a subtree by matching the oid.

        :param root: An `OID` that may contain (*) wildcards.
        :type root: str|`OID`
        :return: A subtree.
        :rtype: :class:`Extensions`
        r\�r])r�rzr�ri�lenrmr�r6)rrsr��lnrrr�Ztrimmedr
r
rrd�s	


zExtensions.branchcCs2x,t|j�j��D]\}}t|�}|||<qWdS)zd
        Parse the extensions. Expects an :module:`rhsm._certificate` :class:`X509` object.
        N)r�Zget_all_extensionsr�r�)rr8rr�valuer
r
rr�szExtensions._parsecCs2g}x"t|j��D]}|jd|�qWdj|�S)Nz	%s = "%s"ry)r�r�rir{)rr|�itemr
r
rrZszExtensions.__str__)N)rF)rrrrr2r�rjrmrdr�rZr
r
r
rr6�s


$r6c@s�eZdZdZdZedd��Zedd��Zdd�Zd	d
�Z	dd�Z
d
d�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!S)"r�z�
    The Object Identifier object.

    :ivar part: The oid parts.
    :type part: [str,]
    :cvar WILDCARD: The wildcard character.
    :type WILDCARD: str
    �*cGs
dj|�S)Nr�)r{)r�rrr
r
rr{szOID.joincCs
|jd�S)z�
        Split an OID string.

        :param s: An OID string Eg: (1.2.3)
        :type s: str
        :return: A list of OID parts.
        :rtype: [str,]
        r�)r)r�r|r
r
rr"s
z	OID.splitcCs4t|t�r|j|�|_n||_d|_d|_d|_dS)zJ
        :param oid: The OID value.
        :type oid: str|[str,]
        N)r�rzr�part�_len�_str�_hash)rrrr
r
rr2.s
zOID.__init__cCs|jdd�}|rt|�SdS)z^
        Get the parent OID.

        :return: The parent OID.
        :rtype: L{OID}
        Nr\r])r�r�)rrqr
r
r�parent<sz
OID.parentcCst|j|d��S)z�
        Left trim I{n} parts.

        :param n: The number of parts to trim.
        :type n: int
        :return: The trimmed OID
        :rtype: :class:`OID`
        N)r�r�)rr�r
r
rr�Gs	z	OID.ltrimcCst|jd|��S)z�
        Right trim I{n} parts.

        :param n: The number of parts to trim.
        :type n: int
        :return: The trimmed OID
        :rtype: :class:`OID`
        N)r�r�)rr�r
r
rrnRs	z	OID.rtrimcCs&t|t�rt|�}|j|j}t|�S)z�
        Append the specified OID fragment.

        :param oid: An OID fragment.
        :type oid: str|`OID`
        :return: The concatenated OID.
        "rtype: :class:`OID`
        )r�rzr�r�)rrrr�r
r
rri]s	
z
OID.appendcCs�d}|ds.|dd�}|jt|�d�}n.|dsV|dd�}|jdt|��}n|j}t|�t|�krpdSx4|D],}||}||ks�||jkr�|d7}qvdSqvWdS)a
        Match the specified OID considering wildcards.

        Patterns:
          - 1.4.5.6.74 (not wildcarded)
          -    .5.6.74 (match on only last 4)
          -    5.6.74. (match only first 4)
          - 1.4.*.6.*  (wildcard pattern)

        :param oid: An OID string or object.
        :type oid: `OID`
        :return: True if matched
        :rtype: boolean
        rr\NFTr]r])r�r��WILDCARD)rrr�ir��x�valr
r
rr�ks 

z	OID.matchcCs|jst|j�|_|jS)N)r�r�r�)rr
r
r�__len__�szOID.__len__cCs
|j|S)N)r�)r�indexr
r
r�__getitem__�szOID.__getitem__cCst|�S)N)rz)rr
r
rr[�szOID.__repr__cCs|jstt|��|_|jS)N)r��hashrz)rr
r
r�__hash__�szOID.__hash__cCst|�t|�kS)N)rz)rr^r
r
r�__eq__�sz
OID.__eq__cCst|�t|�kS)N)rz)rr^r
r
r�__lt__�sz
OID.__lt__cCs|jsdj|j�|_|jS)Nr�)r�r{r�)rr
r
rrZ�szOID.__str__N)rrrrr�r�r{rr2r�r�rnrir�r�r�r[r�r�r�rZr
r
r
rr�s",r�c@s�eZdZedd��Zdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)S)*r~cCs
||_dS)N)ru)rrur
r
rr2�szOrder.__init__cCs|jjd�S)N�1)rurj)rr
r
r�getName�sz
Order.getNamecCs|jjd�S)N�2)rurj)rr
r
r�	getNumber�szOrder.getNumbercCs|jjd�S)N�3)rurj)rr
r
r�getSku�szOrder.getSkucCs|jjd�S)N�4)rurj)rr
r
r�getSubscription�szOrder.getSubscriptioncCs|jjd�S)N�5)rurj)rr
r
r�getQuantity�szOrder.getQuantitycCs|jjd�S)N�6)rurj)rr
r
r�getStart�szOrder.getStartcCs|jjd�S)N�7)rurj)rr
r
r�getEnd�szOrder.getEndcCs|jjd�S)N�8)rurj)rr
r
r�getVirtLimit�szOrder.getVirtLimitcCs|jjd�S)N�9)rurj)rr
r
r�getSocketLimit�szOrder.getSocketLimitcCs|jjd�S)N�10)rurj)rr
r
r�getContract�szOrder.getContractcCs|jjd�S)a

        Returns the quantity of the subscription that *this* entitlement is using.

        WARNING: a little misleading as it (a) is part of the order namespace
        and (b) sounds suspiciously like the total consumed quantity of the
        subscription.
        Z11)rurj)rr
r
r�getQuantityUsed�szOrder.getQuantityUsedcCs|jjd�S)NZ12)rurj)rr
r
r�getWarningPeriod�szOrder.getWarningPeriodcCs|jjd�S)NZ13)rurj)rr
r
r�getAccountNumber�szOrder.getAccountNumbercCs|jjd�S)NZ14)rurj)rr
r
r�getProvidesManagement�szOrder.getProvidesManagementcCs|jjd�S)NZ15)rurj)rr
r
r�getSupportLevel�szOrder.getSupportLevelcCs|jjd�S)NZ16)rurj)rr
r
r�getSupportType�szOrder.getSupportTypecCs|jjd�S)NZ17)rurj)rr
r
r�
getStackingId�szOrder.getStackingIdcCs|jjd�S)NZ18)rurj)rr
r
r�getVirtOnly�szOrder.getVirtOnlycCsTg}|jd�|jd|j��|jd|j��|jd|j��|jd|j��|jd|j��|jd|j��|jd|j��|jd	|j��|jd
|j	��|jd|j
��|jd|j��|jd
|j��|jd|j
��|jd|j��|jd|j��|jd|j��|jd|j��|jd�dj|�S)NzOrder {z	Name .............. = %sz	Number ............ = %sz	SKU ............... = %sz	Subscription ...... = %sz	Quantity .......... = %sz	Start (Ent) ....... = %sz	End (Ent) ......... = %sz	Virt Limit ........ = %sz	Socket Limit ...... = %sz	Contract .......... = %sz	Warning Period .... = %sz	Account Number .... = %sz	Provides Management = %sz	Support Level ..... = %sz	Support Type ...... = %sz	Stacking Id ....... = %sz	Virt Only ......... = %s�}ry)rir�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r{)rr|r
r
rrZ�s*

z
Order.__str__N)rrrr.r2r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rZr
r
r
rr~�s(
r~c@sheZdZedd��Zdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dd�ZdS)rocCsh||_||_|jjd�|_|jjd�|_|jjd�|_t|jjd��|_|jjd�|_|jjd�|_	dS)Nr�r�r�r�r�r�)
r�rurjr3�version�archr�
provided_tags�
brand_type�
brand_name)rZp_hashrur
r
rr2szProduct.__init__cCs|jS)N)r�)rr
r
r�getHashszProduct.getHashcCs|jS)N)r3)rr
r
rr�!szProduct.getNamecCs|jS)N)r�)rr
r
r�getArch$szProduct.getArchcCs|jS)N)r�)rr
r
r�
getVersion'szProduct.getVersioncCs|jS)N)r�)rr
r
r�getProvidedTags*szProduct.getProvidedTagscCs|jS)N)r�)rr
r
r�getBrandType-szProduct.getBrandTypecCs|jS)N)r�)rr
r
r�getBrandName0szProduct.getBrandNamecCs|j�|j�kS)N)r�)r�rhsr
r
rr�3szProduct.__eq__cCs�g}|jd�|jd|j��|jd|j��|jd|j��|jd|j��|jd|j��|jd|j��|jd|j��|jd	�d
j|�S)Nz	Product {z	Hash ......... = %sz	Name ......... = %sz	Version ...... = %sz	Architecture . = %sz	Provided Tags  = %sz	Brand Type     = %sz	Brand Name     = %sr�ry)	rir�r�r�r�r�r�r�r{)rr|r
r
rrZ6s

zProduct.__str__cCst|�S)N)rz)rr
r
rr[CszProduct.__repr__N)rrrr.r2r�r�r�r�r�r�r�r�rZr[r
r
r
rros
roc@seZdZdd�ZdS)�EntitlementcCs
||_dS)N)ru)rrur
r
rr2IszEntitlement.__init__N)rrrr2r
r
r
rr�Gsr�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�ZdS) r�cCs�tj||�|jjd�|_|jjd�|_|jjd�|_|jjd�|_|jjd�|_|jjd�|_	|jjd�|_
|jjd�|_|jjd	�|_t
|jjd
��|_dS)Nr�r�r�r�r�r�r�r�r�r�)r�r2rurjr3�label�quantity�
flex_quantity�vendor�url�gpg�enabled�metadata_expirer�
required_tags)rrur
r
rr2OszContent.__init__cCs|jS)N)r3)rr
r
rr�\szContent.getNamecCs|jS)N)r�)rr
r
r�getLabel_szContent.getLabelcCs|jS)N)r�)rr
r
rr�bszContent.getQuantitycCs|jS)N)r�)rr
r
r�getFlexQuantityeszContent.getFlexQuantitycCs|jS)N)r�)rr
r
r�	getVendorhszContent.getVendorcCs|jS)N)r�)rr
r
r�getUrlkszContent.getUrlcCs|jS)N)r�)rr
r
r�getGpgnszContent.getGpgcCs|jS)N)r�)rr
r
r�
getEnabledqszContent.getEnabledcCs|jS)N)r�)rr
r
r�getMetadataExpiretszContent.getMetadataExpirecCs|jS)N)r�)rr
r
r�getRequiredTagswszContent.getRequiredTagscCst||j�o|j|jkS)N)r�rcr�)rr�r
r
rr�zszContent.__eq__cCs�g}|jd�|jd|j��|jd|j��|jd|j��|jd|j��|jd|j��|jd|j��|jd|j��|jd	|j��|jd
|j	��|jd|j
��|jd�d
j|�S)NzEntitlement (content) {z	Name .......... = %sz	Label ......... = %sz	Quantity ...... = %sz	Flex Quantity . = %sz	Vendor ........ = %sz	URL ........... = %sz	GPG Key ....... = %sz	Enabled ....... = %sz	Metadata Expire = %sz	Required Tags . = %sr�ry)rir�r�r�r�r�r�r�r�r�r�r{)rr|r
r
rrZ}s

zContent.__str__cCst|�S)N)rz)rr
r
rr[�szContent.__repr__cCs
t|j�S)N)r�r�)rr
r
rr��szContent.__hash__N)rrrr2r�r�r�r�r�r�r�r�r�r�r�rZr[r�r
r
r
rr�Ms
r�c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)r�cCs|jjd�S)Nr�)rurj)rr
r
rr��szRole.getNamecCs|jjd�S)Nr�)rurj)rr
r
r�getDescription�szRole.getDescriptioncCs|j�|j�kS)N)r�)rr�r
r
rr��szRole.__eq__cCsFg}|jd�|jd|j��|jd|j��|jd�dj|�S)NzEntitlement (role) {z	Name ......... = %sz	Description .. = %sr�ry)rir�r�r{)rr|r
r
rrZ�s

zRole.__str__cCst|�S)N)rz)rr
r
rr[�sz
Role.__repr__N)rrrr�r�r�rZr[r
r
r
rr��s
r�c@seZdZdS)r5N)rrrr
r
r
rr5�sr5)-Z
__future__rrrrrV�rerrrrZrhsmrZloggingr%Z	getLoggerr�log�compileZOID_PATTERNZ
VALUE_PATTERNrrrrr#r.�objectr/r`rlr}r�r?rCr�r6r�r~ror�r�r�rXr5r
r
r
r�<module>sD



C(<oGH
u%[6G

Youez - 2016 - github.com/yon3zu
LinuXploit