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    
idna / lib / python2.7 / site-packages / contego / nova / extension / driver / vaultfuse.pyc
Size: Mime:
ó
w=4\c@€s¸
ddlmZddlZddlZddlZddlZddlmZddlm	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlmZddlmZddlmZddlmZmZmZmZdd	lmZmZmZdd
lmZyddl m!Z!Wn!e"k
rQddl#m!Z!nXyddl$m%Z&Wn!e"k
r‰ddl'm%Z&nXd
Z(dZ)e!j*dddde+ddƒe!j*dddde+ddƒgZ,e!j-dddddƒe!j-dddddƒe!j-dddddƒe!j-d de.dd!dd"ƒe!j-d#de(dd$dd%ƒe!j-d&ddd'd(dd)ƒe!j-d*d'd+dd,ƒe!j*d-de+dd.ƒe!j-d/dd0dd1ƒg	Z/e!j*d2de0dd3ƒe!j1d4dd5dd6ƒgZ2e!j-d7dd8dd9ƒe!j-d:dd;dd<ƒe!j-d=dd>dd?ƒe!j-d@ddAddBƒe!j3dCddDdEdFdGdHdIgddJƒe!j*dKde+ddLƒe!j*dMde+ddNƒe!j-dOddPddQƒe!j-dRddPddSƒg	Z4e!j-dTddUddVƒe!j-dWddXƒe!j-dYddZddXƒe!j-d[dd\dd]ƒe!j-d^dd_dd`ƒe!j-daddbddcƒe!j-ddddeddfƒe!j-dgddhddiƒe!j-djddkddlƒe!j-dmddkddnƒe!j-doddpddqƒe!j-drddsddtƒe!j-duddddvƒe!j-dwddxddyƒe!j-dzdd{dd|ƒe!j-d}dd~ddƒe!j1d€dddd‚ƒe!j-dƒdd„dd…ƒe!j1d†dd‡dˆdˆdd‰ƒe!j1dŠdd‹ddŒƒe!j-dddŽddddƒgZ5e!j6Z6e6j7e5ƒe6j8e/ƒe6j8e2ƒe6j8e4ƒe6j8e,ƒe6ej9d5dd‘ƒe&j:e;ƒZ<e&j=e!j6d‘ƒye<j>j?e&j@ƒWn'eAk
r·e<j>j?e&j&j@ƒnXi&e.d’6d5d6gd“6d”d•6i
e.d–6e.d—6e.d˜6e.d™6e.dš6e.d›6e.dœ6e.d6e.dž6e.dŸ6e.d 6e.d¡6e.d¢6d£6e0d¤6e.d¥6d¦d§6d¦d¨6ejBjCd©ƒdª6ejBjCd«ƒd¬6ejBjCd­ƒd®6d¦d¯6d¦d°6e.d±6e0d²6e+d³6e.d´6d¦dµ6d¦d¶6d¦d·6e.d¸6e+d¹6d‹dº6e.d»6gd¼6e+d6e+d½6e0d¾6e+d¿6e+dÀ6e0dÁ6dÂdÃ6dÂdÄ6dÂdÅ6dÂdÆ6e+dÇ6e.dÈ6ZDe6jEdÉkrŠdÊeDd•<e6jFeDdµ<e6jGeDd¶<e6jHeDd·<n;dËeDd•<dÌe6jFkr	dÍeDd•<e6jId¦kráe6jIeDd£dÎ<e6jIeDd£dÏ<n4e6jJd¦kr	e6jJeDd£dÐ<e6jJeDd£dÑ<nne6jKeDd£dÒ<e6jFeDd°<e6jGeDd§<e6jHeDd¨<e6jIeDdÓ<e6jIeDdÔ<e6jKeDd¯<e6jKeDdÕ<e6jLeDdÖ<e6jFeDd×<e6jFeDdµ<e6jGeDd¶<e6jHeDd·<dÂZMdØZNdÙZOiaPdڄZQdۄZRd܄ZSdÝfdބƒYZTdßeUfdà„ƒYZVdáeVfd℃YZWdãeVfd䄃YZXdåeUfd愃YZYd{efd焃YZZdè„Z[dé„Z\e;dêkr´
e[ƒe\e6j]e6j^ƒndS(ëiÿÿÿÿ(twith_statementN(tbunchify(tLRUCache(tmkstemp(tutils(tget_conn(tconfig_true_valuetReadableToIterablet
LengthWrappert
EMPTY_ETAG(tFUSEtFuseOSErrort
Operations(tgetpwnam(tcfg(tlogs%Y-%m-%d %H:%M:%StnovatdebugtshorttdtdefaultthelpsUPrint debugging output (set logging level to DEBUG instead of default WARNING level).tverbosetvsWPrint more verbose output (set logging level to INFO instead of default WARNING level).s
log-configtmetavartPATHsßIf this option is specified, the logging configuration file specified is used and overrides any other logging options specified. Please see the Python logging module documentation for details on logging configuration files.slog-config-appends(Optional) Log Appendswatch-log-files(Optional) Watch logs
log-formattFORMATsÞA logging.Formatter log message format string which may use any of the available logging.LogRecord attributes. This option is deprecated.  Please use logging_context_format_string and logging_default_format_string instead.slog-date-formattDATE_FORMATsCFormat string for %%(asctime)s in log records. Default: %(default)sslog-filetdeprecated_nametlogfilesZ(Optional) Name of log file to output to. If no default is set, logging will go to stdout.slog-dirtlogdirs@(Optional) The base directory used for relative --log-file pathss
use-syslogsUse syslog for logging.ssyslog-log-facilitytLOG_USERs$syslog facility to receive log linest
use_stderrsLog output to standard errortrate_limit_burstisBurst limittlogging_context_format_stringsw%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user)s %(tenant)s] %(instance)s%(message)ss2format string to use for log messages with contexttlogging_default_format_stringsV%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)ss5format string to use for log messages without contexttlogging_debug_format_suffixs$%(funcName)s %(pathname)s:%(lineno)ds0data to append to log format when level is DEBUGtlogging_exception_prefixs?%(asctime)s.%(msecs)03d %(process)d TRACE %(name)s %(instance)ss5prefix each line of exception output with this formattdefault_log_levelssamqplib=WARNssqlalchemy=WARNs	boto=WARNs	suds=INFOs
keystone=INFOseventlet.wsgi.server=WARNslist of logger=LEVEL pairstpublish_errorsspublish error eventstfatal_deprecationssmake deprecations fataltinstance_formats[instance: %(uuid)s] sBIf an instance is passed with the log message, format it like thistinstance_uuid_formatsGIf an instance UUID is passed with the log message, format it like thistvault_storage_typetnfss#Storage type: nfs, swift-i, swift-stvault_data_directorys'Location where snapshots will be storedtvault_data_directory_olds/var/triliovaultttmpfs_mount_pathttmpfssLLocation with respect to CONF.vault_data_directory_oldwhere tmpfs is mountedtvault_storage_nfs_exporttlocals
NFS Exporttvault_storage_nfs_optionstnolocksNFS Optionstvault_swift_auth_versiontKEYSTONE_V2s KEYSTONE_V2 KEYSTONE_V3 TEMPAUTHtvault_swift_auth_urlshttp://localhost:5000/v2.0sKeystone Authorization URLtvault_swift_tenanttadminsSwift tenanttvault_swift_usernamesSwift usernametvault_swift_passwordtpasswordsSwift passwordtvault_swift_region_namet	RegionOnesSwift Region Nametvault_swift_domain_idsSwift domain idtvault_swift_domain_nametDefaultsSwift domain nametvault_swift_container_prefixtTrilioVaultsSwift Container Prefixtvault_swift_segment_sizet33554432sDefault segment size 34MBtvault_retry_countis(The number of times we retry on failurestvault_swift_url_templates,http://localhost:8080/v1/AUTH_%(project_id)ssThe URL of the Swift endpointtvault_segment_sizei is$vault swift object segmentation sizetvault_cache_sizeis6Number of segments of an object that need to be cachedt
rootwrap_confs/etc/nova/rootwrap.confsrootwrap config filetprojecttswifttsync_totheaderu1.0tauth_versionuproject_nameuregion_nameuuser_domain_nameu
endpoint_typeuobject_storage_urluproject_domain_iduuser_iduuser_domain_idu	tenant_iduservice_typeu
project_idu
auth_tokenuproject_domain_namet
os_optionstssl_compressiontos_storage_urlttos_usernametos_passwordt	OS_CACERTt	os_cacerttOS_CERTtos_certtOS_KEYtos_keytos_tenant_nametos_auth_urlt
os_auth_tokentinsecuretsnettsync_keytauthtusertkeytread_acltinfotretriest	write_acltmetatuse_slotchecksumtchangedtleave_segmentstskip_identicali
tsegment_threadstobject_dd_threadstobject_uu_threadstcontainer_threadstyes_alltobject_nametTEMPAUTHs1.0s2.0tv3t3tuser_domain_idt	domain_idtuser_domain_nametdomain_nametproject_nametos_domain_idtos_user_domain_idtos_project_nametos_region_nametauthurlis
%016x.%08xc€s"tjˆƒ‡fd†ƒ}|S(Nc€s•ytjjtjƒWn'tk
r@tjjtjjƒnXˆ||Ž}ytjjtjƒWn'tk
rtjjtjjƒnX|S(N(tloggingtdisabletERRORt
BaseExceptiontNOTSET(targstkwargstresult(tfunc(s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pytwrapper:s

(t	functoolstwraps(RŠR‹((RŠs\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pytdisable_logging9scC€s}tjj|ƒ\}}d}xR|dkrr|dkrQtjj||ƒ}n|}tjj|ƒ\}}q!W||fS(NRSt/(RSR(tostpathtsplittjoin(R‘theadttailtprefix((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pytsplit_head_tailIscC€stjj|ƒ\}}|S(N(RR‘R’(R‘R”R•((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pytget_headVst	tmpfsfilecB€s&eZed„Zd„Zd„ZRS(cC€s
||_dS(N(tremove(tselfRš((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyt__init__\s	cC€sctjjtjtjƒ}td|ƒ\}|_tj|ƒ|j	r\tj	|jƒn|jS(Ntdir(
RR‘R“tCONFR.R/Rt	open_filetcloseRš(R›ttmpfs_mountpathtfh((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyt	__enter__`s
	cG€stj|jƒdS(N(RRšRŸ(R›R‡((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyt__exit__is(t__name__t
__module__tFalseRœR£R¤(((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR™[s		tObjectRepositorycB€sƒeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd
d„Z
d
d„Zd	„Zd
„Z
d„Zd„ZRS(cK€s
||_dS(N(troot(R›R©Rˆ((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRœns	cC€s8|jdƒr|d}ntjj|j|ƒ}|S(NRi(t
startswithRR‘R“R©(R›tpartialR‘((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyt
_full_pathrs
cC€sdS(N((R›Rttflags((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pytobject_openxscC€sdS(N((R›Rttofftbuf((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyt
object_upload{scC€sdS(N((R›Rttoffset((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pytobject_download~scC€sdS(N((R›Rt((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyt
object_deletescC€sdS(N((R›RtR¢((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pytobject_close„scC€sdS(N((R›RttlengthR¢((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pytobject_truncate‡scC€sdS(N((R›RtR¢((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pytobject_getattrŠscC€sdS(N((R›R‘R¢((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pytobject_readdirscC€sdS(N((R›R‘tmode((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyt
object_accessscC€sdS(N((R›R‘((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyt
object_unlink“scC€sdS(N((R›R‘((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyt
object_statfs–sN(R¥R¦RœR¬R®R±R³R´RµtNoneR·R¸R¹R»R¼R½(((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR¨ms										tSwiftRepositorycB€s.eZd„Zd„Zd„Zd„Zd„Zid„Zd„Zd„Z	d„Z
d	„Zed
„ƒZ
d„Zdd„Zd
„Zd„Zd„Zdd„Zd„Zd„Zed„Zd„Zed„Zd„Zd„Zd„Zd„Zd„Zd„Z dd„Z!d„Z"RS(cK€sJtt|ƒj||ttƒj|_ttƒj|_i|_	dS(N(
tsuperR¿RœR
t	FUSE_USERtpw_uidtuser_idtpw_gidtgroup_idtmanifest(R›R©Rˆ((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRœ›scC€s}tjj|ƒ\}}d}xR|dkrr|dkrQtjj||ƒ}n|}tjj|ƒ\}}q!W||fS(NRSR(RSR(RR‘R’R“(R›R‘R”R•R–((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR—¡scC€stjj|ƒ\}}|S(N(RR‘R’(R›R‘R”R•((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyt	_get_head­sc
C€s|jdƒr|d}ntjj|jƒsÅy}ddtjd|jg}tj|dt	ƒddtjdt
|jƒdt
|jƒ|jg}tj|dt	ƒWqIt
k
rÁqIXn„tj|jƒ}|j|jksû|j|jkrIddtjdt
|jƒdt
|jƒtjg}tj|dt	ƒny™tjjtjtjƒ}tjj|ƒs‰tj|ƒntjj|ƒsád	d
dddtjdd
dddd|g
}tj|dt	ƒnWnt
k
rõnXtjj|j|ƒ}|S(NRitsudos
nova-rootwraptmkdirtshelltchownt:ttimeouts-sKILLt30tmounts-tR0s-ossize=200M,mode=0777(RªRR‘tisdirR©RžRJt
subprocesstcallR§tstrRÃRÅR…tstattst_uidtst_gidR.R“R/Rtensure_treetismountt
check_call(R›R«tcommandt	stat_infoR¡R‘((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyt
_get_cache±sD

	
c
	C€s‹|j|ƒ\}}i}i}tjƒ}||d<t|ƒ}t|ƒ}|jƒ|j||d|ddd|ƒ}|d}	|	S(NRttheaderstquery_stringsmultipart-manifest=gett
response_dicti(R—toptionstcopyRRtget_autht
get_object(
R›Rtt	containerR–tput_headerstmrt_optstconntrspRÆ((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyt_read_object_manifestÚs

		
c
C€s­|j|ƒ\}}i}i}d|d<tjƒ}||d<x(|jƒD]\}	}
|
|d|	<qNWt|ƒ}t|ƒ}|j|||d|ddd|ƒdS(	Nttruesx-static-large-objectRtsX-Object-Meta-RÝRÞsmultipart-manifest=putRß(R—RàRát	iteritemsRRt
put_object(R›Rttobject_manifesttmetadataRäR–RåRæRçRdtvalueRè((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyt_write_object_manifestïs 

cC€s|j|ƒ\}}tjƒ}|dkr6g}n	|g}d|d<t|d<t|d<t|d<d|d<t|ƒ}i}|dkr©||d<|j|ƒnd}tj||ƒ}i}xD|dj	ƒD]2\}	}
d|	krØ|
||	j
d	ƒd
<qØqØW|S(NRSt	delimiterthumanttotalstlongR–RÝs
x-object-metasx-object-meta-i(R—RàRáR¾R§Rtappendt
vaultswifttst_statRìR’(R›RtRäR–RçR‡RtstRïRdRð((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyt_get_object_metadatas,		





c
C€sÃ|j|ƒ\}}|j|ƒ}i|j|<|tjkpa|tddƒtddƒfk|j|d<|tjksê|tddƒtddƒfksê|tddƒksê|tjksê|tddƒtddƒfkrû|j|ƒ}tj	|ƒ}x\|D]T}|dj
d	ƒd
j
dƒd}t|dƒ}	t|d
<||j||	<qW|j|ƒ}
|
d|j|d<y+|j|j|dƒ}tj
|ƒWntk
rÉnXt|dƒ}|jtj|ƒƒWdQXn¸|tddƒtddƒtddƒfkrSy|j|ƒWqStk
rOqSXn|tj@r{t|dƒ}WdQXny$|j|dƒ}tj
|ƒWntk
r²nXtj||ƒS(Nt8000it8800treadonlyt8401t8002t8802tnames
-segments/it.itmodifiedssegments-dirtwt8001t8801t0001s	-segments(R—R¬RÆRtO_RDONLYtinttO_RDWRRêtjsontloadsR’R§RútmakedirsR…topentwritetdumpsR¼tO_WRONLY(
R›RtR­RäR–t	full_pathRÆtsegtoffstrR²Rïtsegment_dirtf((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR®$sN
,33
$

0

	
cC€sýyÖ|j|jd|dƒ}|j|ƒ\}}g}i}|j|dsPd}xtr_||j|krxPn|j||dr|j|j||d|ƒ}	t|	ƒ}
|ji|j||dd6|
jd6t|
j	t
jƒd	6ƒnO|ji|j||dd6|j||d
d6|j||dd	6ƒ|t
j7}q[Wtj
|ƒ}|j||di|d6ƒd}x»trL|j|||ƒ}t|ƒdkrÆPnt|ƒ}|j|j||dƒ\}}
xCtt|ƒt|
gƒƒD]"}|jtjj||ƒƒqW|t
j7}q•Wnytj|ƒWntk
rtnXytj|j|ƒƒWntk
r¢nXytj|j|ƒƒWntk
rÐnXdSWn tk
rø}tj |ƒnXdS(
Nssegments-dirs	-segmentsRýiRRR‘tetagt
size_bytesthashtbytesRï(!RÆtgetR—tTrueR¸RRöRtmintst_sizeRžRHRRRñtsegment_listtlentsortedtlisttsetR´RR‘R“R R…RšR¬tshutiltrmtreet	ExceptiontLOGt	exception(R›RtR¢tsegments_dirRäR–Rît
segments_listR²RùRÔtobjectstctptobjtex((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRµ[sv
	
	& 



c
C€s»||j|krF|j||dtkrF|j||d}nD|j||ƒ}|j|jd|dƒ}tjj||ƒ}|j|ƒ\}}|j|ƒ}	t	ƒ­}
t
|
dƒ}|j|ƒWdQXtj
ƒ}t|ƒ|d<|jdƒ|d<t|ƒ}||
g}
ytj|
|ƒWn#tk
r_}tj|ƒ‚nXWdQX||j|kri|j||<n||j||d<t|j||d<dS(	NRRssegments-dirs	-segmentsRtsegment_sizeRRt(RÆRtnext_segname_from_offsetRRR‘R“R—RÜR™RRRàRáR trstripRR÷t	st_uploadR&R'R((R›RtR²R°tseg_fullnametsegnameR)RäR.t
cache_pathttempfsRRçtargs1R/((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR±¤s4


c
	C€sŽ||j|kr@td|tt|ƒtdƒfƒ‚n|j||d}|j|jdƒƒ\}}|j|ƒ}y tj|j	t
ƒddƒWntk
rµnXtdt
ƒÃ}tjƒ}d|d<d|d	<|jdƒ|d
<t|ƒ}||g}	yKtj|	|ƒt|jdƒdƒ}
|
jƒ}WdQXt|ƒSWn#tk
rƒ}tj|ƒ‚nXWdQXdS(Nsobject %s not foundiRRRºiéRšR–t
out_directorytout_filetrb(RÆR&tSEGMENT_FORMATR	R—R2RÜRR
R¬R)R…R™RRàRáR¾RR÷tst_downloadRtreadt	bytearrayR'R((
R›RtR²R4RäR.R6R7RçR8RR°R/((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR³Æs:	 



cC€s™|j|ƒ\}}tjƒ}t|ƒ}|g}|dkr^|dkr^|j|ƒnytj||ƒWn tk
r”}tj	|ƒnXdS(NRSR(
R—RàRáRRöR÷t	st_deleteR&R'R((R›RtRäR.RçR8R/((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR´ës	
cC€sdS(N((R›RtR¶R¢((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR·ûscC€s—tjƒ}d|d<t|d<t|d<t|d<tjj|dt|ƒƒ|d<g}|dkrrg}n	|g}t|ƒ}t	j
||ƒS(NRòRóRôRõs%016xR–RS(RàRáR¾R§RR‘R“R	RR÷tst_list(R›RäR)R²RçR‡((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRþs



#		c	C€sâ|j|ƒ\}}|j|jddƒ}|rR|j|ƒ\}}|}n
|d}|j|||ƒ}t|ƒdkrtt|ƒtdƒfStt|ƒtt|ƒdj	|ƒdj	dƒddƒdfS(Nssegments-dirs	-segmentsiiÿÿÿÿiRi(
R—RÆRR¾RR R<R	R!R’(	R›R‘R²RäR–R)R,R-tfiles((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR1s	
c
C€s,|j|ƒ\}}|jj|dƒrc||j|krc|j||d}|jdƒdS|j|jddƒ}|r |j|ƒ\}}|}n
|d}|j|||ƒ}	t|	ƒdkrëtt|ƒtdƒfStt|ƒtt	|	ƒdj|ƒdjdƒdd	ƒfS(
NRs
-segments/issegments-dirs	-segmentsiiÿÿÿÿRi(
R—RÆRR¾R’RR R<R	R!(
R›R‘R²RäR–RR)R,R-RB((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pytcurr_segname_from_offsets	
c

€s­|j|ƒ}|j|ƒ\}}tjƒ}|dkrEg}n	|g}d|d<t|d<t|d<t|d<d|d<t|ƒ}i}|dkr¸||d<|j|ƒnd}yatj	||ƒ‰|j
|d<|j|d<ˆd	jd
dƒ|d
<t
ˆd	djdƒd
ƒ|d<t
ˆd	djdƒdƒ|d<t
ˆd	djdƒdƒ|d<d
|d<d|d<|dk	r¯d|kr¯d|d<ndˆd	krÚt
ˆd	dƒ|d<n’dˆd	kr1|dks|dkr1ˆd	ddkr1t
ˆd	dƒ|d<n;|dkrb|dksU|dkrbd|d<n
d|d<|ddkrˆ|dksÀ|ddkr¤|dksÀ|ddkr|dkrd|d<d|d<d|d<tjj|j|ƒƒs|j|ƒ}	tj|	dƒqnWnktk
rŒ}
|dkrF|}n|jtjj||ƒƒ}|j|ƒ}ytj|ƒ‰Wn²tk
r:|}t|ƒd
kr»|jƒnyhtjj|ddƒ|d<tj||ƒ‰tˆƒdkrtj|dƒntj|dƒWq;tk
r6q;XnX|dksZ|d jd ƒr^dStj|ƒ‰t‡fd!†d%Dƒƒ}nXd"|d#<|dd"|d$<|S(&NRSRòRóRôRõR–RÖRÕRÝRsx-timestampRitst_atimeitst_ctimetst_mtimetst_nlinkiítst_modetauthorized_keyi€scontent-lengthRsx-container-bytes-usediiiýAiét4913iÿÿÿÿt~c3€s$|]}|tˆ|ƒfVqdS(N(tgetattr(t.0Rd(Rù(s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pys	<genexpr>sit
st_blksizet	st_blocks(sst_atimesst_ctimesst_gidsst_modesst_mtimesst_nlinksst_sizesst_uid(R¬R—RàRáR¾R§RRöR÷RøRÅRÃRR	R’RR‘texistsRÜRÉR&R“RÇtlstatR…R tpopRAtendswithtdict(
R›RtR¢RRäR–RçR‡Rtcontainer_pathR/tmkdirsR8((Rùs\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR¸4sž		







%%%


<$

8


	



cc€s
g}|j|ƒ\}}tjƒ}d|d<t|d<t|d<t|d<d|d<g}|dkrtg}n2|g}|dkr¦|dk	r¦|d|d<ng}t|ƒ}|tj||ƒ7}x|D]}	|ró||	króqÕn|r!|j|	j|dƒdƒ\}
}n|j|	ƒ\}
}|
dksN|dkršt	j
j||j|	ƒƒ}yt	j
|d	d
ƒWqštk
r–qšXn|
dk	rÕ|
dkrÕd|
krÕd|
krÕ|
|kré|j|
ƒqéqÕqÕWxt|ƒD]}
|
VqúWdS(
NRòRóRôRõR–RSRiRºiés	-segmentst	_segments(R—RàRáR¾R§RR÷RAR’RR‘R“RÇR
R…RöR"(R›RtR¢tlistingRäR–RçR‡tdirentstlstt	componenttrestRVtr((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR¹”sF




		
(
cC€sdS(N((R›RtRº((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR»½scC€s£|j|ƒ\}}|td<tjƒ}t|ƒ}|g}|dkrh|dkrh|j|ƒnytj||ƒWn tk
rž}tj	|ƒnXdS(NRmRSR(
R—RàRáRRöR÷R@R&R'R((R›RtRmRäR.RçR8R/((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR¼Às
	
cC€sÓtjƒ}t|ƒ}g}tj||ƒ}d|dkr}t|ddƒ}t|ddƒt|ddƒ}nd}t|ddƒ}i}||d<||d<||d<d|d	<d|d
<|S(Nsx-account-meta-quota-bytesRÝsx-account-bytes-usediÿÿÿÿtf_blockstf_bfreetf_bavailitf_favailtf_frsize(RàRáRR÷RøR	(R›RtRçR8tstvR^R`tdt((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR½Îs"




c
C€stjd|ƒ|j|ƒ\}}|dks>|dkr§|tkr§tjƒ}t|ƒ}|g}ytj||ƒWn!t	k
r¢}tj
|ƒdSXdS|j|ƒ}	|tkrã|jtj
j||ƒƒ}	nytj|	|ƒWnt	k
r}nXdS(Ns	mkdir, %sRSRi(R'RR—R§RàRáRR÷tst_postR&R(RÜRR‘R“R
(
R›R‘RºtistRäR.RçR8R/R6((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRÉãs($	
!cC€sÂtjd|ƒ|j|ƒ\}}tjƒ}t|ƒ}|g}|dkro|dkro|j|ƒnytj||ƒWn t	k
r¥}tj
|ƒnX|j|ƒ}tj
|ƒS(Ns	rmdir, %sRSR(R'RR—RàRáRRöR÷R@R&R(RÜRtrmdir(R›R‘RäR.RçR8R/R6((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRgûs	
cC€sptjd|ƒyG|j|ƒ\}}|jtjj||ƒƒ}tj||ƒSWntk
rknXdS(Ns	chmod, %s(	R'RR—RÜRR‘R“tchmodR…(R›R‘RºRäR–R6((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRhs
cC€sstjd|ƒyJ|j|ƒ\}}|jtjj||ƒƒ}tj|||ƒSWntk
rnnXdS(Ns	chown, %s(	R'RR—RÜRR‘R“RËR…(R›R‘tuidtgidRäR–R6((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRËs
cC€stdƒ‚dS(NsNot Applicable(R&(R›Rttarget((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pytsymlinkscC€s
tjd||fƒyË|j|ƒ}|j|ƒ}|jd|dƒ}tj|ƒ}g}x<|D]4}|ji|dd6|dd6|dd	6ƒqjWtj|ƒ}|j	||d
i|d6ƒ|j
|dtƒWn$tk
r|j
|dtƒnXdS(
Nsrename, %s -> %sssegments-dirs	-segmentsRR‘RRRRRïRmi(
R'RRêRúRRRRöRRñR¼RR…(R›toldtnewRÆRïR)tnew_manifesttman((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pytrename!s&

cC€stjd|ƒt|ƒ\}}|jtjj||ƒƒ}t|ƒ\}}|jtjj||ƒƒ}tj||ƒS(Nslink, %s(R'RR—RÜRR‘R“tlink(R›RkRRäR–tcache_path_targettcache_path_name((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRr9scC€s_tjd|ƒt|ƒ\}}|j|ƒ}ytj||ƒWntk
rZdSXdS(Nsutimens, %si(R'RR—RÜRtutimeR…(R›R‘ttimesRäR–R6((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pytutimensAs
cC€syztjjtjtjƒ}tjj|ƒrytjj|ƒrydddddtjd|g}t	j
|dtƒnWntk
rnXt
jr°t
jjdddƒnt
jrÒt
jjdddƒnt
jrôt
jjdddƒnt
jrt
jjdddƒnt
jr8t
jjdddƒnt
jrZt
jjdddƒnt
jr|t
jjdddƒntj|jƒdS(	NRÍs-sKILLRÎRÈs
nova-rootwraptumountRÊi(RR‘R“RžR.R/RÐRØRJRÑRÙR§R…R÷t
swift_listR¤R¾t
swift_stattswift_uploadtswift_downloadtswift_deletet
swift_postt	swift_capR$R%R©(R›R‘R¡RÚ((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pytdestroyMs4
							N(#R¥R¦RœR—RÇRÜRêRñRúR®RµR±RŽR³R´R¾R·RR1RCR¸R¹R»R§R¼R½RÉRgRhRËRlRqRrRwR€(((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR¿šs<				)			7	I	"%				`	)										tFileRepositorycB€s¡eZd„Zd„Zd„Zd„Zd„Zd„Zdd„Z	d„Z
d„Zed	„Z
dd
„Zd„Zd„Zd
„Zd„Zd„ZRS(cK€stt|ƒj||dS(N(RÀRRœ(R›R©Rˆ((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRœlscC€s{|tjtjB@r$|j|ƒny$|j|ƒd}tj|ƒWntk
r[nX|j|ƒ}tj||ƒS(Ns	-segments(RtO_CREATRR´R¬R
R…R(R›RtR­RR((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR®os
cC€sc|j||ƒ}|j|dƒ}tjj||ƒ}t|dƒ}|j|ƒWdQXdS(Ns	-segmentsR(R1R¬RR‘R“RR(R›RtR¯R°R5RR4tsegf((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR±{s
cC€sf|j|dƒ}|j||ƒ}tjj||ƒ}t|dƒ}t|jƒƒSWdQXdS(Ns	-segmentsR](R¬RCRR‘R“RR?R>(R›RtR²RR5Rƒ((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR³ƒs
cC€sZ|j|ƒd}y/tj|jdƒddƒtj|ƒWntk
rUnXdS(Ns	.manifestis	-segments(R¬R$R%R’RRšR…(R›Rttmanifest_filename((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR´Šs
c
C€s¢|j|ƒ}|d}|j|dƒ}g}i}d}x›trÛ|j||ƒ||<}	t|	ƒdkrwPnt|	ƒ}	tj|	dƒ}
|ji|	dd6dd6t|
j	t
jƒd6ƒ|t
j7}qAWt|d	ƒ}|j
tj|ƒƒWdQXd}x~tr||}	t|	ƒdkr9Pnt|	ƒ}	x8tt|	ƒt|	dgƒƒD]}tj|ƒqiW|t
j7}qWtj|ƒdS(
Ns	.manifests	-segmentsiiÿÿÿÿR‘tetagoftheobjectsegment1RRR(R¬RRR R!RRÔRöRRRžRHRRRRR"R#RšR (
R›RtR¢RRÆRRîR*R²R+RÔtmanfR.((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRµ“s>
			
*
cC€s8|j|ƒ}t|dƒ}|j|ƒWdQXdS(Nsr+(R¬Rttruncate(R›RtR¶R¢RR((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR·ºscC€s&tjtjj|dt|ƒƒƒS(Ns%016x.[0-9a-f]*(tglobRR‘R“R	(R›RR²((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR¿s
	c	C€sL|j|ƒd}|j||ƒ}t|ƒdkrQtt|ƒtdƒfS|j|ƒd}t|dƒ’}tj|ƒ}xy|D]q}d|}	|	|dkrŒ|dj|ƒd}
t|
jdƒdd	ƒd}tt|ƒt|ƒfSqŒWWdQXtt|ƒtt	|ƒd
j|ƒdjdƒdd	ƒdfS(Ns	-segmentsis	.manifestR]s/%016xR‘iRiiÿÿÿÿ(
R¬RR R<R	RRtloadR’R!(R›R‘R²RRBtmanifestfileR†RÆR.tsegnumR5tversion((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR1Æs

 $c
	C€sY|j|ƒd}|j||ƒ}t|ƒdkrf|rLtdƒ‚ntt|ƒtdƒfS|j|ƒd}t|dƒŽ}tj|ƒ}xu|D]m}	d|}
|
|	dkr¡|	dj	|ƒd}t|j	d	ƒdd
ƒ}tt|ƒt|ƒfSq¡WWdQXtt|ƒtt
|ƒdj	|ƒdj	d	ƒdd
ƒfS(Ns	-segmentsisSegment does not existss	.manifestR]s/%016xR‘iRiiÿÿÿÿ(R¬RR R&R<R	RRR‰R’R!(
R›R‘R²tforreadRRBRŠR†RÆR.R‹R5RŒ((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRCÙs"

$c
€s§|j|ƒ}tj|ƒ‰t‡fd†d
Dƒƒ}yUt|d
ƒ?}d|d<x+tj|ƒD]}|dc|d7<qjWWdQXWntk
r¢nX|S(Nc3€s$|]}|tˆ|ƒfVqdS(N(RL(RMRd(Rù(s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pys	<genexpr>òsRDRERÖRHRFRGRRÕs	.manifestiR(sst_atimesst_ctimesst_gidsst_modesst_mtimesst_nlinksst_sizesst_uid(R¬RRQRTRRR‰R…(R›RtR¢RtattrsR†R((Rùs\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR¸îs(

"
cC€s„|j|ƒ}g}tjj|ƒr€g}x@tj|ƒD]/}d|kr=|j|jdƒdƒq=q=W|j|ƒn|S(Ns	.manifesti(R¬RR‘RÐtlistdirRöR’textend(R›R‘R¢RRYRXR((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR¹s!cC€s7|j|ƒ}tj||ƒs3ttjƒ‚ndS(N(R¬RtaccessRterrnotEACCES(R›R‘RºR((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR»scC€s
|j|ƒS(N(R´(R›R‘((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR¼sc€s8|j|ƒ}tj|ƒ‰t‡fd†dDƒƒS(
Nc3€s$|]}|tˆ|ƒfVqdS(N(RL(RMRd(Rc(s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pys	<genexpr> sR`R_R^tf_bsizeRatf_ffreetf_filestf_flagRbt	f_namemax(
sf_bavailsf_bfreesf_blockssf_bsizesf_favailsf_ffreesf_filessf_flagsf_frsizes	f_namemax(R¬RtstatvfsRT(R›R‘R((Rcs\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR½scC€stj|jƒdS(Ni(R$R%R©(R›R‘((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR€/sN(R¥R¦RœR®R±R³R´RµR¾R·RR1R§RCR¸R¹R»R¼R½R€(((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRks 							'						t	FuseCachecB€sweZd„Zd„Zd„Zd„Zdd„Zd„Zd„Z	d„Z
d„Zd	„Zd
„Z
d„ZRS(
cC€s||_||_t|_dS(N(R©t
repositorytlrucache(R›R©R›((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRœ5s		cC€sh|jj||ƒ}|jj|dƒr=|jj|ƒnitdtjƒd6|d6|j|<|S(NtmaxsizeRœRt(	R›R®RœRR¾RRRRžRI(R›RtR­R¢((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR®;s
cC€s|j|}|d|ks#t‚|d}yJxCtru|jƒ\}}|dr3|jj|||dƒq3q3WWntk
rŠnXdS(NRtRœRtdata(RœtAssertionErrorRtpopitemR›R±R…(R›RtR¢titemtcacheR¯((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pytobject_flushFs

	
	
cC€s7|j||ƒ|jj||ƒ|jj|ƒdS(N(R£R›RµRœRR(R›RtR¢((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRµSscC€s|jj|||ƒdS(N(R›R·(R›RtR¶R¢((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR·Yscc€smxf|dkrh|tjtj}||}t|tj|ƒ}|||fV||7}||8}qWdS(Ni(RžRHR(R›R²R¶t
seg_offsettbasetseg_len((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyt_walk_segments\s

c
C€sO|j|d|kst‚tƒ}x|j||ƒD]\}}}y|j|d|d}	WnÄtk
r+yž|j|d}
t|
ƒtjkrÚ|
jƒ\}}|drÚ|j	j
|||dƒqÚn|j	j||ƒ}	itd6|	d6|j|d|<Wq,tk
r'dSXnX||	|||!7}q9Wt
|ƒS(NRtRœRžRi(RœRŸR?R§R…R RžRIR R›R±R³R§RÓ(
R›RtR¶R²R¢t
output_buft	segoffsetR¥R¦tsegdataR¢R¯R¡((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pytobject_reades*	"

		$
	cC€sÊt|ƒ}|j|d|ks)t‚d}xŽ|j||ƒD]z\}}}	|j|d}
||
krFt|
ƒtjkr¿|
jƒ\}}|dr¿|jj|||dƒq¿nyL|jj	||ƒ}
|
dkròtdƒ‚nitd6|
d6|
|<WqTt
k
rBtdƒ}
itd6|
d6|
|<qTXn|
|d}
t|
ƒ|krˆ|
jd||	t|
ƒƒn||||	!|
|||	+t|
|d<||	7}qBWt|ƒS(	NRtiRœRRžsObject not foundit(R RœRŸR§RžRIR R›R±R³R¾R&R§R…R?RR(R›RtR°R²R¢R¶tbufptrR©R¥R¦R¢R¯R¡Rª((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pytobject_writeŠs6"
		
"cC€stj|j|ƒ|ƒS(N(RRÉR¬(R›R‘Rº((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRɵscC€s|j|ƒ}tj|ƒS(N(R¬RRg(R›R‘R((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRg¸scC€s|j|ƒ}tj||ƒS(N(R¬RRh(R›R‘RºR((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRh¼scC€s"|j|ƒ}tj|||ƒS(N(R¬RRË(R›R‘RiRjR((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRËÀsN(R¥R¦RœR®R£RµR¾R·R§R«R®RÉRgRhRË(((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRš4s			
				%	+			cB€sþeZdd„Zd„Zd„Zd„Zedd„ƒZd„Z	d„Z
d„Zd„Zd	„Z
d
„Zd„Zd„Zd
„Zd„Zdd„Zd„Zdd„Zd„Zd„Zdd„Zd„Zd„Zd„Zd„ZRS(cC€s7||_|pt|ƒ|_t||jƒ|_dS(N(R©R¿R›RšR¢(R›R©R›((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRœÆs	cC€s|jj||ƒdS(N(R›R»(R›R‘Rº((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR‘ÎscC€s|jj||ƒS(N(R›Rh(R›R‘Rº((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRhÑscC€s|jj|||ƒS(N(R›RË(R›R‘RiRj((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRËÔscC€s|jj||ƒS(N(R›R¸(R›R‘R¢((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRL×scc€sBddg}|j|jj||ƒƒx|D]}|Vq/WdS(NRs..(RR›R¹(R›R‘R¢RYR]((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pytreaddirÛs
cC€sEtj|j|ƒƒ}|jdƒr=tjj||jƒS|SdS(NR(RtreadlinkR¬RªR‘trelpathR©(R›R‘tpathname((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR°áscC€stj|j|ƒ||ƒS(N(RtmknodR¬(R›R‘Rºtdev((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR³éscC€s|jj|ƒS(N(R›Rg(R›R‘((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRgìscC€s|jj||ƒS(N(R›RÉ(R›R‘Rº((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRÉïscC€s|jj|ƒS(N(R›R½(R›R‘((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pytstatfsòscC€s|jj|ƒS(N(R›R¼(R›R‘((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pytunlinkõscC€s|jj||ƒS(N(R›Rl(R›RRk((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRløscC€s|jj||ƒS(N(R›Rq(R›RmRn((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRqûscC€s|jj||ƒS(N(R›Rr(R›RkR((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRrþscC€s|jj||ƒS(N(R›Rw(R›R‘Rv((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRwscC€s|jj||ƒS(N(R¢R®(R›R‘Rº((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRscC€s|j|tjƒS(N(RRR‚(R›R‘Rºtfi((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pytcreate
scC€s|jj||||ƒ}|S(N(R¢R«(R›R‘R¶R²R¢R°((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR>
scC€s|jj||||ƒS(N(R¢R®(R›R‘R°R²R¢((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRscC€s|jj||d|ƒdS(NR¢(R¢R·(R›R‘R¶R¢((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR‡scC€s|jj||ƒdS(N(R¢R£(R›R‘R¢((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pytflushscC€s|jj||ƒdS(N(R¢Rµ(R›R‘R¢((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pytreleasescC€s|jj||ƒS(N(R¢R£(R›R‘t	fdatasyncR¢((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pytfsyncscC€s!tjd|ƒ|jj|ƒS(Nsdestroy, %s(R'RR›R€(R›R‘((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyR€!sN(R¥R¦R¾RœR‘RhRËRŽRLR¯R°R³RgRÉRµR¶RlRqRrRwRR¸R>RR‡R¹RºR¼R€(((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyRCÅs4																			cC€s-d}tjjdƒrftddƒ:}x0|D](}d|kr1d|kr1d}Pq1q1WWdQXn|dkr)d}tjjdƒr¹tddƒ}|jƒd	d}WdQXntd
dƒ}|j|ƒWdQXtjdtjd
ƒtjdtjdƒtjdtjdƒndS(Nis/etc/fuse.confR]tuser_allow_othert#isuser_allow_other 
trts
s/tmp/fuse.conf.tmptwtssudo nova-rootwrap s% cp /tmp/fuse.conf.tmp /etc/fuse.confs rm /tmp/fuse.conf.tmps chown root:root /etc/fuse.conf(	RR‘RPRR>RtsystemRžRJ(tfoundRtlinetstoutf((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyt	fuse_conf&s.



cC€sOyìy2ddtjdd|g}tj|dtƒWntk
rHnXtjj|ƒrŠtj	dtjdt
dt
d	|ƒnaddtjd
|g}tj|dtƒddtjdt
dt
|g}tj|dtƒWntk
r}nXt|dt
|ƒƒ}t||d
tdtdtdtdtdtƒdS(NRÈs
nova-rootwrapRxs-lRÊssudo nova-rootwrap s
 chown -R RÌt RÉRËR›t	nothreadst
foregroundtnonemptyt
big_writest	direct_iotallow_other(RžRJRÑRÒR§R…RR‘RÐRÁRÁR&RCR¿R
R(t
mountpointt	cacherootRÚR/ttvaultplugin((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pytmainCs6
		t__main__(_t
__future__RRtsysR’targparsetbunchRt
cachetoolsRRR÷R$RŒRÑttempfileRtcontegoRtswiftclient.serviceRtswiftclient.utilsRRRR	tfuseR
RRtpwdR
toslo_configRtImportErrortoslo.configtoslo_logRR‚tnova.openstack.commont_DEFAULT_LOG_DATE_FORMATRÁtBoolOptR§tcommon_cli_optstStrOptR¾tlogging_cli_optsRtIntOpttgeneric_log_optstListOpttlog_optstcontego_vault_optsRžt
register_optstregister_cli_optstargvt	getLoggerR¥R'tsetuptloggertsetLevelR„R…tenvironRRàR5R7R:R;R?R@R8R=tCACHE_LOW_WATERMARKtCACHE_HIGH_WATERMARKR<RœRŽR—R˜R™tobjectR¨R¿RRšRCRÆRÑR-R.(((s\/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/vaultfuse.pyt<module>s"

		






##
















		
	-ÿÿÓÉ‘a		(