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    
Size: Mime:
ó
Xpö^c@s´dZddlZddlZddlZddlZddlZddlZddlmZ	ddlm
Zddlm
Z
ddlmZddlmZddlmZdd	lmZdd
lmZddlmZddlmZddlZdd
lmZddlZddlmZddlmZddl m!Z!ddl"m#Z#ddlm$Z$ddlm%Z%ddlm&Z&ddl'm(Z(ddl'm)Z)ddl'm*Z*ddl'm+Z+ddl'm,Z,ddl'm-Z-ddl.m/Z/ddlm0Z0ddl1m2Z2ddl1m3Z3ddl1m4Z4dd l1m5Z5dd!l6m7Z7dd"l6m8Z8dd#l6m9Z9dd$l6m:Z:ddl;Z<ddl=Z<dd%l>m?Z?ddl<m
Z
dd&l@mAZAdd'l<mBZBejCd(ƒZDe<jEjFZFejGeHƒZIe
jJƒZKe
jJƒZLd)„ZMdd*„ZOd+„ZPddeQd,„ZRdd-„ZSd.„ZTd/„ZUd0„ZVd1„ZWeWeTdd2„ƒƒZXdd3„ZYdd4„ZZdS(5s%Implementation of SQLAlchemy backend.iÿÿÿÿN(tapi(t	exception(tenginefacade(tupdate_match(tutils(tlog(texcutils(timportutils(t	timeutils(t	uuidutils(trange(tand_(tBoolean(tNoSuchTableError(tcompiles(tInteger(tMetaData(tor_(taliased(tcontains_eager(t
joinedload(tjoinedload_all(tnoload(tundefer(tTable(tsql(tasc(tcast(tdesc(t
UpdateBase(tfalse(tfunc(tnull(ttrue(tmodels(t_(t
safe_utilssosprofiler.sqlalchemycCstjtS(s"The backend is this module itself.(tsystmodulest__name__(((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pytget_backendEscCs5tt|jƒƒƒ}|dk	r1||d<n|S(Nt
connection(tdicttlisttitemstNone(t
conf_groupR)tkw((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pyt_get_db_confIs
cCsYtjt|jƒtjt|jƒtrUtjd„ƒtjd„ƒndS(NcSstjt|dƒS(Ntdb(tprofiler_sqlalchemytadd_tracingtsa(teng((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pyt<lambda>WscSstjt|dƒS(NR1(R2R3R4(R5((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pyR6Ys(tmain_context_managert	configureR0tdatabasetapi_context_managertapi_databaseR2tappend_on_engine_create(tconf((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pyR8Os
cCs|dkr|j}ni}d|kr7t|d<n>d|krPt|d<n%d|kr_nttdƒ|ƒ‚tj||j||}t	j
j|ƒrÿ|rÿ|dkrç|jt
|j|jk|jtƒkƒƒ}qÿ|jd|jƒ}n|S(	s9Query helper that accounts for context's `read_deleted` field.

    :param context:     ContegoserverContext of the query.
    :param model:       Model to query. Must be a subclass of ModelBase.
    :param args:        Arguments to query. If None - model is used.
    :param read_deleted: If not None, overrides context's read_deleted field.
                        Permitted values are 'no', which does not return
                        deleted values; 'only', which only returns deleted
                        values; and 'yes', which does not filter deleted
                        values.
    :param project_only: If set and context is user-type, then restrict
                        query to match the context's project_id. If set to
                        'allow_none', restriction includes project_id = None.
    tnotdeletedtonlytyess$Unrecognized read_deleted value '%s't
allow_nonet
project_idN(R-tread_deletedtFalsetTruet
ValueErrorR#tsqlalchemyutilstmodel_querytsessiontdmapitcontexttis_user_contexttfilterRRCR t	filter_by(RLtmodeltargsRDtproject_onlytquery_kwargstquery((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pyRI\s(


cCsìt|tjdtƒjtdƒƒjtdƒƒ}|dkrQddg}nxY|D]Q}|dkrpqXnd|kr”|jt|ƒƒ}qX|jt|ƒƒ}qXWx8ddgD]*}||krº|jt	|ƒƒ}qºqºW|S(	NRRssecurity_groups.rulest
info_cachetmetadatatsystem_metadatatsecurity_groupssextra.(RURX(
RIR"tInstanceRFtoptionsRRR-RR(RLtcolumns_to_joinRTtcolumntcol((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pyt_build_instance_gets
cs"tjˆƒ‡fd†ƒ}|S(sÅDecorator to use a reader.allow_async db context manager.

    The db context manager will be picked from the RequestContext.

    Wrapped function must have a RequestContext in the arguments.
    cs<t|ƒ}|jjj|ƒˆ|||ŽSWdQXdS(N(tget_context_managertreadertallow_asynctusing(RLRQtkwargstctxt_mgr(tf(s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pytwrapped©s(t	functoolstwraps(ReRf((Res;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pyt'pick_context_manager_reader_allow_async¢scCst|ƒptS(swGet a database context manager object.

    :param context: The request context that can contain a context manager
    (t_context_manager_from_contextR7(RL((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pyR_°scCs,|r(y|jSWq(tk
r$q(XndS(N(t
db_connectiontAttributeError(RL((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pyRj¶s

cs"tjˆƒ‡fd†ƒ}|S(sEDecorator to require *any* user or admin context.

    This does no authorization for user or project access matching, see
    :py:func:`Contegoserver.context.authorize_project_context` and
    :py:func:`Contegoserver.context.authorize_user_context`.

    The first argument to the wrapped function must be the context.

    cs!tjj|dƒˆ||ŽS(Ni(RKRLtrequire_context(RQRc(Re(s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pytwrapperÈs(RgRh(ReRn((Res;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pyRm½scCst||d|ƒS(NR[(t_instance_get_by_uuid(RLtuuidR[((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pytinstance_get_by_uuidÎscCsCt|d|ƒjd|ƒjƒ}|s?tjd|ƒ‚n|S(NR[Rptinstance_id(R^ROtfirstRtInstanceNotFound(RLRpR[tresult((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pyRoÕs
cCs,tjƒ}|jttjd|ƒ|S(sfCreate a database context manager object.

    : param connection: The database connection string
    R)(Rttransaction_contextR8R0tCONFR9(R)Rd((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pytcreate_context_manageràs([t__doc__tcollectionstcopytdatetimeRgtinspectR%toslo_dbRtoslo_db_apiRtdb_exctoslo_db.sqlalchemyRRRRHtoslo_logRtloggingt
oslo_utilsRRRR	tsixt	six.movesR
t
sqlalchemyR4RRtsqlalchemy.excR
tsqlalchemy.ext.compilerRRRRtsqlalchemy.ormRRRRRRtsqlalchemy.schemaRRtsqlalchemy.sql.expressionRRRRtsqlalchemy.sqlRRR R!t
dmapi.confRKt
dmapi.contexttdmapi.db.sqlalchemyR"t
dmapi.i18nR#R$t
try_importR2R=Rwt	getLoggerR'tLOGRvR7R:R(R-R0R8RERIR^RiR_RjRmRqRoRx(((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pyt<module>sŠ		.