Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
python3-tvault-contego / usr / lib / python3.6 / site-packages / contego / __pycache__ / context.cpython-36.opt-1.pyc
Size: Mime:
3

nS
b".ã@s
dZddlZddlmZddlmZddlmZddl	m
Z
ddlmZddl
mZdd	lmZddlZdd
lmZddlmZddlmZejeƒZeƒZeƒZGd
d„dejƒZej Gdd„de
j!ƒƒZ!dd„Z"d dd„Z#dd„Z$dd„Z%dd„Z&dd„Z'dd„Z(dS)!zGRequestContext: context for requests that persist through all of dmapi.éN)Úcontextmanager)Úservice_catalog)Úplugin)Úcontext)Úenginefacade)Úlog)Ú	timeutils)Ú	exception)Ú_)Úutilscs2eZdZdZ‡fdd„Zdd„Zd	dd„Z‡ZS)
Ú_ContextAuthPluginzñA keystoneauth auth plugin that uses the values from the Context.

    Ideally we would use the plugin provided by auth_token middleware however
    this plugin isn't serialized yet so we construct one from the serialized
    auth data.
    cs$tt|ƒjƒ||_tj|ƒ|_dS)N)ÚsuperrÚ__init__Ú
auth_tokenÚksa_service_catalogZServiceCatalogV2r)ÚselfrZsc)Ú	__class__©ú/usr/lib/python3.6/context.pyr)sz_ContextAuthPlugin.__init__cOs|jS)N)r)rÚargsÚkwargsrrrÚ	get_token/sz_ContextAuthPlugin.get_tokenNcKs|jj||||dS)N)Úservice_typeÚservice_nameÚ	interfaceÚregion_name)rZurl_for)rZsessionrrrrrrrrÚget_endpoint2sz_ContextAuthPlugin.get_endpoint)NNNN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rrrÚ
__classcell__rr)rrr!s
rc
s†eZdZdZd‡fdd„	Zdd„Zd	d
„Zdd„Zd
d„Ze	eeeƒZ
‡fdd„Ze‡fdd„ƒZ
ddd„Zddd„Zdd„Z‡ZS)ÚRequestContextzpSecurity context and request information.

    Represents the user taking a given action within the system.
    NÚnoFcs˜|r||d<|r||d<tt|ƒjfd|i|—Ž||_||_|sJtjƒ}t|tj	ƒr`tj
|ƒ}||_|r|dd„|Dƒ|_ng|_|	|_
||_|
|_dS)aÉ:param read_deleted: 'no' indicates deleted records are hidden,
                'yes' indicates deleted records are visible,
                'only' indicates that *only* deleted records are visible.

           :param overwrite: Set to False to ensure that the greenthread local
                copy of the index is not overwritten.

           :param user_auth_plugin: The auth plugin for the current request's
                authentication data.
        ÚuserZtenantÚis_adminc
Ssg|]}|jdƒdkr|‘qS)	ÚtypeÚimageú
block-storageÚvolumev2Úvolumev3úkey-managerÚ	placementÚnetwork)r'r(r)r*r+r,r-)Úget)Ú.0Úsrrrú
<listcomp>csz+RequestContext.__init__.<locals>.<listcomp>N)r
r"rÚread_deletedÚremote_addressrZutcnowÚ
isinstanceÚsixZstring_typesZ
parse_strtimeÚ	timestamprÚinstance_lock_checkedÚquota_classÚuser_auth_plugin)rÚuser_idÚ
project_idr%r2r3r6r8rr7r9r)rrrr@s&
zRequestContext.__init__cCs|jr|jSt|j|jƒSdS)N)r9rrr)rrrrÚget_auth_pluginxszRequestContext.get_auth_plugincCs|jS)N)Ú
_read_deleted)rrrrÚ_get_read_deleted~sz RequestContext._get_read_deletedcCs"|dkrttdƒ|ƒ‚||_dS)Nr#ÚyesÚonlyz=read_deleted can only be one of 'no', 'yes' or 'only', not %r)r#r?r@)Ú
ValueErrorr
r=)rr2rrrÚ_set_read_deletedsz RequestContext._set_read_deletedcCs|`dS)N)r=)rrrrÚ_del_read_deleted‡sz RequestContext._del_read_deletedcsºtt|ƒjƒ}|jt|ddƒt|ddƒt|ddƒt|ddƒt|ddƒt|dƒrZtj|jƒndt|ddƒt|d	dƒt|d
dƒt|ddƒt|ddƒt|d
dƒdœƒ|jdt|ddƒiƒ|S)Nr:r;r%r2r#r3r6Ú
request_idr8Ú	user_namerÚproject_namer7F)r:r;r%r2r3r6rDr8rErrFr7Zis_admin_projectT)	r
r"Úto_dictÚupdateÚgetattrÚhasattrrZstrtimer6)rÚvalues)rrrrGs&









zRequestContext.to_dictcsVtt|ƒj||jdƒ|jdƒ|jddƒ|jdƒ|jdƒ|jdƒ|jdƒ|jd	d
ƒd	S)Nr:r;r2r#r3r6r8rr7F)r:r;r2r3r6r8rr7)r
r"Ú	from_dictr.)ÚclsrK)rrrrL«s

zRequestContext.from_dictcCsFtj|ƒ}tj|jƒ|_d|_d|jkr4|jjdƒ|dk	rB||_|S)z5Return a version of this context with admin flag set.TZadminN)ÚcopyÚdeepcopyZrolesr%Úappendr2)rr2rrrrÚelevated¼s

zRequestContext.elevatedTcCsF|dkr|j|jdœ}ytj|||ƒStjk
r@|r<‚dSXdS)aRVerifies that the given action is valid on the target in this context.

        :param action: string representing the action to be checked.
        :param target: dictionary representing the object of the action
            for object creation this should be a dictionary representing the
            location of the object e.g. ``{'project_id': context.project_id}``.
            If None, then this default target will be considered:
            {'project_id': self.project_id, 'user_id': self.user_id}
        :param fatal: if False, will return False when an exception.Forbidden
           occurs.

        :raises dmapi.exception.Forbidden: if verification fails and fatal is
            True.

        :return: returns a non-False value (not necessarily "True") if
            authorized and False if not authorized and fatal is False.
        N)r;r:F)r;r:ZpolicyZ	authorizer	Ú	Forbidden)rÚactionÚtargetZfatalrrrÚcanÌs
zRequestContext.cancCsd|jƒS)Nz<Context %s>)rG)rrrrÚ__str__ðszRequestContext.__str__)
NNNr#NNNNFN)N)NT)rrrr rr<r>rBrCÚpropertyr2rGÚclassmethodrLrQrUrVr!rr)rrr":s 5

$r"cCstdddddS)z·A helper method to get a blank context.

    Note that overwrite is False here so this context will not update the
    greenthread-local stored context that is used when logging.
    NF)r:r;r%Ú	overwrite)r"rrrrÚget_contextôsrZr#cCstddd|ddS)NTF)r:r;r%r2rY)r")r2rrrÚget_admin_contexts
r[cCs*|sdS|jrdS|js"|jr&dSdS)z2Indicates if the request context is a normal user.FT)r%r:r;)rrrrÚis_user_contextsr\cCs|jrt|ƒrtjƒ‚dS)zRRaise exception.Forbidden() if context is not a user or an
    admin context.
    N)r%r\r	rR)ZctxtrrrÚrequire_contextsr]cCs.t|ƒr*|jstjƒ‚n|j|kr*tjƒ‚dS)z=Ensures a request has permission to access the given project.N)r\r;r	rR)rr;rrrÚauthorize_project_context!s


r^cCs.t|ƒr*|jstjƒ‚n|j|kr*tjƒ‚dS)z:Ensures a request has permission to access the given user.N)r\r:r	rR)rr:rrrÚauthorize_user_context*s


r_cCs.t|ƒr*|jstjƒ‚n|j|kr*tjƒ‚dS)zAEnsures a request has permission to access the given quota class.N)r\r8r	rR)rÚ
class_namerrrÚauthorize_quota_class_context3s


ra)r#))r rNÚ
contextlibrZkeystoneauth1.accessrrZ
keystoneauth1rZoslo_contextrZoslo_db.sqlalchemyrZoslo_logrZloggingZ
oslo_utilsrr5Zcontegor	Zcontego.i18nr
rZ	getLoggerrZLOGÚobjectZdid_not_respond_sentinelZraised_exception_sentinelZBaseAuthPluginrZtransaction_context_providerr"rZr[r\r]r^r_rarrrrÚ<module>s4

: