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:
ó

[dc@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.ddlm/Z/ddl0m1Z1ddl0m2Z2ddl0m3Z3ddl0m4Z4dd l5m6Z6dd!l5m7Z7dd"l5m8Z8dd#l5m9Z9ddl:Z;ddl<Z;dd$l=m>Z>ddl;m
Z
dd%l?m@Z@dd&l;mAZAejBd'ƒZCe;jDjEZEejFeGƒZHe
jIƒZJe
jIƒZKd(„ZLdd)„ZNd*„ZOddePd+„ZQdd,„ZRd-„ZSd.„ZTd/„ZUd0„ZVeVeSdd1„ƒƒZWdd2„ZXdd3„ZYd4„ZZd5„Z[d6„Z\d7„ZSe[d8„ƒZ]e\d9„ƒZ^e\d:„ƒZ_eSd;„ƒZ`e\dd<„ƒZae\d=„ƒZbe\d>„ƒZce\ePd?„ƒZde\ePd@„ƒZee\dA„ƒZfe\dB„ƒZgeSdC„ƒZhe[dD„ƒZie	jjdEdFdGekƒe[dH„ƒƒZldS(Is%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(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_backendDscCs5tt|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_confHs
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>VscSstjt|dƒS(NR0(R1R2R3(R4((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pyR5Xs(tmain_context_managert	configureR/tdatabasetapi_context_managertapi_databaseR1tappend_on_engine_create(tconf((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pyR7Ns
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_contexttfilterRRBRt	filter_by(RKtmodeltargsRCtproject_onlytquery_kwargstquery((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pyRH[s(


cCsìt|tjdtƒjtdƒƒjtdƒƒ}|dkrQddg}nxY|D]Q}|dkrpqXnd|kr”|jt|ƒƒ}qX|jt|ƒƒ}qXWx8ddgD]*}||krº|jt|ƒƒ}qºqºW|S(	NRQssecurity_groups.rulest
info_cachetmetadatatsystem_metadatatsecurity_groupssextra.(RTRW(	RHR!tInstanceREtoptionsRR,RR(RKtcolumns_to_joinRStcolumntcol((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(RKRPtkwargstctxt_mgr(tf(s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pytwrapped¨s(t	functoolstwraps(RdRe((Rds;/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_contextR6(RK((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pyR^¯scCs,|r(y|jSWq(tk
r$q(XndS(N(t
db_connectiontAttributeError(RK((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pyRiµ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(RJRKtrequire_context(RPRb(Rd(s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pytwrapperÇs(RfRg(RdRm((Rds;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pyRl¼scCst||d|ƒS(NRZ(t_instance_get_by_uuid(RKtuuidRZ((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pytinstance_get_by_uuidÍscCsCt|d|ƒjd|ƒjƒ}|s?tjd|ƒ‚n|S(NRZRotinstance_id(R]RNtfirstRtInstanceNotFound(RKRoRZtresult((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pyRnÔs
cCs,tjƒ}|jttjd|ƒ|S(sfCreate a database context manager object.

    : param connection: The database connection string
    R((Rttransaction_contextR7R/tCONFR8(R(Rc((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pytcreate_context_managerßscs"tjˆƒ‡fd†ƒ}|S(sZDecorator to select synchronous or asynchronous reader mode.
    The kwarg argument 'use_slave' defines reader mode. Asynchronous reader
    will be used if 'use_slave' is True and synchronous reader otherwise.
    If 'use_slave' is not specified default value 'False' will be used.
    Wrapped function must have a context in the arguments.
    csŽtjˆƒ}tj|||Ž}|d}|jdtƒ}|rXt|ƒj}nt|ƒj}|j	|ƒˆ||ŽSWdQXdS(NRKt	use_slave(
R#tget_wrapped_functiontinspecttgetcallargstgetRDR^tasync_R_Ra(RPRbtwrapped_funct
keyed_argsRKRxtreader_mode(Rd(s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pyRmñs
(RfRg(RdRm((Rds;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pytselect_db_reader_modeéscs"tjˆƒ‡fd†ƒ}|S(s·Decorator to use a writer db context manager.
    The db context manager will be picked from the RequestContext.
    Wrapped function must have a RequestContext in the arguments.
    cs9t|ƒ}|jj|ƒˆ|||ŽSWdQXdS(N(R^twriterRa(RKRPRbRc(Rd(s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pyRes(RfRg(RdRe((Rds;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pytpick_context_manager_writerscs"tjˆƒ‡fd†ƒ}|S(s·Decorator to use a reader db context manager.
    The db context manager will be picked from the RequestContext.
    Wrapped function must have a RequestContext in the arguments.
    cs9t|ƒ}|jj|ƒˆ|||ŽSWdQXdS(N(R^R_Ra(RKRPRbRc(Rd(s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pyRes(RfRg(RdRe((Rds;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pytpick_context_manager_readerscs"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(R^R_R`Ra(RKRPRbRc(Rd(s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pyRe"s(RfRg(RdRe((Rds;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pyRhscCs—t||ƒ}t|tjƒjd|ƒjdtƒ|jdkr“t|tjƒj	t
tjj|ktjj|dkƒƒjdtƒndS(Ntidtsynchronize_sessionstvault-contegothost(
tservice_getRHR!tServiceRNtsoft_deleteRDtbinarytComputeNodeRMRt
service_idR‡(RKRtservice((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pytservice_destroy-scCsIt|tjƒjd|ƒ}|jƒ}|sEtjd|ƒ‚n|S(NR…R(RHR!R‰RNRrRtServiceNotFound(RKRRSRt((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pyRˆ<s
cCsIt|tjƒjd|ƒ}|jƒ}|sEtjd|ƒ‚n|S(NRoR(RHR!R‰RNRrRR(RKtservice_uuidRSRt((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pytservice_get_by_uuidGs
cCsˆ|jjtjjtjtjjƒƒjtjjj	|ƒƒjtjj
dkƒjtjjtƒkƒj
tjjƒ}t|ƒS(Ni(RIRSR!R‰R‹RtmintversionRMtin_R>tforced_downRtgroup_byR)(RKtbinariestmin_versions((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pytservice_get_minimum_versionRs		cCs=t|tjƒ}|dk	r3|jd|ƒ}n|jƒS(Ntdisabled(RHR!R‰R,RNtall(RKR›RS((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pytservice_get_all^scCs4t|tjddƒjdtƒjd|ƒjƒS(NRCR=R›ttopic(RHR!R‰RNRDRœ(RKRž((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pytservice_get_all_by_topichscCs@t|tjddƒjdtƒjd|ƒjd|ƒjƒS(NRCR=R›R‡Rž(RHR!R‰RNRDRr(RKR‡Rž((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pytservice_get_by_host_and_topicpscCsCt|tjƒjd|ƒ}|s9|jdtƒ}n|jƒS(NR‹R›(RHR!R‰RNRDRœ(RKR‹tinclude_disabledRS((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pytservice_get_all_by_binaryyscCsŽt|tjddƒjddƒ}|s?|jdtƒ}n|jtjtjjtjjkƒjtjj	|kƒj
dƒ}|jƒS(NRCR=R‹stvault-contegoR›R‡(RHR!R‰RNRDtjoinRŒR‡RMthypervisor_typetdistinctRœ(RKthv_typeR¡RS((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pyt#service_get_all_computes_by_hv_types		cCs[t|tjddƒjd|ƒjd|ƒjƒ}|sWtjd|d|ƒ‚n|S(NRCR=R‡R‹(RHR!R‰RNRrRtHostBinaryNotFound(RKR‡R‹Rt((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pytservice_get_by_host_and_binaryscCs(t|tjddƒjd|ƒjƒS(NRCR=R‡(RHR!R‰RNRœ(RKR‡((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pytservice_get_all_by_hostœscCsUt|tjddƒjd|ƒjddƒjƒ}|sQtjd|ƒ‚n|S(NRCR=R‡R‹stvault-contego(RHR!R‰RNRrRtComputeHostNotFound(RKR‡Rt((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pytservice_get_by_compute_host£scCs°tjƒ}|j|ƒy|j|jƒWn|tjk
r«}d|jkr~tj	d|j
dƒd|j
dƒƒ‚ntjd|j
dƒd|j
dƒƒ‚nX|S(NR‹R‡Rž(R!R‰tupdatetsaveRItdb_exctDBDuplicateEntrytcolumnsRtServiceBinaryExistsR|tServiceTopicExists(RKtvaluestservice_refte((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pytservice_create°s
tmax_retriesitretry_on_deadlockcCsTt||ƒ}d|krC|d|jkrCtjƒ|_qCn|j|ƒ|S(Ntreport_count(RˆRºRtutcnowtlast_seen_upR­(RKRR´Rµ((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pytservice_update¿s
(mt__doc__tcollectionstcopytdatetimeRfRzR$toslo_dbRtoslo_db_apiRR¯toslo_db.sqlalchemyRRRRGtoslo_logRtloggingt
oslo_utilsRRRR	tsixt	six.movesR
t
sqlalchemyR3RRtsqlalchemy.excR
tsqlalchemy.ext.compilerRRRRtsqlalchemy.ormRRRRRtsqlalchemy.schemaRRtsqlalchemy.sql.expressionRRRRtsqlalchemy.sqlRRRR t
dmapi.confRJt
dmapi.contexttdmapi.db.sqlalchemyR!t
dmapi.i18nR"R#t
try_importR1R<Rvt	getLoggerR&tLOGRuR6R9R'R,R/R7RDRHR]RhR^RiRlRpRnRwRRƒR„RRˆR’RšRRŸR R¢R§R©RªR¬R·t
wrap_db_retryRER½(((s;/usr/lib/python2.7/dist-packages/dmapi/db/sqlalchemy/api.pyt<module>s´		.