# PaCkAgE DaTaStReAm dCache 1 128554 # end of header 07070100079817000081a4000000650000000a000000014acc660b000000a4000000b600010008ffffffffffffffff0000000f00000000dCache/pkginfoPKG=dCache NAME=dCache Server ARCH=all VERSION=1.9.5-2 CATEGORY=application VENDOR="dCache.ORG" EMAIL=support@dcache.org PSTAMP="dCache.ORG" BASEDIR=/ CLASSES=none 07070100079816000081a4000000650000000a000000014acc660b00007845000000b600010008ffffffffffffffff0000000e00000000dCache/pkgmap: 1 128554 1 d none opt 0755 root bin 1 d none opt/d-cache 0755 root bin 1 d none opt/d-cache/billing 0755 root bin 1 f none opt/d-cache/billing/README 0644 root bin 0 0 1254909451 1 d none opt/d-cache/bin 0755 root bin 1 f none opt/d-cache/bin/dCacheConfigure.sh 0755 root bin 5471 24369 1254909451 1 f none opt/d-cache/bin/dcache 0755 root bin 16710 30832 1254909451 1 f none opt/d-cache/bin/dcache-srm 0755 root bin 2979 25795 1254909451 1 f none opt/d-cache/bin/meta2yaml 0755 root bin 2720 22317 1254909451 1 d none opt/d-cache/classes 0755 root bin 1 d none opt/d-cache/classes/activemq 0755 root bin 1 f none opt/d-cache/classes/activemq/activemq-all-5.2.0.jar 0644 root bin 2631190 270 1254909445 1 f none opt/d-cache/classes/activemq/xbean-spring-3.4.jar 0644 root bin 130203 35021 1254909445 1 d none opt/d-cache/classes/axis 0755 root bin 1 f none opt/d-cache/classes/axis/axis-ant.jar 0644 root bin 33514 37176 1254909445 1 f none opt/d-cache/classes/axis/axis-schema.jar 0644 root bin 203807 29767 1254909445 1 f none opt/d-cache/classes/axis/axis.jar 0644 root bin 1632995 37294 1254909445 1 f none opt/d-cache/classes/axis/commons-discovery-0.2.jar 0644 root bin 71442 54573 1254909445 1 f none opt/d-cache/classes/axis/commons-logging-1.0.4.jar 0644 root bin 38015 22754 1254909445 1 f none opt/d-cache/classes/axis/jaxrpc.jar 0644 root bin 32062 17584 1254909445 1 f none opt/d-cache/classes/axis/saaj.jar 0644 root bin 19419 39008 1254909445 1 f none opt/d-cache/classes/axis/wsdl4j-1.5.1.jar 0644 root bin 126771 43198 1254909445 1 d none opt/d-cache/classes/berkeleyDB 0755 root bin 1 f none opt/d-cache/classes/berkeleyDB/je-3.2.76.jar 0644 root bin 1157968 35564 1254909445 1 f none opt/d-cache/classes/cells-protocols.jar 0644 root bin 3938 51205 1254909445 1 f none opt/d-cache/classes/cells.jar 0644 root bin 1093266 57758 1254909429 1 d none opt/d-cache/classes/chimera 0755 root bin 1 f none opt/d-cache/classes/chimera/chimera-core.jar 0644 root bin 135794 65030 1254909445 1 f none opt/d-cache/classes/chimera/commons-cli-1.0.jar 0644 root bin 30117 43413 1254909445 1 f none opt/d-cache/classes/chimera/commons-logging.jar 0644 root bin 31605 9482 1254909445 1 f none opt/d-cache/classes/chimera/grizzly-rpc.jar 0644 root bin 1410750 15443 1254909445 1 f none opt/d-cache/classes/chimera/oncrpc.jar 0644 root bin 85191 64553 1254909445 1 f none opt/d-cache/classes/chimera/portmap.jar 0644 root bin 91131 48069 1254909445 1 d none opt/d-cache/classes/cog 0755 root bin 1 f none opt/d-cache/classes/cog/cog-axis.jar 0644 root bin 31064 7031 1254909445 1 f none opt/d-cache/classes/cog/cog-jglobus-1.7.0.jar 0644 root bin 723795 35309 1254909445 1 f none opt/d-cache/classes/cog/cog-jobmanager-1.7.0.jar 0644 root bin 60229 59952 1254909445 1 f none opt/d-cache/classes/cog/cog-tomcat.jar 0644 root bin 23037 15845 1254909445 1 f none opt/d-cache/classes/cog/cog-url-1.7.0.jar 0644 root bin 2994 29845 1254909445 1 f none opt/d-cache/classes/cog/commons-logging-1.1.jar 0644 root bin 52915 39510 1254909445 1 f none opt/d-cache/classes/cog/cryptix-asn1.jar 0644 root bin 80392 4768 1254909445 1 f none opt/d-cache/classes/cog/cryptix.jar 0644 root bin 3608 6492 1254909445 1 f none opt/d-cache/classes/cog/cryptix32.jar 0644 root bin 366279 59239 1254909445 1 f none opt/d-cache/classes/cog/jgss.jar 0644 root bin 6567 63641 1254909445 1 f none opt/d-cache/classes/cog/puretls.jar 0644 root bin 191354 20670 1254909445 1 d none opt/d-cache/classes/dbcp 0755 root bin 1 f none opt/d-cache/classes/dbcp/c3p0-0.9.1.2.jar 0644 root bin 610790 21287 1254909445 1 f none opt/d-cache/classes/dcache-common.jar 0644 root bin 35675 37337 1254909423 1 f none opt/d-cache/classes/dcache.jar 0644 root bin 3179873 3514 1254909445 1 d none opt/d-cache/classes/endorsed 0755 root bin 1 f none opt/d-cache/classes/endorsed/xercesImpl-2.9.1.jar 0644 root bin 1229289 36377 1254909445 1 f none opt/d-cache/classes/endorsed/xml-apis-2.9.1.jar 0644 root bin 194354 28089 1254909445 1 f none opt/d-cache/classes/extern.classpath 0644 root bin 4765 58915 1254909450 1 d none opt/d-cache/classes/glite 0755 root bin 1 f none opt/d-cache/classes/glite/glite-security-trustmanager-1.8.16-1.norefresh.jar 0644 root bin 40737 30196 1254909445 1 f none opt/d-cache/classes/glite/glite-security-util-java.jar 0644 root bin 61580 52105 1254909445 1 f none opt/d-cache/classes/glite/vomsjapi.jar 0644 root bin 125920 765 1254909445 1 d none opt/d-cache/classes/glue 0755 root bin 1 f none opt/d-cache/classes/glue/GLUE-STD.jar 0644 root bin 633873 40260 1254909445 1 f none opt/d-cache/classes/glue/collections.jar 0644 root bin 259265 9277 1254909445 1 f none opt/d-cache/classes/glue/dom.jar 0644 root bin 13407 7806 1254909445 1 f none opt/d-cache/classes/glue/jcert.jar 0644 root bin 7637 22349 1254909445 1 f none opt/d-cache/classes/glue/jnet.jar 0644 root bin 3098 55989 1254909445 1 f none opt/d-cache/classes/glue/jsse.jar 0644 root bin 463471 53806 1254909445 1 f none opt/d-cache/classes/glue/servlet.jar 0644 root bin 40809 25019 1254909445 1 d none opt/d-cache/classes/gplazma 0755 root bin 1 f none opt/d-cache/classes/gplazma/activation.jar 0644 root bin 82297 56192 1254909445 1 f none opt/d-cache/classes/gplazma/alldepends.jar 0644 root bin 6357 5783 1254909445 1 f none opt/d-cache/classes/gplazma/anam.jar 0644 root bin 23593 19233 1254909445 1 f none opt/d-cache/classes/gplazma/gplazma.jar 0644 root bin 78802 18209 1254909430 1 f none opt/d-cache/classes/gplazma/mail.jar 0644 root bin 327603 65312 1254909445 1 f none opt/d-cache/classes/gplazma/privilege-1.0.1.5.jar 0644 root bin 70472 48610 1254909445 1 f none opt/d-cache/classes/gplazma/privilege-xacml-2.2.5.jar 0644 root bin 69937 56121 1254909445 1 d none opt/d-cache/classes/grizzly-nio 0755 root bin 1 f none opt/d-cache/classes/grizzly-nio/grizzly-nio-framework-1.9.19-SNAPSHOT.jar 0644 root bin 678371 64358 1254909445 1 f none opt/d-cache/classes/infoDynamicSE.jar 0644 root bin 30663 17502 1254909450 1 f none opt/d-cache/classes/javatunnel.jar 0644 root bin 30507 63160 1254909450 1 d none opt/d-cache/classes/jdbc-drivers 0755 root bin 1 f none opt/d-cache/classes/jdbc-drivers/commons-dbcp.jar 0644 root bin 107465 58992 1254909445 1 f none opt/d-cache/classes/jdbc-drivers/commons-pool.jar 0644 root bin 43080 21038 1254909445 1 f none opt/d-cache/classes/jdbc-drivers/postgresql-8.1-405.jdbc3.jar 0644 root bin 402505 52414 1254909445 1 d none opt/d-cache/classes/jdom 0755 root bin 1 f none opt/d-cache/classes/jdom/jdom.jar 0644 root bin 150794 3608 1254909445 1 d none opt/d-cache/classes/jline 0755 root bin 1 f none opt/d-cache/classes/jline/jline-0.9.92.jar 0644 root bin 87401 43959 1254909429 1 d none opt/d-cache/classes/jpox 0755 root bin 1 f none opt/d-cache/classes/jpox/jdo2-api-2.0.jar 0644 root bin 82512 65465 1254909445 1 f none opt/d-cache/classes/jpox/jpox-core-1.2.2.jar 0644 root bin 1503051 53163 1254909445 1 f none opt/d-cache/classes/jpox/jpox-rdbms-1.2.2.jar 0644 root bin 914243 11084 1254909445 1 d none opt/d-cache/classes/log4j 0755 root bin 1 f none opt/d-cache/classes/log4j/log4j-1.2.15.jar 0644 root bin 391834 57359 1254909445 1 d none opt/d-cache/classes/netty 0755 root bin 1 f none opt/d-cache/classes/netty/netty-3.1.2.GA.jar 0644 root bin 700665 45534 1254909445 1 d none opt/d-cache/classes/opensaml 0755 root bin 1 f none opt/d-cache/classes/opensaml/commons-collections-3.1.jar 0644 root bin 559366 32653 1254909445 1 f none opt/d-cache/classes/opensaml/commons-lang-2.1.jar 0644 root bin 207723 21772 1254909445 1 f none opt/d-cache/classes/opensaml/joda-time-1.5.2.jar 0644 root bin 531326 61821 1254909445 1 f none opt/d-cache/classes/opensaml/opensaml-1.0.1.jar 0644 root bin 105026 47615 1254909445 1 f none opt/d-cache/classes/opensaml/opensaml-2.2.0.jar 0644 root bin 1242124 14330 1254909445 1 f none opt/d-cache/classes/opensaml/openws-1.1.0.jar 0644 root bin 121144 62104 1254909445 1 f none opt/d-cache/classes/opensaml/velocity-1.5.jar 0644 root bin 392124 47990 1254909445 1 f none opt/d-cache/classes/opensaml/xalan-2.6.0.jar 0644 root bin 3149655 60052 1254909445 1 f none opt/d-cache/classes/opensaml/xml-security-1.4.1.jar 0644 root bin 415492 20711 1254909445 1 f none opt/d-cache/classes/opensaml/xmltooling-1.0.1.jar 0644 root bin 553805 34591 1254909445 1 d none opt/d-cache/classes/rrd4j 0755 root bin 1 f none opt/d-cache/classes/rrd4j/convertor-2.0.5.jar 0644 root bin 2501 64572 1254909445 1 f none opt/d-cache/classes/rrd4j/inspector-2.0.5.jar 0644 root bin 41703 39956 1254909445 1 f none opt/d-cache/classes/rrd4j/je.jar 0644 root bin 781019 40217 1254909445 1 f none opt/d-cache/classes/rrd4j/rrd4j-2.0.5.jar 0644 root bin 262626 42710 1254909445 1 d none opt/d-cache/classes/saxon 0755 root bin 1 f none opt/d-cache/classes/saxon/saxon.jar 0644 root bin 572551 52204 1254909445 1 d none opt/d-cache/classes/security 0755 root bin 1 f none opt/d-cache/classes/security/bcprov-jdk15-143.jar 0644 root bin 1632822 16952 1254909445 1 d none opt/d-cache/classes/slf4j 0755 root bin 1 f none opt/d-cache/classes/slf4j/slf4j-api-1.5.8.jar 0644 root bin 23445 243 1254909445 1 f none opt/d-cache/classes/slf4j/slf4j-log4j12-1.5.8.jar 0644 root bin 9679 38544 1254909445 1 d none opt/d-cache/classes/smc 0755 root bin 1 f none opt/d-cache/classes/smc/statemap.jar 0644 root bin 3854 23710 1254909445 1 d none opt/d-cache/classes/spring 0755 root bin 1 f none opt/d-cache/classes/spring/spring-beans.jar 0644 root bin 488068 34113 1254909445 1 f none opt/d-cache/classes/spring/spring-context.jar 0644 root bin 476894 56713 1254909445 1 f none opt/d-cache/classes/spring/spring-core.jar 0644 root bin 285603 38613 1254909445 1 f none opt/d-cache/classes/srm-tomcat.jar 0644 root bin 1409 45989 1254909434 1 f none opt/d-cache/classes/srm.jar 0644 root bin 988502 19283 1254909434 1 d none opt/d-cache/classes/terapaths 0755 root bin 1 f none opt/d-cache/classes/terapaths/FastInfoset.jar 0644 root bin 593190 1562 1254909445 1 f none opt/d-cache/classes/terapaths/activation.jar 0644 root bin 44623 53526 1254909445 1 f none opt/d-cache/classes/terapaths/jax-qname.jar 0644 root bin 7700 41183 1254909445 1 f none opt/d-cache/classes/terapaths/jaxp-api.jar 0644 root bin 217152 27469 1254909445 1 f none opt/d-cache/classes/terapaths/jaxrpc-api.jar 0644 root bin 57375 32308 1254909445 1 f none opt/d-cache/classes/terapaths/jaxrpc-impl.jar 0644 root bin 5566952 29876 1254909445 1 f none opt/d-cache/classes/terapaths/jaxrpc-spi.jar 0644 root bin 40820 13404 1254909445 1 f none opt/d-cache/classes/terapaths/jsr173_api.jar 0644 root bin 49672 52972 1254909445 1 f none opt/d-cache/classes/terapaths/mail.jar 0644 root bin 270394 64436 1254909445 1 f none opt/d-cache/classes/terapaths/relaxngDatatype.jar 0644 root bin 31204 33209 1254909445 1 f none opt/d-cache/classes/terapaths/saaj-api.jar 0644 root bin 36298 26215 1254909445 1 f none opt/d-cache/classes/terapaths/saaj-impl.jar 0644 root bin 618186 47200 1254909445 1 f none opt/d-cache/classes/terapaths/terapathsExampleJavaClient.jar 0644 root bin 150333 30659 1254909445 1 f none opt/d-cache/classes/terapaths/xsdlib.jar 0644 root bin 476636 10587 1254909445 1 d none opt/d-cache/classes/toplink 0755 root bin 1 f none opt/d-cache/classes/toplink/toplink-essentials.jar 0644 root bin 2461878 64656 1254909445 1 f none opt/d-cache/classes/xrootd-tokenauthz.jar 0644 root bin 330297 36671 1254909449 1 d none opt/d-cache/config 0755 root bin 1 f none opt/d-cache/config/JHRM.map 0644 root bin 2391 64201 1254909445 1 f none opt/d-cache/config/PoolManager.conf 0644 root bin 2913 53287 1254909445 1 f none opt/d-cache/config/adminDoor.batch 0644 root bin 1739 18070 1254909445 1 f none opt/d-cache/config/authdoor.batch 0644 root bin 1409 44445 1254909445 1 f none opt/d-cache/config/c3p0.properties 0644 root bin 132 11659 1254909445 1 f none opt/d-cache/config/chimera-config.xml 0644 root bin 521 41490 1254909445 1 f none opt/d-cache/config/chimera.batch 0644 root bin 3054 63209 1254909445 1 f none opt/d-cache/config/dCache.batch 0644 root bin 2650 30814 1254909445 1 f none opt/d-cache/config/dir.batch 0644 root bin 489 42483 1254909445 1 f none opt/d-cache/config/door.batch 0644 root bin 1804 12275 1254909445 1 f none opt/d-cache/config/gPlazma.batch 0644 root bin 1300 44406 1254909445 1 f none opt/d-cache/config/gridftpdoor.batch 0644 root bin 4601 55310 1254909445 1 f none opt/d-cache/config/gsidcapdoor.batch 0644 root bin 2785 34803 1254909445 1 f none opt/d-cache/config/httpd.batch 0644 root bin 6531 28093 1254909445 1 f none opt/d-cache/config/httpdoor.batch 0644 root bin 1024 16738 1254909445 1 f none opt/d-cache/config/info.batch 0644 root bin 695 58592 1254909445 1 f none opt/d-cache/config/infoProvider.batch 0644 root bin 1178 26159 1254909445 1 f none opt/d-cache/config/lm.batch 0644 root bin 543 47983 1254909445 1 f none opt/d-cache/config/lm.config 0644 root bin 264 21733 1254909445 1 f none opt/d-cache/config/log4j.properties 0644 root bin 2956 5919 1254909445 1 f none opt/d-cache/config/nfsv41.batch 0644 root bin 745 64821 1254909445 1 f none opt/d-cache/config/permission.fragment 0644 root bin 1599 14778 1254909445 1 f none opt/d-cache/config/pnfs.batch 0644 root bin 5062 44282 1254909445 1 f none opt/d-cache/config/pool.batch 0644 root bin 3232 23154 1254909445 1 f none opt/d-cache/config/replica.batch 0644 root bin 2807 37061 1254909445 1 f none opt/d-cache/config/setup.temp 0644 root bin 1119 29769 1254909445 1 f none opt/d-cache/config/srm.batch 0644 root bin 19293 39121 1254909445 1 f none opt/d-cache/config/stage.fragment 0644 root bin 513 46820 1254909445 1 f none opt/d-cache/config/statistics.batch 0644 root bin 685 58603 1254909445 1 f none opt/d-cache/config/tunnel.fragment 0644 root bin 1466 246 1254909445 1 d none opt/d-cache/config/users 0755 root bin 1 d none opt/d-cache/config/users/acls 0755 root bin 1 d none opt/d-cache/config/users/meta 0755 root bin 1 d none opt/d-cache/config/users/relations 0755 root bin 1 f none opt/d-cache/config/utility.batch 0644 root bin 2817 29642 1254909445 1 f none opt/d-cache/config/xrootdDoor.batch 0644 root bin 1137 36464 1254909445 1 d none opt/d-cache/docs 0755 root bin 1 d none opt/d-cache/docs/images 0755 root bin 1 f none opt/d-cache/docs/images/area.gif 0644 root bin 521 2416 1254909445 1 f none opt/d-cache/docs/images/bg-home.jpg 0644 root bin 5507 3144 1254909445 1 f none opt/d-cache/docs/images/bg.jpg 0644 root bin 31592 15107 1254909448 1 f none opt/d-cache/docs/images/birdline.gif 0644 root bin 545 3533 1254909445 1 f none opt/d-cache/docs/images/bluebox.gif 0644 root bin 378 49374 1254909445 1 f none opt/d-cache/docs/images/cian.gif 0644 root bin 378 49837 1254909445 1 f none opt/d-cache/docs/images/dCache-web-bg-logo.svg 0644 root bin 571312 15612 1254909445 1 f none opt/d-cache/docs/images/dark-grey.gif 0644 root bin 378 49799 1254909445 1 f none opt/d-cache/docs/images/dark-tabaco.gif 0644 root bin 378 49896 1254909445 1 f none opt/d-cache/docs/images/desy_logo.gif 0644 root bin 843 39562 1254909445 1 f none opt/d-cache/docs/images/desy_logo_trans.gif 0644 root bin 800 34998 1254909445 1 f none opt/d-cache/docs/images/dev_trans.gif 0644 root bin 2903 64770 1254909445 1 f none opt/d-cache/docs/images/developer.gif 0644 root bin 2890 3597 1254909445 1 f none opt/d-cache/docs/images/documentation.gif 0644 root bin 1154 19113 1254909445 1 f none opt/d-cache/docs/images/download.gif 0644 root bin 956 57584 1254909445 1 f none opt/d-cache/docs/images/eagle-grey.gif 0644 root bin 1665 22826 1254909445 1 f none opt/d-cache/docs/images/eagle-main.gif 0644 root bin 5434 21190 1254909445 1 f none opt/d-cache/docs/images/eagle_logo.gif 0644 root bin 1935 55315 1254909445 1 f none opt/d-cache/docs/images/eagle_logo_draft.gif 0644 root bin 2839 37709 1254909445 1 f none opt/d-cache/docs/images/eaglebw.gif 0644 root bin 1053 27702 1254909445 1 f none opt/d-cache/docs/images/eaglered.gif 0644 root bin 233 28455 1254909445 1 f none opt/d-cache/docs/images/eagleredtrans.gif 0644 root bin 241 28592 1254909445 1 f none opt/d-cache/docs/images/eurogate.gif 0644 root bin 3010 30069 1254909445 1 f none opt/d-cache/docs/images/eurogatetrans.gif 0644 root bin 1800 39230 1254909445 1 f none opt/d-cache/docs/images/eurogatetranssmall.gif 0644 root bin 1184 24465 1254909445 1 f none opt/d-cache/docs/images/fermi_logo.gif 0644 root bin 428 55068 1254909445 1 f none opt/d-cache/docs/images/fermi_logo_trans.gif 0644 root bin 436 55301 1254909445 1 f none opt/d-cache/docs/images/greenbox.gif 0644 root bin 378 49200 1254909445 1 f none opt/d-cache/docs/images/large001.gif 0644 root bin 1876 3849 1254909445 1 f none opt/d-cache/docs/images/line.gif 0644 root bin 261 32561 1254909445 1 f none opt/d-cache/docs/images/navybox.gif 0644 root bin 378 49251 1254909445 1 f none opt/d-cache/docs/images/new-green.gif 0644 root bin 378 49951 1254909445 1 f none opt/d-cache/docs/images/new01.gif 0644 root bin 1016 8100 1254909445 1 f none opt/d-cache/docs/images/newsletter.gif 0644 root bin 1810 36245 1254909445 1 f none opt/d-cache/docs/images/orangebox.gif 0644 root bin 378 49247 1254909445 1 f none opt/d-cache/docs/images/p2001.gif 0644 root bin 516 64695 1254909445 1 f none opt/d-cache/docs/images/pMarch.gif 0644 root bin 669 19396 1254909445 1 f none opt/d-cache/docs/images/pMay.gif 0644 root bin 527 1776 1254909445 1 f none opt/d-cache/docs/images/pnfslogo1.gif 0644 root bin 2652 31204 1254909445 1 f none opt/d-cache/docs/images/pnfslogotrans.gif 0644 root bin 1734 14849 1254909445 1 f none opt/d-cache/docs/images/rateDist.gif 0644 root bin 3053 58062 1254909445 1 f none opt/d-cache/docs/images/redbox.gif 0644 root bin 378 49973 1254909445 1 f none opt/d-cache/docs/images/s_top_tux.gif 0644 root bin 1041 46334 1254909445 1 f none opt/d-cache/docs/images/sgi.gif 0644 root bin 498 58351 1254909445 1 f none opt/d-cache/docs/images/sorry.gif 0644 root bin 6080 33470 1254909445 1 f none opt/d-cache/docs/images/sunlogo.gif 0644 root bin 1131 1606 1254909445 1 f none opt/d-cache/docs/images/tabaco.gif 0644 root bin 378 50051 1254909445 1 f none opt/d-cache/docs/images/trudex.gif 0644 root bin 16155 34318 1254909445 1 f none opt/d-cache/docs/images/trudey.gif 0644 root bin 8570 50880 1254909445 1 f none opt/d-cache/docs/images/tux.gif 0644 root bin 849 20141 1254909445 1 f none opt/d-cache/docs/images/violet.gif 0644 root bin 378 50129 1254909445 1 f none opt/d-cache/docs/images/yellowbox.gif 0644 root bin 378 49455 1254909445 1 d none opt/d-cache/docs/scripts 0755 root bin 1 d none opt/d-cache/docs/scripts/sorting 0755 root bin 1 f none opt/d-cache/docs/scripts/sorting/common.js 0644 root bin 2801 42094 1254909445 1 f none opt/d-cache/docs/scripts/sorting/css.js 0644 root bin 4449 32944 1254909445 1 f none opt/d-cache/docs/scripts/sorting/standardista-table-sorting.js 0644 root bin 12147 54760 1254909445 1 d none opt/d-cache/docs/skins 0755 root bin 1 f none opt/d-cache/docs/skins/home-skin-basic.html 0644 root bin 7039 59349 1254909445 1 f none opt/d-cache/docs/statisticsHelp.html 0644 root bin 3499 37274 1254909445 1 d none opt/d-cache/docs/styles 0755 root bin 1 f none opt/d-cache/docs/styles/billing.css 0644 root bin 451 36577 1254909445 1 f none opt/d-cache/docs/styles/common.css 0644 root bin 605 46877 1254909445 1 f none opt/d-cache/docs/styles/doors.css 0644 root bin 647 50026 1254909445 1 f none opt/d-cache/docs/styles/poolinfo.css 0644 root bin 1373 45658 1254909445 1 f none opt/d-cache/docs/styles/queueInfo.css 0644 root bin 244 18823 1254909445 1 f none opt/d-cache/docs/styles/restoreHandler.css 0644 root bin 281 22417 1254909445 1 f none opt/d-cache/docs/styles/transfers.css 0644 root bin 176 14589 1254909445 1 f none opt/d-cache/docs/styles/usageInfo.css 0644 root bin 555 46140 1254909445 1 d none opt/d-cache/etc 0755 root bin 1 f none opt/d-cache/etc/dCacheSetup.template 0644 root bin 41533 2429 1254909451 1 f none opt/d-cache/etc/dcache.kpwd.template 0644 root bin 1799 13989 1254909451 1 f none opt/d-cache/etc/dcachesrm-gplazma.policy 0644 root bin 3502 20410 1254909451 1 f none opt/d-cache/etc/glue-1.3.xml.template 0644 root bin 23169 63292 1254909451 1 f none opt/d-cache/etc/keystore.template 0644 root bin 169 13237 1254909451 1 f none opt/d-cache/etc/logConfig.xml 0644 root bin 4638 48147 1254909451 1 f none opt/d-cache/etc/node_config.template 0644 root bin 1729 10598 1254909451 1 f none opt/d-cache/etc/pool_path.template 0644 root bin 48 3683 1254909451 1 f none opt/d-cache/etc/psql_drop_companion.sql 0644 root bin 22 1730 1254909451 1 f none opt/d-cache/etc/psql_drop_dcache.sql 0644 root bin 782 435 1254909451 1 f none opt/d-cache/etc/psql_drop_replicas.sql 0644 root bin 110 8448 1254909451 1 f none opt/d-cache/etc/psql_install_companion.sql 0644 root bin 224 16798 1254909451 1 f none opt/d-cache/etc/psql_install_replicas.sql 0644 root bin 6347 30304 1254909451 1 f none opt/d-cache/etc/psql_upgrade_replicas.sql 0644 root bin 3855 34249 1254909451 1 f none opt/d-cache/etc/srm_setup.env 0644 root bin 1273 37977 1254909451 1 f none opt/d-cache/etc/srmv1-deploy.wsdd 0644 root bin 11887 40465 1254909434 1 f none opt/d-cache/etc/srmv2.2-deploy.wsdd 0644 root bin 74833 6553 1254909434 1 d none opt/d-cache/external 0755 root bin 1 f none opt/d-cache/external/apache-tomcat-5.5.20.tar.gz 0644 root bin 5949295 7569 1254909434 1 f none opt/d-cache/external/axis-1_3.tar.gz 0644 root bin 8498273 46141 1254909434 1 d none opt/d-cache/install 0755 root bin 1 f none opt/d-cache/install/deploy_srmv2.sh 0755 root bin 20288 47603 1254909434 1 f none opt/d-cache/install/install.sh 0755 root bin 26848 21717 1254909451 1 f none opt/d-cache/install/upgrade_space_manager_schema.sh 0755 root bin 379 31940 1254909434 1 d none opt/d-cache/jobs 0755 root bin 1 f none opt/d-cache/jobs/encp.sh 0755 root bin 4536 2227 1254909445 1 f none opt/d-cache/jobs/generic.lib.sh 0755 root bin 5434 15459 1254909445 1 f none opt/d-cache/jobs/hsmcp.rb 0755 root bin 3125 49133 1254909445 1 f none opt/d-cache/jobs/hsmcp.sh 0755 root bin 3498 60829 1254909445 1 f none opt/d-cache/jobs/hsmcpV4.sh 0755 root bin 7584 38051 1254909445 1 f none opt/d-cache/jobs/infoDynamicSE-plugin-dcache 0755 root bin 1018 9010 1254909445 1 f none opt/d-cache/jobs/infoDynamicSE-provider-dcache 0755 root bin 1018 9166 1254909445 1 f none opt/d-cache/jobs/initPackage.sh 0755 root bin 4405 57485 1254909445 1 f none opt/d-cache/jobs/needFulThings.sh 0755 root bin 7163 36191 1254909445 1 f none opt/d-cache/jobs/wrapper2.sh 0755 root bin 5936 28637 1254909445 1 d none opt/d-cache/libexec 0755 root bin 1 f none opt/d-cache/libexec/README 0644 root bin 0 0 1254909451 1 d none opt/d-cache/libexec/chimera 0755 root bin 1 f none opt/d-cache/libexec/chimera/chimera-cli.sh 0755 root bin 437 37539 1254909445 1 f none opt/d-cache/libexec/chimera/chimera-get-acl.sh 0755 root bin 302 26762 1254909445 1 f none opt/d-cache/libexec/chimera/chimera-nfs-run.sh 0755 root bin 3343 61182 1254909445 1 f none opt/d-cache/libexec/chimera/chimera-nfs-run.xml 0644 root bin 2685 23828 1254909445 1 f none opt/d-cache/libexec/chimera/chimera-set-acl.sh 0755 root bin 302 26774 1254909445 1 d none opt/d-cache/libexec/chimera/sql 0755 root bin 1 f none opt/d-cache/libexec/chimera/sql/add-timezone.sql 0644 root bin 2148 52309 1254909445 1 f none opt/d-cache/libexec/chimera/sql/addACLtoChimeraDB.sql 0644 root bin 528 38275 1254909445 1 f none opt/d-cache/libexec/chimera/sql/cacheinfo-pgs.sql 0644 root bin 302 23053 1254909445 1 f none opt/d-cache/libexec/chimera/sql/cacheinfo.sql 0644 root bin 205 14348 1254909445 1 f none opt/d-cache/libexec/chimera/sql/create-dCacheACL.sql 0644 root bin 460 33857 1254909445 1 f none opt/d-cache/libexec/chimera/sql/create-db2.sql 0644 root bin 9084 37365 1254909445 1 f none opt/d-cache/libexec/chimera/sql/create-hsqldb.sql 0644 root bin 8730 24044 1254909445 1 f none opt/d-cache/libexec/chimera/sql/create-oracle.sql 0644 root bin 9278 50366 1254909445 1 f none opt/d-cache/libexec/chimera/sql/create.sql 0644 root bin 10694 56800 1254909445 1 f none opt/d-cache/libexec/chimera/sql/migrate-2-1.9.3.sql 0644 root bin 799 563 1254909445 1 f none opt/d-cache/libexec/chimera/sql/pgsql-procedures.sql 0644 root bin 4661 61571 1254909445 1 f none opt/d-cache/libexec/chimera/sql/pnfsid-mapping.sql 0644 root bin 105 7613 1254909445 1 f none opt/d-cache/libexec/chimera/sql/top_dir.sql 0644 root bin 251 18353 1254909445 1 f none opt/d-cache/libexec/chimera/sql/transaction-loggin-pg.sql 0644 root bin 2867 62292 1254909445 1 d none opt/d-cache/libexec/infoProvider 0755 root bin 1 f none opt/d-cache/libexec/infoProvider/info-based-infoProvider.sh 0644 root bin 3580 33196 1254909451 1 f none opt/d-cache/libexec/infoprovidercms.rb 0644 root bin 5213 9626 1254909451 1 f none opt/d-cache/libexec/nsp-performance.sh 0644 root bin 537 44692 1254909451 1 f none opt/d-cache/libexec/wait-for-cells.sh 0644 root bin 2972 31602 1254909451 1 d none opt/d-cache/share 0755 root bin 1 d none opt/d-cache/share/dCacheConfigure 0755 root bin 1 d none opt/d-cache/share/dCacheConfigure/modules 0755 root bin 1 f none opt/d-cache/share/dCacheConfigure/modules/config_bdii_only 0644 root bin 1818 4940 1254909451 1 f none opt/d-cache/share/dCacheConfigure/modules/config_gip_dcache 0644 root bin 25771 48197 1254909451 1 f none opt/d-cache/share/dCacheConfigure/modules/config_gip_dcache_info 0644 root bin 8564 61094 1254909451 1 f none opt/d-cache/share/dCacheConfigure/modules/config_gip_only 0644 root bin 3562 18254 1254909451 1 f none opt/d-cache/share/dCacheConfigure/modules/config_pgsql 0644 root bin 15591 1657 1254909451 1 f none opt/d-cache/share/dCacheConfigure/modules/config_sechimera 0644 root bin 13419 48203 1254909451 1 f none opt/d-cache/share/dCacheConfigure/modules/config_sedcache 0644 root bin 65997 31919 1254909451 1 f none opt/d-cache/share/dCacheConfigure/modules/config_sepnfs 0644 root bin 19005 24682 1254909451 1 f none opt/d-cache/share/dCacheConfigure/modules/reset_srm 0644 root bin 360 29961 1254909451 1 d none opt/d-cache/share/dCacheConfigure/utils 0755 root bin 1 f none opt/d-cache/share/dCacheConfigure/utils/central_certs 0644 root bin 334 26463 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/check_users_conf_format 0644 root bin 343 26610 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/config_file 0644 root bin 10130 27520 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/cron_job 0644 root bin 1306 34915 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/requires 0644 root bin 881 3229 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/run 0644 root bin 494 31815 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/set_mysql_passwd 0644 root bin 811 64521 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/split_quoted_variable 0644 root bin 185 13331 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/userhandling 0644 root bin 8436 27442 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/users_getfirstpoolaccount 0644 root bin 447 33384 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/users_getprduser 0644 root bin 517 40838 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/users_getsgmuser 0644 root bin 517 40842 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/users_getspecialusers 0644 root bin 676 53587 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/users_getvogroup 0644 root bin 558 44770 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/users_getvoprefix 0644 root bin 627 50089 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/yaimlog 0644 root bin 1095 12055 1254909451 1 d none opt/d-cache/share/dcache 0755 root bin 1 d none opt/d-cache/share/dcache/sh 0755 root bin 1 d none opt/d-cache/share/doc 0755 root bin 1 f none opt/d-cache/share/doc/README-GLUE 0644 root bin 9571 60807 1254909451 1 d none opt/d-cache/share/doc/dCacheConfigure 0755 root bin 1 d none opt/d-cache/share/doc/dCacheConfigure/examples 0755 root bin 1 f none opt/d-cache/share/doc/dCacheConfigure/examples/site-info.def 0644 root bin 21968 5981 1254909451 1 f none opt/d-cache/share/doc/dCacheConfigure/examples/users.conf 0644 root bin 77890 20414 1254909451 1 f none opt/d-cache/share/doc/dCacheConfigure/users.conf.README 0644 root bin 2938 52601 1254909451 1 d none opt/d-cache/share/doc/xylophone 0755 root bin 1 f none opt/d-cache/share/doc/xylophone/Guide.txt 0644 root bin 44872 29496 1254909451 1 f none opt/d-cache/share/doc/xylophone/dynamic.xml 0644 root bin 554 43566 1254909451 1 f none opt/d-cache/share/doc/xylophone/hello-world.xml 0644 root bin 581 46502 1254909451 1 d none opt/d-cache/share/lib 0755 root bin 1 f none opt/d-cache/share/lib/config.sed 0644 root bin 1289 39148 1254909451 1 f none opt/d-cache/share/lib/config.sh 0644 root bin 1467 41293 1254909451 1 f none opt/d-cache/share/lib/daemon 0644 root bin 2472 52788 1254909451 1 f none opt/d-cache/share/lib/namespace.sh 0644 root bin 2850 18279 1254909451 1 f none opt/d-cache/share/lib/paths.sh 0644 root bin 657 45268 1254909451 1 f none opt/d-cache/share/lib/pool.sh 0644 root bin 9194 35059 1254909451 1 f none opt/d-cache/share/lib/services.sh 0644 root bin 11489 48784 1254909451 1 f none opt/d-cache/share/lib/utils.sh 0644 root bin 3995 17697 1254909451 1 d none opt/d-cache/share/man 0755 root bin 1 d none opt/d-cache/share/man/man8 0755 root bin 1 f none opt/d-cache/share/man/man8/dcache.8 0644 root bin 8754 61545 1254909451 1 d none opt/d-cache/share/xml 0755 root bin 1 d none opt/d-cache/share/xml/xslt 0755 root bin 1 f none opt/d-cache/share/xml/xslt/wait-for-cells.xsl 0644 root bin 4610 52734 1254909451 1 d none opt/d-cache/share/xml/xylophone 0755 root bin 1 d none opt/d-cache/share/xml/xylophone/xsl 0755 root bin 1 f none opt/d-cache/share/xml/xylophone/xsl/xylophone-import.xsl 0644 root bin 5064 5889 1254909451 1 f none opt/d-cache/share/xml/xylophone/xsl/xylophone-map.xsl 0644 root bin 9561 54461 1254909451 1 f none opt/d-cache/share/xml/xylophone/xsl/xylophone-markup.xsl 0644 root bin 8587 24867 1254909451 1 f none opt/d-cache/share/xml/xylophone/xsl/xylophone-output.xsl 0644 root bin 4706 46233 1254909451 1 f none opt/d-cache/share/xml/xylophone/xsl/xylophone-path.xsl 0644 root bin 6205 34007 1254909451 1 f none opt/d-cache/share/xml/xylophone/xsl/xylophone-predicate.xsl 0644 root bin 6777 13290 1254909451 1 f none opt/d-cache/share/xml/xylophone/xsl/xylophone-publish.xsl 0644 root bin 28791 13891 1254909451 1 f none opt/d-cache/share/xml/xylophone/xsl/xylophone-user-elements.xsl 0644 root bin 16976 3712 1254909451 1 f none opt/d-cache/share/xml/xylophone/xsl/xylophone.xsl 0644 root bin 4289 15908 1254909451 1 i pkginfo 164 12762 1254909451 07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000b00000000TRAILER!!!07070100079817000081a4000000650000000a000000014acc660b000000a4000000b600010008ffffffffffffffff0000000800000000pkginfoPKG=dCache NAME=dCache Server ARCH=all VERSION=1.9.5-2 CATEGORY=application VENDOR="dCache.ORG" EMAIL=support@dcache.org PSTAMP="dCache.ORG" BASEDIR=/ CLASSES=none 07070100079816000081a4000000650000000a000000014acc660b00007845000000b600010008ffffffffffffffff0000000700000000pkgmap: 1 128554 1 d none opt 0755 root bin 1 d none opt/d-cache 0755 root bin 1 d none opt/d-cache/billing 0755 root bin 1 f none opt/d-cache/billing/README 0644 root bin 0 0 1254909451 1 d none opt/d-cache/bin 0755 root bin 1 f none opt/d-cache/bin/dCacheConfigure.sh 0755 root bin 5471 24369 1254909451 1 f none opt/d-cache/bin/dcache 0755 root bin 16710 30832 1254909451 1 f none opt/d-cache/bin/dcache-srm 0755 root bin 2979 25795 1254909451 1 f none opt/d-cache/bin/meta2yaml 0755 root bin 2720 22317 1254909451 1 d none opt/d-cache/classes 0755 root bin 1 d none opt/d-cache/classes/activemq 0755 root bin 1 f none opt/d-cache/classes/activemq/activemq-all-5.2.0.jar 0644 root bin 2631190 270 1254909445 1 f none opt/d-cache/classes/activemq/xbean-spring-3.4.jar 0644 root bin 130203 35021 1254909445 1 d none opt/d-cache/classes/axis 0755 root bin 1 f none opt/d-cache/classes/axis/axis-ant.jar 0644 root bin 33514 37176 1254909445 1 f none opt/d-cache/classes/axis/axis-schema.jar 0644 root bin 203807 29767 1254909445 1 f none opt/d-cache/classes/axis/axis.jar 0644 root bin 1632995 37294 1254909445 1 f none opt/d-cache/classes/axis/commons-discovery-0.2.jar 0644 root bin 71442 54573 1254909445 1 f none opt/d-cache/classes/axis/commons-logging-1.0.4.jar 0644 root bin 38015 22754 1254909445 1 f none opt/d-cache/classes/axis/jaxrpc.jar 0644 root bin 32062 17584 1254909445 1 f none opt/d-cache/classes/axis/saaj.jar 0644 root bin 19419 39008 1254909445 1 f none opt/d-cache/classes/axis/wsdl4j-1.5.1.jar 0644 root bin 126771 43198 1254909445 1 d none opt/d-cache/classes/berkeleyDB 0755 root bin 1 f none opt/d-cache/classes/berkeleyDB/je-3.2.76.jar 0644 root bin 1157968 35564 1254909445 1 f none opt/d-cache/classes/cells-protocols.jar 0644 root bin 3938 51205 1254909445 1 f none opt/d-cache/classes/cells.jar 0644 root bin 1093266 57758 1254909429 1 d none opt/d-cache/classes/chimera 0755 root bin 1 f none opt/d-cache/classes/chimera/chimera-core.jar 0644 root bin 135794 65030 1254909445 1 f none opt/d-cache/classes/chimera/commons-cli-1.0.jar 0644 root bin 30117 43413 1254909445 1 f none opt/d-cache/classes/chimera/commons-logging.jar 0644 root bin 31605 9482 1254909445 1 f none opt/d-cache/classes/chimera/grizzly-rpc.jar 0644 root bin 1410750 15443 1254909445 1 f none opt/d-cache/classes/chimera/oncrpc.jar 0644 root bin 85191 64553 1254909445 1 f none opt/d-cache/classes/chimera/portmap.jar 0644 root bin 91131 48069 1254909445 1 d none opt/d-cache/classes/cog 0755 root bin 1 f none opt/d-cache/classes/cog/cog-axis.jar 0644 root bin 31064 7031 1254909445 1 f none opt/d-cache/classes/cog/cog-jglobus-1.7.0.jar 0644 root bin 723795 35309 1254909445 1 f none opt/d-cache/classes/cog/cog-jobmanager-1.7.0.jar 0644 root bin 60229 59952 1254909445 1 f none opt/d-cache/classes/cog/cog-tomcat.jar 0644 root bin 23037 15845 1254909445 1 f none opt/d-cache/classes/cog/cog-url-1.7.0.jar 0644 root bin 2994 29845 1254909445 1 f none opt/d-cache/classes/cog/commons-logging-1.1.jar 0644 root bin 52915 39510 1254909445 1 f none opt/d-cache/classes/cog/cryptix-asn1.jar 0644 root bin 80392 4768 1254909445 1 f none opt/d-cache/classes/cog/cryptix.jar 0644 root bin 3608 6492 1254909445 1 f none opt/d-cache/classes/cog/cryptix32.jar 0644 root bin 366279 59239 1254909445 1 f none opt/d-cache/classes/cog/jgss.jar 0644 root bin 6567 63641 1254909445 1 f none opt/d-cache/classes/cog/puretls.jar 0644 root bin 191354 20670 1254909445 1 d none opt/d-cache/classes/dbcp 0755 root bin 1 f none opt/d-cache/classes/dbcp/c3p0-0.9.1.2.jar 0644 root bin 610790 21287 1254909445 1 f none opt/d-cache/classes/dcache-common.jar 0644 root bin 35675 37337 1254909423 1 f none opt/d-cache/classes/dcache.jar 0644 root bin 3179873 3514 1254909445 1 d none opt/d-cache/classes/endorsed 0755 root bin 1 f none opt/d-cache/classes/endorsed/xercesImpl-2.9.1.jar 0644 root bin 1229289 36377 1254909445 1 f none opt/d-cache/classes/endorsed/xml-apis-2.9.1.jar 0644 root bin 194354 28089 1254909445 1 f none opt/d-cache/classes/extern.classpath 0644 root bin 4765 58915 1254909450 1 d none opt/d-cache/classes/glite 0755 root bin 1 f none opt/d-cache/classes/glite/glite-security-trustmanager-1.8.16-1.norefresh.jar 0644 root bin 40737 30196 1254909445 1 f none opt/d-cache/classes/glite/glite-security-util-java.jar 0644 root bin 61580 52105 1254909445 1 f none opt/d-cache/classes/glite/vomsjapi.jar 0644 root bin 125920 765 1254909445 1 d none opt/d-cache/classes/glue 0755 root bin 1 f none opt/d-cache/classes/glue/GLUE-STD.jar 0644 root bin 633873 40260 1254909445 1 f none opt/d-cache/classes/glue/collections.jar 0644 root bin 259265 9277 1254909445 1 f none opt/d-cache/classes/glue/dom.jar 0644 root bin 13407 7806 1254909445 1 f none opt/d-cache/classes/glue/jcert.jar 0644 root bin 7637 22349 1254909445 1 f none opt/d-cache/classes/glue/jnet.jar 0644 root bin 3098 55989 1254909445 1 f none opt/d-cache/classes/glue/jsse.jar 0644 root bin 463471 53806 1254909445 1 f none opt/d-cache/classes/glue/servlet.jar 0644 root bin 40809 25019 1254909445 1 d none opt/d-cache/classes/gplazma 0755 root bin 1 f none opt/d-cache/classes/gplazma/activation.jar 0644 root bin 82297 56192 1254909445 1 f none opt/d-cache/classes/gplazma/alldepends.jar 0644 root bin 6357 5783 1254909445 1 f none opt/d-cache/classes/gplazma/anam.jar 0644 root bin 23593 19233 1254909445 1 f none opt/d-cache/classes/gplazma/gplazma.jar 0644 root bin 78802 18209 1254909430 1 f none opt/d-cache/classes/gplazma/mail.jar 0644 root bin 327603 65312 1254909445 1 f none opt/d-cache/classes/gplazma/privilege-1.0.1.5.jar 0644 root bin 70472 48610 1254909445 1 f none opt/d-cache/classes/gplazma/privilege-xacml-2.2.5.jar 0644 root bin 69937 56121 1254909445 1 d none opt/d-cache/classes/grizzly-nio 0755 root bin 1 f none opt/d-cache/classes/grizzly-nio/grizzly-nio-framework-1.9.19-SNAPSHOT.jar 0644 root bin 678371 64358 1254909445 1 f none opt/d-cache/classes/infoDynamicSE.jar 0644 root bin 30663 17502 1254909450 1 f none opt/d-cache/classes/javatunnel.jar 0644 root bin 30507 63160 1254909450 1 d none opt/d-cache/classes/jdbc-drivers 0755 root bin 1 f none opt/d-cache/classes/jdbc-drivers/commons-dbcp.jar 0644 root bin 107465 58992 1254909445 1 f none opt/d-cache/classes/jdbc-drivers/commons-pool.jar 0644 root bin 43080 21038 1254909445 1 f none opt/d-cache/classes/jdbc-drivers/postgresql-8.1-405.jdbc3.jar 0644 root bin 402505 52414 1254909445 1 d none opt/d-cache/classes/jdom 0755 root bin 1 f none opt/d-cache/classes/jdom/jdom.jar 0644 root bin 150794 3608 1254909445 1 d none opt/d-cache/classes/jline 0755 root bin 1 f none opt/d-cache/classes/jline/jline-0.9.92.jar 0644 root bin 87401 43959 1254909429 1 d none opt/d-cache/classes/jpox 0755 root bin 1 f none opt/d-cache/classes/jpox/jdo2-api-2.0.jar 0644 root bin 82512 65465 1254909445 1 f none opt/d-cache/classes/jpox/jpox-core-1.2.2.jar 0644 root bin 1503051 53163 1254909445 1 f none opt/d-cache/classes/jpox/jpox-rdbms-1.2.2.jar 0644 root bin 914243 11084 1254909445 1 d none opt/d-cache/classes/log4j 0755 root bin 1 f none opt/d-cache/classes/log4j/log4j-1.2.15.jar 0644 root bin 391834 57359 1254909445 1 d none opt/d-cache/classes/netty 0755 root bin 1 f none opt/d-cache/classes/netty/netty-3.1.2.GA.jar 0644 root bin 700665 45534 1254909445 1 d none opt/d-cache/classes/opensaml 0755 root bin 1 f none opt/d-cache/classes/opensaml/commons-collections-3.1.jar 0644 root bin 559366 32653 1254909445 1 f none opt/d-cache/classes/opensaml/commons-lang-2.1.jar 0644 root bin 207723 21772 1254909445 1 f none opt/d-cache/classes/opensaml/joda-time-1.5.2.jar 0644 root bin 531326 61821 1254909445 1 f none opt/d-cache/classes/opensaml/opensaml-1.0.1.jar 0644 root bin 105026 47615 1254909445 1 f none opt/d-cache/classes/opensaml/opensaml-2.2.0.jar 0644 root bin 1242124 14330 1254909445 1 f none opt/d-cache/classes/opensaml/openws-1.1.0.jar 0644 root bin 121144 62104 1254909445 1 f none opt/d-cache/classes/opensaml/velocity-1.5.jar 0644 root bin 392124 47990 1254909445 1 f none opt/d-cache/classes/opensaml/xalan-2.6.0.jar 0644 root bin 3149655 60052 1254909445 1 f none opt/d-cache/classes/opensaml/xml-security-1.4.1.jar 0644 root bin 415492 20711 1254909445 1 f none opt/d-cache/classes/opensaml/xmltooling-1.0.1.jar 0644 root bin 553805 34591 1254909445 1 d none opt/d-cache/classes/rrd4j 0755 root bin 1 f none opt/d-cache/classes/rrd4j/convertor-2.0.5.jar 0644 root bin 2501 64572 1254909445 1 f none opt/d-cache/classes/rrd4j/inspector-2.0.5.jar 0644 root bin 41703 39956 1254909445 1 f none opt/d-cache/classes/rrd4j/je.jar 0644 root bin 781019 40217 1254909445 1 f none opt/d-cache/classes/rrd4j/rrd4j-2.0.5.jar 0644 root bin 262626 42710 1254909445 1 d none opt/d-cache/classes/saxon 0755 root bin 1 f none opt/d-cache/classes/saxon/saxon.jar 0644 root bin 572551 52204 1254909445 1 d none opt/d-cache/classes/security 0755 root bin 1 f none opt/d-cache/classes/security/bcprov-jdk15-143.jar 0644 root bin 1632822 16952 1254909445 1 d none opt/d-cache/classes/slf4j 0755 root bin 1 f none opt/d-cache/classes/slf4j/slf4j-api-1.5.8.jar 0644 root bin 23445 243 1254909445 1 f none opt/d-cache/classes/slf4j/slf4j-log4j12-1.5.8.jar 0644 root bin 9679 38544 1254909445 1 d none opt/d-cache/classes/smc 0755 root bin 1 f none opt/d-cache/classes/smc/statemap.jar 0644 root bin 3854 23710 1254909445 1 d none opt/d-cache/classes/spring 0755 root bin 1 f none opt/d-cache/classes/spring/spring-beans.jar 0644 root bin 488068 34113 1254909445 1 f none opt/d-cache/classes/spring/spring-context.jar 0644 root bin 476894 56713 1254909445 1 f none opt/d-cache/classes/spring/spring-core.jar 0644 root bin 285603 38613 1254909445 1 f none opt/d-cache/classes/srm-tomcat.jar 0644 root bin 1409 45989 1254909434 1 f none opt/d-cache/classes/srm.jar 0644 root bin 988502 19283 1254909434 1 d none opt/d-cache/classes/terapaths 0755 root bin 1 f none opt/d-cache/classes/terapaths/FastInfoset.jar 0644 root bin 593190 1562 1254909445 1 f none opt/d-cache/classes/terapaths/activation.jar 0644 root bin 44623 53526 1254909445 1 f none opt/d-cache/classes/terapaths/jax-qname.jar 0644 root bin 7700 41183 1254909445 1 f none opt/d-cache/classes/terapaths/jaxp-api.jar 0644 root bin 217152 27469 1254909445 1 f none opt/d-cache/classes/terapaths/jaxrpc-api.jar 0644 root bin 57375 32308 1254909445 1 f none opt/d-cache/classes/terapaths/jaxrpc-impl.jar 0644 root bin 5566952 29876 1254909445 1 f none opt/d-cache/classes/terapaths/jaxrpc-spi.jar 0644 root bin 40820 13404 1254909445 1 f none opt/d-cache/classes/terapaths/jsr173_api.jar 0644 root bin 49672 52972 1254909445 1 f none opt/d-cache/classes/terapaths/mail.jar 0644 root bin 270394 64436 1254909445 1 f none opt/d-cache/classes/terapaths/relaxngDatatype.jar 0644 root bin 31204 33209 1254909445 1 f none opt/d-cache/classes/terapaths/saaj-api.jar 0644 root bin 36298 26215 1254909445 1 f none opt/d-cache/classes/terapaths/saaj-impl.jar 0644 root bin 618186 47200 1254909445 1 f none opt/d-cache/classes/terapaths/terapathsExampleJavaClient.jar 0644 root bin 150333 30659 1254909445 1 f none opt/d-cache/classes/terapaths/xsdlib.jar 0644 root bin 476636 10587 1254909445 1 d none opt/d-cache/classes/toplink 0755 root bin 1 f none opt/d-cache/classes/toplink/toplink-essentials.jar 0644 root bin 2461878 64656 1254909445 1 f none opt/d-cache/classes/xrootd-tokenauthz.jar 0644 root bin 330297 36671 1254909449 1 d none opt/d-cache/config 0755 root bin 1 f none opt/d-cache/config/JHRM.map 0644 root bin 2391 64201 1254909445 1 f none opt/d-cache/config/PoolManager.conf 0644 root bin 2913 53287 1254909445 1 f none opt/d-cache/config/adminDoor.batch 0644 root bin 1739 18070 1254909445 1 f none opt/d-cache/config/authdoor.batch 0644 root bin 1409 44445 1254909445 1 f none opt/d-cache/config/c3p0.properties 0644 root bin 132 11659 1254909445 1 f none opt/d-cache/config/chimera-config.xml 0644 root bin 521 41490 1254909445 1 f none opt/d-cache/config/chimera.batch 0644 root bin 3054 63209 1254909445 1 f none opt/d-cache/config/dCache.batch 0644 root bin 2650 30814 1254909445 1 f none opt/d-cache/config/dir.batch 0644 root bin 489 42483 1254909445 1 f none opt/d-cache/config/door.batch 0644 root bin 1804 12275 1254909445 1 f none opt/d-cache/config/gPlazma.batch 0644 root bin 1300 44406 1254909445 1 f none opt/d-cache/config/gridftpdoor.batch 0644 root bin 4601 55310 1254909445 1 f none opt/d-cache/config/gsidcapdoor.batch 0644 root bin 2785 34803 1254909445 1 f none opt/d-cache/config/httpd.batch 0644 root bin 6531 28093 1254909445 1 f none opt/d-cache/config/httpdoor.batch 0644 root bin 1024 16738 1254909445 1 f none opt/d-cache/config/info.batch 0644 root bin 695 58592 1254909445 1 f none opt/d-cache/config/infoProvider.batch 0644 root bin 1178 26159 1254909445 1 f none opt/d-cache/config/lm.batch 0644 root bin 543 47983 1254909445 1 f none opt/d-cache/config/lm.config 0644 root bin 264 21733 1254909445 1 f none opt/d-cache/config/log4j.properties 0644 root bin 2956 5919 1254909445 1 f none opt/d-cache/config/nfsv41.batch 0644 root bin 745 64821 1254909445 1 f none opt/d-cache/config/permission.fragment 0644 root bin 1599 14778 1254909445 1 f none opt/d-cache/config/pnfs.batch 0644 root bin 5062 44282 1254909445 1 f none opt/d-cache/config/pool.batch 0644 root bin 3232 23154 1254909445 1 f none opt/d-cache/config/replica.batch 0644 root bin 2807 37061 1254909445 1 f none opt/d-cache/config/setup.temp 0644 root bin 1119 29769 1254909445 1 f none opt/d-cache/config/srm.batch 0644 root bin 19293 39121 1254909445 1 f none opt/d-cache/config/stage.fragment 0644 root bin 513 46820 1254909445 1 f none opt/d-cache/config/statistics.batch 0644 root bin 685 58603 1254909445 1 f none opt/d-cache/config/tunnel.fragment 0644 root bin 1466 246 1254909445 1 d none opt/d-cache/config/users 0755 root bin 1 d none opt/d-cache/config/users/acls 0755 root bin 1 d none opt/d-cache/config/users/meta 0755 root bin 1 d none opt/d-cache/config/users/relations 0755 root bin 1 f none opt/d-cache/config/utility.batch 0644 root bin 2817 29642 1254909445 1 f none opt/d-cache/config/xrootdDoor.batch 0644 root bin 1137 36464 1254909445 1 d none opt/d-cache/docs 0755 root bin 1 d none opt/d-cache/docs/images 0755 root bin 1 f none opt/d-cache/docs/images/area.gif 0644 root bin 521 2416 1254909445 1 f none opt/d-cache/docs/images/bg-home.jpg 0644 root bin 5507 3144 1254909445 1 f none opt/d-cache/docs/images/bg.jpg 0644 root bin 31592 15107 1254909448 1 f none opt/d-cache/docs/images/birdline.gif 0644 root bin 545 3533 1254909445 1 f none opt/d-cache/docs/images/bluebox.gif 0644 root bin 378 49374 1254909445 1 f none opt/d-cache/docs/images/cian.gif 0644 root bin 378 49837 1254909445 1 f none opt/d-cache/docs/images/dCache-web-bg-logo.svg 0644 root bin 571312 15612 1254909445 1 f none opt/d-cache/docs/images/dark-grey.gif 0644 root bin 378 49799 1254909445 1 f none opt/d-cache/docs/images/dark-tabaco.gif 0644 root bin 378 49896 1254909445 1 f none opt/d-cache/docs/images/desy_logo.gif 0644 root bin 843 39562 1254909445 1 f none opt/d-cache/docs/images/desy_logo_trans.gif 0644 root bin 800 34998 1254909445 1 f none opt/d-cache/docs/images/dev_trans.gif 0644 root bin 2903 64770 1254909445 1 f none opt/d-cache/docs/images/developer.gif 0644 root bin 2890 3597 1254909445 1 f none opt/d-cache/docs/images/documentation.gif 0644 root bin 1154 19113 1254909445 1 f none opt/d-cache/docs/images/download.gif 0644 root bin 956 57584 1254909445 1 f none opt/d-cache/docs/images/eagle-grey.gif 0644 root bin 1665 22826 1254909445 1 f none opt/d-cache/docs/images/eagle-main.gif 0644 root bin 5434 21190 1254909445 1 f none opt/d-cache/docs/images/eagle_logo.gif 0644 root bin 1935 55315 1254909445 1 f none opt/d-cache/docs/images/eagle_logo_draft.gif 0644 root bin 2839 37709 1254909445 1 f none opt/d-cache/docs/images/eaglebw.gif 0644 root bin 1053 27702 1254909445 1 f none opt/d-cache/docs/images/eaglered.gif 0644 root bin 233 28455 1254909445 1 f none opt/d-cache/docs/images/eagleredtrans.gif 0644 root bin 241 28592 1254909445 1 f none opt/d-cache/docs/images/eurogate.gif 0644 root bin 3010 30069 1254909445 1 f none opt/d-cache/docs/images/eurogatetrans.gif 0644 root bin 1800 39230 1254909445 1 f none opt/d-cache/docs/images/eurogatetranssmall.gif 0644 root bin 1184 24465 1254909445 1 f none opt/d-cache/docs/images/fermi_logo.gif 0644 root bin 428 55068 1254909445 1 f none opt/d-cache/docs/images/fermi_logo_trans.gif 0644 root bin 436 55301 1254909445 1 f none opt/d-cache/docs/images/greenbox.gif 0644 root bin 378 49200 1254909445 1 f none opt/d-cache/docs/images/large001.gif 0644 root bin 1876 3849 1254909445 1 f none opt/d-cache/docs/images/line.gif 0644 root bin 261 32561 1254909445 1 f none opt/d-cache/docs/images/navybox.gif 0644 root bin 378 49251 1254909445 1 f none opt/d-cache/docs/images/new-green.gif 0644 root bin 378 49951 1254909445 1 f none opt/d-cache/docs/images/new01.gif 0644 root bin 1016 8100 1254909445 1 f none opt/d-cache/docs/images/newsletter.gif 0644 root bin 1810 36245 1254909445 1 f none opt/d-cache/docs/images/orangebox.gif 0644 root bin 378 49247 1254909445 1 f none opt/d-cache/docs/images/p2001.gif 0644 root bin 516 64695 1254909445 1 f none opt/d-cache/docs/images/pMarch.gif 0644 root bin 669 19396 1254909445 1 f none opt/d-cache/docs/images/pMay.gif 0644 root bin 527 1776 1254909445 1 f none opt/d-cache/docs/images/pnfslogo1.gif 0644 root bin 2652 31204 1254909445 1 f none opt/d-cache/docs/images/pnfslogotrans.gif 0644 root bin 1734 14849 1254909445 1 f none opt/d-cache/docs/images/rateDist.gif 0644 root bin 3053 58062 1254909445 1 f none opt/d-cache/docs/images/redbox.gif 0644 root bin 378 49973 1254909445 1 f none opt/d-cache/docs/images/s_top_tux.gif 0644 root bin 1041 46334 1254909445 1 f none opt/d-cache/docs/images/sgi.gif 0644 root bin 498 58351 1254909445 1 f none opt/d-cache/docs/images/sorry.gif 0644 root bin 6080 33470 1254909445 1 f none opt/d-cache/docs/images/sunlogo.gif 0644 root bin 1131 1606 1254909445 1 f none opt/d-cache/docs/images/tabaco.gif 0644 root bin 378 50051 1254909445 1 f none opt/d-cache/docs/images/trudex.gif 0644 root bin 16155 34318 1254909445 1 f none opt/d-cache/docs/images/trudey.gif 0644 root bin 8570 50880 1254909445 1 f none opt/d-cache/docs/images/tux.gif 0644 root bin 849 20141 1254909445 1 f none opt/d-cache/docs/images/violet.gif 0644 root bin 378 50129 1254909445 1 f none opt/d-cache/docs/images/yellowbox.gif 0644 root bin 378 49455 1254909445 1 d none opt/d-cache/docs/scripts 0755 root bin 1 d none opt/d-cache/docs/scripts/sorting 0755 root bin 1 f none opt/d-cache/docs/scripts/sorting/common.js 0644 root bin 2801 42094 1254909445 1 f none opt/d-cache/docs/scripts/sorting/css.js 0644 root bin 4449 32944 1254909445 1 f none opt/d-cache/docs/scripts/sorting/standardista-table-sorting.js 0644 root bin 12147 54760 1254909445 1 d none opt/d-cache/docs/skins 0755 root bin 1 f none opt/d-cache/docs/skins/home-skin-basic.html 0644 root bin 7039 59349 1254909445 1 f none opt/d-cache/docs/statisticsHelp.html 0644 root bin 3499 37274 1254909445 1 d none opt/d-cache/docs/styles 0755 root bin 1 f none opt/d-cache/docs/styles/billing.css 0644 root bin 451 36577 1254909445 1 f none opt/d-cache/docs/styles/common.css 0644 root bin 605 46877 1254909445 1 f none opt/d-cache/docs/styles/doors.css 0644 root bin 647 50026 1254909445 1 f none opt/d-cache/docs/styles/poolinfo.css 0644 root bin 1373 45658 1254909445 1 f none opt/d-cache/docs/styles/queueInfo.css 0644 root bin 244 18823 1254909445 1 f none opt/d-cache/docs/styles/restoreHandler.css 0644 root bin 281 22417 1254909445 1 f none opt/d-cache/docs/styles/transfers.css 0644 root bin 176 14589 1254909445 1 f none opt/d-cache/docs/styles/usageInfo.css 0644 root bin 555 46140 1254909445 1 d none opt/d-cache/etc 0755 root bin 1 f none opt/d-cache/etc/dCacheSetup.template 0644 root bin 41533 2429 1254909451 1 f none opt/d-cache/etc/dcache.kpwd.template 0644 root bin 1799 13989 1254909451 1 f none opt/d-cache/etc/dcachesrm-gplazma.policy 0644 root bin 3502 20410 1254909451 1 f none opt/d-cache/etc/glue-1.3.xml.template 0644 root bin 23169 63292 1254909451 1 f none opt/d-cache/etc/keystore.template 0644 root bin 169 13237 1254909451 1 f none opt/d-cache/etc/logConfig.xml 0644 root bin 4638 48147 1254909451 1 f none opt/d-cache/etc/node_config.template 0644 root bin 1729 10598 1254909451 1 f none opt/d-cache/etc/pool_path.template 0644 root bin 48 3683 1254909451 1 f none opt/d-cache/etc/psql_drop_companion.sql 0644 root bin 22 1730 1254909451 1 f none opt/d-cache/etc/psql_drop_dcache.sql 0644 root bin 782 435 1254909451 1 f none opt/d-cache/etc/psql_drop_replicas.sql 0644 root bin 110 8448 1254909451 1 f none opt/d-cache/etc/psql_install_companion.sql 0644 root bin 224 16798 1254909451 1 f none opt/d-cache/etc/psql_install_replicas.sql 0644 root bin 6347 30304 1254909451 1 f none opt/d-cache/etc/psql_upgrade_replicas.sql 0644 root bin 3855 34249 1254909451 1 f none opt/d-cache/etc/srm_setup.env 0644 root bin 1273 37977 1254909451 1 f none opt/d-cache/etc/srmv1-deploy.wsdd 0644 root bin 11887 40465 1254909434 1 f none opt/d-cache/etc/srmv2.2-deploy.wsdd 0644 root bin 74833 6553 1254909434 1 d none opt/d-cache/external 0755 root bin 1 f none opt/d-cache/external/apache-tomcat-5.5.20.tar.gz 0644 root bin 5949295 7569 1254909434 1 f none opt/d-cache/external/axis-1_3.tar.gz 0644 root bin 8498273 46141 1254909434 1 d none opt/d-cache/install 0755 root bin 1 f none opt/d-cache/install/deploy_srmv2.sh 0755 root bin 20288 47603 1254909434 1 f none opt/d-cache/install/install.sh 0755 root bin 26848 21717 1254909451 1 f none opt/d-cache/install/upgrade_space_manager_schema.sh 0755 root bin 379 31940 1254909434 1 d none opt/d-cache/jobs 0755 root bin 1 f none opt/d-cache/jobs/encp.sh 0755 root bin 4536 2227 1254909445 1 f none opt/d-cache/jobs/generic.lib.sh 0755 root bin 5434 15459 1254909445 1 f none opt/d-cache/jobs/hsmcp.rb 0755 root bin 3125 49133 1254909445 1 f none opt/d-cache/jobs/hsmcp.sh 0755 root bin 3498 60829 1254909445 1 f none opt/d-cache/jobs/hsmcpV4.sh 0755 root bin 7584 38051 1254909445 1 f none opt/d-cache/jobs/infoDynamicSE-plugin-dcache 0755 root bin 1018 9010 1254909445 1 f none opt/d-cache/jobs/infoDynamicSE-provider-dcache 0755 root bin 1018 9166 1254909445 1 f none opt/d-cache/jobs/initPackage.sh 0755 root bin 4405 57485 1254909445 1 f none opt/d-cache/jobs/needFulThings.sh 0755 root bin 7163 36191 1254909445 1 f none opt/d-cache/jobs/wrapper2.sh 0755 root bin 5936 28637 1254909445 1 d none opt/d-cache/libexec 0755 root bin 1 f none opt/d-cache/libexec/README 0644 root bin 0 0 1254909451 1 d none opt/d-cache/libexec/chimera 0755 root bin 1 f none opt/d-cache/libexec/chimera/chimera-cli.sh 0755 root bin 437 37539 1254909445 1 f none opt/d-cache/libexec/chimera/chimera-get-acl.sh 0755 root bin 302 26762 1254909445 1 f none opt/d-cache/libexec/chimera/chimera-nfs-run.sh 0755 root bin 3343 61182 1254909445 1 f none opt/d-cache/libexec/chimera/chimera-nfs-run.xml 0644 root bin 2685 23828 1254909445 1 f none opt/d-cache/libexec/chimera/chimera-set-acl.sh 0755 root bin 302 26774 1254909445 1 d none opt/d-cache/libexec/chimera/sql 0755 root bin 1 f none opt/d-cache/libexec/chimera/sql/add-timezone.sql 0644 root bin 2148 52309 1254909445 1 f none opt/d-cache/libexec/chimera/sql/addACLtoChimeraDB.sql 0644 root bin 528 38275 1254909445 1 f none opt/d-cache/libexec/chimera/sql/cacheinfo-pgs.sql 0644 root bin 302 23053 1254909445 1 f none opt/d-cache/libexec/chimera/sql/cacheinfo.sql 0644 root bin 205 14348 1254909445 1 f none opt/d-cache/libexec/chimera/sql/create-dCacheACL.sql 0644 root bin 460 33857 1254909445 1 f none opt/d-cache/libexec/chimera/sql/create-db2.sql 0644 root bin 9084 37365 1254909445 1 f none opt/d-cache/libexec/chimera/sql/create-hsqldb.sql 0644 root bin 8730 24044 1254909445 1 f none opt/d-cache/libexec/chimera/sql/create-oracle.sql 0644 root bin 9278 50366 1254909445 1 f none opt/d-cache/libexec/chimera/sql/create.sql 0644 root bin 10694 56800 1254909445 1 f none opt/d-cache/libexec/chimera/sql/migrate-2-1.9.3.sql 0644 root bin 799 563 1254909445 1 f none opt/d-cache/libexec/chimera/sql/pgsql-procedures.sql 0644 root bin 4661 61571 1254909445 1 f none opt/d-cache/libexec/chimera/sql/pnfsid-mapping.sql 0644 root bin 105 7613 1254909445 1 f none opt/d-cache/libexec/chimera/sql/top_dir.sql 0644 root bin 251 18353 1254909445 1 f none opt/d-cache/libexec/chimera/sql/transaction-loggin-pg.sql 0644 root bin 2867 62292 1254909445 1 d none opt/d-cache/libexec/infoProvider 0755 root bin 1 f none opt/d-cache/libexec/infoProvider/info-based-infoProvider.sh 0644 root bin 3580 33196 1254909451 1 f none opt/d-cache/libexec/infoprovidercms.rb 0644 root bin 5213 9626 1254909451 1 f none opt/d-cache/libexec/nsp-performance.sh 0644 root bin 537 44692 1254909451 1 f none opt/d-cache/libexec/wait-for-cells.sh 0644 root bin 2972 31602 1254909451 1 d none opt/d-cache/share 0755 root bin 1 d none opt/d-cache/share/dCacheConfigure 0755 root bin 1 d none opt/d-cache/share/dCacheConfigure/modules 0755 root bin 1 f none opt/d-cache/share/dCacheConfigure/modules/config_bdii_only 0644 root bin 1818 4940 1254909451 1 f none opt/d-cache/share/dCacheConfigure/modules/config_gip_dcache 0644 root bin 25771 48197 1254909451 1 f none opt/d-cache/share/dCacheConfigure/modules/config_gip_dcache_info 0644 root bin 8564 61094 1254909451 1 f none opt/d-cache/share/dCacheConfigure/modules/config_gip_only 0644 root bin 3562 18254 1254909451 1 f none opt/d-cache/share/dCacheConfigure/modules/config_pgsql 0644 root bin 15591 1657 1254909451 1 f none opt/d-cache/share/dCacheConfigure/modules/config_sechimera 0644 root bin 13419 48203 1254909451 1 f none opt/d-cache/share/dCacheConfigure/modules/config_sedcache 0644 root bin 65997 31919 1254909451 1 f none opt/d-cache/share/dCacheConfigure/modules/config_sepnfs 0644 root bin 19005 24682 1254909451 1 f none opt/d-cache/share/dCacheConfigure/modules/reset_srm 0644 root bin 360 29961 1254909451 1 d none opt/d-cache/share/dCacheConfigure/utils 0755 root bin 1 f none opt/d-cache/share/dCacheConfigure/utils/central_certs 0644 root bin 334 26463 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/check_users_conf_format 0644 root bin 343 26610 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/config_file 0644 root bin 10130 27520 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/cron_job 0644 root bin 1306 34915 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/requires 0644 root bin 881 3229 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/run 0644 root bin 494 31815 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/set_mysql_passwd 0644 root bin 811 64521 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/split_quoted_variable 0644 root bin 185 13331 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/userhandling 0644 root bin 8436 27442 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/users_getfirstpoolaccount 0644 root bin 447 33384 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/users_getprduser 0644 root bin 517 40838 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/users_getsgmuser 0644 root bin 517 40842 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/users_getspecialusers 0644 root bin 676 53587 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/users_getvogroup 0644 root bin 558 44770 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/users_getvoprefix 0644 root bin 627 50089 1254909451 1 f none opt/d-cache/share/dCacheConfigure/utils/yaimlog 0644 root bin 1095 12055 1254909451 1 d none opt/d-cache/share/dcache 0755 root bin 1 d none opt/d-cache/share/dcache/sh 0755 root bin 1 d none opt/d-cache/share/doc 0755 root bin 1 f none opt/d-cache/share/doc/README-GLUE 0644 root bin 9571 60807 1254909451 1 d none opt/d-cache/share/doc/dCacheConfigure 0755 root bin 1 d none opt/d-cache/share/doc/dCacheConfigure/examples 0755 root bin 1 f none opt/d-cache/share/doc/dCacheConfigure/examples/site-info.def 0644 root bin 21968 5981 1254909451 1 f none opt/d-cache/share/doc/dCacheConfigure/examples/users.conf 0644 root bin 77890 20414 1254909451 1 f none opt/d-cache/share/doc/dCacheConfigure/users.conf.README 0644 root bin 2938 52601 1254909451 1 d none opt/d-cache/share/doc/xylophone 0755 root bin 1 f none opt/d-cache/share/doc/xylophone/Guide.txt 0644 root bin 44872 29496 1254909451 1 f none opt/d-cache/share/doc/xylophone/dynamic.xml 0644 root bin 554 43566 1254909451 1 f none opt/d-cache/share/doc/xylophone/hello-world.xml 0644 root bin 581 46502 1254909451 1 d none opt/d-cache/share/lib 0755 root bin 1 f none opt/d-cache/share/lib/config.sed 0644 root bin 1289 39148 1254909451 1 f none opt/d-cache/share/lib/config.sh 0644 root bin 1467 41293 1254909451 1 f none opt/d-cache/share/lib/daemon 0644 root bin 2472 52788 1254909451 1 f none opt/d-cache/share/lib/namespace.sh 0644 root bin 2850 18279 1254909451 1 f none opt/d-cache/share/lib/paths.sh 0644 root bin 657 45268 1254909451 1 f none opt/d-cache/share/lib/pool.sh 0644 root bin 9194 35059 1254909451 1 f none opt/d-cache/share/lib/services.sh 0644 root bin 11489 48784 1254909451 1 f none opt/d-cache/share/lib/utils.sh 0644 root bin 3995 17697 1254909451 1 d none opt/d-cache/share/man 0755 root bin 1 d none opt/d-cache/share/man/man8 0755 root bin 1 f none opt/d-cache/share/man/man8/dcache.8 0644 root bin 8754 61545 1254909451 1 d none opt/d-cache/share/xml 0755 root bin 1 d none opt/d-cache/share/xml/xslt 0755 root bin 1 f none opt/d-cache/share/xml/xslt/wait-for-cells.xsl 0644 root bin 4610 52734 1254909451 1 d none opt/d-cache/share/xml/xylophone 0755 root bin 1 d none opt/d-cache/share/xml/xylophone/xsl 0755 root bin 1 f none opt/d-cache/share/xml/xylophone/xsl/xylophone-import.xsl 0644 root bin 5064 5889 1254909451 1 f none opt/d-cache/share/xml/xylophone/xsl/xylophone-map.xsl 0644 root bin 9561 54461 1254909451 1 f none opt/d-cache/share/xml/xylophone/xsl/xylophone-markup.xsl 0644 root bin 8587 24867 1254909451 1 f none opt/d-cache/share/xml/xylophone/xsl/xylophone-output.xsl 0644 root bin 4706 46233 1254909451 1 f none opt/d-cache/share/xml/xylophone/xsl/xylophone-path.xsl 0644 root bin 6205 34007 1254909451 1 f none opt/d-cache/share/xml/xylophone/xsl/xylophone-predicate.xsl 0644 root bin 6777 13290 1254909451 1 f none opt/d-cache/share/xml/xylophone/xsl/xylophone-publish.xsl 0644 root bin 28791 13891 1254909451 1 f none opt/d-cache/share/xml/xylophone/xsl/xylophone-user-elements.xsl 0644 root bin 16976 3712 1254909451 1 f none opt/d-cache/share/xml/xylophone/xsl/xylophone.xsl 0644 root bin 4289 15908 1254909451 1 i pkginfo 164 12762 1254909451 07070100079818000041ed000000650000000a000000034acc660b00000000000000b600010008ffffffffffffffff0000000600000000reloc07070100079819000041ed000000650000000a000000034acc660b00000000000000b600010008ffffffffffffffff0000000a00000000reloc/opt0707010007981a000041ed000000650000000a0000000d4acc660b00000000000000b600010008ffffffffffffffff0000001200000000reloc/opt/d-cache0707010007981d000041ed000000650000000a000000024acc660b00000000000000b600010008ffffffffffffffff0000001600000000reloc/opt/d-cache/bin07070100079820000081ed000000650000000a000000014acc660b00000ba3000000b600010008ffffffffffffffff0000002100000000reloc/opt/d-cache/bin/dcache-srm#!/bin/sh # $Id: dcache-srm,v 1.5 2007-08-14 21:13:00 tigran Exp $ # # chkconfig: - 91 9 # description: srm tomcat startup script # ourHomeDir=/opt/d-cache cmd1=$1 if [ -r ${ourHomeDir}/etc/srm_setup.env ] ; then . ${ourHomeDir}/etc/srm_setup.env fi hostname=`hostname | awk -F. '{print $1}'` PID_DIR=${PID_DIR:-/var/run} JAVA_OPTS="${JAVA_OPTS} -Dorg.globus.jglobus.delegation.cache.lifetime=30000" # we need to activate the globus gsi key pair caching for those installations that # continue to use dCacheSetup where -Dorg.globus.jglobus.delegation.cache.lifetime is not # specified if ! echo "${JAVA_OPTS}" | grep -- "-Dorg\.globus\.jglobus\.delegation\.cache\.lifetime=" 2>&1 >/dev/null ; then JAVA_OPTS="${JAVA_OPTS} \ -Dorg.globus.jglobus.delegation.cache.lifetime=30000" fi export JAVA_HOME export JAVA_OPTS export CATALINA_HOME=${TOMCAT_BASE_PATH}/apache-tomcat-5.5.20 export config=${ourHomeDir}/config export CATALINA_PID=${PID_DIR}/dcache.srm-${hostname}Domain.pid export X509_CERT export X509_KEY export SRM_V2_PORT procStop() { if [ ! -f ${CATALINA_PID} ] ; then echo "Cannot find appropriate pid file (${CATALINA_PID})" 1>&2 exit 0 fi x=`cat ${CATALINA_PID}` if [ -z "$x" ] ; then echo "Pid file (${CATALINA_PID}) does not contain valid PID" 1>&2 exit 1 fi touch ${config}/realStop.lastPid.srm-${hostname} 2>/dev/null kill -TERM $x 1>/dev/null 2>/dev/null printf "Stopping srm-${hostname} (pid=`cat ${CATALINA_PID}`) " for c in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20; do kill -0 $x 1>/dev/null 2>/dev/null if [ $? -ne 0 ] ; then rm -f $CATALINA_PID echo "Done" exit 0 fi printf "$c " sleep 1 if [ $c -eq 9 ] ; then kill -9 $x fi done echo "Giving up : srm-${hostname} might still be running" 1>&2 exit 4 } case $cmd1 in start) if [ -f ${CATALINA_PID} ] ; then x=`cat ${CATALINA_PID}` kill -0 $x 1>/dev/null 2>/dev/null if [ $? -eq 0 ] ; then echo "srm-${hostname} might still be running" 1>&2 exit 4 fi fi ${TOMCAT_BASE_PATH}/apache-tomcat-5.5.20/bin/startup.sh RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/srm-tomcat echo "Pinging srm server to wake it up, will take few seconds ..." export CLASSPATH sleep 2 for jar in `find /opt/d-cache/classes/ -name '*jar'`; do CLASSPATH=${CLASSPATH}:${jar}; done $JAVA_HOME/bin/java org.dcache.srm.client.SrmStartUpPing echo "Done" ;; stop) ${TOMCAT_BASE_PATH}/apache-tomcat-5.5.20/bin/shutdown.sh procStop RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/srm-tomcat ;; restart|reload) $0 stop $0 start RETVAL=$? ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit 0 0707010007981e000081ed000000650000000a000000014acc660b0000155f000000b600010008ffffffffffffffff0000002900000000reloc/opt/d-cache/bin/dCacheConfigure.sh#!/bin/sh UTILMODULES="central_certs userhandling yaimlog check_users_conf_format users_getspecialusers cron_job requires config_file run set_mysql_passwd split_quoted_variable users_getfirstpoolaccount users_getprduser users_getsgmuser users_getvogroup users_getvoprefix " #UTILSDIR=`pwd`/utils #MODULEDIR=`pwd`/modules/ CONFIGTARGETS="config_se_dcache" help() { echo "-s --site-info [site-info.def] Siteinfo" echo "-c --configure [target] select the target or 'all'" echo "-d --dcache-home [/opt/d-cache] The location of dcache home" echo "-l --list List all the configuration targets." echo "-m --dirmodules Directory with configuration modules." echo "-u --dirutils Directory with Utility Modules." echo "-h --help show this help." } getDcacheInstallPrefix() { if [ -n "${HOMEDCACHE}" ] ; then RET=${HOMEDCACHE} return fi if [ -z "${HOMEDCACHE}" ] ; then HOMEDCACHE="/opt/d-cache/" fi RET=${HOMEDCACHE} } getModulesDir() { local testDir RET="" if [ -n "${MODULEDIR}" ] ; then RET=${MODULEDIR} return fi testDir=`pwd`/modules if [ -d "${testDir}" ] ; then RET=${testDir} return else getDcacheInstallPrefix testDir="${RET}/share/dCacheConfigure/modules/" if [ -d "${testDir}" ] ; then RET=${testDir} return fi fi return } getUtilsDir() { local testDir RET="" if [ -n "${UTILSDIR}" ] ; then RET=${UTILSDIR} return fi testDir=`pwd`/utils if [ -d "${testDir}" ] ; then RET=${testDir} return else getDcacheInstallPrefix testDir="${RET}/share/dCacheConfigure/utils/" RET="" if [ -d "${testDir}" ] ; then RET=${testDir} return fi fi return } requiresAlist=0 while [ $# -ne 0 ] do # Default to shifting to next parameter shift_size=1 if [ $1 = "--help" -o $1 = "-h" ] then help exit 0 fi if [ $1 = "--site-info" -o $1 = "-s" ] then SITEINFOFILELOCATION=$2 shift_size=2 fi if [ $1 = "--configure" -o $1 = "-c" ] then SELECTEDMODULES="${SELECTEDMODULES} ${2}" shift_size=2 fi if [ $1 = "--list" -o $1 = "-l" ] then requiresAlist=1 fi if [ $1 = "--dcache-home" -o $1 = "-d" ] then HOMEDCACHE=$2 shift_size=2 fi if [ $1 = "--dirmodules" -o $1 = "-m" ] then MODULEDIR=$2 shift_size=2 fi if [ $1 = "--dirutils" -o $1 = "-u" ] then UTILSDIR=$2 shift_size=2 fi if [ $# -ge $shift_size ] then # Shift correctly for paramters shift $shift_size else # Ok so a paramaterised function contains no valid attribute echo "${0} parameter ${1} requires an attribute" exit 1 fi done getUtilsDir UTILSDIR=${RET} getModulesDir MODULEDIR=${RET} if [ "${UTILSDIR}" == "" ] ; then help echo Utility directory not found please specify it on the command line. exit 1 fi if [ "${MODULEDIR}" == "" ] ; then help echo Modules directory not found please specify it on the command line. exit 1 fi if [ ! -d "${UTILSDIR}" ] ; then echo Utility directory ${UTILSDIR} does not exist. exit 1 fi if [ ! -d "${MODULEDIR}" ] ; then echo Modules directory ${MODULEDIR} does not exist. exit 1 fi for util in ${UTILMODULES} do if [ -f "${UTILSDIR}/${util}" ] ; then . ${UTILSDIR}/${util} else echo "ERROR UTIL '${UTILSDIR}/${util}' not found" exit 1 fi done # now source all the modules. for module in `ls ${MODULEDIR}/` do if [ -f "${MODULEDIR}/$module" ] ; then worthSrcing=$(grep ${module}_check ${MODULEDIR}/$module) # Evil code which should be deleted when lfield fixes his code if [ "${module}" == "config_bdii_only" -o "${module}" == "config_gip_only" ] ; then worthSrcing="yes" fi # Evil code end. if [ -n "${worthSrcing}" ] ; then . ${MODULEDIR}/${module} #echo ${module}_check ${module}_check 2> /dev/null moduleRet=$? if [ "${moduleRet}" == "0" ] ; then AVAILABLEMODS="${AVAILABLEMODS} ${module}" fi else echo "INFO module '$module' does not have a ${module}_check function." fi else echo "INFO module '$module' not found" exit 1 fi done # now list the modules if [ "${requiresAlist}" == "1" ] ; then echo "The Following configuration modules exist" for module in ${AVAILABLEMODS} do echo $module done exit 0 fi VERIFIEDMODS="" for selmodule in ${SELECTEDMODULES} do if [ "$selmodule" == "all" ] ; then VERIFIEDMODS=$AVAILABLEMODS else for vermodule in ${AVAILABLEMODS} do if [ "${vermodule}" == "${selmodule}" ] ; then VERIFIEDMODS="${VERIFIEDMODS} ${vermodule}" fi done fi done if [ "${AVAILABLEMODS}" == "" ] ; then echo No modules available please check your modules directory. echo Modules directory is currently set to ${MODULEDIR}. exit 1 fi if [ "${VERIFIEDMODS}" == "" ] ; then echo "No valid modules selected to be run." echo "The following modules can be selected" for amodule in ${AVAILABLEMODS} do echo ${amodule} done exit 1 fi if [ -z "$SITEINFOFILELOCATION" ] ; then echo site-info file not set. help exit 1 fi if [ ! -f "$SITEINFOFILELOCATION" ] ; then echo site-info.def file not found. exit 1 fi . $SITEINFOFILELOCATION # Now run the modules for module in ${VERIFIEDMODS} do ${module}_run done 07070100079821000081ed000000650000000a000000014acc660b00000aa0000000b600010008ffffffffffffffff0000002000000000reloc/opt/d-cache/bin/meta2yaml#!/bin/sh usage() # $1 = exit status { echo "Dumps pool meta data catalogue to YAML format." echo echo "Usage: $(basename $0) [OPTION]... DIR" echo echo "Valid options are:" echo " -d= default is /opt/d-cache" echo echo "DIR is the pool meta data directory." exit $1 } # Generic option parser. Both single and multi character options are # supported. Single character options start with a single dash and # multi character options with a double dash. Single character options # can be combined, e.g. rather than -a -b -c one can use -abc. # # The first argument is a list of valid options. Remaining arguments # are the options to be parsed. When finding an option not in the list # of valid options, the usage() is called. # # Parsing stops when no arguments are left or a non-option argument # is found. # # Options can have an optional value. # # For each option found the variable opt_X, where X is the # option, is defined. If a value is provided for the option, then # opt_X is set to that value, otherwise to 1. # # The return value is the number of words consumed. # parseOptions() # $1 = list of valid options { local valid=$1 local count=0 local name local value shift while [ $# -gt 0 ]; do local option=$1 case $option in --*=*) option=${option#--} name=${option%=*} value=${option#*=} ;; -?=*) name=${option:1:1} value=${option#*=} ;; --?*) name=${option:2} value=1 ;; -?*) option=${option#-} while [ -n "$option" ]; do name=${option:0:1} if ! contains $name "$valid"; then usage 1 fi option=${option:1} eval "opt_${name}=1" done let count=count+1 shift continue ;; *) break ;; esac if ! contains $name "$valid"; then usage 1 fi eval "opt_${name}=${value}" shift let count=count+1 done return $count } # Parse global options parseOptions "d" $* shift $? ourHomeDir=${opt_d:-/opt/d-cache} # Directory argument must be left if [ $# -ne 1 ]; then usage 1 fi # Read dCacheSetup if [ -r ${ourHomeDir}/config/dCacheSetup ] ; then . ${ourHomeDir}/config/dCacheSetup else print "${ourHomeDir}/config/dCacheSetup does not exist. You have to install and setup dCache before you can use this script." 1>&2 exit 1 fi # Generate class path if [ -r ${ourHomeDir}/classes/extern.classpath ]; then . ${ourHomeDir}/classes/extern.classpath fi CLASSPATH=${ourHomeDir}/classes/cells.jar:${ourHomeDir}/classes/dcache.jar:${externalLibsClassPath} ${java} -cp ${CLASSPATH} org.dcache.pool.repository.meta.db.BerkeleyDBMetaDataRepository $10707010007981f000081ed000000650000000a000000014acc660b00004146000000b600010008ffffffffffffffff0000001d00000000reloc/opt/d-cache/bin/dcache#!/bin/sh # # chkconfig: 2345 92 8 # description: dCache init script # Solaris doesn't have a POSIX compliant shell as /bin/sh. We # try to find one and execute it. if [ "$1" = "%" ]; then shift elif [ "`uname`" = "SunOS" ]; then if [ -x /usr/xpg4/bin/sh ]; then exec /usr/xpg4/bin/sh $0 % $* elif [ -x /bin/bash ]; then exec /bin/bash $0 % $* else echo "Cannot find POSIX compliant shell. This script will" echo "probably break, but we attempt to execute it anyway." fi fi # Prints help screen and exits with error status 2 usage() { echo "Usage: $(basename $0) [OPTION]... COMMAND" echo echo "Valid options are:" echo " -d= default is /opt/d-cache" echo echo "Valid commands are:" echo " condrestart [ ...]" echo " dump heap [--force] " echo " dump threads [ ...]" echo " pool create " echo " pool add [--fqdn] [--domain=] [--lfs=] " echo " pool ls" echo " pool reconstruct " echo " pool remove " echo " restart [ ...]" echo " services" echo " start [ ...]" echo " status" echo " stop [ ...]" echo " version" echo echo "Size is specified in bytes, or optionally followed by K, M, G or T" echo "for powers of 1024. Size is rounded down to the nearest integer " echo "number of GiB." exit 2 } 1>&2 checkReadlinkf() { if [ ! "$hasReadlinkf" ] ; then readlink -f . > /dev/null 2>&1 hasReadlinkf=$? fi return $hasReadlinkf } # Get the canonical path of $1. Only returns a truely canonical path # if readlink is available. Otherwise an absolute path which does not # end in a symlink is returned. getCanonicalPath() # $1 = path { local link link="$1" if checkReadlinkf ; then RET="$(readlink -f $link)" else RET="$(cd $(dirname $link); pwd)/$(basename $link)" while [ -h "$RET" ]; do link="$(ls -ld $RET | sed 's/.*-> //')" if [ -z "${link##/*}" ]; then RET="${link}" else link="$(dirname $RET)/${link}" RET="$(cd $(dirname $link); pwd)/$(basename $link)" fi done fi } # Returns true if $1 is contained as a word in $2. contains() # $1 = word, $2+ = list { local word word=$1 shift for i in "$@"; do if [ "$word" = "$i" ]; then return 0 fi done return 1 } # Generic option parser. Both single and multi character options are # supported. Single character options start with a single dash and # multi character options with a double dash. Single character options # can be combined, e.g. rather than -a -b -c one can use -abc. # # The first argument is a list of valid options. Remaining arguments # are the options to be parsed. When finding an option not in the list # of valid options, the usage() is called. # # Parsing stops when no arguments are left or a non-option argument # is found. # # Options can have an optional value. # # For each option found the variable opt_X, where X is the # option, is defined. If a value is provided for the option, then # opt_X is set to that value, otherwise to 1. # # The return value is the number of words of $1 that were processed. # parseOptions() # $1 = list of valid options { local valid local count local name local value local rest local option valid=$1 count=0 shift while [ $# -gt 0 ]; do option=$1 case $option in --*=*) option=${option#--} # Strip leading double dash name=${option%%=*} value=${option#*=} ;; -?=*) option=${option#-} # Strip leading dash name=${option%%=*} value=${option#*=} ;; --?*) name=${option#--} # Strip leading double dash value=1 ;; -?*) option=${option#-} # Strip leading dash while [ -n "$option" ]; do rest=${option#?} # Strip leading character name=${option%${rest}} # Strip the rest to get name if ! contains $name $valid; then usage fi option=${rest} eval "opt_${name}=1" done count=$((${count}+1)) shift continue ;; *) break ;; esac if ! contains $name $valid; then usage fi eval "opt_${name}=${value}" shift count=$((${count}+1)) done return $count } # Sets the jmap variable such that it contains the command to invoke # the jmap utility. Exits if jmap could not be found. requireJmap() { if [ -n "$jmap" ]; then if [ ! -x "$jmap" ]; then return 0 fi else jmap="$(dirname ${java})/jmap" if [ -x "$jmap" ]; then return 0 fi if [ -n "$JAVA_HOME" ]; then jmap="$JAVA_HOME/bin/jmap" if [ -x "$jmap" ]; then return 0 fi fi fi fail 1 "Could not find the jmap command, part of the Java 6 JDK. This command is required for producing a heap dump. Please ensure that either jmap is in the path or update dCacheSetup to point to its location." } # Dumps the heap. Terminates the script in case of failure. dumpHeap() # $1=force, $2=live, $3=file, $4=pid, $5=error { if ! jmap ${1:+-F} -dump:${2:+live,}format=b,file=$3 $4; then fail 1 "$5" fi if [ ! -f "$3" ]; then fail 1 "$5" fi } # display dCache package version showVersion() { ${java} -jar ${classesDir}/dcache.jar } # Parse global options parseOptions "d" $* shift $? if [ $# -eq 0 ]; then usage fi # Set home path if [ -n "$opt_d" ]; then DCACHE_HOME="$opt_d" elif [ -z "$DCACHE_HOME" ]; then getCanonicalPath "$0" DCACHE_HOME=${RET%/bin/dcache} fi if [ ! -d "$DCACHE_HOME" ]; then echo "$DCACHE_HOME is not a directory" exit 2 fi # Load libraries . ${DCACHE_HOME}/share/lib/paths.sh . ${DCACHE_LIB}/utils.sh . ${DCACHE_LIB}/config.sh . ${DCACHE_LIB}/services.sh . ${DCACHE_LIB}/namespace.sh . ${DCACHE_LIB}/pool.sh # Check prerequisites require awk df egrep grep sed cat hostname wc dirname basename mount mv # Read configuration files readconf ${DCACHE_HOME}/etc/node_config NODE_CONFIG_ || readconf ${DCACHE_HOME}/etc/door_config NODE_CONFIG_ loadServiceConfigurationFile dCache loadServiceConfigurationFile pool # We sometimes need to start java; import the path from dCacheSetup java="${dCache_java}" classesDir="${dCache_classesDir}" # Sanitycheck for java if [ -z "${java}" ] || [ ! -x "${java}" ] || ! ${java} -version 2>&1 | egrep -e 'version "1\.[6]' >/dev/null ; then fail 1 "The variable 'java' in ${ourHomeDir}/config/dCacheSetup has to be set to a Java VM version 6." fi determineHostName case "$1" in start) shift domains=$(printExpandedServiceAndDomainList $*) if isNameSpaceMountNeeded $domains; then autoMountNameSpace fi for domain in $domains; do runDomain $domain start done touch $DCACHE_LOCK 2> /dev/null || : ;; stop) shift domains=$(printExpandedServiceAndDomainList $*) reverse $domains; domains_backward="$RET" for domain in $domains_backward; do if getPidOfDomain $domain; then runDomain $domain stop fi done rm -f $DCACHE_LOCK ;; restart) shift domains=$(printExpandedServiceAndDomainList $*) reverse $domains; domains_backward="$RET" for domain in $domains_backward; do if getPidOfDomain $domain; then runDomain $domain stop fi done if isNameSpaceMountNeeded $domains; then autoMountNameSpace fi for domain in $domains; do runDomain $domain start done ;; condrestart) shift domains=$(printExpandedServiceAndDomainList $*) reverse $domains; domains_backward="$RET" for domain in $domains_backward; do if getPidOfDomain $domain; then running_domains="$running_domains $domain" runDomain $domain stop fi done reverse $running_domains; domains_to_start="$RET" for domain in $domains_to_start; do runDomain $domain start done ;; status) domains=$(printAllDomains) maxWidth $domains; width="$RET" format="%-${width}s %-10s %-10s%5s\n" printf "$format" "Domain" "Service" "Status" "Pid" for domain in $domains; do if getPidOfDomain $domain; then pid="$RET" status="running" else pid="" status="stopped" fi if getService $domain; then service="$RET" else service="" fi printf "$format" "$domain" "$service" "$status" "$pid" done ;; services) domains=$(printAllDomains) maxWidth $domains; width="$RET" format="%-${width}s %-10s %s\n" printf "$format" "Domain" "Service" "Log" for domain in $domains; do if getService $domain; then service="$RET" else service="" fi if getLogOfDomain ${domain} && [ -f "$RET" ]; then log="$RET" else log="" fi printf "$format" "$domain" "$service" "$log" done ;; version) showVersion ;; pool) shift if [ $# -eq 0 ]; then usage fi command=$1 shift case "$command" in ls) [ $# -gt 0 ] && usage domains=$(printAllPoolDomains) pools=$(printAllPools $domains) maxWidth $pools; width_1="$RET" maxWidth $domains; width_2="$RET" format="%-${width_1}s %-${width_2}s %-9s %7s%7s %s\n" printf "$format" "Pool" "Domain" "LFS" "Size" "Free" "Path" for domain in $domains; do printPoolsInDomain $domain | while read pool path param; do lfs=$(echo $param | sed -n -e 's/.*lfs=\([^ ]*\).*/\1/p') if [ -f "${path}/setup" ]; then getSizeOfPool $path; size="$RET" getFreeSpace $path; free="$RET" printf "$format" "$pool" "$domain" "$lfs" "$size" "$free" "$path" else printf "$format" "$pool" "$domain" "$lfs" "-" "-" "$path (missing)" fi done done echo printp "Disk space is measured in GiB. Free space is reported for the partition containing the pool, not for the pool itself." ;; create) [ $# -ne 2 ] && usage size=$1 path=$2 createPool ${size} ${path} ;; add) parseOptions "domain fqdn lfs" $* shift $? [ $# -ne 2 ] && usage pool=$1 path=$2 addPool ${pool} ${path} ${opt_domain:-"${hostname}Domain"} ${opt_fqdn:-0} ${opt_lfs:-precious} ;; remove) [ $# -ne 1 ] && usage pool=$1 removePool ${pool} ;; reconstruct) [ $# -ne 2 ] && usage pool="$1" dst="$2" # First find the domain containing the pool domains=$(printAllPoolDomains) if ! getDomainOfPool "$pool" $domains; then fail 2 "Cannot find a pool named $pool." fi domain="$RET" # Make sure the pool is not running right now if getPidOfDomain "$domain"; then fail 1 "$domain contains $pool, however the domain is still running. Please stop the domain before attempting to reconstruct the meta data. The domain can be stopped using the command '$0 stop $domain'." fi # Find the path to the pool getPoolPath "$pool" "$domain" || fail 1 "Failed to locate pool" path="$RET" # Check that we have a meta directory if [ ! -d "$path/meta" ]; then fail 2 "$pool appears to be stored in $path, however the pool appears not to have a Berkeley DB holding the meta data, as there is no $path/meta directory." fi # Make sure the destination does not exist if [ -e "$dst" ]; then fail 2 "$dst already exists. The target directory must" "not exist prior to recovering a pool." fi # Reconstruct the DB mkdir -p "$dst" || fail 1 "Failed to create $dst" reconstructMeta "${path}/meta" "${dst}" || fail 1 "Operation aborted" printp "The pool meta data database of $pool was reconstructed and stored in $dst. You have to manually replace $path/meta with the content of $dst." ;; *) usage ;; esac ;; dump) shift if [ $# -eq 0 ]; then usage fi command=$1 shift case "$command" in heap) parseOptions "force" $* shift $? [ $# -ne 2 ] && usage domain=$1 file=$2 requireJmap if [ -f ${file} ]; then fail 1 "${file} already exists. Heap not dumped." fi if ! getPidOfDomain ${domain}; then fail 1 "Domain ${domain} is not running." fi pid="$RET" if [ -z "$opt_force" ]; then dumpHeap "" "live" "$file" "$pid" \ "Failed to dump the heap; please consult the previous error message for possible reasons. The dump might succeed when using the --force option." else dumpHeap "force" "" "$file" "$pid" \ "Failed to dump the heap; please consult the previous error message for possible reasons." fi printp "The heap of domain ${domain} has been written to ${file}. Notice that the file might contain confidential information." ;; threads) domains=$(printExpandedServiceAndDomainList $*) for domain in $domains; do if getPidOfDomain ${domain}; then if ! kill -s QUIT ${RET}; then fail 1 "Failed to dump stack traces. Likely the current user does not have the proper permissions." fi fi done printp "Stack traces have been written to the log files." ;; *) usage ;; esac ;; *) usage ;; esac 07070100079933000041ed000000650000000a000000044acc660b00000000000000b600010008ffffffffffffffff0000001a00000000reloc/opt/d-cache/libexec0707010007994e000081a4000000650000000a000000014acc660b00000b9c000000b600010008ffffffffffffffff0000002c00000000reloc/opt/d-cache/libexec/wait-for-cells.sh#!/bin/sh # # Wait for dCache to have certain cells present. The function will time-out if # dCache takes too long. # ourHomeDir=${ourHomeDir:-/opt/d-cache} # Default polling frequency, in seconds. poll=5 # Our return code; default is 0 (=> OK) rc=0 xslt_dir=$ourHomeDir/share/xml/xslt usage() { echo "Usage:" echo " `basename $0` [-p ] [-d | --dots] [-l | --list-missing]" echo " [-H ] [-P ] [ ...]" echo echo "Checks every seconds (${poll}s by default) whether the listed cells are up." echo "Obtains dCache current status by querying the web interface. This is assumed to be" echo "running on the local machine, but the -H option can be set for remote queries. If" echo "the dCache web interface is using a non-default port, the -P option is needed." echo echo "All s are specified as @ or " echo echo "The -d and -l options alter what output the script provides on stdout. If neither is" echo "specified then no output is emitted." echo echo "Returns:" echo " 0 if all cells are up," echo " 1 if at least one cell was not after waiting for seconds," echo " 5 if parameters to this script are wrong." } # Minimum timeout, in seconds min_timeout=$poll # Default values of host and port host=localhost port=2288 while [ $# -gt 1 ]; do case $1 in -p) shift poll=$1 shift ;; -P) shift port=$1 shift ;; -h | --help) usage exit 5 ;; -d | --dots) dots=1 shift ;; -l | --list-missing) list_missing=1 shift ;; -H) shift host=$1 shift ;; -*) echo "Unknown option $1" echo usage exit 5 ;; *) # Assume the remaining arguments are the required args. break; ;; esac done if [ $# -lt 2 ] then usage exit 5 fi timeout=$1 shift cells="$@" if [ "$timeout" -lt $min_timeout ]; then echo Timeout $timeout is less that minimum $min_timeout exit 5 fi # # See which cells are currently missing # list_missing_cells() { xsltproc --stringparam cells "$cells" $xslt_dir/wait-for-cells.xsl "http://$host:$port/info/domains" } # # Loop, waiting for either timeout or cells to come up. # timeout=$(date -d "$timeout seconds" +%s) while :; do now=$(date +%s) if [ $now -gt $timeout ]; then # One or more cells were not up by timeout, exit with rc=1 rc=1 break; fi list_missing_cells | grep -q "Missing:" if [ $? -eq 1 ]; then # All cells are present, exit with rc=0 break; fi if [ "x$dots" = "x1" ]; then echo -n "." fi sleep $poll done # # Tidy up and exit. # if [ "x$dots" = "x1" ]; then echo fi if [ $rc -ne 0 -a "$list_missing" = "1" ]; then list_missing_cells fi exit $rc 0707010007994d000081a4000000650000000a000000014acc660b00000219000000b600010008ffffffffffffffff0000002d00000000reloc/opt/d-cache/libexec/nsp-performance.sh#!/bin/sh # # A simple shell wrapper around the NameSpaceProvider performance # testing tool. # Default location for dCache. DCACHE_HOME=${DCACHE_HOME:-/opt/d-cache} # Ask dCache for the externalLibsClassPath. ourHomeDir=${DCACHE_HOME} . $DCACHE_HOME/classes/extern.classpath LOG4J_FILE=${DCACHE_HOME}/config/log4j.properties DCACHE_JAR=$DCACHE_HOME/classes/dcache.jar CLASS=diskCacheV111.namespace.PerformanceTest OPTIONS=-Dlog4j.configuration=file:$LOG4J_FILE java -cp $DCACHE_JAR:$externalLibsClassPath $OPTIONS $CLASS "$@" 07070100079934000081a4000000650000000a000000014acc660b00000000000000b600010008ffffffffffffffff0000002100000000reloc/opt/d-cache/libexec/README0707010007994a000041ed000000650000000a000000024acc660b00000000000000b600010008ffffffffffffffff0000002700000000reloc/opt/d-cache/libexec/infoProvider0707010007994b000081a4000000650000000a000000014acc660b00000dfc000000b600010008ffffffffffffffff0000004200000000reloc/opt/d-cache/libexec/infoProvider/info-based-infoProvider.sh#!/bin/bash # # Script to invoke XSLT program that transforms the output from dCache's # info service into LDIF. This conversion process is achieved using # Xylophone and is controlled by a configuration file. This file # is, by default, located at: # # /opt/d-cache/etc/glue-1.3.xml # # The general documentation for the format of this is in # /opt/d-cache/share/doc/xylophone/Guide.txt # Utility function for printing to stderr with a line width # maximum of 75 characters. Longer lines are broken into several # lines. Each argument is interpreted as a separate paragraph. printp() # $* = list of paragraphs { local line local line2 while [ $# -gt 0 ]; do # If line is non empty, then we need to print a # paragraph separator. if [ -n "$line" ]; then echo fi line= for word in $1; do line2="$line $word" if [ ${#line2} -gt 75 ]; then echo $line >&2 line=$word else line=$line2 fi done echo $line shift done } # Read in the dCacheSetup file readSetup() { if [ -r $dCacheSetupFile ]; then . $dCacheSetupFile else printp "[WARNING] The dCacheSetup file (expected in $dCacheSetupDir) could not be read." fi } # Apply any sanity checks before launching the XSLT processor sanityCheck() { if [ ! -r "$xylophoneXMLFile" ]; then printp "[ERROR] Unable to read $xylophoneXMLFile. Try creating this file or editing the variable 'xylophoneConfigurationDir' (currently \"$xylophoneConfigurationDir\") or 'xylophoneConfigurationFile' (currently \"$xylophoneConfigurationFile\") in $dCacheSetupFile" exit 1 fi if [ ! -r "$xylophoneXSLTFile" ]; then printp "[ERROR] Unable to read ${xylophoneXSLTFile}. If the file exists, try editing the variable 'xylophoneXSLTDir' (currently \"$xylophoneXSLTDir\") in $dCacheSetupFile" exit 1 fi } # Default value for ourHomeDir if [ -z "$ourHomeDir" ]; then ourHomeDir=/opt/d-cache fi # Default values: don't edit these values; instead, change them in dCacheSetup dCacheSetupDir=$ourHomeDir/config dCacheSetupFile=$dCacheSetupDir/dCacheSetup xsltProcessor=saxon xylophoneConfigurationFile=glue-1.3.xml xylophoneConfigurationDir=$ourHomeDir/etc httpHost=localhost httpPort=2288 xylophoneXSLTDir=$ourHomeDir/share/xml/xylophone saxonDir=$ourHomeDir/classes/saxon # Import the dCacheSetup configuration. readSetup # Apply any environment overrides if [ -n "$XSLT_PROCESSOR" ]; then xsltProcessor=$XSLT_PROCESSOR fi if [ -n "$XYLOPHONE_CONFIG_DIR" ]; then xylophoneConfigurationDir=$XYLOPHONE_CONFIG_DIR fi if [ -n "$HTTP_HOST" ]; then httpHost=$HTTP_HOST fi if [ -n "$HTTP_PORT" ]; then httpPort=$HTTP_PORT fi # Build derived variables after allowing changes from default values xylophoneXSLTFile=$xylophoneXSLTDir/xsl/xylophone.xsl xylophoneXMLFile=$xylophoneConfigurationDir/$xylophoneConfigurationFile dCacheInfoUri=http://${httpHost}:${httpPort}/info sanityCheck # Generate LDIF case $xsltProcessor in xsltproc) xsltproc -stringparam xml-src-uri "$dCacheInfoUri" "$xylophoneXSLTFile" "$xylophoneXMLFile" ;; saxon) ${java} -classpath ${saxonDir}/saxon.jar com.icl.saxon.StyleSheet "$xylophoneXMLFile" "$xylophoneXSLTFile" xml-src-uri="$dCacheInfoUri" ;; *) printp "[ERROR] Unknown type of XSLT processor (\"$xsltProcessor\")" printp "Please use either \"xsltproc\" or \"saxon\"" >&2 exit 1 ;; esac07070100079935000041ed000000650000000a000000034acc660b00000000000000b600010008ffffffffffffffff0000002200000000reloc/opt/d-cache/libexec/chimera07070100079939000081a4000000650000000a000000014acc660500000a7d000000b600010008ffffffffffffffff0000003600000000reloc/opt/d-cache/libexec/chimera/chimera-nfs-run.xml 07070100079937000081ed000000650000000a000000014acc66050000012e000000b600010008ffffffffffffffff0000003500000000reloc/opt/d-cache/libexec/chimera/chimera-get-acl.sh#!/bin/sh ourHomeDir=/opt/d-cache ourHomeDir=/opt/d-cache . ${ourHomeDir}/classes/extern.classpath . ${ourHomeDir}/config/dCacheSetup ${java} ${java_options} -classpath ${externalLibsClassPath} \ -Xmx512M org.dcache.chimera.acl.client.GetAclClient ${ourHomeDir}/config/acl.properties 07070100079938000081ed000000650000000a000000014acc660500000d0f000000b600010008ffffffffffffffff0000003500000000reloc/opt/d-cache/libexec/chimera/chimera-nfs-run.sh#!/bin/sh # chkconfig: 345 25 75 # description: chimera nfs3 startup script PORTMAP_PORT=111 if [ "x" = "x${ourHomeDir}" ] then ourHomeDir=/opt/d-cache fi . ${ourHomeDir}/classes/extern.classpath . ${ourHomeDir}/config/dCacheSetup if [ "x" = "x${logArea}" ] then logArea=/var/log fi if [ "x" = "x${log}" ] then log=${logArea}/chimera-nfsv3.log fi if [ "x" = "x${pidDir}" ] then pidDir=/var/run fi if [ "x" = "x${pfile}" ] then pfile=${pidDir}/chimera-nfsv3.pid fi # A handy wrapper to allow us to delay continuing until some event has # happened. A function is called to check whether the event has happened yet. # If that method returns 0, we assume the event has happened, other # return-codes will result in the code looping until a timeout has occurred. # Should the function time-out whilst waiting for an event, an error message # is emitted. # # Parameters: # $1 the function called when checking if the event has happened, # $2 the message to display if waiting is required, # $3 the error message to display if timeout # # Returns 0 on success, 1 on timeout. # waitForEvent() { for try in 0 1 2 3 4 5 6 7 8 9 10 too-much; do $1 if [ $? -eq 0 ]; then [ "x$try" != "x0" ] && echo break fi if [ "x$try" = "x0" ]; then echo -n "$2: " else echo -n "." fi if [ "x$try" = "xtoo-much" ]; then echo echo "$3" return 1 else sleep 1 fi done return 0 } portmapPortPresent() { netstat -na | grep [^0-9]$PORTMAP_PORT >/dev/null } portmapAnswersQueries() { rpcinfo -p >/dev/null 2>&1 } nfsV3ServiceRegistered() { rpcinfo -t localhost 100003 3 >/dev/null 2>&1 } dCacheChimeraStart() { if [ -f ${pfile} ] then pid=`cat ${pfile}` kill -s 0 ${pid} > /dev/null 2>&1 if [ $? -eq 0 ] then echo "Old NFS process still running" exit 1 fi fi echo "Starting Chimera-NFSv3 interface" ${java} ${java_options} \ -classpath ${ourHomeDir}/classes/cells.jar:${externalLibsClassPath} \ org.dcache.chimera.nfs.v3.Main \ ${ourHomeDir}/config/chimera-config.xml >> ${log} 2>&1 & echo $! > ${pfile} waitForEvent portmapPortPresent "Waiting for portmap port" \ "Chimera portmap port is taking too long to appear; carrying on" waitForEvent portmapAnswersQueries "Waiting for portmap service" \ "Chimera portmap is taking too long to appear; carrying on" waitForEvent nfsV3ServiceRegistered "Waiting for NFS server to register itself" \ "Chimera is taking too long; giving up." } dCacheChimeraStop() { if [ -f ${pfile} ] then pid=`cat ${pfile}` kill -s 0 ${pid} > /dev/null 2>&1 if [ $? -eq 0 ] then echo "Shutting down Chimera-NFSv3 interface" kill `cat ${pfile}` rm -f ${pfile} else echo "NFS process not running" fi else echo "Pid file missing. NFS process not running?" fi } case $1 in start) dCacheChimeraStart ;; stop) dCacheChimeraStop ;; restart) dCacheChimeraStop dCacheChimeraStart ;; *) echo "Usage: `basename $0` [start | stop | restart]" exit 1; esac exit 0 07070100079936000081ed000000650000000a000000014acc6605000001b5000000b600010008ffffffffffffffff0000003100000000reloc/opt/d-cache/libexec/chimera/chimera-cli.sh#!/bin/sh if [ $# -lt 2 ] then echo "Usage [options]" exit 1 fi command=$1 shift if [ -z ${ourHomeDir} ] then ourHomeDir=/opt/d-cache fi . ${ourHomeDir}/classes/extern.classpath . ${ourHomeDir}/config/dCacheSetup ${java} ${java_options} -classpath ${ourHomeDir}/classes/cells.jar:${externalLibsClassPath} \ org.dcache.chimera.examples.cli.${command} ${ourHomeDir}/config/chimera-config.xml $* 0707010007993b000041ed000000650000000a000000024acc660b00000000000000b600010008ffffffffffffffff0000002600000000reloc/opt/d-cache/libexec/chimera/sql07070100079948000081a4000000650000000a000000014acc6605000000fb000000b600010008ffffffffffffffff0000003200000000reloc/opt/d-cache/libexec/chimera/sql/top_dir.sql-- $Id: top_dir.sql 297 2007-10-30 21:13:05Z tigran $ -- top dir SELECT iparent, COUNT(iparent) AS pcount FROM t_dirs GROUP BY iparent ORDER BY pcount; -- file of user uid 3750 SELECT * FROM t_inodes WHERE iuid=3750 AND NOT (imode & 16384 = 16384 ); 07070100079941000081a4000000650000000a000000014acc66050000237c000000b600010008ffffffffffffffff0000003500000000reloc/opt/d-cache/libexec/chimera/sql/create-db2.sql-- -- Chinera table layout -- for DB2 (9.1) -- -- $Id: create-db2.sql 296 2007-10-30 21:09:30Z tigran $ -- -- Inodes -- CREATE TABLE t_inodes ( ipnfsid CHAR(36) PRIMARY KEY NOT NULL, itype INTEGER NOT NULL, imode INTEGER NOT NULL, inlink INTEGER NOT NULL, iuid INTEGER NOT NULL, igid INTEGER NOT NULL, isize BIGINT NOT NULL, iio INTEGER NOT NULL, ictime TIMESTAMP NOT NULL, iatime TIMESTAMP NOT NULL, imtime TIMESTAMP NOT NULL ); -- -- dirs -- CREATE TABLE t_dirs ( iparent CHAR(36) NOT NULL, iname VARCHAR(255) NOT NULL, ipnfsid CHAR(36) NOT NULL, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ), PRIMARY KEY (iparent,iname) ); -- -- data -- CREATE TABLE t_inodes_data ( ipnfsid CHAR(36) PRIMARY KEY NOT NULL, ifiledata BLOB, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ON DELETE CASCADE ); -- -- pnfs levels 1-7 -- CREATE TABLE t_level_1 ( ipnfsid CHAR(36) PRIMARY KEY NOT NULL, imode INTEGER NOT NULL, inlink INTEGER NOT NULL, iuid INTEGER NOT NULL, igid INTEGER NOT NULL, isize BIGINT NOT NULL, ictime TIMESTAMP NOT NULL, iatime TIMESTAMP NOT NULL, imtime TIMESTAMP NOT NULL, ifiledata BLOB, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); CREATE TABLE t_level_2 ( ipnfsid CHAR(36) PRIMARY KEY NOT NULL, imode INTEGER NOT NULL, inlink INTEGER NOT NULL, iuid INTEGER NOT NULL, igid INTEGER NOT NULL, isize BIGINT NOT NULL, ictime TIMESTAMP NOT NULL, iatime TIMESTAMP NOT NULL, imtime TIMESTAMP NOT NULL, ifiledata BLOB, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); CREATE TABLE t_level_3 ( ipnfsid CHAR(36) PRIMARY KEY NOT NULL, imode INTEGER NOT NULL, inlink INTEGER NOT NULL, iuid INTEGER NOT NULL, igid INTEGER NOT NULL, isize BIGINT NOT NULL, ictime TIMESTAMP NOT NULL, iatime TIMESTAMP NOT NULL, imtime TIMESTAMP NOT NULL, ifiledata BLOB, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); CREATE TABLE t_level_4 ( ipnfsid CHAR(36) PRIMARY KEY NOT NULL, imode INTEGER NOT NULL, inlink INTEGER NOT NULL, iuid INTEGER NOT NULL, igid INTEGER NOT NULL, isize BIGINT NOT NULL, ictime TIMESTAMP NOT NULL, iatime TIMESTAMP NOT NULL, imtime TIMESTAMP NOT NULL, ifiledata BLOB, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); CREATE TABLE t_level_5 ( ipnfsid CHAR(36) PRIMARY KEY NOT NULL, imode INTEGER NOT NULL, inlink INTEGER NOT NULL, iuid INTEGER NOT NULL, igid INTEGER NOT NULL, isize BIGINT NOT NULL, ictime TIMESTAMP NOT NULL, iatime TIMESTAMP NOT NULL, imtime TIMESTAMP NOT NULL, ifiledata BLOB, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); CREATE TABLE t_level_6 ( ipnfsid CHAR(36) PRIMARY KEY NOT NULL, imode INTEGER NOT NULL, inlink INTEGER NOT NULL, iuid INTEGER NOT NULL, igid INTEGER NOT NULL, isize BIGINT NOT NULL, ictime TIMESTAMP NOT NULL, iatime TIMESTAMP NOT NULL, imtime TIMESTAMP NOT NULL, ifiledata BLOB, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); CREATE TABLE t_level_7 ( ipnfsid CHAR(36) PRIMARY KEY NOT NULL, imode INTEGER NOT NULL, inlink INTEGER NOT NULL, iuid INTEGER NOT NULL, igid INTEGER NOT NULL, isize BIGINT NOT NULL, ictime TIMESTAMP NOT NULL, iatime TIMESTAMP NOT NULL, imtime TIMESTAMP NOT NULL, ifiledata BLOB, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); -- -- Name: t_tags_inodes; Type: TABLE; Schema: public; Owner: postgres; Tablespace: -- CREATE TABLE t_tags_inodes ( itagid CHAR(36) PRIMARY KEY NOT NULL, imode INTEGER NOT NULL, inlink INTEGER NOT NULL, iuid INTEGER NOT NULL, igid INTEGER NOT NULL, isize BIGINT NOT NULL, ictime TIMESTAMP NOT NULL, iatime TIMESTAMP NOT NULL, imtime TIMESTAMP NOT NULL, ivalue BLOB ); -- -- Name: t_tags; Type: TABLE; Schema: public; Owner: postgres; Tablespace: -- CREATE TABLE t_tags ( ipnfsid CHAR(36) NOT NULL, itagname VARCHAR(255) NOT NULL, itagid CHAR(36) NOT NULL, isorign INTEGER NOT NULL, PRIMARY KEY (ipnfsid, itagname), FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ), FOREIGN KEY (itagid) REFERENCES t_tags_inodes( itagid ) ); -- -- populate Inodes -- INSERT INTO t_inodes VALUES ('F674EC8B0CFF104AA109828000696CAD6CAC', 16384, 493, 2, 0, 0, 512, 0, current_TIMESTAMP, current_TIMESTAMP, current_TIMESTAMP ); INSERT INTO t_inodes VALUES ('000000000000000000000000000000000000', 16384, 493, 6, 0, 0, 512, 0, current_TIMESTAMP, current_TIMESTAMP, current_TIMESTAMP ); INSERT INTO t_inodes VALUES ('A0D739870178504FF109C52075F44287F9DE', 16384, 493, 4, 0, 0, 512, 0, current_TIMESTAMP, current_TIMESTAMP, current_TIMESTAMP ); INSERT INTO t_inodes VALUES ('1B3BB44C05C9904DFB0928F06F2467395CD5', 16384, 493, 6, 0, 0, 512, 1, current_TIMESTAMP, current_TIMESTAMP, current_TIMESTAMP ); INSERT INTO t_inodes VALUES ('E3BB936F04F6D047A70B75201EDBA32FA9F5', 16384, 493, 2, 0, 0, 512, 1, current_TIMESTAMP, current_TIMESTAMP, current_TIMESTAMP ); INSERT INTO t_inodes VALUES ('80D1B8B90CED30430608C58002811B3285FC', 16384, 493, 2, 0, 0, 512, 1, current_TIMESTAMP, current_TIMESTAMP, current_TIMESTAMP ); -- -- directory -- INSERT INTO t_dirs VALUES ('000000000000000000000000000000000000', '.', '000000000000000000000000000000000000'); INSERT INTO t_dirs VALUES ('000000000000000000000000000000000000', '..', '000000000000000000000000000000000000'); INSERT INTO t_dirs VALUES ('000000000000000000000000000000000000', 'admin','A0D739870178504FF109C52075F44287F9DE'); INSERT INTO t_dirs VALUES ('A0D739870178504FF109C52075F44287F9DE', '.', 'A0D739870178504FF109C52075F44287F9DE'); INSERT INTO t_dirs VALUES ('A0D739870178504FF109C52075F44287F9DE', '..', '000000000000000000000000000000000000'); INSERT INTO t_dirs VALUES ('000000000000000000000000000000000000', 'usr', 'F674EC8B0CFF104AA109828000696CAD6CAC'); INSERT INTO t_dirs VALUES ('F674EC8B0CFF104AA109828000696CAD6CAC', '.', 'F674EC8B0CFF104AA109828000696CAD6CAC'); INSERT INTO t_dirs VALUES ('F674EC8B0CFF104AA109828000696CAD6CAC', '..', '000000000000000000000000000000000000'); INSERT INTO t_dirs VALUES ('A0D739870178504FF109C52075F44287F9DE', 'etc', '1B3BB44C05C9904DFB0928F06F2467395CD5'); INSERT INTO t_dirs VALUES ('1B3BB44C05C9904DFB0928F06F2467395CD5', '.', '1B3BB44C05C9904DFB0928F06F2467395CD5'); INSERT INTO t_dirs VALUES ('1B3BB44C05C9904DFB0928F06F2467395CD5', '..', 'A0D739870178504FF109C52075F44287F9DE'); INSERT INTO t_dirs VALUES ('1B3BB44C05C9904DFB0928F06F2467395CD5', 'config','80D1B8B90CED30430608C58002811B3285FC'); INSERT INTO t_dirs VALUES ('80D1B8B90CED30430608C58002811B3285FC', '.', '80D1B8B90CED30430608C58002811B3285FC'); INSERT INTO t_dirs VALUES ('80D1B8B90CED30430608C58002811B3285FC', '..', '1B3BB44C05C9904DFB0928F06F2467395CD5'); INSERT INTO t_dirs VALUES ('1B3BB44C05C9904DFB0928F06F2467395CD5', 'exports','E3BB936F04F6D047A70B75201EDBA32FA9F5'); INSERT INTO t_dirs VALUES ('E3BB936F04F6D047A70B75201EDBA32FA9F5', '.', 'E3BB936F04F6D047A70B75201EDBA32FA9F5'); INSERT INTO t_dirs VALUES ('E3BB936F04F6D047A70B75201EDBA32FA9F5', '..', '1B3BB44C05C9904DFB0928F06F2467395CD5'); -- -- For faster lookups -- CREATE INDEX i_dirs_iparent ON t_dirs(iparent); -- -- For faster getparent -- CREATE INDEX i_dirs_ipnfsid ON t_dirs(ipnfsid); -- STORAGE INFO -- -- Generic storage information. Represents X:Y@Z + AL +RP -- ipnfsid : pnfsid of the inode -- ihsmName : Z-component of storageGroup -- istorageGroup : X-component of storageGroup -- istorageSubGroup : Y-component of storageGroup -- iaccessLatency : ONLINE / NEARLINE ( keep on disk / keep on disk, if there is a space) -- iretentionPolicy : CUSTODIAL / OUTPUT ( tape / disk ) CREATE TABLE t_storageinfo ( ipnfsid CHAR(36) PRIMARY KEY NOT NULL, ihsmName VARCHAR(64) NOT NULL, istorageGroup VARCHAR(64) NOT NULL, istorageSubGroup VARCHAR(64) NOT NULL, iaccessLatency INTEGER NOT NULL, iretentionPolicy INTEGER NOT NULL, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); -- LOCATION INFO -- -- Generic storage information -- ipnfsid : pnfsid of the inode -- itype : type of storage, e.g. tape, disk -- ilocation : type specific information like pool name for disk and HSM connetion for tape -- ipriority : in case of multiple locations of hint for performance or other needs -- ictime : location creation time -- iatime : last access time, probably performance killer, but nice to have for statistics -- istate : location status ONLINE/OFF-LINE CREATE TABLE t_locationinfo ( ipnfsid CHAR(36) NOT NULL, itype INTEGER NOT NULL, ilocation VARCHAR(512) NOT NULL, ipriority INTEGER NOT NULL, ictime TIMESTAMP NOT NULL, iatime TIMESTAMP NOT NULL, istate INTEGER NOT NULL, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ), PRIMARY KEY (ipnfsid,itype,ilocation) ); CREATE INDEX i_locationinfo_ipnfsid ON t_locationinfo(ipnfsid); 0707010007993f000081a4000000650000000a000000014acc6605000000cd000000b600010008ffffffffffffffff0000003400000000reloc/opt/d-cache/libexec/chimera/sql/cacheinfo.sql DROP TABLE IF EXISTS cacheinfo; CREATE TABLE cacheinfo ( pnfsid CHAR(24) NOT NULL , pool VARCHAR(255) NOT NULL, ctime TIMESTAMP NOT NULL, INDEX(pnfsid), INDEX(pool), UNIQUE(pnfsid,pool) ); 07070100079943000081a4000000650000000a000000014acc66050000243e000000b600010008ffffffffffffffff0000003800000000reloc/opt/d-cache/libexec/chimera/sql/create-oracle.sql-- -- Chimera table layout -- for ORACLE (10g) -- -- $Id: create-oracle.sql 296 2007-10-30 21:09:30Z tigran $ -- -- Inodes -- CREATE TABLE t_inodes ( ipnfsid CHAR(36) PRIMARY KEY, itype NUMBER NOT NULL, imode NUMBER NOT NULL, inlink NUMBER NOT NULL, iuid NUMBER NOT NULL, igid NUMBER NOT NULL, isize NUMBER NOT NULL, iio NUMBER NOT NULL, ictime DATE NOT NULL, iatime DATE NOT NULL, imtime DATE NOT NULL ); -- -- dirs -- CREATE TABLE t_dirs ( iparent CHAR(36) NOT NULL, iname VARCHAR(255) NOT NULL, ipnfsid CHAR(36) NOT NULL, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ), PRIMARY KEY (iparent,iname) ); -- -- data -- CREATE TABLE t_inodes_data ( ipnfsid CHAR(36) PRIMARY KEY, ifiledata LONG RAW, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); -- -- Checksums -- CREATE TABLE t_inodes_checksum ( ipnfsid CHAR(36) PRIMARY KEY, itype NUMBER NOT NULL, isum VARCHAR(128) NOT NULL, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); -- -- pnfs levels 1-7 -- CREATE TABLE t_level_1 ( ipnfsid CHAR(36) PRIMARY KEY, imode NUMBER NOT NULL, inlink NUMBER NOT NULL, iuid NUMBER NOT NULL, igid NUMBER NOT NULL, isize NUMBER NOT NULL, ictime DATE NOT NULL, iatime DATE NOT NULL, imtime DATE NOT NULL, ifiledata LONG RAW, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); CREATE TABLE t_level_2 ( ipnfsid CHAR(36) PRIMARY KEY, imode NUMBER NOT NULL, inlink NUMBER NOT NULL, iuid NUMBER NOT NULL, igid NUMBER NOT NULL, isize NUMBER NOT NULL, ictime DATE NOT NULL, iatime DATE NOT NULL, imtime DATE NOT NULL, ifiledata LONG RAW, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); CREATE TABLE t_level_3 ( ipnfsid CHAR(36) PRIMARY KEY, imode NUMBER NOT NULL, inlink NUMBER NOT NULL, iuid NUMBER NOT NULL, igid NUMBER NOT NULL, isize NUMBER NOT NULL, ictime DATE NOT NULL, iatime DATE NOT NULL, imtime DATE NOT NULL, ifiledata LONG RAW, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); CREATE TABLE t_level_4 ( ipnfsid CHAR(36) PRIMARY KEY, imode NUMBER NOT NULL, inlink NUMBER NOT NULL, iuid NUMBER NOT NULL, igid NUMBER NOT NULL, isize NUMBER NOT NULL, ictime DATE NOT NULL, iatime DATE NOT NULL, imtime DATE NOT NULL, ifiledata LONG RAW, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); CREATE TABLE t_level_5 ( ipnfsid CHAR(36) PRIMARY KEY, imode NUMBER NOT NULL, inlink NUMBER NOT NULL, iuid NUMBER NOT NULL, igid NUMBER NOT NULL, isize NUMBER NOT NULL, ictime DATE NOT NULL, iatime DATE NOT NULL, imtime DATE NOT NULL, ifiledata LONG RAW, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); CREATE TABLE t_level_6 ( ipnfsid CHAR(36) PRIMARY KEY, imode NUMBER NOT NULL, inlink NUMBER NOT NULL, iuid NUMBER NOT NULL, igid NUMBER NOT NULL, isize NUMBER NOT NULL, ictime DATE NOT NULL, iatime DATE NOT NULL, imtime DATE NOT NULL, ifiledata LONG RAW, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); CREATE TABLE t_level_7 ( ipnfsid CHAR(36) PRIMARY KEY, imode NUMBER NOT NULL, inlink NUMBER NOT NULL, iuid NUMBER NOT NULL, igid NUMBER NOT NULL, isize NUMBER NOT NULL, ictime DATE NOT NULL, iatime DATE NOT NULL, imtime DATE NOT NULL, ifiledata LONG RAW, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); -- -- Name: t_tags_inodes; Type: TABLE; Schema: public; Owner: postgres; Tablespace: -- CREATE TABLE t_tags_inodes ( itagid CHAR(36) PRIMARY KEY, imode NUMBER NOT NULL, inlink NUMBER NOT NULL, iuid NUMBER NOT NULL, igid NUMBER NOT NULL, isize NUMBER NOT NULL, ictime DATE NOT NULL, iatime DATE NOT NULL, imtime DATE NOT NULL, ivalue LONG RAW ); -- -- Name: t_tags; Type: TABLE; Schema: public; Owner: postgres; Tablespace: -- CREATE TABLE t_tags ( ipnfsid CHAR(36) NOT NULL, itagname VARCHAR(255) NOT NULL, itagid CHAR(36) NOT NULL, isorign NUMBER NOT NULL, PRIMARY KEY (ipnfsid, itagname), FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ), FOREIGN KEY (itagid) REFERENCES t_tags_inodes( itagid ) ); -- -- populate Inodes -- INSERT INTO t_inodes VALUES ('F674EC8B0CFF104AA109828000696CAD6CAC', 16384, 493, 2, 0, 0, 512, 0, current_DATE, current_DATE, current_DATE ); INSERT INTO t_inodes VALUES ('000000000000000000000000000000000000', 16384, 493, 6, 0, 0, 512, 0, current_DATE, current_DATE, current_DATE ); INSERT INTO t_inodes VALUES ('A0D739870178504FF109C52075F44287F9DE', 16384, 493, 4, 0, 0, 512, 0, current_DATE, current_DATE, current_DATE ); INSERT INTO t_inodes VALUES ('1B3BB44C05C9904DFB0928F06F2467395CD5', 16384, 493, 6, 0, 0, 512, 1, current_DATE, current_DATE, current_DATE ); INSERT INTO t_inodes VALUES ('E3BB936F04F6D047A70B75201EDBA32FA9F5', 16384, 493, 2, 0, 0, 512, 1, current_DATE, current_DATE, current_DATE ); INSERT INTO t_inodes VALUES ('80D1B8B90CED30430608C58002811B3285FC', 16384, 493, 2, 0, 0, 512, 1, current_DATE, current_DATE, current_DATE ); -- -- directory -- INSERT INTO t_dirs VALUES ('000000000000000000000000000000000000', '.', '000000000000000000000000000000000000'); INSERT INTO t_dirs VALUES ('000000000000000000000000000000000000', '..', '000000000000000000000000000000000000'); INSERT INTO t_dirs VALUES ('000000000000000000000000000000000000', 'admin','A0D739870178504FF109C52075F44287F9DE'); INSERT INTO t_dirs VALUES ('A0D739870178504FF109C52075F44287F9DE', '.', 'A0D739870178504FF109C52075F44287F9DE'); INSERT INTO t_dirs VALUES ('A0D739870178504FF109C52075F44287F9DE', '..', '000000000000000000000000000000000000'); INSERT INTO t_dirs VALUES ('000000000000000000000000000000000000', 'usr', 'F674EC8B0CFF104AA109828000696CAD6CAC'); INSERT INTO t_dirs VALUES ('F674EC8B0CFF104AA109828000696CAD6CAC', '.', 'F674EC8B0CFF104AA109828000696CAD6CAC'); INSERT INTO t_dirs VALUES ('F674EC8B0CFF104AA109828000696CAD6CAC', '..', '000000000000000000000000000000000000'); INSERT INTO t_dirs VALUES ('A0D739870178504FF109C52075F44287F9DE', 'etc', '1B3BB44C05C9904DFB0928F06F2467395CD5'); INSERT INTO t_dirs VALUES ('1B3BB44C05C9904DFB0928F06F2467395CD5', '.', '1B3BB44C05C9904DFB0928F06F2467395CD5'); INSERT INTO t_dirs VALUES ('1B3BB44C05C9904DFB0928F06F2467395CD5', '..', 'A0D739870178504FF109C52075F44287F9DE'); INSERT INTO t_dirs VALUES ('1B3BB44C05C9904DFB0928F06F2467395CD5', 'config','80D1B8B90CED30430608C58002811B3285FC'); INSERT INTO t_dirs VALUES ('80D1B8B90CED30430608C58002811B3285FC', '.', '80D1B8B90CED30430608C58002811B3285FC'); INSERT INTO t_dirs VALUES ('80D1B8B90CED30430608C58002811B3285FC', '..', '1B3BB44C05C9904DFB0928F06F2467395CD5'); INSERT INTO t_dirs VALUES ('1B3BB44C05C9904DFB0928F06F2467395CD5', 'exports','E3BB936F04F6D047A70B75201EDBA32FA9F5'); INSERT INTO t_dirs VALUES ('E3BB936F04F6D047A70B75201EDBA32FA9F5', '.', 'E3BB936F04F6D047A70B75201EDBA32FA9F5'); INSERT INTO t_dirs VALUES ('E3BB936F04F6D047A70B75201EDBA32FA9F5', '..', '1B3BB44C05C9904DFB0928F06F2467395CD5'); -- -- For faster lookups -- CREATE INDEX i_dirs_iparent ON t_dirs(iparent); -- -- For faster getparent -- CREATE INDEX i_dirs_ipnfsid ON t_dirs(ipnfsid); -- STORAGE INFO -- -- Generic storage information. Represents X:Y@Z + AL +RP -- ipnfsid : pnfsid of the inode -- ihsmName : Z-component of storageGroup -- istorageGroup : X-component of storageGroup -- istorageSubGroup : Y-component of storageGroup -- iaccessLatency : ONLINE / NEARLINE ( keep on disk / keep on disk, if there is a space) -- iretentionPolicy : CUSTODIAL / OUTPUT ( tape / disk ) CREATE TABLE t_storageinfo ( ipnfsid CHAR(36) PRIMARY KEY, ihsmName VARCHAR(64) NOT NULL, istorageGroup VARCHAR(64) NOT NULL, istorageSubGroup VARCHAR(64) NOT NULL, iaccessLatency NUMBER NOT NULL, iretentionPolicy NUMBER NOT NULL, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); -- LOCATION INFO -- -- Generic storage information -- ipnfsid : pnfsid of the inode -- itype : type of storage, e.g. tape, disk -- ilocation : type specific information like pool name for disk and HSM connetion for tape -- ipriority : in case of multiple locations of hint for performance or other needs -- ictime : location creation time -- iatime : last access time, probably performance killer, but nice to have for statistics -- istate : location status ONLINE/OFF-LINE CREATE TABLE t_locationinfo ( ipnfsid CHAR(36), itype NUMBER NOT NULL, ilocation VARCHAR(1024) NOT NULL, ipriority NUMBER NOT NULL, ictime DATE NOT NULL, iatime DATE NOT NULL, istate NUMBER NOT NULL, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ), PRIMARY KEY (ipnfsid,itype,ilocation) ); -- -- removed locations -- required for HSM and pools cleanup -- CREATE TABLE t_locationinfo_trash ( ipnfsid CHAR(36), itype NUMBER NOT NULL, ilocation VARCHAR(1024) NOT NULL, ipriority NUMBER NOT NULL, ictime DATE NOT NULL, iatime DATE NOT NULL, istate NUMBER NOT NULL, PRIMARY KEY (ipnfsid,itype,ilocation) ); CREATE INDEX i_locationinfo_ipnfsid ON t_locationinfo(ipnfsid); 07070100079945000081a4000000650000000a000000014acc66050000031f000000b600010008ffffffffffffffff0000003a00000000reloc/opt/d-cache/libexec/chimera/sql/migrate-2-1.9.3.sql-- -- convert pre 1.9.2 db schema to the new one -- -- -- create new tables and populate them -- CREATE TABLE t_access_latency AS SELECT ipnfsid, iaccessLatency FROM t_storageinfo; CREATE TABLE t_retention_policy AS SELECT ipnfsid, iretentionPolicy FROM t_storageinfo; -- -- remove obsolete columns -- ALTER TABLE t_storageinfo DROP COLUMN iretentionpolicy ; ALTER TABLE t_storageinfo DROP COLUMN iaccesslatency ; -- -- add foreign key: -- -- remove entry when inode is removed -- ALTER TABLE ONLY t_access_latency ADD CONSTRAINT t_access_latency_ipnfsid_fkey FOREIGN KEY (ipnfsid) REFERENCES t_inodes(ipnfsid) ON DELETE CASCADE; ALTER TABLE ONLY t_retention_policy ADD CONSTRAINT t_retention_policy_ipnfsid_fkey FOREIGN KEY (ipnfsid) REFERENCES t_inodes(ipnfsid) ON DELETE CASCADE; 0707010007993c000081a4000000650000000a000000014acc660500000864000000b600010008ffffffffffffffff0000003700000000reloc/opt/d-cache/libexec/chimera/sql/add-timezone.sql-- -- fix timestamp field to support TIME ZONE -- ALTER TABLE t_inodes ALTER ictime TYPE timestamp with time zone; ALTER TABLE t_inodes ALTER iatime TYPE timestamp with time zone; ALTER TABLE t_inodes ALTER imtime TYPE timestamp with time zone; ALTER TABLE t_level_1 ALTER ictime TYPE timestamp with time zone; ALTER TABLE t_level_1 ALTER iatime TYPE timestamp with time zone; ALTER TABLE t_level_1 ALTER imtime TYPE timestamp with time zone; ALTER TABLE t_level_2 ALTER ictime TYPE timestamp with time zone; ALTER TABLE t_level_2 ALTER iatime TYPE timestamp with time zone; ALTER TABLE t_level_2 ALTER imtime TYPE timestamp with time zone; ALTER TABLE t_level_3 ALTER ictime TYPE timestamp with time zone; ALTER TABLE t_level_3 ALTER iatime TYPE timestamp with time zone; ALTER TABLE t_level_3 ALTER imtime TYPE timestamp with time zone; ALTER TABLE t_level_4 ALTER ictime TYPE timestamp with time zone; ALTER TABLE t_level_4 ALTER iatime TYPE timestamp with time zone; ALTER TABLE t_level_4 ALTER imtime TYPE timestamp with time zone; ALTER TABLE t_level_5 ALTER ictime TYPE timestamp with time zone; ALTER TABLE t_level_5 ALTER iatime TYPE timestamp with time zone; ALTER TABLE t_level_5 ALTER imtime TYPE timestamp with time zone; ALTER TABLE t_level_6 ALTER ictime TYPE timestamp with time zone; ALTER TABLE t_level_6 ALTER iatime TYPE timestamp with time zone; ALTER TABLE t_level_6 ALTER imtime TYPE timestamp with time zone; ALTER TABLE t_level_7 ALTER ictime TYPE timestamp with time zone; ALTER TABLE t_level_7 ALTER iatime TYPE timestamp with time zone; ALTER TABLE t_level_7 ALTER imtime TYPE timestamp with time zone; ALTER TABLE t_tags_inodes ALTER ictime TYPE timestamp with time zone; ALTER TABLE t_tags_inodes ALTER iatime TYPE timestamp with time zone; ALTER TABLE t_tags_inodes ALTER imtime TYPE timestamp with time zone; ALTER TABLE t_locationinfo ALTER ictime TYPE timestamp with time zone; ALTER TABLE t_locationinfo ALTER iatime TYPE timestamp with time zone; ALTER TABLE t_locationinfo_trash ALTER ictime TYPE timestamp with time zone; ALTER TABLE t_locationinfo_trash ALTER iatime TYPE timestamp with time zone; 0707010007993d000081a4000000650000000a000000014acc660500000210000000b600010008ffffffffffffffff0000003c00000000reloc/opt/d-cache/libexec/chimera/sql/addACLtoChimeraDB.sql-- -- ACL table layout -- for postgreSQL -- CREATE TABLE t_acl ( rs_id CHAR(36) NOT NULL, rs_type int4 NOT NULL, type smallint NOT NULL DEFAULT 0, flags int4 NULL, access_msk int4 NOT NULL DEFAULT 0, who smallint NOT NULL, who_id int4, address_msk CHAR(32) NOT NULL DEFAULT 'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF', ace_order int4 NOT NULL DEFAULT 0, PRIMARY KEY (rs_id, ace_order), FOREIGN KEY (rs_id) REFERENCES t_inodes( ipnfsid ) ON DELETE CASCADE ); CREATE INDEX i_t_acl_rs_id ON t_acl(rs_id);07070100079942000081a4000000650000000a000000014acc66050000221a000000b600010008ffffffffffffffff0000003800000000reloc/opt/d-cache/libexec/chimera/sql/create-hsqldb.sqlSET PROPERTY "sql.enforce_strict_size" TRUE; CREATE TABLE t_inodes ( ipnfsid character(36) PRIMARY KEY, itype integer NOT NULL, imode integer NOT NULL, inlink integer NOT NULL, iuid integer NOT NULL, igid integer NOT NULL, isize bigint NOT NULL, iio integer NOT NULL, ictime timestamp NOT NULL, iatime timestamp NOT NULL, imtime timestamp NOT NULL ); CREATE TABLE t_dirs ( iparent character(36) NOT NULL, iname character varying(255) NOT NULL, ipnfsid character(36) NOT NULL, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ), PRIMARY KEY (iparent,iname) ); CREATE TABLE t_inodes_data ( ipnfsid character(36) PRIMARY KEY, ifiledata LONGVARBINARY, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ON DELETE CASCADE ); CREATE TABLE t_inodes_checksum ( ipnfsid character(36) PRIMARY KEY, itype integer NOT NULL, isum character varying(128) NOT NULL, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ON DELETE CASCADE ); CREATE TABLE t_level_1 ( ipnfsid character(36) PRIMARY KEY, imode integer NOT NULL, inlink integer NOT NULL, iuid integer NOT NULL, igid integer NOT NULL, isize bigint NOT NULL, ictime timestamp NOT NULL, iatime timestamp NOT NULL, imtime timestamp NOT NULL, ifiledata LONGVARBINARY, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); CREATE TABLE t_level_2 ( ipnfsid character(36) PRIMARY KEY, imode integer NOT NULL, inlink integer NOT NULL, iuid integer NOT NULL, igid integer NOT NULL, isize bigint NOT NULL, ictime timestamp NOT NULL, iatime timestamp NOT NULL, imtime timestamp NOT NULL, ifiledata LONGVARBINARY, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); CREATE TABLE t_level_3 ( ipnfsid character(36) PRIMARY KEY, imode integer NOT NULL, inlink integer NOT NULL, iuid integer NOT NULL, igid integer NOT NULL, isize bigint NOT NULL, ictime timestamp NOT NULL, iatime timestamp NOT NULL, imtime timestamp NOT NULL, ifiledata LONGVARBINARY, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); CREATE TABLE t_level_4 ( ipnfsid character(36) PRIMARY KEY, imode integer NOT NULL, inlink integer NOT NULL, iuid integer NOT NULL, igid integer NOT NULL, isize bigint NOT NULL, ictime timestamp NOT NULL, iatime timestamp NOT NULL, imtime timestamp NOT NULL, ifiledata LONGVARBINARY, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); CREATE TABLE t_level_5 ( ipnfsid character(36) PRIMARY KEY, imode integer NOT NULL, inlink integer NOT NULL, iuid integer NOT NULL, igid integer NOT NULL, isize bigint NOT NULL, ictime timestamp NOT NULL, iatime timestamp NOT NULL, imtime timestamp NOT NULL, ifiledata LONGVARBINARY, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); CREATE TABLE t_level_6 ( ipnfsid character(36) PRIMARY KEY, imode integer NOT NULL, inlink integer NOT NULL, iuid integer NOT NULL, igid integer NOT NULL, isize bigint NOT NULL, ictime timestamp NOT NULL, iatime timestamp NOT NULL, imtime timestamp NOT NULL, ifiledata LONGVARBINARY, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); CREATE TABLE t_level_7 ( ipnfsid character(36) PRIMARY KEY, imode integer NOT NULL, inlink integer NOT NULL, iuid integer NOT NULL, igid integer NOT NULL, isize bigint NOT NULL, ictime timestamp NOT NULL, iatime timestamp NOT NULL, imtime timestamp NOT NULL, ifiledata LONGVARBINARY, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); CREATE TABLE t_tags_inodes ( itagid character(36) PRIMARY KEY, imode integer NOT NULL, inlink integer NOT NULL, iuid integer NOT NULL, igid integer NOT NULL, isize bigint NOT NULL, ictime timestamp NOT NULL, iatime timestamp NOT NULL, imtime timestamp NOT NULL, ivalue LONGVARBINARY ); CREATE TABLE t_tags ( ipnfsid character(36) NOT NULL, itagname character varying(255) NOT NULL, itagid character(36) NOT NULL, isorign integer NOT NULL, PRIMARY KEY (ipnfsid, itagname), FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ), FOREIGN KEY (itagid) REFERENCES t_tags_inodes( itagid ) ); INSERT INTO t_inodes VALUES ('F674EC8B0CFF104AA109828000696CAD6CAC', 16384, 493, 2, 0, 0, 512, 0, NOW(), NOW(), NOW() ); INSERT INTO t_inodes VALUES ('000000000000000000000000000000000000', 16384, 493, 6, 0, 0, 512, 0, NOW(), NOW(), NOW() ); INSERT INTO t_inodes VALUES ('A0D739870178504FF109C52075F44287F9DE', 16384, 493, 4, 0, 0, 512, 0, NOW(), NOW(), NOW() ); INSERT INTO t_inodes VALUES ('1B3BB44C05C9904DFB0928F06F2467395CD5', 16384, 493, 6, 0, 0, 512, 1, NOW(), NOW(), NOW() ); INSERT INTO t_inodes VALUES ('E3BB936F04F6D047A70B75201EDBA32FA9F5', 16384, 493, 2, 0, 0, 512, 1, NOW(), NOW(), NOW() ); INSERT INTO t_inodes VALUES ('80D1B8B90CED30430608C58002811B3285FC', 16384, 493, 2, 0, 0, 512, 1, NOW(), NOW(), NOW() ); INSERT INTO t_dirs VALUES ('000000000000000000000000000000000000', '.', '000000000000000000000000000000000000'); INSERT INTO t_dirs VALUES ('000000000000000000000000000000000000', '..', '000000000000000000000000000000000000'); INSERT INTO t_dirs VALUES ('000000000000000000000000000000000000', 'admin','A0D739870178504FF109C52075F44287F9DE'); INSERT INTO t_dirs VALUES ('A0D739870178504FF109C52075F44287F9DE', '.', 'A0D739870178504FF109C52075F44287F9DE'); INSERT INTO t_dirs VALUES ('A0D739870178504FF109C52075F44287F9DE', '..', '000000000000000000000000000000000000'); INSERT INTO t_dirs VALUES ('000000000000000000000000000000000000', 'usr', 'F674EC8B0CFF104AA109828000696CAD6CAC'); INSERT INTO t_dirs VALUES ('F674EC8B0CFF104AA109828000696CAD6CAC', '.', 'F674EC8B0CFF104AA109828000696CAD6CAC'); INSERT INTO t_dirs VALUES ('F674EC8B0CFF104AA109828000696CAD6CAC', '..', '000000000000000000000000000000000000'); INSERT INTO t_dirs VALUES ('A0D739870178504FF109C52075F44287F9DE', 'etc', '1B3BB44C05C9904DFB0928F06F2467395CD5'); INSERT INTO t_dirs VALUES ('1B3BB44C05C9904DFB0928F06F2467395CD5', '.', '1B3BB44C05C9904DFB0928F06F2467395CD5'); INSERT INTO t_dirs VALUES ('1B3BB44C05C9904DFB0928F06F2467395CD5', '..', 'A0D739870178504FF109C52075F44287F9DE'); INSERT INTO t_dirs VALUES ('1B3BB44C05C9904DFB0928F06F2467395CD5', 'config','80D1B8B90CED30430608C58002811B3285FC'); INSERT INTO t_dirs VALUES ('80D1B8B90CED30430608C58002811B3285FC', '.', '80D1B8B90CED30430608C58002811B3285FC'); INSERT INTO t_dirs VALUES ('80D1B8B90CED30430608C58002811B3285FC', '..', '1B3BB44C05C9904DFB0928F06F2467395CD5'); INSERT INTO t_dirs VALUES ('1B3BB44C05C9904DFB0928F06F2467395CD5', 'exports','E3BB936F04F6D047A70B75201EDBA32FA9F5'); INSERT INTO t_dirs VALUES ('E3BB936F04F6D047A70B75201EDBA32FA9F5', '.', 'E3BB936F04F6D047A70B75201EDBA32FA9F5'); INSERT INTO t_dirs VALUES ('E3BB936F04F6D047A70B75201EDBA32FA9F5', '..', '1B3BB44C05C9904DFB0928F06F2467395CD5'); CREATE INDEX i_dirs_iparent ON t_dirs(iparent); CREATE INDEX i_dirs_ipnfsid ON t_dirs(ipnfsid); CREATE TABLE t_storageinfo ( ipnfsid CHAR(36) PRIMARY KEY, ihsmName VARCHAR(64) NOT NULL, istorageGroup VARCHAR(64) NOT NULL, istorageSubGroup VARCHAR(64) NOT NULL, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ON DELETE CASCADE ); CREATE TABLE t_access_latency ( ipnfsid CHAR(36) PRIMARY KEY, iaccessLatency INT NOT NULL, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ON DELETE CASCADE ); CREATE TABLE t_retention_policy ( ipnfsid CHAR(36) PRIMARY KEY, iretentionPolicy INT NOT NULL, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ON DELETE CASCADE ); CREATE TABLE t_locationinfo ( ipnfsid CHAR(36), itype INT NOT NULL, ilocation VARCHAR(1024) NOT NULL, ipriority INT NOT NULL, ictime timestamp NOT NULL, iatime timestamp NOT NULL, istate INT NOT NULL, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ), PRIMARY KEY (ipnfsid,itype,ilocation) ); CREATE TABLE t_locationinfo_trash ( ipnfsid CHAR(36), itype INT NOT NULL, ilocation VARCHAR(1024) NOT NULL, ipriority INT NOT NULL, ictime timestamp NOT NULL, iatime timestamp NOT NULL, istate INT NOT NULL, PRIMARY KEY (ipnfsid,itype,ilocation) ); CREATE INDEX i_locationinfo_ipnfsid ON t_locationinfo(ipnfsid); CREATE TABLE t_acl ( rs_id CHAR(36) NOT NULL, rs_type INT NOT NULL, type INT DEFAULT 0 NOT NULL, flags INT NULL, access_msk INT DEFAULT 0 NOT NULL, who INT NOT NULL, who_id INT, address_msk CHAR(32) DEFAULT 'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' NOT NULL, ace_order INT DEFAULT 0 NOT NULL, PRIMARY KEY (rs_id, ace_order) ); CREATE INDEX i_t_acl_rs_id ON t_acl(rs_id);07070100079949000081a4000000650000000a000000014acc660500000b33000000b600010008ffffffffffffffff0000004000000000reloc/opt/d-cache/libexec/chimera/sql/transaction-loggin-pg.sql-- -- $Id: transaction-loggin-pg.sql 296 2007-10-30 21:09:30Z tigran $ -- transaction logging -- CREATE TABLE t_inodes_actionlog ( iaction varchar(64) NOT NULL, ittime timestamp without time zone NOT NULL, ipnfsid character(36) NOT NULL, itype_old integer , itype_new integer NOT NULL, imode_old integer , imode_new integer NOT NULL, inlink_old integer , inlink_new integer NOT NULL, iuid_old integer , iuid_new integer NOT NULL, igid_old integer , igid_new integer NOT NULL, isize_old bigint , isize_new bigint NOT NULL, iio_old integer , iio_new integer NOT NULL, ictime_old timestamp without time zone , ictime_new timestamp without time zone NOT NULL, iatime_old timestamp without time zone , iatime_new timestamp without time zone NOT NULL, imtime_old timestamp without time zone , imtime_new timestamp without time zone NOT NULL ); CREATE OR REPLACE FUNCTION f_actionlog() RETURNS TRIGGER AS $t_actionlog$ BEGIN IF (TG_OP = 'UPDATE') THEN INSERT INTO t_inodes_actionlog ( iaction, ittime, ipnfsid, itype_old, itype_new, imode_old, imode_new, inlink_old, inlink_new, iuid_old, iuid_new, igid_old, igid_new, isize_old, isize_new, iio_old, iio_new, ictime_old, ictime_new, iatime_old, iatime_new, imtime_old, imtime_new ) VALUES ( 'UPDATE', NOW(), NEW.ipnfsid, OLD.itype, NEW.itype, OLD.imode, NEW.imode, OLD.inlink, NEW.inlink, OLD.iuid, NEW.iuid, OLD.igid, NEW.igid, OLD.isize, NEW.isize, OLD.iio, NEW.iio, OLD.ictime, NEW.ictime, OLD.iatime, NEW.iatime, OLD.imtime, NEW.imtime ); ELSIF (TG_OP = 'INSERT') THEN INSERT INTO t_inodes_actionlog ( iaction, ittime, ipnfsid, itype_new, imode_new, inlink_new, iuid_new, igid_new, isize_new, iio_new, ictime_new, iatime_new, imtime_new ) VALUES ( 'INSERT', NOW(), NEW.ipnfsid, NEW.itype, NEW.imode, NEW.inlink, NEW.iuid, NEW.igid, NEW.isize, NEW.iio, NEW.ictime, NEW.iatime, NEW.imtime ); END IF; RETURN NEW; END ; $t_actionlog$ LANGUAGE plpgsql; CREATE TRIGGER tgr_actionlog BEFORE INSERT OR UPDATE ON t_inodes FOR EACH ROW EXECUTE PROCEDURE f_actionlog();07070100079947000081a4000000650000000a000000014acc660500000069000000b600010008ffffffffffffffff0000003900000000reloc/opt/d-cache/libexec/chimera/sql/pnfsid-mapping.sql CREATE TABLE t_pnfsid_mapping ( ipnfsid CHAR(24) PRIMARY KEY, ichimeraid CHAR(36) UNIQUE NOT NULL ); 0707010007993e000081a4000000650000000a000000014acc66050000012e000000b600010008ffffffffffffffff0000003800000000reloc/opt/d-cache/libexec/chimera/sql/cacheinfo-pgs.sql DROP TABLE cacheinfo; DROP INDEX pool_inx; DROP INDEX pnfs_inx; CREATE TABLE cacheinfo ( pnfsid CHAR(24) NOT NULL, pool VARCHAR(255) NOT NULL, ctime TIMESTAMP NOT NULL, UNIQUE(pnfsid, pool) ); create index pool_inx on cacheinfo (pool); create index pnfs_inx on cacheinfo (pnfsid); 07070100079940000081a4000000650000000a000000014acc6605000001cc000000b600010008ffffffffffffffff0000003b00000000reloc/opt/d-cache/libexec/chimera/sql/create-dCacheACL.sql-- -- ACL table layout -- for postgreSQL -- CREATE TABLE t_acl ( rs_id varchar(36) NOT NULL, rs_type int4 NOT NULL, type smallint NOT NULL DEFAULT 0, flags int4 NULL, access_msk int4 NOT NULL DEFAULT 0, who smallint NOT NULL, who_id int4, address_msk varchar(32) NOT NULL DEFAULT 'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF', ace_order int4 NOT NULL DEFAULT 0, PRIMARY KEY (rs_id, ace_order) ); CREATE INDEX i_t_acl_rs_id ON t_acl(rs_id); 07070100079946000081a4000000650000000a000000014acc660500001235000000b600010008ffffffffffffffff0000003b00000000reloc/opt/d-cache/libexec/chimera/sql/pgsql-procedures.sql-- $Id: pgsql-procedures.sql 796 2008-09-05 13:40:45Z tigran $ -- some procedures to push some work to SQL server CREATE OR REPLACE FUNCTION "public"."inode2path" (varchar) RETURNS varchar AS $$ DECLARE inode VARCHAR := $1; ipath varchar := ''; ichain RECORD; BEGIN LOOP SELECT INTO ichain * FROM t_dirs WHERE ipnfsid=inode AND iname != '.' AND iname != '..'; IF FOUND AND ichain.iparent != inode THEN ipath := '/' || ichain.iname || ipath; inode := ichain.iparent; ELSE EXIT; END IF; END LOOP; RETURN ipath; END; $$ LANGUAGE 'plpgsql'; CREATE OR REPLACE FUNCTION path2inode(root varchar, path varchar) RETURNS varchar AS $$ DECLARE id varchar := root; elements varchar[] := string_to_array(path, '/'); child varchar; itype integer; link varchar; BEGIN FOR i IN 1..array_upper(elements,1) LOOP SELECT dir.ipnfsid, inode.itype INTO child, itype FROM t_dirs dir, t_inodes inode WHERE dir.ipnfsid = inode.ipnfsid AND dir.iparent=id AND dir.iname=elements[i]; IF itype=40960 THEN SELECT ifiledata INTO link FROM t_inodes_data WHERE ipnfsid=child; IF link LIKE '/%' THEN child := path2inode('000000000000000000000000000000000000', substring(link from 2)); ELSE child := path2inode(id, link); END IF; END IF; IF child IS NULL THEN RETURN NULL; END IF; id := child; END LOOP; RETURN id; END; $$ LANGUAGE plpgsql; -- -- store location of deleted inodes in trash table -- -- stores a old values into the trash table except last access time, -- which replaced with a time, when the trigger was running -- CREATE OR REPLACE FUNCTION f_locationinfo2trash() RETURNS TRIGGER AS $t_inodes_trash$ BEGIN IF (TG_OP = 'DELETE') THEN INSERT INTO t_locationinfo_trash SELECT ipnfsid , itype, ilocation , ipriority, ictime , iatime , istate FROM t_locationinfo WHERE ipnfsid = OLD.ipnfsid; END IF; RETURN OLD; END; $t_inodes_trash$ LANGUAGE plpgsql; -- -- trigger to store removed inodes -- CREATE TRIGGER tgr_locationinfo_trash BEFORE DELETE ON t_inodes FOR EACH ROW EXECUTE PROCEDURE f_locationinfo2trash(); --- --- populate inhereted tags --- CREATE OR REPLACE FUNCTION f_populate_tags() RETURNS TRIGGER AS $t_populate_tags$ BEGIN IF TG_OP = 'INSERT' AND NEW.iname = '..' THEN INSERT INTO t_tags ( SELECT NEW.iparent, itagname, itagid, 0 from t_tags WHERE ipnfsid=NEW.ipnfsid ); END IF; RETURN NEW; END; $t_populate_tags$ LANGUAGE plpgsql; -- -- trigger to store removed inodes -- CREATE TRIGGER tgr_populate_tags AFTER INSERT ON t_dirs FOR EACH ROW EXECUTE PROCEDURE f_populate_tags(); -- -- ******** ACL in dCache ********** -- ------------------------------------------------------------------------------- -- trigger to inherit ACLs for newly created file/directory ------------------------------------------------------------------------------- -- optimized by mdavid -- CREATE SEQUENCE serial MINVALUE 0; CREATE OR REPLACE FUNCTION f_insertACL() RETURNS trigger AS $$ DECLARE msk INTEGER; flag INTEGER; rstype INTEGER; id character(36); parentid character(36); BEGIN IF (TG_OP = 'INSERT') THEN msk := 0; SELECT INTO rstype itype FROM t_inodes WHERE ipnfsid = NEW.ipnfsid; IF rstype = 32768 THEN id := NEW.ipnfsid; parentid := NEW.iparent; rstype := 1; -- inserted object is a file flag := 1; -- check flags for 'f' bit msk := 11; -- mask contains 'o','d' and 'f' bits ELSIF (rstype = 16384 AND NEW.iname = '..') THEN id := NEW.iparent; parentid := NEW.ipnfsid; rstype := 0; -- inserted object is a directory flag := 3; -- check flags for 'd' and 'f' bits msk := 8; -- mask contains 'o' bit END IF; IF msk > 0 THEN ALTER SEQUENCE serial START 0; INSERT INTO t_acl SELECT id, rstype, type, (flags | msk) # msk, access_msk, who, who_id, address_msk, nextval('serial') FROM t_acl WHERE rs_id = parentid AND (flags & flag > 0) ORDER BY ace_order; END IF; END IF; RETURN NULL; END; $$ LANGUAGE plpgsql; CREATE TRIGGER tgr_insertACL AFTER INSERT ON t_dirs FOR EACH ROW EXECUTE PROCEDURE f_insertACL(); 07070100079944000081a4000000650000000a000000014acc6605000029c6000000b600010008ffffffffffffffff0000003100000000reloc/opt/d-cache/libexec/chimera/sql/create.sql-- -- Chimera table layout -- for postgreSQL -- -- $Id: create.sql 780 2008-07-21 17:48:42Z tigran $ -- -- Inodes -- CREATE TABLE t_inodes ( ipnfsid character(36) PRIMARY KEY, itype integer NOT NULL, imode integer NOT NULL, inlink integer NOT NULL, iuid integer NOT NULL, igid integer NOT NULL, isize bigint NOT NULL, iio integer NOT NULL, ictime timestamp with time zone NOT NULL, iatime timestamp with time zone NOT NULL, imtime timestamp with time zone NOT NULL ); -- -- dirs -- CREATE TABLE t_dirs ( iparent character(36) NOT NULL, iname character varying(255) NOT NULL, ipnfsid character(36) NOT NULL, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ), PRIMARY KEY (iparent,iname) ); -- -- data -- CREATE TABLE t_inodes_data ( ipnfsid character(36) PRIMARY KEY, ifiledata bytea, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ON DELETE CASCADE ); -- -- Checksums -- CREATE TABLE t_inodes_checksum ( ipnfsid character(36) PRIMARY KEY, itype integer NOT NULL, isum character varying(128) NOT NULL, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ON DELETE CASCADE ); -- -- pnfs levels 1-7 -- CREATE TABLE t_level_1 ( ipnfsid character(36) PRIMARY KEY, imode integer NOT NULL, inlink integer NOT NULL, iuid integer NOT NULL, igid integer NOT NULL, isize bigint NOT NULL, ictime timestamp with time zone NOT NULL, iatime timestamp with time zone NOT NULL, imtime timestamp with time zone NOT NULL, ifiledata bytea, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); CREATE TABLE t_level_2 ( ipnfsid character(36) PRIMARY KEY, imode integer NOT NULL, inlink integer NOT NULL, iuid integer NOT NULL, igid integer NOT NULL, isize bigint NOT NULL, ictime timestamp with time zone NOT NULL, iatime timestamp with time zone NOT NULL, imtime timestamp with time zone NOT NULL, ifiledata bytea, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); CREATE TABLE t_level_3 ( ipnfsid character(36) PRIMARY KEY, imode integer NOT NULL, inlink integer NOT NULL, iuid integer NOT NULL, igid integer NOT NULL, isize bigint NOT NULL, ictime timestamp with time zone NOT NULL, iatime timestamp with time zone NOT NULL, imtime timestamp with time zone NOT NULL, ifiledata bytea, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); CREATE TABLE t_level_4 ( ipnfsid character(36) PRIMARY KEY, imode integer NOT NULL, inlink integer NOT NULL, iuid integer NOT NULL, igid integer NOT NULL, isize bigint NOT NULL, ictime timestamp with time zone NOT NULL, iatime timestamp with time zone NOT NULL, imtime timestamp with time zone NOT NULL, ifiledata bytea, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); CREATE TABLE t_level_5 ( ipnfsid character(36) PRIMARY KEY, imode integer NOT NULL, inlink integer NOT NULL, iuid integer NOT NULL, igid integer NOT NULL, isize bigint NOT NULL, ictime timestamp with time zone NOT NULL, iatime timestamp with time zone NOT NULL, imtime timestamp with time zone NOT NULL, ifiledata bytea, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); CREATE TABLE t_level_6 ( ipnfsid character(36) PRIMARY KEY, imode integer NOT NULL, inlink integer NOT NULL, iuid integer NOT NULL, igid integer NOT NULL, isize bigint NOT NULL, ictime timestamp with time zone NOT NULL, iatime timestamp with time zone NOT NULL, imtime timestamp with time zone NOT NULL, ifiledata bytea, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); CREATE TABLE t_level_7 ( ipnfsid character(36) PRIMARY KEY, imode integer NOT NULL, inlink integer NOT NULL, iuid integer NOT NULL, igid integer NOT NULL, isize bigint NOT NULL, ictime timestamp with time zone NOT NULL, iatime timestamp with time zone NOT NULL, imtime timestamp with time zone NOT NULL, ifiledata bytea, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ); -- -- Name: t_tags_inodes; Type: TABLE; Schema: public; Owner: postgres; Tablespace: -- CREATE TABLE t_tags_inodes ( itagid character(36) PRIMARY KEY, imode integer NOT NULL, inlink integer NOT NULL, iuid integer NOT NULL, igid integer NOT NULL, isize bigint NOT NULL, ictime timestamp with time zone NOT NULL, iatime timestamp with time zone NOT NULL, imtime timestamp with time zone NOT NULL, ivalue bytea ); -- -- Name: t_tags; Type: TABLE; Schema: public; Owner: postgres; Tablespace: -- CREATE TABLE t_tags ( ipnfsid character(36) NOT NULL, itagname character varying(255) NOT NULL, itagid character(36) NOT NULL, isorign integer NOT NULL, PRIMARY KEY (ipnfsid, itagname), FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ), FOREIGN KEY (itagid) REFERENCES t_tags_inodes( itagid ) ); -- -- populate Inodes -- INSERT INTO t_inodes VALUES ('F674EC8B0CFF104AA109828000696CAD6CAC', 16384, 493, 2, 0, 0, 512, 0, NOW(), NOW(), NOW() ); INSERT INTO t_inodes VALUES ('000000000000000000000000000000000000', 16384, 493, 6, 0, 0, 512, 0, NOW(), NOW(), NOW() ); INSERT INTO t_inodes VALUES ('A0D739870178504FF109C52075F44287F9DE', 16384, 493, 4, 0, 0, 512, 0, NOW(), NOW(), NOW() ); INSERT INTO t_inodes VALUES ('1B3BB44C05C9904DFB0928F06F2467395CD5', 16384, 493, 6, 0, 0, 512, 1, NOW(), NOW(), NOW() ); INSERT INTO t_inodes VALUES ('E3BB936F04F6D047A70B75201EDBA32FA9F5', 16384, 493, 2, 0, 0, 512, 1, NOW(), NOW(), NOW() ); INSERT INTO t_inodes VALUES ('80D1B8B90CED30430608C58002811B3285FC', 16384, 493, 2, 0, 0, 512, 1, NOW(), NOW(), NOW() ); -- -- directory -- INSERT INTO t_dirs VALUES ('000000000000000000000000000000000000', '.', '000000000000000000000000000000000000'); INSERT INTO t_dirs VALUES ('000000000000000000000000000000000000', '..', '000000000000000000000000000000000000'); INSERT INTO t_dirs VALUES ('000000000000000000000000000000000000', 'admin','A0D739870178504FF109C52075F44287F9DE'); INSERT INTO t_dirs VALUES ('A0D739870178504FF109C52075F44287F9DE', '.', 'A0D739870178504FF109C52075F44287F9DE'); INSERT INTO t_dirs VALUES ('A0D739870178504FF109C52075F44287F9DE', '..', '000000000000000000000000000000000000'); INSERT INTO t_dirs VALUES ('000000000000000000000000000000000000', 'usr', 'F674EC8B0CFF104AA109828000696CAD6CAC'); INSERT INTO t_dirs VALUES ('F674EC8B0CFF104AA109828000696CAD6CAC', '.', 'F674EC8B0CFF104AA109828000696CAD6CAC'); INSERT INTO t_dirs VALUES ('F674EC8B0CFF104AA109828000696CAD6CAC', '..', '000000000000000000000000000000000000'); INSERT INTO t_dirs VALUES ('A0D739870178504FF109C52075F44287F9DE', 'etc', '1B3BB44C05C9904DFB0928F06F2467395CD5'); INSERT INTO t_dirs VALUES ('1B3BB44C05C9904DFB0928F06F2467395CD5', '.', '1B3BB44C05C9904DFB0928F06F2467395CD5'); INSERT INTO t_dirs VALUES ('1B3BB44C05C9904DFB0928F06F2467395CD5', '..', 'A0D739870178504FF109C52075F44287F9DE'); INSERT INTO t_dirs VALUES ('1B3BB44C05C9904DFB0928F06F2467395CD5', 'config','80D1B8B90CED30430608C58002811B3285FC'); INSERT INTO t_dirs VALUES ('80D1B8B90CED30430608C58002811B3285FC', '.', '80D1B8B90CED30430608C58002811B3285FC'); INSERT INTO t_dirs VALUES ('80D1B8B90CED30430608C58002811B3285FC', '..', '1B3BB44C05C9904DFB0928F06F2467395CD5'); INSERT INTO t_dirs VALUES ('1B3BB44C05C9904DFB0928F06F2467395CD5', 'exports','E3BB936F04F6D047A70B75201EDBA32FA9F5'); INSERT INTO t_dirs VALUES ('E3BB936F04F6D047A70B75201EDBA32FA9F5', '.', 'E3BB936F04F6D047A70B75201EDBA32FA9F5'); INSERT INTO t_dirs VALUES ('E3BB936F04F6D047A70B75201EDBA32FA9F5', '..', '1B3BB44C05C9904DFB0928F06F2467395CD5'); -- -- For faster lookups -- CREATE INDEX i_dirs_iparent ON t_dirs(iparent); -- -- For faster getparent -- CREATE INDEX i_dirs_ipnfsid ON t_dirs(ipnfsid); -- STORAGE INFO -- -- Generic storage information. Represents X:Y@Z + AL +RP -- ipnfsid : pnfsid of the inode -- ihsmName : Z-component of storageGroup -- istorageGroup : X-component of storageGroup -- istorageSubGroup : Y-component of storageGroup -- iaccessLatency : ONLINE / NEARLINE ( keep on disk / keep on disk, if there is a space) -- iretentionPolicy : CUSTODIAL / OUTPUT ( tape / disk ) CREATE TABLE t_storageinfo ( ipnfsid CHAR(36) PRIMARY KEY, ihsmName VARCHAR(64) NOT NULL, istorageGroup VARCHAR(64) NOT NULL, istorageSubGroup VARCHAR(64) NOT NULL, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ON DELETE CASCADE ); CREATE TABLE t_access_latency ( ipnfsid CHAR(36) PRIMARY KEY, iaccessLatency INT NOT NULL, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ON DELETE CASCADE ); CREATE TABLE t_retention_policy ( ipnfsid CHAR(36) PRIMARY KEY, iretentionPolicy INT NOT NULL, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ON DELETE CASCADE ); -- LOCATION INFO -- -- Generic storage information -- ipnfsid : pnfsid of the inode -- itype : type of storage, e.g. tape, disk -- ilocation : type specific information like pool name for disk and HSM connetion for tape -- ipriority : in case of multiple locations of hint for performance or other needs -- ictime : location creation time -- iatime : last access time, probably performance killer, but nice to have for statistics -- istate : location status ONLINE/OFF-LINE CREATE TABLE t_locationinfo ( ipnfsid CHAR(36), itype INT NOT NULL, ilocation VARCHAR(1024) NOT NULL, ipriority INT NOT NULL, ictime timestamp with time zone NOT NULL, iatime timestamp with time zone NOT NULL, istate INT NOT NULL, FOREIGN KEY (ipnfsid) REFERENCES t_inodes( ipnfsid ) ON DELETE CASCADE, PRIMARY KEY (ipnfsid,itype,ilocation) ); -- -- removed locations -- required for HSM and pools cleanup -- CREATE TABLE t_locationinfo_trash ( ipnfsid CHAR(36), itype INT NOT NULL, ilocation VARCHAR(1024) NOT NULL, ipriority INT NOT NULL, ictime timestamp with time zone NOT NULL, iatime timestamp with time zone NOT NULL, istate INT NOT NULL, PRIMARY KEY (ipnfsid,itype,ilocation) ); CREATE INDEX i_locationinfo_ipnfsid ON t_locationinfo(ipnfsid); -- -- ACL table layout -- for postgreSQL -- CREATE TABLE t_acl ( rs_id CHAR(36) NOT NULL, rs_type int4 NOT NULL, type smallint NOT NULL DEFAULT 0, flags int4 NULL, access_msk int4 NOT NULL DEFAULT 0, who smallint NOT NULL, who_id int4, address_msk varchar(32) NOT NULL DEFAULT 'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF', ace_order int4 NOT NULL DEFAULT 0, PRIMARY KEY (rs_id, ace_order), FOREIGN KEY (rs_id) REFERENCES t_inodes( ipnfsid ) ON DELETE CASCADE ); CREATE INDEX i_t_acl_rs_id ON t_acl(rs_id);0707010007993a000081ed000000650000000a000000014acc66050000012e000000b600010008ffffffffffffffff0000003500000000reloc/opt/d-cache/libexec/chimera/chimera-set-acl.sh#!/bin/sh ourHomeDir=/opt/d-cache ourHomeDir=/opt/d-cache . ${ourHomeDir}/classes/extern.classpath . ${ourHomeDir}/config/dCacheSetup ${java} ${java_options} -classpath ${externalLibsClassPath} \ -Xmx512M org.dcache.chimera.acl.client.SetAclClient ${ourHomeDir}/config/acl.properties 0707010007994c000081a4000000650000000a000000014acc660b0000145d000000b600010008ffffffffffffffff0000002d00000000reloc/opt/d-cache/libexec/infoprovidercms.rb#!/usr/bin/env ruby require 'optparse' require 'optparse/time' require 'ostruct' require 'pp' require 'open-uri' require 'rexml/document' def processXML ( inFile, outFile, vos, options ) doc = REXML::Document.new( File.new(inFile)) if options.has_key?("SITE-UNIQUE-ID") doc.elements['//[@id="SITE-UNIQUE-ID"]'].text = options["SITE-UNIQUE-ID"] end if options.has_key?("SE-UNIQUE-ID") doc.elements['//[@id="SE-UNIQUE-ID"]'].text = options["SE-UNIQUE-ID"] end if options.has_key?("SE-NAME") doc.elements['//[@id="SE-NAME"]'].text = options["SE-NAME"] end if options.has_key?("DCACHE-STATUS") doc.elements['//[@id="DCACHE-STATUS"]'].text = options["DCACHE-STATUS"] end if options.has_key?("DCACHE-ARCHITECTURE") doc.elements['//[@id="DCACHE-ARCHITECTURE"]'].text = options["DCACHE-ARCHITECTURE"] end e = doc.elements['//[@name="SRM-supported-VOs"]'] e.delete_if { true } vos.each do |vo| e.add_element("item").text = vo end e = doc.elements['//[@name="GlueSA-VOs"]'] e.delete_if { true } vos.each do |vo| e.add_element("item").text = vo end if options.has_key?("NAME-SPACE-PREFIX") e = doc.elements['//[@name="VO-name-to-path"]'] e.delete_if { true } vos.each do |vo| e.add_element("sub", { "match" => vo, "replace-with" => options["NAME-SPACE-PREFIX"] + "/" + vo }) end e.add_element("default", { "value" => "/UNDEFINEDPATH" }) end File.open(outFile, "w") { |f| f.puts doc } end vos = [] options = {} fileInput = "" fileOutput = "" ARGV.options do |o| script_name = File.basename($0) o.set_summary_indent(' ') o.banner = "Usage: #{script_name} [options]" o.define_head "Infor provider XSL configuration tool." o.separator "" o.separator "Mandatory arguments to long options are mandatory for " + "short options too." o.on("-i", "--input [EXTENSION]", "Input XML file path", " (XML file to read)") { |fileInput| } o.on("-o", "--output [EXTENSION]", "Output XML file path", " (XML file to write)") { |fileOutput| } o.on("-s", "--site-unique-id [EXTENSION]", "GlueSiteUniqueID", "A unique reference for your site. This must match the GlueSiteUniqueID defined in other services.") { |options["SITE-UNIQUE-ID"]| } o.on("-S", "--se-unique-id [EXTENSION]", "GlueSEUniqueID", "Your dCache's Unique ID. Currently, this *must* be the FQDN of your SRM end-point.") { |options["SE-UNIQUE-ID"]| } o.on("-n", "--se-name [EXTENSION]", "GlueSEName", "A human understandable name for your SE (it may contain spaces). You may leave this empty and a GlueSEName will not be published.") { |options["SE-NAME"]| } o.on("-u", "--dcache-status [EXTENSION]", "GlueSEStatus", "Current status of dCache. This should be one of the following values: Production, Queuing, Closed, Draining.") { |options["DCACHE-STATUS"]| } o.on("-a", "--dcache-architecture [EXTENSION]", "GlueSEArchitecture", "The architecture of the underlying storage dCache is using.") { |options["DCACHE-ARCHITECTURE"]| } o.on("-p", "--name-space-prefix [EXTENSION]", "Name space prefix.", "This describes which paths to publish for each VO.") { |options["NAME-SPACE-PREFIX"]| } # List of arguments. o.on("-V","--vos x,y,z", Array, "A 'list' of vo's") { |vos| } o.separator "" o.on_tail("-h", "--help", "Show this help message.") { puts o; exit } o.parse! end #pp options #pp object if options.has_key?("DCACHE-STATUS") if !["Production","Queuing","Closed","Draining"].include?(options["DCACHE-STATUS"]) print "GlueSEStatus can only be set to Production, Queuing, Closed, Draining\n\n" print "Production The SE processes old and new requests\n" print " according to its policies.\n\n" print "Queuing The SE can accept new requests, but they\n" print " will be kept on hold\n\n" print "Closed The SE does not accept new requests and\n" print " does not process old requests\n\n" print "Draining The SE does not accept new request but\n" print " still processes old requests.\n" exit 1 end end if options.has_key?("DCACHE-ARCHITECTURE") if !["disk","multidisk","tape"].include?(options["DCACHE-ARCHITECTURE"]) print "GlueSEArchitecture: the architecture of the underlying\n" print " storage dCache is using. This should be one of the\n" print "disk non-robust, single-disk storage\n\n" print "multidisk disk-based storage that is robust against\n" print " single disk failures.\n\n" print "tape dCache has access to an HSM system.\n" exit 1 end end if fileInput == "" print "Input file needs to be stated on the command line.\n" exit 1 end if fileOutput == "" print "Output file needs to be stated on the command line.\n" exit 1 end processXML(fileInput,fileOutput,vos,options) 070701000798a7000041ed000000650000000a000000024acc660b00000000000000b600010008ffffffffffffffff0000001900000000reloc/opt/d-cache/config070701000798b2000081a4000000650000000a000000014acc660500000514000000b600010008ffffffffffffffff0000002700000000reloc/opt/d-cache/config/gPlazma.batch# # $Id: gPlazma.batch,v 1.4 2007-03-21 14:11:42 radicke Exp $ # set printout default 2 set printout CellGlue none onerror shutdown # check -strong setupFile # copy file:${setupFile} context:setupContext # # import the variables into our $context. # don't overwrite already existing variables. # import context -c setupContext # # Cell communication # exec -run -shell file:${ourHomeDir}/config/tunnel.fragment # # # onerror continue set context -c srmDatabaseHost localhost set context -c srmDbName dcache set context -c srmDbUser srmdcache set context -c srmDbPassword srmdcache set context -c gPlazmaNumberOfSimutaneousRequests 30 set context -c gPlazmaRequestTimeout 30 set context -c gplazmaPolicy ${ourHomeDir}/etc/dcachesrm-gplazma.policy onerror shutdown create org.dcache.auth.gplazma.GPLAZMA gPlazma \ "default \ -export \ -gplazma-authorization-module-policy=${gplazmaPolicy} \ -jdbcUrl=jdbc:postgresql://${srmDatabaseHost}/${srmDbName} \ -jdbcDriver=org.postgresql.Driver \ -dbUser=${srmDbUser} \ -dbPass=${srmDbPassword} \ -num-simultaneous-requests=${gPlazmaNumberOfSimutaneousRequests} \ -request-timeout=${gPlazmaRequestTimeout} \ "070701000798b7000081a4000000650000000a000000014acc6605000002b7000000b600010008ffffffffffffffff0000002400000000reloc/opt/d-cache/config/info.batch# # $Id: info.batch,v 1.5 2007-03-21 14:11:42 paul Exp $ # set printout default 2 set printout CellGlue none onerror shutdown check -strong setupFile copy file:${setupFile} context:setupContext ## ## Import the variables into our $context. ## Don't overwrite already existing variables. ## import context -c setupContext ## ## Make sure we got what we need. ## # # Cell communication # exec -run -shell file:${ourHomeDir}/config/tunnel.fragment # Run our own local topo cell but don't register it. create dmg.cells.network.TopoCell topo "none -update=100" ## ## ---- Info Cell: broadcasting to "civilisation" ## create org.dcache.services.info.InfoProvider info "-export" 070701000798b5000081a4000000650000000a000000014acc660500001983000000b600010008ffffffffffffffff0000002500000000reloc/opt/d-cache/config/httpd.batch# # $Id: httpd.batch,v 1.20 2007-08-23 13:18:49 tigran Exp $ # set printout default 2 set printout CellGlue none onerror shutdown # check -strong setupFile # copy file:${setupFile} context:setupContext # # import the variables into our $context. # don't overwrite already existing variables. # import context -c setupContext # # Make sure we got what we need. # check -strong httpdPort config # # Cell communication # exec -run -shell file:${ourHomeDir}/config/tunnel.fragment # # Billing Cell # # Default for billingDb: #check -strong billingDb onerror continue set context -c billingDb ${ourHomeDir}/billing # # Additional params, if 'billingToDb' is 'yes' define env billingToDb.exe endExe set context -c billingDatabaseHost localhost set context -c billingDbUer srmdcache set context -c billingDbPass srmdcache set context -c billingDbName billing set context -c billingDbPgPassFileName set context -c billingDbCommitRows 100 set context -c billingDbCommitIntervalInMilliseconds 30000 set env -c billingDbParams "\ -useSQL \ -jdbcUrl=jdbc:postgresql://${billingDatabaseHost}/${billingDbName} \ -jdbcDriver=org.postgresql.Driver \ -dbUser=${billingDbUer} \ -dbPass=${billingDbPass} \ -pgPass=${billingDbPgPassFileName} \ -dbCommitNumber=${billingDbCommitRows} \ -dbCommitTime=${billingDbCommitIntervalInMilliseconds} \ " endExe eval ${billingToDb} yes == set env billingToDbIsSet ${rc} exec env billingToDb.exe -run -ifok=billingToDbIsSet onerror shutdown # create diskCacheV111.cells.BillingCell billing \ "${billingDb} \ -printMode=2 \ ${billingDbParams} \ " # #create diskCacheV111.cells.BillingCell billing \ # "${billingDb} \ # -useSQL -jdbcUrl=<> -jdbcDriver=<> -dbUser=<> -dbPass=<>" # create dmg.cells.network.TopoCell topo "none -update=100 -export" # #create dmg.cells.services.login.LoginManager Spy \ # "22222 dmg.cells.services.ObjectLoginCell -prot=raw" # # create dmg.cells.services.login.LoginBroker srm-LoginBroker "default -export" # define context TransferObserverSetup endDefine table define large 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 table define small 6,8,4,5,9,10,11,15 endDefine create diskCacheV111.cells.TransferObserverV1 TransferObserver \ "default \ -loginBroker=LoginBroker \ -update=60 \ -fieldMap=diskCacheV111.util.MapInfoFields \ -mapFile=/etc/passwd " # # The web server part # onerror continue set context -c styles ${ourHomeDir}/docs/styles onerror shutdown define context httpdSetup endDefine set alias homeerror context home.html set alias file ${config}/../docs/skins/home-skin-basic.html -onError=homeerror set alias docs directory ${config}/../docs set alias images directory ${images} set alias styles directory ${styles} set alias scripts directory ${config}/../docs/scripts set alias offline context offline.html set alias context context * set alias context home.html set alias robots.txt context robots.txt set alias cellInfo context cellInfoTable.html -onError=offline set alias usageInfo context poolUsageTable.html -onError=offline set alias queueInfo context poolQueueTable.html -onError=offline set alias poolInfo class diskCacheV111.poolManager.HttpPoolMgrEngineV3 set alias billing class diskCacheV111.cells.HttpBillingEngine set alias flushManager class diskCacheV111.hsmControl.flush.HttpHsmFlushMgrEngineV1 mgr=hfc css=default set alias pools class diskCacheV111.services.web.PoolInfoObserverEngineV2 showPoolGroupUsage=true set alias statistics directory ${statisticsLocation} set alias info class org.dcache.services.info.InfoHttpEngine set update 60 endDefine # set alias system class dmg.cells.services.HttpSystemService define context home.html endDefine Online dCache Home






Cell Services

Pool (Space) Usage

Pool Request Queues

Pools

Actions Log

Restore Queue

Lazy Restore Queue






endDefine define context offline.html endDefine dCache OFFLINE

endDefine # # Our /robots.txt file. This advertises which parts of the HTTP service indexing robots # (web-crawlers) should index. The particular configuration below disallows all indexing. # Details on how to configure robot.txt files are available from: # http://www.robotstxt.org/robotstxt.html # define context robots.txt endDefine User-agent: * Disallow: / endDefine define context online.html endDefine dCache OFFLINE

Pool : poolA 4/5/2001
endDefine # copy context:online.html context:setup.html # create dmg.cells.services.HttpServiceCell httpd ${httpdPort} # #create diskCacheV111.services.web.PoolInfoObserverV2 poolCollector \ # "PoolManager \ # -config=${config}/PoolCollector.conf \ # -pool-refresh-time=60 \ # -poolManager-refresh-time=300 \ # " # create diskCacheV111.cells.WebCollectorV3 collector \ "PnfsManager \ PoolManager \ gPlazma \ -loginBroker=LoginBroker,srm-LoginBroker \ -replyObject" # 070701000798b1000081a4000000650000000a000000014acc66050000070c000000b600010008ffffffffffffffff0000002400000000reloc/opt/d-cache/config/door.batch# # $Id: door.batch,v 1.21 2007-03-21 14:11:42 radicke Exp $ # set printout default 2 set printout CellGlue none onerror shutdown # check -strong setupFile # copy file:${setupFile} context:setupContext # # import the variables into our $context. # don't overwrite already existing variables. # import context -c setupContext # # Make sure we got what we need. # check -strong dCapPort # Cell communication exec -run -shell file:${ourHomeDir}/config/tunnel.fragment # Stage protection exec -run -shell file:${ourHomeDir}/config/stage.fragment doors # Permission configuration exec -run -shell file:${ourHomeDir}/config/permission.fragment # # onerror continue set context -c dcapMaxLogin 1500 set context -c dcapIoQueue "" set context -c dcapIoQueueOverwrite denied onerror shutdown # # dCap D o o r # create dmg.cells.services.login.LoginManager DCap-${thisHostname} \ "${dCapPort} \ -export \ diskCacheV111.doors.DCapDoor \ -keepAlive=300 \ -poolRetry=2700 \ -prot=telnet -localOk \ -truncate=${truncate} \ -maxLogin=${dcapMaxLogin} \ -brokerUpdateTime=30 \ -protocolFamily=dcap \ -protocolVersion=1.3.0 \ -poolProxy=PoolManager \ -io-queue=${dcapIoQueue} \ -permission-handler=${permissionHandler} \ -aclTable=${aclTable} \ -aclConnDriver=${aclConnDriver} \ -aclConnUrl=${aclConnUrl} \ -aclConnUser=${aclConnUser} \ -aclConnPswd=${aclConnPswd} \ -stageConfigurationFilePath=${stageConfigurationFilePath} \ -io-queue-overwrite=${dcapIoQueueOverwrite} \ -loginBroker=LoginBroker \ " # # 070701000798c2000081a4000000650000000a000000014acc660500004b5d000000b600010008ffffffffffffffff0000002300000000reloc/opt/d-cache/config/srm.batch# # $Id: srm.batch,v 1.35 2007-10-27 02:45:18 timur Exp $ # set printout default 2 set printout CellGlue none onerror shutdown # check -strong setupFile # copy file:${setupFile} context:setupContext # # import the variables into our $context. # don't overwrite already existing variables. # import context -c setupContext # # Make sure we got what we need. # check -strong srmPort # # Cell communication # exec -run -shell file:${ourHomeDir}/config/tunnel.fragment # # # srm c e l l # # # Default values (it not specified in dCacheSetup # onerror continue set context -c srmVersion version1 set context -c srmDbHost localhost set context -c srmDatabaseHost ${srmDbHost} set context -c srmDbName dcache set context -c srmDbUser srmdcache set context -c srmDbPassword srmdcache set context -c srmPasswordFile "" set context -c useGPlazmaAuthorizationCell true set context -c delegateToGPlazma false set context -c useGPlazmaAuthorizationModule false set context -c gplazmaPolicy ${ourHomeDir}/etc/dcachesrm-gplazma.policy set context -c srmAuthzCacheLifetime 180 set context -c parallelStreams 10 set context -c srmTimeout 3600 set context -c srmVacuum true set context -c srmVacuumPeriod 21600 set context -c srmBufferSize 1048576 set context -c srmTcpBufferSize 1048576 set context -c srmDebug true set context -c srmGetReqThreadQueueSize 10000 set context -c srmGetReqThreadPoolSize 250 set context -c srmGetReqMaxWaitingRequests 1000 set context -c srmGetReqReadyQueueSize 10000 set context -c srmGetReqMaxReadyRequests 2000 set context -c srmGetReqMaxNumberOfRetries 10 set context -c srmGetReqRetryTimeout 60000 set context -c srmGetReqMaxNumOfRunningBySameOwner 100 set context -c srmBringOnlineReqThreadQueueSize ${srmGetReqThreadQueueSize} set context -c srmBringOnlineReqThreadPoolSize ${srmGetReqThreadPoolSize} set context -c srmBringOnlineReqMaxWaitingRequests ${srmGetReqMaxWaitingRequests} set context -c srmBringOnlineReqReadyQueueSize ${srmGetReqReadyQueueSize} set context -c srmBringOnlineReqMaxReadyRequests ${srmGetReqMaxReadyRequests} set context -c srmBringOnlineReqMaxNumberOfRetries ${srmGetReqMaxNumberOfRetries} set context -c srmBringOnlineReqRetryTimeout ${srmGetReqRetryTimeout} set context -c srmBringOnlineReqMaxNumOfRunningBySameOwner ${srmGetReqMaxNumOfRunningBySameOwner} set context -c srmPutReqThreadQueueSize 10000 set context -c srmPutReqThreadPoolSize 250 set context -c srmPutReqMaxWaitingRequests 1000 set context -c srmPutReqReadyQueueSize 10000 set context -c srmPutReqMaxReadyRequests 1000 set context -c srmPutReqMaxNumberOfRetries 10 set context -c srmPutReqRetryTimeout 60000 set context -c srmPutReqMaxNumOfRunningBySameOwner 100 set context -c srmCopyReqThreadQueueSize 10000 set context -c srmCopyReqThreadPoolSize 250 set context -c srmCopyReqMaxWaitingRequests 1000 set context -c srmCopyReqMaxNumberOfRetries 10 set context -c srmCopyReqRetryTimeout 60000 set context -c srmCopyReqMaxNumOfRunningBySameOwner 100 # # switches controlling srmls behavior # for explanation consult dCacheSetup file # set context -c srmAsynchronousLs false set context -c srmLsMaxNumberOfEntries 1000 set context -c srmLsMaxNumberOfLevels 100 set context -c srmLsRequestThreadQueueSize 1000 set context -c srmLsRequestThreadPoolSize 30 set context -c srmLsRequestMaxWaitingRequests 1000 set context -c srmLsRequestReadyQueueSize 1000 set context -c srmLsRequestMaxReadyRequests 60 set context -c srmLsRequestMaxNumberOfRetries 10 set context -c srmLsRequestRetryTimeout 60000 set context -c srmLsRequestMaxNumberOfRunningBySameOwner 100 set context -c srmLsRequestLifetime 3600000 set context -c srmGetLifeTime 14400000 set context -c srmBringOnlineLifeTime ${srmGetLifeTime} set context -c srmPutLifeTime 14400000 set context -c srmCopyLifeTime 14400000 set context -c srmVacuum true set context -c srmVacuumPeriod 21600 set context -c pnfsSrmPath / set context -c xrootdRootPath / set context -c httpRootPath / set context -c srmPoolManagerTimeout 300 set context -c srmPoolTimeout 300 set context -c srmPnfsTimeout 300 set context -c srmMoverTimeout 7200 set context -c remoteCopyMaxTransfers 150 set context -c remoteHttpMaxTransfers 30 set context -c remoteGsiftpMaxTransfers ${srmCopyReqThreadPoolSize} set context -c remoteGsiftpIoQueue "" set context -c srmDbLogEnabled false set context -c RecursiveDirectoryCreation true set context -c AdvisoryDelete true set context -c kpwdFile ${ourHomeDir}/etc/dcache.kpwd # to enable terapath plugin uncomment: #set context -c qosPluginClass org.dcache.srm.qos.terapaths.TerapathsPlugin #set context -c qosConfigFile ${ourHomeDir}/config/terapaths.properties # to enable lambda station plugin, uncomment: #set context -c qosPluginClass org.dcache.srm.qos.terapaths.LambdaStation #set context -c qosConfigFile ${ourHomeDir}/config/lambdastation.properties set context -c overwriteEnabled false set context -c srmOverwriteByDefault false # variable that controls number of simultaneous rm requests # sent by srmrm to PnfsManager set context -c srmSizeOfSingleRemoveBatch 100 # this is the directory in which the delegated user credentials will be stored # as files. We recommend set permissions to 700 on this dir set context -c srmUserCredentialsDirectory ${ourHomeDir}/credentials set context -c srmPnfsManager PnfsManager set context -c srmPoolManager PoolManager #login broker timeout in millis set context -c srmLoginBrokerUpdatePeriod 3000 #pool manager timeout in seconds set context -c srmPoolManagerTimeout 60 #number of doors in the random selection #srm will order doors according to their load #and select sertain number of the least loaded #and then randomly choose which one to use set context -c srmNumberOfDoorsInRandomSelection 5 #srm will hold srm requests and their history in database # for srmNumberOfDaysInDatabaseHistory days #after that they will be removed set context -c srmNumberOfDaysInDatabaseHistory 10 # how frequently to remove old requests from the database set context -c srmOldRequestRemovalPeriodSeconds 60 # srmJdbcMonitoringLogEnabled is set to true srm will store sufficient # information about srm requests and their execution history in database # for monitoring interface to work # if it is set to false, only the absiolutely necessary information will be stored set context -c srmJdbcMonitoringLogEnabled false #jdbc updates are now queued and their execution is #decoupled from the execution of the srm requests # the srmJdbcExecutionThreadNum controls the number of the threads #that will be dedicated to execution of these updates # and the srmMaxNumberOfJdbcTasksInQueue controls the maximum # length of the queue set context -c srmJdbcExecutionThreadNum 5 set context -c srmMaxNumberOfJdbcTasksInQueue 1000 # if space reservation request does not specify access latency # we will assign this access latency by default set context -c DefaultAccessLatency NEARLINE set context -c SpaceManagerDefaultAccessLatency ${DefaultAccessLatency} set context -c DefaultAccessLatencyForSpaceReservation ${SpaceManagerDefaultAccessLatency} #if the transfer request come from the door, and there was not prior # space reservation made for this file, should we try to reserve # space before satisfying the request set context -c SpaceManagerReserveSpaceForNonSRMTransfers false # if the srm is restarted and there are pending requests # their state will change to Failed or Done # if srmCleanPendingRequestsOnRestart is true set context -c srmCleanPendingRequestsOnRestart false # perform the lookup of the client hostname on basis of client ip # the result is used in pool pool selection # if srmClientDNSLookup is set to false # client ip is used set context -c srmClientDNSLookup false # # ---- Usage of Srm Space Manager # # If srmSpaceManagerEnabled is on we need to use SrmSpaceManager # as both poolManager and poolProxy # onerror continue set context -c srmSpaceManagerEnabled no define env srmSpaceManagerOn.exe endExe set env -c remoteTransferManagerPoolProxy "SrmSpaceManager" set env -c remoteTransferManagerPoolManager "SrmSpaceManager" set context -c srmImplicitSpaceManagerEnabled true set context -c srmSpaceReservationStrict true endExe define env srmSpaceManagerOff.exe endExe srmSpaceReservation=false srmSpaceReservationStrict=false endExe eval ${srmSpaceManagerEnabled} yes == set env srmSpaceManagerIsOn ${rc} exec env srmSpaceManagerOn.exe -run -ifok=srmSpaceManagerIsOn eval ${srmSpaceManagerEnabled} yes != set env srmSpaceManagerIsOff ${rc} exec env srmSpaceManagerOff.exe -run -ifok=srmSpaceManagerIsOff set context -c remoteTransferManagerPoolProxy "PoolManager" set context -c remoteTransferManagerPoolManager "PoolManager" # srmCustomGetHostByAddr enables using the BNL developed procedure # for host by ip resolution if standard InetAddress method failed # set context -c srmCustomGetHostByAddr false # LinkGroupAuthorizationFile contains the list of FQANs that are allowed to # make space reservations in a given link group set context -c SpaceManagerLinkGroupAuthorizationFileName "" # # turning this on turns off the latest changes that made service # to honor the srm client's prococol list order for # get/put commands # this is needed temprorarily to support old srmcp clients set context -c srmIgnoreClientProtocolOrder false # # onerror shutdown # ### This would do the same and leave ${srmDbHost} unset #onerror continue #set context localhost.exe "set context -c srmDatabaseHost localhost" #set context srmdbhost.exe "set context -c srmDatabaseHost ${srmDbHost}" #check srmDbHost #set context srmDbHostIsSet ${rc} #exec context srmdbhost.exe -run -ifok=srmDbHostIsSet #exec context localhost.exe -run -ifnotok=srmDbHostIsSet #onerror shutdown # create diskCacheV111.util.ThreadManager ThreadManager \ "default \ -num-threads=200 \ -thread-timeout=15 \ " # # RemoteHttpTransferManager # # create diskCacheV111.doors.RemoteHttpTransferManager RemoteHttpTransferManager \ "default \ -export \ -pool_manager_timeout=${srmPoolManagerTimeout} \ -pool_timeout=${srmPoolTimeout} \ -pnfs_timeout=${srmPnfsTimeout} \ -mover_timeout=${srmMoverTimeout} \ -max_transfers=${remoteHttpMaxTransfers} \ " # # RemoteGsiftpTransferManager # create diskCacheV111.services.GsiftpTransferManager RemoteGsiftpTransferManager \ "default -export \ -pool_manager_timeout=${srmPoolManagerTimeout} \ -pool_timeout=${srmPoolTimeout} \ -pnfs_timeout=${srmPnfsTimeout} \ -mover_timeout=${srmMoverTimeout} \ -max_transfers=${remoteGsiftpMaxTransfers} \ -io-queue=${remoteGsiftpIoQueue} \ -jdbcUrl=jdbc:postgresql://${srmDatabaseHost}/${srmDbName} \ -jdbcDriver=org.postgresql.Driver \ -dbUser=${srmDbUser} \ -dbPass=${srmDbPassword} \ -pgPass=${srmPasswordFile} \ -doDbLog=${srmDbLogEnabled} \ -poolManager=${remoteTransferManagerPoolManager} \ -poolProxy=${remoteTransferManagerPoolProxy} \ " # # Copy Manager Cell # create diskCacheV111.doors.CopyManager CopyManager \ "default -export \ -pool_manager_timeout=${srmPoolManagerTimeout} \ -pool_timeout=${srmPoolTimeout} \ -pnfs_timeout=${srmPnfsTimeout} \ -mover_timeout=${srmMoverTimeout} \ -max_transfers=${remoteCopyMaxTransfers} \ -poolManager=${remoteTransferManagerPoolManager} \ -poolProxy=${remoteTransferManagerPoolProxy} \ " # # SRM Space Manager # create diskCacheV111.services.space.Manager SrmSpaceManager \ "default \ -export \ -jdbcUrl=jdbc:postgresql://${srmDatabaseHost}/${srmDbName} \ -jdbcDriver=org.postgresql.Driver \ -dbUser=${srmDbUser} \ -dbPass=${srmDbPassword} \ -poolManager=PoolManager \ -pnfsManager=PnfsManager \ -defaultAccessLatencyForSpaceReservation=${DefaultAccessLatencyForSpaceReservation} \ -reserveSpaceForNonSRMTransfers=${SpaceManagerReserveSpaceForNonSRMTransfers} \ -deleteStoredFileRecord=false \ -returnFlushedSpaceToReservation=true \ -returnRemovedSpaceToReservation=true \ -linkGroupAuthorizationFileName=${SpaceManagerLinkGroupAuthorizationFileName} \ -spaceManagerEnabled=${srmSpaceManagerEnabled} \ " create diskCacheV111.srm.dcache.Storage SRM-${thisHostname} \ "-srmport=${srmPort} \ -export \ -srmversion=${srmVersion} \ -timout=${srmTimeout} \ -pnfsManager=${srmPnfsManager} \ -pnfs-timeout=${srmPnfsTimeout} \ -poolManager=${srmPoolManager} \ -pool-manager-timeout=${srmPoolManagerTimeout} \ -vacuum=${srmVacuum} \ -vacuum-period=${srmVacuumPeriod} \ -pnfs-srm-path=${pnfsSrmPath} \ -xrootdRootPath=${xrootdRootPath} \ -httpRootPath=${httpRootPath} \ -gsissl=true \ -reserve-space-implicitly=${srmImplicitSpaceManagerEnabled} \ -space-reservation-strict=${srmSpaceReservationStrict} \ -credentials-dir=${srmUserCredentialsDirectory} \ -buffer_size=${srmBufferSize} \ -tcp_buffer_size=${srmTcpBufferSize} \ -parallel_streams=${parallelStreams} \ -debug=${srmDebug} \ -usekftp=false \ -get-lifetime=${srmGetLifeTime} \ -bring-online-lifetime=${srmBringOnlineLifeTime} \ -put-lifetime=${srmPutLifeTime} \ -copy-lifetime=${srmCopyLifeTime} \ -get-req-thread-queue-size=${srmGetReqThreadQueueSize} \ -get-req-thread-pool-size=${srmGetReqThreadPoolSize} \ -get-req-max-waiting-requests=${srmGetReqMaxWaitingRequests} \ -get-req-ready-queue-size=${srmGetReqReadyQueueSize} \ -get-req-max-ready-requests=${srmGetReqMaxReadyRequests} \ -get-req-max-number-of-retries=${srmGetReqMaxNumberOfRetries} \ -get-req-retry-timeout=${srmGetReqRetryTimeout} \ -get-req-max-num-of-running-by-same-owner=${srmGetReqMaxNumOfRunningBySameOwner} \ -bring-online-req-thread-queue-size=${srmBringOnlineReqThreadQueueSize} \ -bring-online-req-thread-pool-size=${srmBringOnlineReqThreadPoolSize} \ -bring-online-req-max-waiting-requests=${srmBringOnlineReqMaxWaitingRequests} \ -bring-online-req-ready-queue-size=${srmBringOnlineReqReadyQueueSize} \ -bring-online-req-max-ready-requests=${srmBringOnlineReqMaxReadyRequests} \ -bring-online-req-max-number-of-retries=${srmBringOnlineReqMaxNumberOfRetries} \ -bring-online-req-retry-timeout=${srmBringOnlineReqRetryTimeout} \ -bring-online-req-max-num-of-running-by-same-owner=${srmBringOnlineReqMaxNumOfRunningBySameOwner} \ -put-req-thread-queue-size=${srmPutReqThreadQueueSize} \ -put-req-thread-pool-size=${srmPutReqThreadPoolSize} \ -put-req-max-waiting-requests=${srmPutReqMaxWaitingRequests} \ -put-req-ready-queue-size=${srmPutReqReadyQueueSize} \ -put-req-max-ready-requests=${srmPutReqMaxReadyRequests} \ -put-req-max-number-of-retries=${srmPutReqMaxNumberOfRetries} \ -put-req-retry-timeout=${srmPutReqRetryTimeout} \ -put-req-max-num-of-running-by-same-owner=${srmPutReqMaxNumOfRunningBySameOwner} \ -copy-req-thread-queue-size=${srmCopyReqThreadQueueSize} \ -copy-req-thread-pool-size=${srmCopyReqThreadPoolSize} \ -copy-req-max-waiting-requests=${srmCopyReqMaxWaitingRequests} \ -copy-req-max-number-of-retries=${srmCopyReqMaxNumberOfRetries} \ -copy-req-retry-timeout=${srmCopyReqRetryTimeout} \ -copy-req-max-num-of-running-by-same-owner=${srmCopyReqMaxNumOfRunningBySameOwner} \ -recursive-dirs-creation=${RecursiveDirectoryCreation} \ -advisory-delete=${AdvisoryDelete} \ -jdbcUrl=jdbc:postgresql://${srmDatabaseHost}/${srmDbName} \ -jdbcDriver=org.postgresql.Driver \ -dbUser=${srmDbUser} \ -dbPass=${srmDbPassword} \ -pgPass=${srmPasswordFile} \ -log-request-history-in-db-enabled=${srmJdbcMonitoringLogEnabled} \ -num-days-history=${srmNumberOfDaysInDatabaseHistory} \ -old-request-remove-period-secs=${srmOldRequestRemovalPeriodSeconds} \ -jdbc-execution-thread-num=${srmJdbcExecutionThreadNum} \ -max-queued-jdbc-tasks-num=${srmMaxNumberOfJdbcTasksInQueue} \ -use-gplazma-authorization-cell=${useGPlazmaAuthorizationCell} \ -delegate-to-gplazma=${delegateToGPlazma} \ -use-gplazma-authorization-module=${useGPlazmaAuthorizationModule} \ -gplazma-authorization-module-policy=${gplazmaPolicy} \ -srm-authz-cache-lifetime=${srmAuthzCacheLifetime} \ -srmLoginBroker=srm-LoginBroker \ -protocolFamily=SRM \ -protocolVersion=1.1.1 \ -kpwd-file=${kpwdFile} \ # -loginBroker=LoginBroker \ # -brokerUpdateTime=300 \ -start_server=false \ # -qosPluginClass=${qosPluginClass} \ # -qosConfigFile=${qosConfigFile} \ -login-broker-update-period=${srmLoginBrokerUpdatePeriod} \ -num-doors-in-rand-selection=${srmNumberOfDoorsInRandomSelection} \ -overwrite=${overwriteEnabled} \ -overwrite_by_default=${srmOverwriteByDefault} \ -custom-get-host-by-addr=${srmCustomGetHostByAddr} \ -ignore-client-protocol-order=${srmIgnoreClientProtocolOrder}\ -size-of-single-remove-batch=${srmSizeOfSingleRemoveBatch}\ -clean-pending-requests-on-restart=${srmCleanPendingRequestsOnRestart}\ -use-asynchronous-ls=${srmAsynchronousLs}\ -max-number-of-ls-entries=${srmLsMaxNumberOfEntries}\ -max-number-of-ls-levels=${srmLsMaxNumberOfLevels}\ -ls-request-lifetime=${srmLsRequestLifetime}\ -ls-request-thread-queue-size=${srmLsRequestThreadQueueSize}\ -ls-request-thread-pool-size=${srmLsRequestThreadPoolSize}\ -ls-request-max-waiting-requests=${srmLsRequestMaxWaitingRequests}\ -ls-request-ready-queue-size=${srmLsRequestReadyQueueSize}\ -ls-request-max-ready-requests=${srmLsRequestMaxReadyRequests}\ -ls-request-max-number-of-retries=${srmLsRequestMaxNumberOfRetries}\ -ls-request-retry-timeout=${srmLsRequestRetryTimeout}\ -ls-request-max-num-of-running-by-same-owner=${srmLsRequestMaxNumberOfRunningBySameOwner}\ -client-dns-lookup=${srmClientDNSLookup}\ " 070701000798aa000081a4000000650000000a000000014acc6605000006cb000000b600010008ffffffffffffffff0000002900000000reloc/opt/d-cache/config/adminDoor.batchset printout default 2 set printout CellGlue none onerror shutdown # check -strong setupFile # copy file:${setupFile} context:setupContext # # import the variables into our $context. # don't overwrite already existing variables. # import context -c setupContext # # Make sure we got what we need. # check -strong adminPort # set context knownUsersFile ${keyBase}/authorized_keys set context serverKeyFile ${keyBase}/server_key set context hostKeyFile ${keyBase}/host_key set env AccessControlCell acm #set context userPasswordFile cell:pam set context userPasswordFile cell:${AccessControlCell} # # Cell communication # exec -run -shell file:${ourHomeDir}/config/tunnel.fragment # the rest is the ssh control path. # The current setup allows localhost login # without password. The 'server_key' and the # 'host_key' are assumed to be in the .../jobs' # directory . # # ssh-keygen -b 768 -f ./server_key -N "" # ssh-keygen -b 1024 -f ./host_key -N "" # # server_key : 768 bits # host_key : 1024 bits # # # create dmg.cells.services.login.SshKeyManager skm #create dmg.cells.services.login.LoginManager slm \ # "${sshPort} \ # dmg.cells.services.StreamLoginCell \ # -prot=ssh -auth=dmg.cells.services.login.SshSAuth_X" create dmg.cells.services.login.LoginManager alm \ "${adminPort} \ dmg.cells.services.login.StreamObjectCell \ -prot=ssh -auth=dmg.cells.services.login.SshSAuth_A \ diskCacheV111.admin.UserAdminShell" create dmg.cells.services.login.user.AclCell ${AccessControlCell} \ "${keyBase}/users -egpassword=${config}/passwd" create diskCacheV111.admin.PAMAuthentificator pam " -syspassword=/etc/shadow" 070701000798c1000081a4000000650000000a000000014acc66050000045f000000b600010008ffffffffffffffff0000002400000000reloc/opt/d-cache/config/setup.temp# # Created by dcache_1(diskCacheV111.pools.MultiProtocolPool2) at Tue Nov 02 11:25:00 CET 2004 # set max diskspace 100g set heartbeat 30 set sticky allowed set report remove on set breakeven 0.7 set gap 4294967296 set duplicate request none set p2p separated # # Flushing Thread setup # flush set max active 1000 flush set interval 60 flush set retry delay 60 # # HsmStorageHandler2(diskCacheV111.pools.HsmStorageHandler2) # rh set max active 0 st set max active 0 rh set timeout 14400 st set timeout 14400 # hsm set osm -hsmBase=/work/data/nfs/qcdperm # hsm set osm -pnfs=/pnfs/fs # hsm set osm -command=/opt/d-cache/jobs/hsmcpV4.sh # # Nothing from the diskCacheV111.pools.SpaceSweeper0# mover set max active 10 p2p set max active 10 # # Pool to Pool (P2P) [$Id: setup.temp,v 1.7 2007-03-21 14:11:42 radicke Exp $] # pp set port 0 pp set max active 10 jtm set timeout -queue=io -lastAccess=0 -total=0 jtm set timeout -queue=p2p -lastAccess=0 -total=0 csm set checksumtype adler32 csm set policy -frequently=off csm set policy -onread=off -onwrite=on -onrestore=off -ontransfer=off -enforcecrc=on -getcrcfromhsm=off 070701000798b4000081a4000000650000000a000000014acc660500000ae1000000b600010008ffffffffffffffff0000002b00000000reloc/opt/d-cache/config/gsidcapdoor.batchset printout default 2 set printout CellGlue none onerror shutdown # check -strong setupFile # copy file:${setupFile} context:setupContext # # import the variables into our $context. # don't overwrite already existing variables. # import context -c setupContext # # Make sure we got what we need. # check -strong dCapGsiPort # Cell communication exec -run -shell file:${ourHomeDir}/config/tunnel.fragment # Stage protection exec -run -shell file:${ourHomeDir}/config/stage.fragment doors # Permission configuration exec -run -shell file:${ourHomeDir}/config/permission.fragment # # onerror continue set context -c useGPlazmaAuthorizationModule false set context -c useGPlazmaAuthorizationCell true set context -c gplazmaPolicy ${ourHomeDir}/etc/dcachesrm-gplazma.policy set context -c gsidcapIoQueue "" set context -c gsidcapIoQueueOverwrite denied set context -c gsidcapMaxLogin 1500 # # ---- Usage of Srm Space Manager # # If srmSpaceManagerEnabled is on we need to use SrmSpaceManager # as both poolManager and poolProxy # onerror continue set context -c srmSpaceManagerEnabled no define env srmSpaceManagerOn.exe endExe set env -c doorPoolManager "SrmSpaceManager" endExe eval ${srmSpaceManagerEnabled} yes == set env srmSpaceManagerIsOn ${rc} exec env srmSpaceManagerOn.exe -run -ifok=srmSpaceManagerIsOn set context -c doorPoolManager "PoolManager" onerror shutdown # # # create dmg.cells.services.login.LoginManager DCap-gsi-${thisHostname} \ "${dCapGsiPort} \ diskCacheV111.doors.DCapDoor \ -export \ -prot=telnet -localOk \ -maxLogin=${gsidcapMaxLogin} \ -poolManager=${doorPoolManager} \ -loginBroker=LoginBroker \ -brokerUpdateTime=120 \ -protocolFamily=gsidcap \ -protocolVersion=1.3.0 \ -authorization=strong \ -poolProxy=PoolManager \ -permission-handler=${permissionHandler} \ -aclTable=${aclTable} \ -aclConnDriver=${aclConnDriver} \ -aclConnUrl=${aclConnUrl} \ -aclConnUser=${aclConnUser} \ -aclConnPswd=${aclConnPswd} \ -stageConfigurationFilePath=${stageConfigurationFilePath} \ -io-queue=${gsidcapIoQueue} \ -io-queue-overwrite=${gsidcapIoQueueOverwrite} \ -use-gplazma-authorization-module=${useGPlazmaAuthorizationModule} \ -use-gplazma-authorization-cell=${useGPlazmaAuthorizationCell} \ -gplazma-authorization-module-policy=${gplazmaPolicy} \ -socketfactory=javatunnel.TunnelServerSocketCreator,javatunnel.GsiTunnel,dummy" # # 070701000798b9000081a4000000650000000a000000014acc66050000021f000000b600010008ffffffffffffffff0000002200000000reloc/opt/d-cache/config/lm.batch# # Location Manager Domain # set printout default 2 set printout CellGlue none # onerror shutdown # check -strong setupFile # copy file:${setupFile} context:setupContext # # import the variables into our $context. # don't overwrite already existing variables. # import context -c setupContext # # Make sure we got what we need. # check -strong serviceLocatorPort # # The LocationManager Part # create dmg.cells.services.LocationManager lm \ "${serviceLocatorPort} -strict=no -noclient -setup=${ourHomeDir}/config/lm.config" # 070701000798bb000081a4000000650000000a000000014acc660500000b8c000000b600010008ffffffffffffffff0000002a00000000reloc/opt/d-cache/config/log4j.properties# # $Id: log4j.properties,v 1.5 2007-10-25 12:11:27 tigran Exp $ # # Notice that further filtering is done in the stdout appender log4j.rootLogger=INFO, stdout, pinboard # We don't want Cells internal INFO logging to appear on the pinboard, # so we raise the log level to WARN. log4j.logger.dmg.cells.nucleus=WARN # Tracing events log4j.logger.events=OFF, events log4j.additivity.events=false # dCache developers logging log4j.additivity.logger.dev=false log4j.additivity.dev=false log4j.logger.logger.dev=OFF, traceFile log4j.logger.dev=OFF, traceFile # Nothing is logged to this logger. Its sole purpose is to list all # appenders available; this ensures that the appenders are available # in the dCache admin interface. log4j.additivity.dummy=false log4j.logger.dummy=OFF,stdout,pinboard,traceFile,events # Silence noisy log targets log4j.logger.COM.claymoresystems.ptls.SSLDebug=OFF log4j.logger.logger.org.dcache.cells.messages=ERROR # # Appenders # # # transactionlog # file log4j.appender.transactionlog=org.apache.log4j.FileAppender log4j.appender.transactionlog.file=transaction.log log4j.appender.transactionlog.layout=org.apache.log4j.PatternLayout log4j.appender.transactionlog.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss} %m%n log4j.appender.transactionlog.append=true # stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Threshold=WARN log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss} (%X{cells.cell}) [%x] %m%n # pinboard log4j.appender.pinboard=dmg.util.PinboardAppender log4j.appender.pinboard.layout=org.apache.log4j.PatternLayout log4j.appender.pinboard.layout.ConversionPattern=[%t] [%x] %m # events log4j.appender.events=org.apache.log4j.FileAppender log4j.appender.events.file=/tmp/events.out log4j.appender.events.layout=org.apache.log4j.PatternLayout log4j.appender.events.layout.ConversionPattern=ts=%d{yyyy-mm-dd}T%d{HH:mm:ss.SSS} %m%n # traceFile log4j.appender.traceFile=org.apache.log4j.RollingFileAppender log4j.appender.traceFile.File=/tmp/trace.out # Control the maximum log file size log4j.appender.R.MaxFileSize=100MB # Archive log files (one backup file here) log4j.appender.traceFile.MaxBackupIndex=1 log4j.appender.traceFile.layout=org.apache.log4j.PatternLayout log4j.appender.traceFile.layout.ConversionPattern=%d{yymmdd HH:mm:ss} (%X{cells.cell}@%X{domain}) [%t] [%x] %c %l %m%n # Mail # # SMTPAppender needs jars from j2ee: mail.jar, j2ee.jar, activation.jar # #log4j.appender.mail=org.apache.log4j.net.SMTPAppender #log4j.appender.mail.To=tigran@mail.desy.de #log4j.appender.mail.layout=org.apache.log4j.PatternLayout #log4j.appender.mail.Subject=[dCache all-in-one] ERROR #log4j.appender.mail.BufferSize=512 #log4j.appender.mail.From=dCache@anahit.desy.de #log4j.appender.mail.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n #log4j.appender.mail.SMTPHost=smtp.desy.de 070701000798bf000081a4000000650000000a000000014acc660500000ca0000000b600010008ffffffffffffffff0000002400000000reloc/opt/d-cache/config/pool.batchset printout default 2 set printout CellGlue none onerror shutdown # check -strong setupFile # copy file:${setupFile} context:setupContext # # import the variables into our $context. # don't overwrite already existing variables. # import context -c setupContext # # Don't continue if the pool list file is not known # check -strong pool # # Cell communication # exec -run -shell file:${ourHomeDir}/config/tunnel.fragment # onerror continue set context -c poolIoQueue "" set context -c checkRepository true set context -c waitForRepositoryReady false set context -c gsiftpAllowPassivePool true set context -c gsiftpAllowMmap false set context -c metaDataRepository org.dcache.pool.repository.meta.file.FileMetaDataRepository set context -c metaDataRepositoryImport org.dcache.pool.repository.meta.EmptyMetaDataStore set context -c gsiftpReadAhead 16777216 set context -c allowCleaningPreciousFiles false set context -c pnfsmanager PnfsManager set context -c flushMessageTarget broadcast set context -c sweeper org.dcache.pool.classic.SpaceSweeper2 set context -c poolupDestination broadcast set context -c xrootdMoverDiskThreads 20 set context -c xrootdMoverSocketThreads 5 set context -c xrootdMoverMaxMemoryPerConnection 16777216 set context -c xrootdMoverMaxMemory 67108864 onerror shutdown # # NIO ftp mover # define context MoverMap endDefine movermap define DCap-3 org.dcache.pool.movers.DCapProtocol_3_nio movermap define GFtp-1 org.dcache.pool.movers.GFtpProtocol_2_nio movermap define GFtp-2 org.dcache.pool.movers.GFtpProtocol_2_nio movermap define NFS4-4 org.dcache.chimera.nfsv41.mover.NFSv41ProtocolMover movermap define Xrootd-2 org.dcache.xrootd2.pool.XrootdProtocol_3 endDefine # This defines how to instantiate the pool code. # # Notice that most of the following arguments are redundant, since # the values will be picked up from the context if not defined as # an option. ############################################### define context startPools endDefine create org.dcache.cells.UniversalSpringCell ${0} \ "!MoverMap classpath:org/dcache/pool/classic/pool.xml \ -export -poolname=${0} -pooldir=${1} \ -setupClass=pool -setupFile=${1}/setup \ -poolIoQueue=${poolIoQueue} \ -checkRepository=${checkRepository} \ -allowPassivePool=${gsiftpAllowPassivePool} \ -allowMmap=${gsiftpAllowMmap} \ -metaDataRepository=${metaDataRepository} \ -metaDataRepositoryImport=${metaDataRepositoryImport} \ -gsiftpReadAhead=${gsiftpReadAhead} \ -allowCleaningPreciousFiles=${allowCleaningPreciousFiles} \ -poolupDestination=${poolupDestination} \ -pnfsmanager=${pnfsmanager} \ -flushMessageTarget=${flushMessageTarget} \ -sweeper=${sweeper} \ -xrootd-mover-disk-threads=${xrootdMoverDiskThreads} \ -xrootd-mover-socket-threads=${xrootdMoverSocketThreads} \ -xrootd-mover-max-memory-per-connection=${xrootdMoverMaxMemoryPerConnection} \ -xrootd-mover-max-memory=${xrootdMoverMaxMemory} \ -${2} -${3} -${4} -${5} -${6} -${7} -${8}" endDefine copy file:${pool} context:poolList exec -run -loop=poolList context startPools 070701000798b8000081a4000000650000000a000000014acc66050000049a000000b600010008ffffffffffffffff0000002c00000000reloc/opt/d-cache/config/infoProvider.batch# # $Id: infoProvider.batch,v 1.5 2007-03-21 14:11:42 radicke Exp $ # set printout default 2 set printout CellGlue none onerror shutdown # check -strong setupFile # copy file:${setupFile} context:setupContext # # import the variables into our $context. # don't overwrite already existing variables. # import context -c setupContext # # Cell communication # exec -run -shell file:${ourHomeDir}/config/tunnel.fragment # # ---- Info Collector Cell # # Setting default values for ${infoCollectorPort}: onerror continue set context -c infoCollectorPort 22111 set context -c infoCollectorInterval 180 onerror shutdown # # /** # * # * USAGE : # * -schema=SCHEMA_TYPE # * -interval=SLEEP_IN_SECONDS # default = 60 seconds # * -listenPort=TCP_LISTEN_PORT # default = 22111 # * # */ # create org.dcache.services.infoCollector.InfoCollector InfoCollector \ "default \ -export \ -interval=${infoCollectorInterval} \ # -schema=org.dcache.services.infoCollector.GlueSchemaV1_2 \ -listenPort=${infoCollectorPort} \ " # # 070701000798ab000081a4000000650000000a000000014acc660500000581000000b600010008ffffffffffffffff0000002800000000reloc/opt/d-cache/config/authdoor.batch# # $Id: authdoor.batch,v 1.1 2008-05-08 11:11:42 catalind Exp $ # set printout default 2 set printout CellGlue none onerror shutdown # check -strong setupFile # copy file:${setupFile} context:setupContext # # import the variables into our $context. # don't overwrite already existing variables. # import context -c setupContext # # Make sure we got what we need. # check -strong dCapPort # # Cell communication # exec -run -shell file:${ourHomeDir}/config/tunnel.fragment # # onerror continue set context -c dcapMaxLogin 1500 set context -c dcapIoQueue "" set context -c dcapIoQueueOverwrite denied set context -c dcapPasswdFile "/opt/d-cache/etc/passwd4dCapDoor" onerror shutdown # # dCap D o o r # create dmg.cells.services.login.LoginManager DCap-${thisHostname} \ "${dCapPort} \ -export \ diskCacheV111.doors.DCapDoor \ -keepAlive=300 \ -poolRetry=2700 \ -prot=telnet \ -pswdfile=${dcapPasswdFile} \ -truncate=${truncate} \ -maxLogin=${dcapMaxLogin} \ -brokerUpdateTime=30 \ -protocolFamily=dcap \ -protocolVersion=1.3.0 \ -poolProxy=PoolManager \ -io-queue=${dcapIoQueue} \ -io-queue-overwrite=${dcapIoQueueOverwrite} \ -loginBroker=LoginBroker \ " # # 070701000798c0000081a4000000650000000a000000014acc660500000af7000000b600010008ffffffffffffffff0000002700000000reloc/opt/d-cache/config/replica.batchset printout default 2 set printout CellGlue none onerror shutdown # check -strong setupFile # copy file:${setupFile} context:setupContext # # import the variables into our $context. # don't overwrite already existing variables. # import context -c setupContext # # Cell communication # exec -run -shell file:${ourHomeDir}/config/tunnel.fragment # # Replica Manager Cell # # Default values for ${replicaManagerDatabaseHost}: # If not set, set it to 'localhost' # onerror continue set context -c replicaManagerDatabaseHost localhost set context -c replicaDbName replicas set context -c replicaDbUser srmdcache set context -c replicaDbPassword srmdcache set context -c replicaPasswordFile "" set context -c replicaDbJdbcDriver org.postgresql.Driver set context -c resilientGroupName ResilientPools set context -c replicaPoolWatchDogPeriod 600 set context -c replicaWaitDBUpdateTimeout 600 set context -c replicaExcludedFilesExpirationTimeout 43200 set context -c replicaDelayDBStartTimeout 1200 set context -c replicaAdjustStartTimeout 1200 set context -c replicaWaitReplicateTimeout 43200 set context -c replicaWaitReduceTimeout 43200 set context -c replicaDebug false set context -c replicaMaxWorkers 6 set context -c replicaMin 2 set context -c replicaMax 3 set context -c replicaCheckPoolHost true set context -c replicaEnableSameHostReplica false onerror shutdown # create diskCacheV111.replicaManager.ReplicaManagerV2 replicaManager \ "default \ -export \ -debug=${replicaDebug} \ -dbClass=diskCacheV111.replicaManager.ReplicaDbV1 \ -configDirectory=${config} \ -coldStart \ # -hotRestart \ -maxWorkers=${replicaMaxWorkers} \ -min=${replicaMin} \ -max=${replicaMax} \ -resilientGroupName=${resilientGroupName} \ -poolWatchDogPeriod=${replicaPoolWatchDogPeriod} \ -excludedFilesExpirationTO=${replicaExcludedFilesExpirationTimeout} \ -waitDBUpdateTO=${replicaWaitDBUpdateTimeout} \ -delayDBStartTO=${replicaDelayDBStartTimeout} \ -delayAdjStartTO=${replicaAdjustStartTimeout} \ -waitReplicateTO=${replicaWaitReplicateTimeout} \ -waitReduceTO=${replicaWaitReduceTimeout} \ -dbURL=jdbc:postgresql://${replicaManagerDatabaseHost}/${replicaDbName} \ -jdbcDrv=${replicaDbJdbcDriver} \ -dbUser=${replicaDbUser} \ -dbPass=${replicaDbPassword} \ -pgPass=${replicaPasswordFile} \ -XXcheckPoolHost=${replicaCheckPoolHost} \ -enableSameHostReplica=${replicaEnableSameHostReplica} \ " 070701000798bd000081a4000000650000000a000000014acc66050000063f000000b600010008ffffffffffffffff0000002d00000000reloc/opt/d-cache/config/permission.fragment# Defines permission handling related defaults and the logic to enable # ACLs. onerror continue # Default values set context -c permissionPolicyEnforcementPoint doors set context -c aclEnabled false set context -c aclTable t_acl set context -c aclConnDriver org.postgresql.Driver set context -c aclConnUrl jdbc:postgresql://localhost/chimera?prepareThreshold=3 set context -c aclConnUser postgres set context -c aclConnPswd "" # Defines the permission handler for ACL checking in doors define env permission-check-acl-in-doors.exe end set context -c permissionHandler diskCacheV111.services.acl.ACLPermissionHandler,diskCacheV111.services.acl.UnixPermissionHandler end # Defines the permission handler for permission checking in PnfsManager define env permission-check-pnfsmanager.exe end set context -c permissionHandler "" end # If PEP is set to PnfsManager, then clear permissionHandler. If # permissionHandler is already defined, then the existing value will # take precedence. eval ${permissionPolicyEnforcementPoint} PnfsManager == exec env permission-check-pnfsmanager.exe -run -ifok # If ACLs is enabled, then set permissionHandler to both ACL and UNIX # PermissionHandlers. If permissionHandler is already defined, then # the existing value will take precedence. eval ${aclEnabled} true == exec env permission-check-acl-in-doors.exe -run -ifok # If permissionHandler was not set by any of the previous actions, # then we set it to the UnixPermissionHandler here. set context -c permissionHandler diskCacheV111.services.acl.UnixPermissionHandler onerror shutdown 070701000798ae000081a4000000650000000a000000014acc660500000bee000000b600010008ffffffffffffffff0000002700000000reloc/opt/d-cache/config/chimera.batchset printout default 2 set printout CellGlue none onerror shutdown # check -strong setupFile # copy file:${setupFile} context:setupContext # # import the variables into our $context. # don't overwrite already existing variables. # import context -c setupContext # # Make sure we got what we need. # # Cell communication exec -run -shell file:${ourHomeDir}/config/tunnel.fragment # Permission configuration exec -run -shell file:${ourHomeDir}/config/permission.fragment # # If companionDatabaseHost and defaultPnfsServer are not set in dCacheSetup, use localhost, for pnfs use /pnfs/fs: # onerror continue set context -c companionDatabaseHost localhost set context -c defaultPnfsServer localhost set context -c pnfs /pnfs/fs set context -c pnfsNumberOfThreads 4 set context -c pnfsNumberOfThreadGroups 1 set context -c pnfsNumberOfListThreads 1 # # defaults for Access Latency and Retention Policy # set context -c DefaultAccessLatency "" set context -c DefaultRetentionPolicy "" onerror shutdown # create diskCacheV111.namespace.PnfsManagerV3 PnfsManager \ "org.dcache.chimera.namespace.ChimeraOsmStorageInfoExtractor \ -cmRelay=broadcast \ -threads=${pnfsNumberOfThreads} \ -threadGroups=${pnfsNumberOfThreadGroups} \ -listThreads=${pnfsNumberOfListThreads} \ -pnfsDeleteRelay=SrmSpaceManager \ -default=${defaultPnfsServer} \ -pnfs=${pnfs} \ -DefaultAccessLatency=${DefaultAccessLatency} \ -DefaultRetentionPolicy=${DefaultRetentionPolicy} \ -aclEnabled=${aclEnabled} \ -aclTable=${aclTable} \ -aclConnDriver=${aclConnDriver} \ -aclConnUrl=${aclConnUrl} \ -aclConnUser=${aclConnUser} \ -aclConnPswd=${aclConnPswd} \ -chimeraConfig=${config}/chimera-config.xml \ -namespace-provider=org.dcache.chimera.namespace.ChimeraNameSpaceProviderFactory \ -cachelocation-provider=org.dcache.chimera.namespace.ChimeraNameSpaceProviderFactory \ " # # The 'remove' handler (informs the dCache about pfns removes) # # # Cleaner # onerror continue set context -c cleanerRefresh 120 set context -c cleanerRecover 240 set context -c cleanerPoolTimeout 100 set context -c cleanerProcessFilesPerRun 500 onerror shutdown # onerror continue create org.dcache.chimera.namespace.ChimeraCleaner cleaner \ "-export \ -refresh=${cleanerRefresh} \ -recover=${cleanerRecover} \ -reportRemove=broadcast \ -poolTimeout=${cleanerPoolTimeout} \ -processFilesPerRun=${cleanerProcessFilesPerRun} \ -chimeraConfig=${config}/chimera-config.xml \ " # # ACL-administration # onerror continue # create org.dcache.acl.AclCell acladmin \ "-export \ -aclEnabled=${aclEnabled} \ -aclTable=${aclTable} \ -aclConnDriver=${aclConnDriver} \ -aclConnUrl=${aclConnUrl} \ -aclConnUser=${aclConnUser} \ -aclConnPswd=${aclConnPswd} \ " onerror shutdown 070701000798bc000081a4000000650000000a000000014acc6605000002e9000000b600010008ffffffffffffffff0000002600000000reloc/opt/d-cache/config/nfsv41.batch# # $Id: nfsv41.batch $ # set printout default 2 set printout CellGlue none onerror shutdown # check -strong setupFile # copy file:${setupFile} context:setupContext # # import the variables into our $context. # don't overwrite already existing variables. # import context -c setupContext # # Make sure we got what we need. # check -strong serviceLocatorPort serviceLocatorHost # create dmg.cells.services.RoutingManager RoutingMgr # # The LocationManagerc Part # create dmg.cells.services.LocationManager lm \ "${serviceLocatorHost} ${serviceLocatorPort}" onerror shutdown # # NFSv4.1 D o o r # create org.dcache.cells.UniversalSpringCell NFSv41 \ "classpath:org/dcache/chimera/nfsv41/door/nfsv41.xml -export" # # 070701000798ac000081a4000000650000000a000000014acc660500000084000000b600010008ffffffffffffffff0000002900000000reloc/opt/d-cache/config/c3p0.properties # turn on statement pooling c3p0.maxStatements=150 c3p0.maxStatementsPerConnection=150 # connection pool size c3p0.maxPoolSize=64 070701000798ba000081a4000000650000000a000000014acc660500000108000000b600010008ffffffffffffffff0000002300000000reloc/opt/d-cache/config/lm.config# # This setup was created by the LocationManager at Sat Oct 27 00:27:03 CEST 2001 # # Mission Control # define dCacheDomain listen dCacheDomain # # define * defaultroute * dCacheDomain connect * dCacheDomain # # we possibly need this as well # define lmDomain 070701000798be000081a4000000650000000a000000014acc6605000013c6000000b600010008ffffffffffffffff0000002400000000reloc/opt/d-cache/config/pnfs.batchset printout default 2 set printout CellGlue none onerror shutdown # check -strong setupFile # copy file:${setupFile} context:setupContext # # import the variables into our $context. # don't overwrite already existing variables. # import context -c setupContext # Cell communication exec -run -shell file:${ourHomeDir}/config/tunnel.fragment # Permission configuration exec -run -shell file:${ourHomeDir}/config/permission.fragment # # The PnfsManager Part # # The following cryptic lines will do this logic: # # if cacheInfo=companion # ==> cacheInfoProvider=diskCacheV111.namespace.provider.SQLCacheLocationProviderFactory # # else if cacheInfo= or missing # ==> cacheInfoProvider=diskCacheV111.namespace.provider.BasicNameSpaceProviderFactory # -p. # onerror continue set env cacheInfoProvider diskCacheV111.namespace.provider.BasicNameSpaceProviderFactory define context setcontext.exe endDefine set env cacheInfoProvider diskCacheV111.namespace.provider.SQLCacheLocationProviderFactory set context -c pnfsNumberOfLocationThreads 0 set env locationThreads ${pnfsNumberOfLocationThreads} endDefine eval ${cacheInfo} companion == exec context setcontext.exe -run -ifok=rc onerror shutdown # # If companionDatabaseHost and defaultPnfsServer are not set in dCacheSetup, use localhost, for pnfs use /pnfs/fs: # onerror continue set context -c companionDatabaseHost localhost set context -c defaultPnfsServer localhost set context -c pnfs /pnfs/fs set context -c pnfsInfoExtractor diskCacheV111.util.OsmInfoExtractor set context -c pnfsNumberOfThreads 4 set context -c pnfsNumberOfThreadGroups 1 set context -c pnfsNumberOfListThreads 1 set context -c namespaceProvider diskCacheV111.namespace.provider.BasicNameSpaceProviderFactory set context -c pnfsDbUser srmdcache set context -c pnfsDbPassword srmdcache set context -c pnfsPasswordFile "" set context -c pnfsFolding false set env -c locationThreads 0 # # defaults for Access Latency and Retention Policy # set context -c DefaultAccessLatency "" set context -c DefaultRetentionPolicy "" onerror shutdown # create diskCacheV111.namespace.PnfsManagerV3 PnfsManager \ "${pnfsInfoExtractor} \ -enableLargeFileSimulation \ -storeFilesize \ -cmRelay=broadcast \ -pnfsDeleteRelay=SrmSpaceManager \ -threads=${pnfsNumberOfThreads} \ -threadGroups=${pnfsNumberOfThreadGroups} \ -listThreads=${pnfsNumberOfListThreads} \ -default=${defaultPnfsServer} \ -pnfs=${pnfs} \ -aclEnabled=${aclEnabled} \ -aclTable=${aclTable} \ -aclConnDriver=${aclConnDriver} \ -aclConnUrl=${aclConnUrl} \ -aclConnUser=${aclConnUser} \ -aclConnPswd=${aclConnPswd} \ -DefaultAccessLatency=${DefaultAccessLatency} \ -DefaultRetentionPolicy=${DefaultRetentionPolicy} \ -namespace-provider=${namespaceProvider} \ -cachelocation-provider=${cacheInfoProvider} \ -cachelocation-provider-dbURL=jdbc:postgresql://${companionDatabaseHost}/companion \ -cachelocation-provider-jdbcDrv=org.postgresql.Driver \ -cachelocation-provider-dbUser=${pnfsDbUser} \ -cachelocation-provider-dbPass=${pnfsDbPassword} \ -cachelocation-provider-pgPass=${pnfsPasswordFile} \ -cachelocation-threads=${locationThreads} \ -folding=${pnfsFolding} \ " # # The 'remove' handler (informs the dCache about pfns removes) # # Default value to be backwards compatible: onerror continue set context -c trash "" set context -c cleanerDB /opt/pnfsdb/pnfs/trash/2 set context -c cleanerRefresh 120 set context -c cleanerRecover 240 set context -c cleanerPoolTimeout 100 set context -c cleanerProcessFilesPerRun 500 set context -c cleanerArchive none onerror shutdown onerror continue create diskCacheV111.cells.CleanerV2 cleaner \ "default \ -export \ -trash=${trash} \ -refresh=${cleanerRefresh} \ -recover=${cleanerRecover} \ -db=${cleanerDB} \ -reportRemove=broadcast \ -poolTimeout=${cleanerPoolTimeout} \ -processFilesPerRun=${cleanerProcessFilesPerRun} \ -archive=${cleanerArchive} \ " # # HSM cleaner. # onerror continue set context -c hsmCleaner disabled set context -c hsmCleanerTrash /opt/pnfsdb/pnfs/trash/1 set context -c hsmCleanerRepository /opt/pnfsdb/pnfs/trash/1/current define context hsmcleaner.exe endDefine create org.dcache.services.hsmcleaner.HSMCleaner hsmcleaner endDefine eval ${hsmCleaner} enabled == exec context hsmcleaner.exe -run -ifok=rc onerror shutdown # # ACL-administration # onerror continue # create org.dcache.acl.AclCell acladmin \ "-export \ -aclEnabled=${aclEnabled} \ -aclTable=${aclTable} \ -aclConnDriver=${aclConnDriver} \ -aclConnUrl=${aclConnUrl} \ -aclConnUser=${aclConnUser} \ -aclConnPswd=${aclConnPswd} \ " onerror shutdown 070701000798b0000081a4000000650000000a000000014acc6605000001e9000000b600010008ffffffffffffffff0000002300000000reloc/opt/d-cache/config/dir.batch# # $Id: dir.batch,v 1.4 2007-03-21 14:11:42 radicke Exp $ # set printout default 2 set printout CellGlue none onerror shutdown # check -strong setupFile # copy file:${setupFile} context:setupContext # # import the variables into our $context. # don't overwrite already existing variables. # import context -c setupContext # # Cell communication # exec -run -shell file:${ourHomeDir}/config/tunnel.fragment create diskCacheV111.pools.DirectoryLookUpPool dirLookupPool "-export" 070701000798b3000081a4000000650000000a000000014acc6605000011f9000000b600010008ffffffffffffffff0000002b00000000reloc/opt/d-cache/config/gridftpdoor.batchset printout default 2 set printout CellGlue none onerror shutdown # check -strong setupFile # copy file:${setupFile} context:setupContext # # import the variables into our $context. # don't overwrite already existing variables. # import context -c setupContext # Cell communication exec -run -shell file:${ourHomeDir}/config/tunnel.fragment # Stage protection exec -run -shell file:${ourHomeDir}/config/stage.fragment doors # Permission configuration exec -run -shell file:${ourHomeDir}/config/permission.fragment # # GridFTP Door # # Default for all our variables # onerror continue set context -c gsiFtpPortNumber 2811 set context -c spaceReservation false set context -c spaceReservationStrict false set context -c performanceMarkerPeriod 70 set context -c kpwdFile ${ourHomeDir}/etc/dcache.kpwd set context -c useGPlazmaAuthorizationCell true set context -c delegateToGPlazma false set context -c useGPlazmaAuthorizationModule false set context -c gplazmaPolicy ${ourHomeDir}/etc/dcachesrm-gplazma.policy set context -c gsiftpPoolManagerTimeout 5400 set context -c gsiftpPoolTimeout 600 set context -c gsiftpPnfsTimeout 300 set context -c gsiftpMaxRetries 80 set context -c gsiftpMaxStreamsPerClient 10 set context -c gsiftpDefaultStreamsPerClient 1 set context -c gsiftpDeleteOnConnectionClosed true set context -c gsiftpMaxLogin 100 set context -c clientDataPortRange 20000:25000 set context -c gsiftpAdapterInternalInterface "" set context -c gsiftpIoQueue "" set context -c overwriteEnabled false set context -c gsiftpAllowPassivePool false set context -c FtpTLogDir "" # # ---- Usage of Srm Space Manager # # If srmSpaceManagerEnabled is on we need to use SrmSpaceManager # as both poolManager and poolProxy # onerror continue set context -c srmSpaceManagerEnabled no define env srmSpaceManagerOn.exe endExe set env -c gsiftpPoolProxy "SrmSpaceManager" set env -c gsiftpPoolManager "SrmSpaceManager" endExe eval ${srmSpaceManagerEnabled} yes == set env srmSpaceManagerIsOn ${rc} exec env srmSpaceManagerOn.exe -run -ifok=srmSpaceManagerIsOn set context -c gsiftpPoolProxy "PoolManager" set context -c gsiftpPoolManager "PoolManager" # # onerror shutdown # create dmg.cells.services.login.LoginManager GFTP-${thisHostname} \ "${gsiFtpPortNumber} \ -export \ diskCacheV111.doors.GsiFtpDoorV1 \ -prot=raw \ -clientDataPortRange=${clientDataPortRange} \ -poolProxy=${gsiftpPoolProxy} \ -poolManager=${gsiftpPoolManager} \ -root=${ftpBase} \ -maxLogin=${gsiftpMaxLogin} \ -brokerUpdateTime=5 \ -protocolFamily=gsiftp \ -protocolVersion=1.0.0 \ -loginBroker=LoginBroker \ -space-reservation=${spaceReservation} \ -space-reservation-strict=${spaceReservationStrict} \ -perfMarkerPeriod=${performanceMarkerPeriod} \ -poolManagerTimeout=${gsiftpPoolManagerTimeout} \ -poolTimeout=${gsiftpPoolTimeout} \ -pnfsTimeout=${gsiftpPnfsTimeout} \ -maxRetries=${gsiftpMaxRetries} \ -maxStreamsPerClient=${gsiftpMaxStreamsPerClient} \ -defaultStreamsPerClient=${gsiftpDefaultStreamsPerClient} \ -deleteOnConnectionClosed=${gsiftpDeleteOnConnectionClosed} \ -use-gplazma-authorization-cell=${useGPlazmaAuthorizationCell} \ -delegate-to-gplazma=${delegateToGPlazma} \ -use-gplazma-authorization-module=${useGPlazmaAuthorizationModule} \ -gplazma-authorization-module-policy=${gplazmaPolicy} \ -io-queue=${gsiftpIoQueue} \ -kpwd-file=${kpwdFile} \ -permission-handler=${permissionHandler} \ -aclTable=${aclTable} \ -aclConnDriver=${aclConnDriver} \ -aclConnUrl=${aclConnUrl} \ -aclConnUser=${aclConnUser} \ -aclConnPswd=${aclConnPswd} \ -stageConfigurationFilePath=${stageConfigurationFilePath} \ -ftp-adapter-internal-interface=${gsiftpAdapterInternalInterface} \ -overwrite=${overwriteEnabled} \ -allowPassivePool=${gsiftpAllowPassivePool} \ -tlog=${FtpTLogDir} \ " # -tlog=/tmp/dcache-ftp-tlog \ # -gsi-helper-cmd=${homeRoot}/dcache-deploy/gsint/gsint.sh \ # -retryWait=60 \ 070701000798c7000081a4000000650000000a000000014acc660500000471000000b600010008ffffffffffffffff0000002a00000000reloc/opt/d-cache/config/xrootdDoor.batch# # $Id: xrootdDoor.batch,v 1.8 2007-05-09 12:29:07 radicke Exp $ # set printout default 2 set printout CellGlue none onerror shutdown # check -strong setupFile # copy file:${setupFile} context:setupContext # # import the variables into our $context. # don't overwrite already existing variables. # import context -c setupContext # # Make sure we got what we need. # check -strong xrootdPort # # Cell communication # exec -run -shell file:${ourHomeDir}/config/tunnel.fragment # # onerror continue # set context -c xrootdAuthzPlugin org.dcache.xrootd2.security.plugins.tokenauthz.TokenAuthorizationFactory set context -c xrootdIsReadOnly true set context -c xrootdAllowedPaths "" set context -c xrootdIoQueue "" set context -c xrootdAuthzPlugin org.dcache.xrootd2.security.plugins.tokenauthz.NoAuthorizationFactory set context -c xrootdAuthzKeystore /opt/d-cache/etc/keystore set context -c xrootdMaxLogin 50 set context -c xrootdMaxOpenFilesPerConnection 5000 onerror shutdown # # create org.dcache.cells.UniversalSpringCell Xrootd-${thisHostname} \ "classpath:org/dcache/xrootd2/door/xrootd.xml -export" 070701000798c5000081a4000000650000000a000000014acc6605000005ba000000b600010008ffffffffffffffff0000002900000000reloc/opt/d-cache/config/tunnel.fragment# # Configure cell communication # check -strong serviceLocatorHost serviceLocatorPort set context -c messageBroker cells set context -c amqPort 11112 set context -c amqSSLPort 11113 set context -c amqHost ${serviceLocatorHost} set context -c amqUrl failover:tcp://${amqHost}:${amqPort} set context -c amqSpool /var/spool/d-cache/amq set context -c jmsTunnel classpath:org/dcache/cells/amq.xml set context -c jmsEmbeddedTunnel classpath:org/dcache/cells/amq-embedded.xml # Connect to JMS broker define env tunnel-jms.exe end create org.dcache.cells.UniversalSpringCell JMS \ "-cellType=System ${jmsTunnel}" end # Start embedded JMS broker and cells-JMS gateway define env tunnel-jms-broker.exe end create org.dcache.cells.UniversalSpringCell JMS \ "-cellType=System ${jmsEmbeddedTunnel}" create dmg.cells.services.LocationManager lm \ "${serviceLocatorHost} ${serviceLocatorPort}" end # Use the classic cells tunnel define env tunnel-cells.exe end create dmg.cells.services.RoutingManager RoutingMgr create dmg.cells.services.LocationManager lm \ "${serviceLocatorHost} ${serviceLocatorPort}" end # Start embedded broker in dCacheDomain define env tunnel-embedded-jms.exe end eval ${thisDomain} dCacheDomain == exec env tunnel-jms-broker.exe -run -ifok eval ${thisDomain} dCacheDomain != exec env tunnel-jms.exe -run -ifok end onerror continue exec env tunnel-${messageBroker}.exe -run onerror shutdown 070701000798c4000081a4000000650000000a000000014acc6605000002ad000000b600010008ffffffffffffffff0000002a00000000reloc/opt/d-cache/config/statistics.batch# # $Id: statistics.batch,v 1.4 2007-03-21 14:11:42 radicke Exp $ # set printout default 2 set printout CellGlue none onerror shutdown # check -strong setupFile # copy file:${setupFile} context:setupContext # import the variables into our $context. # don't overwrite already existing variables. # import context -c setupContext # # Make sure we got what we need. # check -strong statisticsLocation # # Cell communication # exec -run -shell file:${ourHomeDir}/config/tunnel.fragment create diskCacheV111.services.PoolStatisticsV0 PoolStatistics \ "${statisticsLocation} \ # -create \ # -htmlBase=${statisticsLocation} \ -domain=${thisFqHostname}" 070701000798c3000081a4000000650000000a000000014acc660500000201000000b600010008ffffffffffffffff0000002800000000reloc/opt/d-cache/config/stage.fragment# Defines stage protection related defaults and implements the stage # PEP logic. # Default values onerror continue set context -c stageConfigurationFilePath "" set context -c stagePolicyEnforcementPoint doors onerror shutdown # Disables stage PEP in this domain define env stage-disable-pep.exe end set context stageConfigurationFilePath "" end # Decide whether to enable the stage PEP onerror continue eval ${stagePolicyEnforcementPoint} ${1} != exec env stage-disable-pep.exe -run -ifok onerror shutdown 070701000798a9000081a4000000650000000a000000014acc660500000b61000000b600010008ffffffffffffffff0000002a00000000reloc/opt/d-cache/config/PoolManager.conf# # $Id: PoolManager.conf,v 1.4 2007-07-05 13:45:57 radicke Exp $ # # Setup of PoolManager (diskCacheV111.poolManager.PoolManagerV5) # set pool decision -spacecostfactor=1.0 -cpucostfactor=1.0 # # # The units ... # psu create unit -net 0.0.0.0/255.255.255.255 psu create unit -net 0.0.0.0/0.0.0.0 psu create unit -store *@* psu create unit -protocol */* # # The unit Groups ... # psu create ugroup any-store psu addto ugroup any-store *@* psu create ugroup world-net psu addto ugroup world-net 0.0.0.0/0.0.0.0 psu create ugroup any-protocol psu addto ugroup any-protocol */* # # The pools ... # # psu create pool cms-pool # # The pool groups ... # psu create pgroup default psu create pgroup ResilientPools # psu create pgroup all-pools # psu addto pgroup all-pools cms-pool # # The links ... # psu create link default-link any-store world-net any-protocol psu set link default-link -readpref=10 -writepref=10 -cachepref=10 -p2ppref=-1 psu add link default-link default # psu add link default-link all-pools # # # The link groups ... # # psu create linkGroup default-link-group # psu addto linkGroup default-link-group default-link # psu set linkGroup attribute -r default-link-group HSM=None # # to define a link group capable of storing # custodial type of files HSM attribute should be Non-None # like in this example: # psu set linkGroup attribute -r default-link-group HSM=OSM # # If no Vo information is assigned to the LinkGroup, any Vo group can make reservation # please see the following examples of how to assign particular VOs and VO Groups to a given link: # # 1) assign VOs to a LinkGroup. While PoolManager does not have a ability to specify # VO and Role it's given to it as attributes of the linkGroup. # psu set linkGroup attribute default-link-group VO=alice # psu set linkGroup attribute default-link-group VO=cms # psu set linkGroup attribute default-link-group VO=atlas # # 2) to add Roles for a VO see the following example. # Here syntax is important. The role attribute name is constructed from + "Role" # # psu set linkGroup attribute default-link-group cmsRole=/cms/NULL/production # psu set linkGroup attribute default-link-group cmsRole=/cms/NULL/mc # # Submodule [rc] : class diskCacheV111.poolManager.RequestContainerV5 # #rc onerror suspend #rc set max retries 3 #rc set retry 900 #rc set warning path billing #rc set p2p oncost #rc set stage off #rc set fallback oncost off #set costcut 1.0 2.0 # # # rc onerror suspend rc set max retries 999 rc set max retries 3 rc set retry 900 rc set warning path billing rc set poolpingtimer 600 rc set slope 0.0 rc set p2p oncost rc set stage oncost off rc set stage off set timeout pool 120 set costcuts -idle=0.0 -p2p=2.0 -alert=0.0 -halt=0.0 -fallback=0.0 rc set max copies 500 rc set max restore unlimited rc set sameHostCopy besteffort rc set max threads 0 # # Cost Module # cm set magic on 070701000798ad000081a4000000650000000a000000014acc660500000209000000b600010008ffffffffffffffff0000002c00000000reloc/opt/d-cache/config/chimera-config.xml 2049 0 /tmp/himera.log 070701000798c6000081a4000000650000000a000000014acc660500000b01000000b600010008ffffffffffffffff0000002700000000reloc/opt/d-cache/config/utility.batchset printout default 2 set printout CellGlue none onerror shutdown # check -strong setupFile # copy file:${setupFile} context:setupContext # # import the variables into our $context. # don't overwrite already existing variables. # import context -c setupContext # # Make sure we got what we need. # # check -strong dCapPort sshPort ftpPort srmPort # Cell communication exec -run -shell file:${ourHomeDir}/config/tunnel.fragment # Stage protection exec -run -shell file:${ourHomeDir}/config/stage.fragment doors # # # create diskCacheV111.admin.PAMAuthentificator gsi-pam \ " -users=class:diskCacheV111.admin.UserMetaDataProviderFnal \ -kpwd-file=${kpwdFile}" # # # ---------------------------------------------------------------------- # Default Setup # ---------------------------------------------------------------------- # onerror continue set context -c srmDbHost localhost set context -c srmDbName dcache set context -c srmDbUser srmdcache set context -c srmDbPassword srmdcache set context -c srmPasswordFile "" set context -c spaceManagerDatabaseHost ${srmDbHost} set context -c pinManagerDbHost ${srmDbHost} set context -c pinManagerDbName ${srmDbName} set context -c pinManagerDbUser ${srmDbUser} set context -c pinManagerDbPassword ${srmDbPassword} # ----- Tape Protection set context -c pinManagerPasswordFile "${srmPasswordFile}" # in seconds, -1 for infinite set context -c pinManagerMaxPinDuration "-1" set context -c kpwdFile ${ourHomeDir}/etc/dcache.kpwd set context -c pinManagerMaxActiveJdbcConnections 50 set context -c pinManagerMaxJdbcConnectionsWaitSec 180 set context -c pinManagerMaxIdleJdbcConnections 10 onerror shutdown # # # # create diskCacheV111.util.ThreadManager ThreadManager \ "default \ -num-threads=100 \ -thread-timeout=15 \ " # ---------------------------------------------------------------------- # Pin Manager Cell # ---------------------------------------------------------------------- # # create org.dcache.services.pinmanager1.PinManager PinManager \ "default \ -export \ -jdbcDriver=org.postgresql.Driver \ -jdbcUrl=jdbc:postgresql://${pinManagerDbHost}/${pinManagerDbName} \ -dbUser=${pinManagerDbUser} \ -dbPass=${pinManagerDbPassword} \ -pgPass=${pinManagerPasswordFile} \ -maxPinDuration=${pinManagerMaxPinDuration} \ -maxActiveJdbcConnections=${pinManagerMaxActiveJdbcConnections} \ -maxJdbcConnectionsWaitSec=${pinManagerMaxJdbcConnectionsWaitSec} \ -maxIdleJdbcConnections=${pinManagerMaxIdleJdbcConnections} \ -stageConfigurationFilePath=${stageConfigurationFilePath} \ " # # 070701000798af000081a4000000650000000a000000014acc660500000a5a000000b600010008ffffffffffffffff0000002600000000reloc/opt/d-cache/config/dCache.batchset printout default 2 set printout CellGlue none onerror shutdown # check -strong setupFile ourHomeDir # copy file:${setupFile} context:setupContext # # import the variables into our $context. # don't overwrite already existing variables. # import context -c setupContext # Cell communication exec -run -shell file:${ourHomeDir}/config/tunnel.fragment # Stage protection exec -run -shell file:${ourHomeDir}/config/stage.fragment PoolManager # # create org.dcache.cells.UniversalSpringCell PoolManager \ "classpath:diskCacheV111/poolManager/poolmanager.xml \ -setupFile=${config}/PoolManager.conf \ -export \ -replyObject" # create diskCacheV111.hsmControl.DummyStager Prestager "${config}" # ----------------------------------------------------------------------- # Broadcast Cell # ----------------------------------------------------------------------- # # ---- Registration of the Replica Manager # # If replicaManager is on, it needs some messages broadcasted: # It is off by default onerror continue set context -c replicaManager no define env replicaManagerOn.exe endExe set env -c broadcastSetupReplicaManager1 "register diskCacheV111.vehicles.PoolStatusChangedMessage replicaManager" set env -c broadcastSetupReplicaManager2 "register diskCacheV111.vehicles.PnfsModifyCacheLocationMessage replicaManager" set env -c broadcastSetupReplicaManager3 "register diskCacheV111.vehicles.PoolRemoveFilesMessage replicaManager" endExe eval ${replicaManager} yes == set env replicaManagerIsOn ${rc} exec env replicaManagerOn.exe -run -ifok=replicaManagerIsOn set env -c broadcastSetupReplicaManager1 "" set env -c broadcastSetupReplicaManager2 "" set env -c broadcastSetupReplicaManager3 "" onerror shutdown # # ---- The broadcast Setup # define context broadcastSetup endDefine ${broadcastSetupReplicaManager1} ${broadcastSetupReplicaManager2} ${broadcastSetupReplicaManager3} register diskCacheV111.vehicles.PoolRemoveFilesMessage billing register diskCacheV111.vehicles.PoolFileFlushedMessage SrmSpaceManager register diskCacheV111.vehicles.PoolRemoveFilesMessage SrmSpaceManager register diskCacheV111.vehicles.PoolRemoveFilesMessage PinManager register diskCacheV111.vehicles.PoolManagerPoolUpMessage PoolManager endDefine # # ---- Startup # create dmg.cells.services.multicaster.BroadcastCell broadcast \ "default -export" # # --- LoginBroker startup. It is used by SRM for discovery of # available doors and their loads # create dmg.cells.services.login.LoginBroker LoginBroker "default -export" # 070701000798b6000081a4000000650000000a000000014acc660500000400000000b600010008ffffffffffffffff0000002800000000reloc/opt/d-cache/config/httpdoor.batchset printout default 2 set printout CellGlue none onerror shutdown # check -strong setupFile # copy file:${setupFile} context:setupContext # # import the variables into our $context. # don't overwrite already existing variables. # import context -c setupContext # # Cell communication # exec -run -shell file:${ourHomeDir}/config/tunnel.fragment # # HTTP Door # # Default for all our variables # onerror continue set context -c httpPortNumber 2880 set context -c httpAllowedPaths "" set context -c httpRootPath / set context -c httpMaxLogin 100 # create dmg.cells.services.login.LoginManager HTTP-${thisHostname} \ "${httpPortNumber} \ -export \ diskCacheV111.doors.HttpDoor \ -prot=raw \ -maxLogin=${httpMaxLogin} \ -brokerUpdateTime=5 \ -protocolFamily=http \ -protocolVersion=1.0.0 \ -allowedPaths=${httpAllowedPaths} \ -rootPath=${httpRootPath} 070701000798a8000081a4000000650000000a000000014acc660500000957000000b600010008ffffffffffffffff0000002200000000reloc/opt/d-cache/config/JHRM.map 0707010007990f000041ed000000650000000a000000024acc660b00000000000000b600010008ffffffffffffffff0000001600000000reloc/opt/d-cache/etc0707010007991c000081a4000000650000000a000000014acc660b000018cb000000b600010008ffffffffffffffff0000003000000000reloc/opt/d-cache/etc/psql_install_replicas.sql-- -- Name: proc; Type: SCHEMA; Schema: -; Owner: dcache -- CREATE SCHEMA proc; -- -- Name: SCHEMA public; Type: COMMENT; Schema: -; -- COMMENT ON SCHEMA public IS 'Standard public schema'; SET search_path = public, pg_catalog; -- -- Name: poolids; Type: SEQUENCE; Schema: public; -- CREATE SEQUENCE poolids INCREMENT BY 1 NO MAXVALUE MINVALUE 10001 CACHE 1; SET default_tablespace = ''; SET default_with_oids = false; -- -- Name: pools; Type: TABLE; Schema: public; -- CREATE TABLE pools ( pool text NOT NULL, status text, datestamp timestamp without time zone, poolid integer DEFAULT nextval('poolids'::regclass) NOT NULL, countable boolean DEFAULT true ); -- -- Name: replicas; Type: TABLE; Schema: public; -- CREATE TABLE replicas ( pool text NOT NULL, pnfsid text NOT NULL, datestamp timestamp without time zone, poolid integer NOT NULL, bitmask integer NOT NULL, countable boolean NOT NULL, excluded boolean NOT NULL ); SET search_path = proc, pg_catalog; -- -- Name: replicas; Type: VIEW; Schema: proc; -- CREATE VIEW replicas AS SELECT replicas.pool, replicas.pnfsid FROM public.replicas, public.pools WHERE ((replicas.pool = pools.pool) AND (pools.status = 'online'::text)); SET search_path = public, pg_catalog; -- -- Name: actions; Type: TABLE; Schema: public; -- CREATE TABLE actions ( "action" text NOT NULL, spool text NOT NULL, pnfsid text NOT NULL, dpool text NOT NULL, datestamp timestamp without time zone, "timestamp" bigint ); -- -- Name: configuration; Type: TABLE; Schema: public; -- CREATE TABLE configuration ( label text NOT NULL, value text, "comment" text ); -- -- Name: deficient; Type: TABLE; Schema: public; -- CREATE TABLE deficient ( pnfsid text, count integer ); -- -- Name: drainoff; Type: TABLE; Schema: public; -- CREATE TABLE drainoff ( pnfsid text ); -- -- Name: excluded; Type: TABLE; Schema: public; -- CREATE TABLE excluded ( pool text NOT NULL, pnfsid text NOT NULL, datestamp timestamp without time zone, "timestamp" bigint, poolid integer NOT NULL, bitmask integer NOT NULL, errcode text, errmsg text ); -- -- Name: files; Type: TABLE; Schema: public; -- CREATE TABLE files ( pnfsid text NOT NULL, datestamp timestamp without time zone DEFAULT now(), al integer, rp integer, fsize bigint, nmin integer, nmax integer, excluded boolean DEFAULT false, deleted boolean DEFAULT false, state integer, "valid" boolean DEFAULT true, sclass text ); -- -- Name: heartbeat; Type: TABLE; Schema: public; -- CREATE TABLE heartbeat ( process text NOT NULL, description text, datestamp timestamp without time zone ); -- -- Name: history; Type: TABLE; Schema: public; -- CREATE TABLE history ( pool text NOT NULL, pnfsid text NOT NULL, datestamp timestamp without time zone, "timestamp" timestamp without time zone DEFAULT now() ); -- -- Name: history_a; Type: TABLE; Schema: public; -- CREATE TABLE history_a ( "old" boolean DEFAULT false ) INHERITS (history); -- -- Name: history_b; Type: TABLE; Schema: public; -- CREATE TABLE history_b ( "old" boolean DEFAULT true ) INHERITS (history); -- -- Name: redundant; Type: TABLE; Schema: public; -- CREATE TABLE redundant ( pnfsid text, count integer ); -- -- Name: shadow; Type: TABLE; Schema: public; -- CREATE TABLE shadow ( ) INHERITS (replicas); -- -- Name: files_pkey; Type: CONSTRAINT; Schema: public; -- ALTER TABLE ONLY files ADD CONSTRAINT files_pkey PRIMARY KEY (pnfsid); -- -- Name: hbprocess; Type: CONSTRAINT; Schema: public; -- ALTER TABLE ONLY heartbeat ADD CONSTRAINT hbprocess PRIMARY KEY (process); -- -- Name: poolname; Type: CONSTRAINT; Schema: public; -- ALTER TABLE ONLY pools ADD CONSTRAINT poolname PRIMARY KEY (pool); -- -- Name: replica; Type: CONSTRAINT; Schema: public; -- ALTER TABLE ONLY replicas ADD CONSTRAINT replica PRIMARY KEY (pool, pnfsid); -- -- Name: history_a_idx; Type: INDEX; Schema: public; -- CREATE INDEX history_a_idx ON history_a USING btree (pnfsid); -- -- Name: history_b_idx; Type: INDEX; Schema: public; -- CREATE INDEX history_b_idx ON history_b USING btree (pnfsid); -- -- Name: history_idx; Type: INDEX; Schema: public; -- CREATE INDEX history_idx ON history USING btree (pnfsid); -- -- Name: poolid_idx; Type: INDEX; Schema: public; -- CREATE UNIQUE INDEX poolid_idx ON pools USING btree (poolid); -- -- Name: pools_pool_indx; Type: INDEX; Schema: public; -- CREATE INDEX pools_pool_indx ON replicas USING btree (pool); -- -- Name: replicas_pnfsid_indx; Type: INDEX; Schema: public; -- CREATE INDEX replicas_pnfsid_indx ON replicas USING btree (pnfsid); -- -- Name: add2files; Type: RULE; Schema: public; -- CREATE RULE add2files AS ON INSERT TO replicas DO INSERT INTO files (pnfsid, datestamp) VALUES (new.pnfsid, now()); -- -- Name: in_files; Type: RULE; Schema: public; -- CREATE RULE in_files AS ON INSERT TO files WHERE (EXISTS (SELECT 1 FROM files WHERE (files.pnfsid = new.pnfsid))) DO INSTEAD NOTHING; -- -- Name: replace_heartbeat; Type: RULE; Schema: public; -- CREATE RULE replace_heartbeat AS ON INSERT TO heartbeat WHERE (EXISTS (SELECT 1 FROM heartbeat WHERE (heartbeat.process = new.process))) DO INSTEAD UPDATE heartbeat SET datestamp = now() WHERE (heartbeat.process = new.process); -- -- Name: replace_replicas; Type: RULE; Schema: public; -- -- More test required --CREATE RULE replace_replicas AS ON INSERT TO replicas WHERE (EXISTS (SELECT 1 FROM replicas WHERE ((replicas.pool = new.pool) AND (replicas.pnfsid = new.pnfsid)))) DO INSTEAD UPDATE replicas SET datestamp = now() WHERE ((replicas.pool = new.pool) AND (replicas.pnfsid = new.pnfsid)); -- -- -- Name: replicas_pool_fkey; Type: FK CONSTRAINT; Schema: public; -- ALTER TABLE ONLY replicas ADD CONSTRAINT replicas_pool_fkey FOREIGN KEY (pool) REFERENCES pools(pool); -- -- Name: replicas_poolid_fkey; Type: FK CONSTRAINT; Schema: public; -- ALTER TABLE ONLY replicas ADD CONSTRAINT replicas_poolid_fkey FOREIGN KEY (poolid) REFERENCES pools(poolid); INSERT INTO configuration VALUES ('version','1.0','Initial version'); 07070100079912000081a4000000650000000a000000014acc660b00000dae000000b600010008ffffffffffffffff0000002f00000000reloc/opt/d-cache/etc/dcachesrm-gplazma.policy# ###### dcachesrm-gplazma.policy ####### # ###### gPLAZMA: grid-aware PLuggable AuthoriZation MAnagement. ####### # ###### gPLAZMAlite Suite: Built-in light-weight services for ####### # ###### grid legacy mapping & VO Role fine-grain security. ####### # ###### Version 0.1-1 ####### # This file contains gPLAZMA module's policy configuration in dCache-SRM. # Operational with: SRM, GridFTP. # CAUTION: Commenting out a switch|priority|configuration line (with a # sign) in # this file is equivalent to switching that plugin|service OFF. It is handled, but # please exercise caution to maintain the marker intact for possible future use. # Recommended way is to turn plugins|services OFF explicitly - using the switches. # Assertion results in a Disallow|Allow decision. # Authorization results in a Disallow|Allow decision with Authorization Record. # Switches and Priorities for Loadable Assertion Plugins|Services - Not supported - # ################################################################################# # #site-assertion= # Switches and Priorities for Loadable Authorization Plugins|Services # ################################################################################# # A valid switch is from { "OFF" | "ON" }. # A priority (based on site|VO policies) is required if switch is ON. # A valid priority is from { "1" | "2" | "3" | "4" } and must be unique. # Please note - # Each plugin returns a decision based on a different authorization repository| # service. Priorities are translated into priority of access (as compared to priority # of denial). A well-defined Over-riding Policy can be enforced while using multiple # authorization services (multiple switches ON) by defining priorities differently. # Turning all switches OFF leads the running system to a secure quasi-firewall mode. # Switches xacml-vo-mapping="OFF" saml-vo-mapping="OFF" kpwd="ON" grid-mapfile="OFF" gplazmalite-vorole-mapping="OFF" # Priorities xacml-vo-mapping-priority="5" saml-vo-mapping-priority="1" kpwd-priority="3" grid-mapfile-priority="4" gplazmalite-vorole-mapping-priority="2" # Configurable Options for Plugins|Services # ################################################################################# # Path to local or remotely accessible authorization repositories|services. # A valid path is required if corresponding switch is ON. # dcache.kpwd kpwdPath="/opt/d-cache/etc/dcache.kpwd" # grid-mapfile gridMapFilePath="/etc/grid-security/grid-mapfile" storageAuthzPath="/etc/grid-security/storage-authzdb" # XACML-based grid VO role mapping XACMLmappingServiceUrl="https://fledgling09.fnal.gov:8443/gums/services/GUMSXACMLAuthorizationServicePort" # Time in seconds to cache the mapping in memory xacml-vo-mapping-cache-lifetime="180" # SAML-based grid VO role mapping mappingServiceUrl="https://fledgling09.fnal.gov:8443/gums/services/GUMSAuthorizationServicePort" # Time in seconds to cache the mapping in memory saml-vo-mapping-cache-lifetime="180" # Built-in gPLAZMAlite grid VO role mapping gridVoRolemapPath="/etc/grid-security/grid-vorolemap" gridVoRoleStorageAuthzPath="/etc/grid-security/storage-authzdb" vomsValidation="false" # SAZ Settings saz-client="OFF" SAZ_SERVER_HOST="saz-server.oursite.edu" SAZ_SERVER_PORT="8888" # ################################################################################# # END 07070100079920000081a4000000650000000a000000014acc65fa00012451000000b600010008ffffffffffffffff0000002a00000000reloc/opt/d-cache/etc/srmv2.2-deploy.wsdd 0707010007991f000081a4000000650000000a000000014acc65fa00002e6f000000b600010008ffffffffffffffff0000002800000000reloc/opt/d-cache/etc/srmv1-deploy.wsdd 0707010007991b000081a4000000650000000a000000014acc660b000000e0000000b600010008ffffffffffffffff0000003100000000reloc/opt/d-cache/etc/psql_install_companion.sqlCREATE TABLE cacheinfo ( pnfsid CHAR(24) NOT NULL, pool VARCHAR(255) NOT NULL, ctime TIMESTAMP NOT NULL, UNIQUE(pnfsid, pool) ); CREATE INDEX pool_inx ON cacheinfo (pool); CREATE INDEX pnfs_inx ON cacheinfo (pnfsid); 07070100079914000081a4000000650000000a000000014acc660b000000a9000000b600010008ffffffffffffffff0000002800000000reloc/opt/d-cache/etc/keystore.templateKEY VO:* PRIVKEY:/opt/d-cache/etc/privkey PUBKEY:/opt/d-cache/etc/pubkey #KEY VO:ALICE PRIVKEY:/opt/d-cache/etc/privkey PUBKEY:/opt/d-cache/etc/pubkey0707010007991a000081a4000000650000000a000000014acc660b0000006e000000b600010008ffffffffffffffff0000002d00000000reloc/opt/d-cache/etc/psql_drop_replicas.sqlDROP TABLE action ; DROP VIEW proc.replicas ; DROP TABLE replicas ; DROP TABLE pools ; DROP TABLE heartbeat ; 0707010007991d000081a4000000650000000a000000014acc660b00000f0f000000b600010008ffffffffffffffff0000003000000000reloc/opt/d-cache/etc/psql_upgrade_replicas.sql-- -- Create configuration table -- CREATE TABLE configuration ( label text NOT NULL, value text, "comment" text ); INSERT INTO configuration VALUES ('version','1.0','Initial version'); -- -- Create a sequence for poolids -- CREATE SEQUENCE poolids INCREMENT BY 1 NO MAXVALUE MINVALUE 10001 CACHE 1; -- -- Change "pools" table -- ALTER TABLE pools ADD poolid integer DEFAULT nextval('poolids'::regclass) NOT NULL; ALTER TABLE pools ADD countable boolean DEFAULT true; CREATE UNIQUE INDEX poolid_idx ON pools USING btree (poolid); -- -- Create new "file" table -- CREATE TABLE files ( pnfsid text NOT NULL, datestamp timestamp without time zone DEFAULT now(), al integer, rp integer, fsize bigint, nmin integer, nmax integer, excluded boolean DEFAULT false, deleted boolean DEFAULT false, state integer, "valid" boolean DEFAULT true, sclass text ); -- -- Create primary key -- ALTER TABLE ONLY files ADD CONSTRAINT files_pkey PRIMARY KEY (pnfsid); -- -- Create the rule to handle multiple inserts for the same pnfsid -- CREATE OR REPLACE RULE in_files AS ON INSERT TO files WHERE (EXISTS (SELECT 1 FROM files WHERE (files.pnfsid = new.pnfsid))) DO INSTEAD NOTHING; -- -- Change "replicas" table -- ALTER TABLE replicas ADD poolid integer; ALTER TABLE replicas ADD bitmask integer; ALTER TABLE replicas ADD countable boolean; ALTER TABLE replicas ADD excluded boolean; ALTER TABLE ONLY replicas ADD CONSTRAINT replicas_pool_fkey FOREIGN KEY (pool) REFERENCES pools(pool); ALTER TABLE ONLY replicas ADD CONSTRAINT replicas_poolid_fkey FOREIGN KEY (poolid) REFERENCES pools(poolid); ALTER TABLE ONLY replicas ALTER poolid SET NOT NULL; ALTER TABLE ONLY replicas ALTER countable SET NOT NULL; ALTER TABLE ONLY replicas ALTER excluded SET NOT NULL; -- -- Two rules for replicas table. -- NOTICE that the rules for one table are aplied in the alphabethical order! -- So rule add2files will be aplied first... -- CREATE OR REPLACE RULE add2files AS ON INSERT TO replicas DO ALSO INSERT INTO files (pnfsid, datestamp) VALUES (new.pnfsid, now()); -- -- Rule replace_replicas will be aplied second. -- -- More tests required --CREATE OR REPLACE RULE replace_replicas AS -- ON INSERT TO replicas -- WHERE (EXISTS (SELECT 1 FROM replicas WHERE ((replicas.pool = new.pool) AND (replicas.pnfsid = new.pnfsid)))) -- DO INSTEAD -- UPDATE replicas SET datestamp = now() WHERE ((replicas.pool = new.pool) AND (replicas.pnfsid = new.pnfsid)); -- CREATE OR REPLACE RULE replace_heartbeat AS ON INSERT TO heartbeat WHERE EXISTS (SELECT 1 FROM heartbeat WHERE heartbeat.process = new.process) DO INSTEAD UPDATE heartbeat SET datestamp = now() WHERE (heartbeat.process = new.process); -- -- Deficient table -- CREATE TABLE deficient (pnfsid text, count int); -- -- Redundant table -- CREATE TABLE redundant (like deficient); -- -- Drainoff table -- CREATE TABLE drainoff (pnfsid text); -- -- Name: actions; Type: TABLE; Schema: public; -- CREATE TABLE actions ( "action" text NOT NULL, spool text NOT NULL, pnfsid text NOT NULL, dpool text NOT NULL, datestamp timestamp without time zone, "timestamp" bigint ); -- -- Name: excluded; Type: TABLE; Schema: public; -- CREATE TABLE excluded ( pool text NOT NULL, pnfsid text NOT NULL, datestamp timestamp without time zone, "timestamp" bigint, poolid integer NOT NULL, bitmask integer NOT NULL, errcode text, errmsg text ); -- -- Drop action table inherited replicas -- drop TABLE "action" ; -- -- Create a new table named "shadow" nherited replicas to trick the planner -- It does not have any data -- CREATE TABLE shadow () INHERITS (replicas); 07070100079917000081a4000000650000000a000000014acc660b00000030000000b600010008ffffffffffffffff0000002900000000reloc/opt/d-cache/etc/pool_path.template/xxxx 10 no /xxxx 30 no /xxxx 20 no /xxxx 50 no 0707010007991e000081a4000000650000000a000000014acc660b000004f9000000b600010008ffffffffffffffff0000002400000000reloc/opt/d-cache/etc/srm_setup.env# # # JAVA_HOME=/opt/jdk1.5.0_09 JAVA_OPTS="-Xmx512m -Djava.awt.headless=true -Dorg.globus.jglobus.delegation.cache.lifetime=30000" DCACHE_HOME=/opt/d-cache DCACHE_JARS_DIR=${DCACHE_HOME}/classes SRM_JARS_DIR=${DCACHE_JARS_DIR} CELLS_JARS_DIR=${DCACHE_JARS_DIR} AXIS_ARCHIVE=${DCACHE_HOME}/external/axis-1_3.tar.gz TOMCAT_ARCHIVE=${DCACHE_HOME}/external/apache-tomcat-5.5.20.tar.gz GLOBUS_JARS_DIR=${DCACHE_HOME}/classes/cog AXIS_BASE_PATH=${DCACHE_HOME}/libexec TOMCAT_BASE_PATH=${DCACHE_HOME}/libexec TOMCAT_PORT=8080 TOMCAT_HTTP_ENABLED=false #must be true to enable srm monitoring SRM_WEBAPP_DIR=${DCACHE_HOME}/srm-webapp SRM_BATCH=${DCACHE_HOME}/config/srm.batch SRM_SETUP=${DCACHE_HOME}/config/srmSetup SRM_STORAGE_CLASS=diskCacheV111.srm.dcache.Storage SRM_LOG_CONFIG=${DCACHE_HOME}/etc/logConfig.xml X509_CERT=/etc/grid-security/hostcert.pem X509_KEY=/etc/grid-security/hostkey.pem X509_CA_CERT_DIR=/etc/grid-security/certificates GRID_MAPFILE=/etc/grid-security/grid-mapfile SRM_V2_PORT=8443 SRMV1_WSDD=${DCACHE_HOME}/etc/srmv1-deploy.wsdd SRMV2_WSDD=${DCACHE_HOME}/etc/srmv2.2-deploy.wsdd TOMCAT_STARTUP_DELAY=10 DELETE_OLD_AXIS_TOMCAT=true TOMCAT_MAX_THREADS=500 TOMCAT_MIN_SPARE_THREADS=25 TOMCAT_MAX_SPARE_THREADS=200 PID_DIR=/var/run TOMCAT_ACCEPT_COUNT=1024 07070100079918000081a4000000650000000a000000014acc660b00000016000000b600010008ffffffffffffffff0000002e00000000reloc/opt/d-cache/etc/psql_drop_companion.sqlDROP TABLE cacheinfo; 07070100079910000081a4000000650000000a000000014acc660b0000a23d000000b600010008ffffffffffffffff0000002b00000000reloc/opt/d-cache/etc/dCacheSetup.template# # based on dCacheSetup.template $Revision: 1.33 $ # # ----------------------------------------------------------------------- # config/dCacheSetup # ----------------------------------------------------------------------- # # This is the central configuration file for a dCache instance. In # most cases it should be possible to keep it identical across the # nodes of one dCache instance. # # This template contains all options that can possibly be used. # Most may be left at the default value. If the option is commented # out below is indicates the default value. If it is not commented # out it is set to a reasonable value. # # To get a dCache instance running it is sufficient to set the # two options: # java The absolute location of the java binary # serviceLocatorHost The hostname of the admin node # # The other values should only be changed when advised to do so by # the documentation. # # ----------------------------------------------------------------------- # Cell Communication # ----------------------------------------------------------------------- # ---- Which message broker implementation to use # # Valid values are: cells, embedded-jms, jms # The default is: cells # # Selects between various message brokers. The message broker # determines how dCache cells communicate with each other. # # 'cells' is the classic cells location manager based system. The # serviceLocatorHost and serviceLocatorPort settings determine the # location service. # # 'embedded-jms' starts an embedded Apache ActiveMQ broker # in dCacheDomain and instructs other domains to connect to it. # # 'jms' uses an external Apache ActiveMQ broker. That broker is # configured outside of dCache. # # #messageBroker=cells # ---- Service Locater Host and Port # # Adjust this to point to one unique Service Location service. # This service must support precisely one dCache instance. This is # usually the admin node. # serviceLocatorHost=SERVER serviceLocatorPort=11111 # ---- Port and host used for ActiveMQ broker # # Determines the host and port used for the ActiveMQ broker. The # host defaults to the value of serviceLocatorHost. Only used if # messageBroker is set to either jms or embedded-jms. # #amqPort=11112 #amqHost=SERVER # ---- Connection URL for ActiveMQ # # By default, the ActiveMQ connection URL is formed from amqPort and # amqHost. amqUrl may be used to configure more advanced broker # topologies. Consult the ActiveMQ documentation for possible values. # The default is 'failover:tcp://${amqHost}:${amqPort}' # #amqUrl=failover:tcp://${amqHost}:${amqPort} # ---- ActiveMQ spool directory # # Determines the spool directory used by the embedded ActiveMQ # broker. Only used when messageBroker is set to embedded-jms and # only used by dCacheDomain. # #amqSpool=/var/spool/d-cache/amq # ----------------------------------------------------------------------- # Components # ----------------------------------------------------------------------- # To activate Replica Manager you need make changes in all 3 places: # 1) etc/node_config on ALL ADMIN NODES in this dcache instance. # 2) replicaSetup file on node where replica manager is runnig # 3) define Resilient pool group(s) in PoolManager.conf # ---- Will Replica Manager be started? # # Values: no, yes # Default: no # # This has to be set to 'yes' on every node, if there is a replica # manager in this dCache instance. Where the replica manager is # started is controlled in 'etc/node_config'. If it is not started # and this is set to 'yes' there will be error messages in # log/dCacheDomain.log. If this is set to 'no' and a replica # manager is started somewhere, it will not work properly. # #replicaManager=no # ---- Which pool-group will be the group of resilient pools? # # Values: , a pool-group name existing in the PoolManager.conf # Default: ResilientPools # # Only pools defined in pool group ResilientPools in # config/PoolManager.conf will be managed by ReplicaManager. You # must edit config/PoolManager.conf to make the replica manager # work. To use another pool group defined in PoolManager.conf for # replication, please specify group name by changing the setting: # #resilientGroupName=ResilientPools # Please scroll down "replica manager tuning" make this and other # changes. # ----------------------------------------------------------------------- # Java Configuration # ----------------------------------------------------------------------- # ---- The binary of the Java VM # # Adjust to the absolute location of the JVM binary: java. This # should be /bin/java # java="/usr/bin/java" # # ---- Options for the Java VM # # Do not change unless you know what you are doing. # # If the globus.tcp.port.range is changed, the clientDataPortRange # variable below MUST be changed accordingly. # java_options="-server -Xmx512m -XX:MaxDirectMemorySize=512m \ -Dsun.net.inetaddr.ttl=1800 \ -Dorg.globus.tcp.port.range=20000,25000 \ -Djava.net.preferIPv4Stack=true \ -Dorg.dcache.dcap.port=0 \ -Dorg.dcache.net.tcp.portrange=33115:33145 \ -Dlog4j.configuration=file:${ourHomeDir}/config/log4j.properties \ -Dorg.globus.jglobus.delegation.cache.lifetime=30000 \ " # ---- User # # If defined, the UID of the java process will be set. Notice that # log files will continue to be generated with the user id that # invoked the init script. When undefined or left blank, the UID # will not be changed. # #user= # # Additional option for Kerberos5 authentication: # -Djava.security.krb5.realm=FNAL.GOV \ # -Djava.security.krb5.kdc=krb-fnal-1.fnal.gov \ # # Other additional options that might be useful: # -Djavax.security.auth.useSubjectCredsOnly=false \ # -Djava.security.auth.login.config=/opt/d-cache/config/jgss.conf \ # -Xms400m \ # ---- Classpath # # Do not change unless you know what you are doing. # classesDir=${ourHomeDir}/classes classpath= # ---- The Library path # # Do not change unless yoy know what you are doing. # # This is currently not used. It might contain .so libraries for JNI. # librarypath=${ourHomeDir}/lib # ----------------------------------------------------------------------- # Filesystem Locations # ----------------------------------------------------------------------- # ---- Location of the configuration files # # Do not change unless you know what you are doing. # config=${ourHomeDir}/config # ---- Location of the ssh # # Do not change unless you know what you are doing. # keyBase=${ourHomeDir}/config # ---- SRM/GridFTP authentication file # # Do not change unless you know what you are doing. # kpwdFile=${ourHomeDir}/etc/dcache.kpwd # ---- Location of PID files # # Do not change unless you know what you are doing. # pidDir=/var/run # ----------------------------------------------------------------------- # pool tuning # ----------------------------------------------------------------------- # ---- General settings # # Do not change unless you know what you are doing. # #poolIoQueue= #checkRepository=true #waitForRepositoryReady=false # ---- Allow pool to remove precious files on request from cleaner. # # This option is respected only when a pool is connected to an HSM # ( lfs=none ). If lfs=precious then removal of precious files is # always allowed. # #allowCleaningPreciousFiles=false # ---- Which meta data repository implementation to use. # # Valid values are: # org.dcache.pool.repository.meta.file.FileMetaDataRepository # org.dcache.pool.repository.meta.db.BerkeleyDBMetaDataRepository # The default is: # org.dcache.pool.repository.meta.file.FileMetaDataRepository # # This selects which meta data repository implementation to use. # This is essentially a choice between storing meta data in a large # number of small files in the control/ directory, or to use the # embedded Berkeley database stored in the meta/ directory. Both # directories are within the pool directory. # #metaDataRepository=org.dcache.pool.repository.meta.file.FileMetaDataRepository # ---- Which meta data repository to import from. # # Valid values are: # org.dcache.pool.repository.meta.file.FileMetaDataRepository # org.dcache.pool.repository.meta.db.BerkeleyDBMetaDataRepository # org.dcache.pool.repository.meta.EmptyMetaDataRepository # The default is: # org.dcache.pool.repository.meta.EmptyMetaDataRepository # # This variable selects which meta data repository to import data # from if the information is missing from the main repository. This # is useful for converting from one repository implementation to # another, without having to fetch all the information from the # central PnfsManager. # #metaDataRepositoryImport=org.dcache.pool.repository.meta.EmptyMetaDataRepository # ----------------------------------------------------------------------- # gPlazma tuning # ----------------------------------------------------------------------- # # Do not change unless you know what you are doing. # gplazmaPolicy=${ourHomeDir}/etc/dcachesrm-gplazma.policy # #gPlazmaNumberOfSimutaneousRequests 30 #gPlazmaRequestTimeout 30 # #useGPlazmaAuthorizationModule=false #useGPlazmaAuthorizationCell=true #delegateToGPlazma=false # ----------------------------------------------------------------------- # dcap tuning # ----------------------------------------------------------------------- # #gsidcapIoQueue= #gsidcapIoQueueOverwrite=denied #gsidcapMaxLogin=1500 #dcapIoQueue= #dcapIoQueueOverwrite=denied #dcapMaxLogin=1500 # ----------------------------------------------------------------------- # gsiftp tuning # ----------------------------------------------------------------------- # ---- Period between successive GridFTP performance markers # # This variable controls how often performance markers are written. # The value is in seconds: set performanceMarkerPeriod to 180 to # get performanceMarkers every 3 minutes. A value of 0 will # disable performance markers. # # Default: 180 # #performanceMarkerPeriod=180 #gsiftpPoolManagerTimeout=5400 #gsiftpPoolTimeout=600 #gsiftpPnfsTimeout=300 #gsiftpMaxRetries=80 #gsiftpMaxStreamsPerClient=10 #gsiftpDefaultStreamsPerClient=5 #gsiftpDeleteOnConnectionClosed=true #gsiftpMaxLogin=100 #clientDataPortRange=20000:25000 #gsiftpIoQueue= #gsiftpAdapterInternalInterface= #remoteGsiftpIoQueue= #FtpTLogDir= # ---- Whether passive GridFTP transfers are allowed. # # This option defines whether a pool should accept incoming # connections for GridFTP transfers. # # Valid values are: # 'true' # 'false' # The default is: # 'false' for FTP doors # 'true' for pools # # If this variable is set to true, pools are allowed accept # incoming connections for GridFTP transfers. This only affects # passive transfers. Only passive transfers using GFD.47 GETPUT # (aka GridFTP 2) can be redirected to the pool. Other passive # transfers will be channelled through a proxy component at the FTP # door. If this variable is set to false, all passive transfers to # through a proxy. # # This setting is interpreted by both FTP doors and pools, with # different defaults. If set to true at the door, then the setting # at the individual pool will be used. # #gsiftpAllowPassivePool=false # ----------------------------------------------------------------------- # common to gsiftp and srm # ----------------------------------------------------------------------- # ---- Whether the SRM Space Manager should be enabled. # #srmSpaceManagerEnabled=no # ---- Whether implicit space reservations should be enabled. # # The following variable will have no effect unless the SRM Space # Manager is enabled. # #srmImplicitSpaceManagerEnabled=yes #overwriteEnabled=no # ----------------------------------------------------------------------- # Web Interface Configuration # ----------------------------------------------------------------------- # ---- Directory locations for dCache web interface # # The following two variables specify the absolute location of the # image and style directories for the dCache-internal web server. # # Do not change them unless you know what you are doing. # images=${ourHomeDir}/docs/images styles=${ourHomeDir}/docs/styles # ----------------------------------------------------------------------- # Network Configuration # ----------------------------------------------------------------------- # ---- Port Numbers for the various services # # Do not change these variables unless you know what you are doing. # portBase=22 dCapPort=${portBase}125 ftpPort=${portBase}126 kerberosFtpPort=${portBase}127 dCapGsiPort=${portBase}128 #gsiFtpPortNumber=2811 srmPort=8443 xrootdPort=1094 # ---- GridFTP port range # # Do not change unless you know what you are doing. # clientDataPortRange=20000:25000 # ---- Port Numbers for the monitoring and administration # # Do not change unless you know what you are doing. # adminPort=${portBase}223 httpdPort=${portBase}88 sshPort=${portBase}124 # Telnet is only started if the telnetPort line is uncommented. # This should be for debug use only. #telnetPort=${portBase}123 # ---- Transfer / TCP Buffer Size # # Do not change unless you know what you are doing. # bufferSize=1048576 tcpBufferSize=1048576 # ----------------------------------------------------------------------- # Maintenance Module Setup # ----------------------------------------------------------------------- # #maintenanceLibPath=${ourHomeDir}/var/lib/dCache/maintenance #maintenanceLibAutogeneratePaths=true #maintenanceLogoutTime=18000 # ----------------------------------------------------------------------- # Database Configuration # ----------------------------------------------------------------------- # # The srmDbHost variable is obsolete. For compatibility reasons, # it is still used if set and the following variables are not. # # The current setup assumes that one or more PostgreSQL servers are # used by the various dCache components. Currently the database user # 'srmdcache' with password 'srmdcache' is used by all components. # They use the databases 'dcache', 'replicas', 'companion' and # 'billing'. However, these might be located on separate hosts. # # The most performant configuration is to have the database server # running on the same host as the dCache component that will # access it. Therefore, the default value for all the following # variables is 'localhost'. Uncomment and change these variables # only if you have a reason to deviate from this scheme. # # For example, one valid deployment would be to put the 'billing' # database on different host than the pnfs server database and # companion, but keep the httpDomain on the admin host. # ---- pnfs Companion Database Host # # Do not change unless you know what you are doing. # # Database name: companion # #companionDatabaseHost=localhost # ---- SRM Database Host # # NB. If the srmDbHost variable is set and the following variable # is not then the value of srmDbHost is used. # # Do not change unless you know what you are doing. # # Database name: dcache # #srmDatabaseHost=localhost # ---- Space Manager Database Host # # NB. If the srmDbHost variable is set and the following variable # is not then the value of srmDbHost is used. # # Do not change unless you know what you are doing. # # Database name: dcache # #spaceManagerDatabaseHost=localhost # ---- Pin Manager Database Host # # NB. If the srmDbHost variable is set and the following variable # is not then the value of srmDbHost is used. # # Do not change unless you know what you are doing. # #pinManagerDbHost=localhost # ---- Pin Manager Database Name # # NB. If the srmDbName variable is set and the following variable # is not then the value of srmDbName is used. # # Do not change unless you know what you are doing. # #pinManagerDbName=dcache # ---- Pin Manager Database User # # NB. If the srmDbUser variable is set and the following variable # is not then the value of srmDbUser is used. # # Do not change unless you know what you are doing. # #pinManagerDbUser="srmdcache" # ---- Pin Manager Database Host # # NB. If the srmDbPassword variable is set and the following # variable is not then the value of srmDbPassword is used. # # Do not change unless you know what you are doing. # #pinManagerDbPassword= # ---- Pin Manager Database Host # # NB. If the srmDbPasswordFile variable is set and the following # variable is not then the value of srmDbPasswordFile is used. # # Do not change unless you know what you are doing. # # - Database name: dcache # #pinManagerPasswordFile="" # # ---- Pin Manager Maximum Number of Database connections # Do not change unless yoy know what you are doing. # #pinManagerMaxActiveJdbcConnections=50 # # ---- Pin Manager Maximum Number of seconds to wait for the connections # before returning an error # Do not change unless yoy know what you are doing. # #pinManagerMaxJdbcConnectionsWaitSec=180 # # ---- Pin Manager Maximum Number of Idle Database connections # Do not change unless yoy know what you are doing. # #pinManagerMaxIdleJdbcConnections=10 # ---- Replica Manager database settings # # Do not change unless you know what you are doing. # # Database name: replicas # #replicaManagerDatabaseHost=localhost #replicaDbName=replicas #replicaDbUser=srmdcache #replicaDbPassword=srmdcache #replicaPasswordFile="" #resilientGroupName=ResilientPools #replicaPoolWatchDogPeriod=600 #replicaWaitDBUpdateTimeout=600 #replicaExcludedFilesExpirationTimeout=43200 #replicaDelayDBStartTimeout=1200 #replicaAdjustStartTimeout=1200 #replicaWaitReplicateTimeout=43200 #replicaWaitReduceTimeout=43200 #replicaDebug=false #replicaMaxWorkers=6 #replicaMin=2 #replicaMax=3 # ---- Allow overwrite of existing files via GSIdCap # # allow=true, disallow=false # truncate=false # ---- pnfs Mount Point for (Grid-)FTP # # The current FTP door needs pnfs to be mounted for some file exist # checks and for the directory listing. Therefore it needs to know # where pnfs is mounted. In future the Ftp and dCap deamons will # ask the pnfsManager cell for help and the directory listing is # done by a DirListPool. # ftpBase=/pnfs/ftpBase # ----------------------------------------------------------------------- # pnfs Manager Configuration # ----------------------------------------------------------------------- # ---- pnfs Mount Point # # The mount point of pnfs on the admin node. The default value is: # /pnfs/fs # pnfs=/pnfs/fs # ---- Default pnfs server # # An older version of the pnfsManager actually autodetects the # possible pnfs filesystems. The defaultPnfsServer variable is # choosen from the list and used as primary pnfs filesystem. # Currently the others are ignored. The pnfs variable can be used # to override this mechanism. # #defaultPnfsServer=localhost # -- leave this unless you are running an enstore HSM backend. # #pnfsInfoExtractor=diskCacheV111.util.OsmInfoExtractor # ---- Number of threads per thread group # # Depending on how powerful your pnfs server host is you may set # this to up to 50. # #pnfsNumberOfThreads=4 # ---- Number of cache location threads # # The number of threads used for cache location updates and # lookups. If 0 then the regular pnfs manager thread queues are # used for cache location lookups. If non-zero then dedicated # threads for cache location operations are created. # #pnfsNumberOfLocationThreads=0 # ---- Number of thread groups # # A PNFS tree may be split into multiple databases. Each database is # single threaded and hence accessing the same database from # multiple threads provides only a minor speed-up. To ensure good # load balancing when using multiple databases, the PnfsManager # supports thread groups. Any database is assigned to one and only # one thread group, thus databases assigned to different thread # groups are guaranteed not to block each other. Each thread group # will have $pnfsNumberOfThreads threads. # # For best performance isolation, set this to be equal the largest # database ID defined in PNFS. When increasing # pnfsNumberOfThreadGroups, you may want to lower # pnfsNumberOfThreads. # # Notice that PNFS access is still subject to the number of threads # created in the PNFS daemon. If this number is lower than the # number of concurrent requests, then contention may still occur # even though multiple databases are used. # #pnfsNumberOfThreadGroups=1 # ---- Number of list threads # # The PnfsManager uses dedicated threads for directory list # operations. This variable controls the number of threads to # use. # #pnfsNumberOfListThreads=1 # -- don't change this # #namespaceProvider=diskCacheV111.namespace.provider.BasicNameSpaceProviderFactory # ---- Database configuration # # Only change these variables if you have configured you PostGreSQL # instance other than as recommended in the dCache Book. # #pnfsDbUser=srmdcache #pnfsDbPassword=srmdcache #pnfsPasswordFile= # ---- PnfsManager message folding # # Whether to use message folding in PnfsManager. When message folding # is enabled, the PnfsManager will try to fold or collapse processing of # identical messages. This can reduce the load on PNFS or Chimera if a # large number of simulatenous requests on the same objects are performed. # #pnfsFolding=false # ---- Storage for cacheinfo # # This variable defines where cacheinfo is to be stored. # # Valid values are: # companion # pnfs # # The default value is: # pnfs # # If 'companion' is specified then the cacheinfo will be stored in a # separate database. If 'pnfs' is specified, then cacheinfo will # be stored in pnfs. # # For new installations, 'companion' is recommended. # # For existing installations that store cacheinfo in pnfs must use # 'pnfs register' on every pool after switching from 'pnfs' to # 'companion'. See the documentation for more details. # cacheInfo=companion # ---- Default Access Latency and Retention Policy # # These variables affect only newly created files. # # The valid values are: # AccessLatency : NEARLINE, ONLINE # RetentionPolicy: CUSTODIAL, REPLICA, OUTPUT # However, do not use OUTPUT. # #DefaultRetentionPolicy=CUSTODIAL #DefaultAccessLatency=NEARLINE # ---- Location of the trash directory # # The cleaner, which can only run on the pnfs server machine # itself, autodetects the 'trash' directory. Non-empty 'trash' # overwrites this autodetected value. # #trash= # ---- Cleaner settings # # The cleaner stores persistency information in subdirectories of # the following directory. # # cleanerDB=/opt/pnfsdb/pnfs/trash/2 # cleanerRefresh=120 # cleanerRecover=240 # cleanerPoolTimeout=100 # cleanerProcessFilesPerRun=500 # cleanerArchive=none # ---- Whether to enable the HSM cleaner # # Valid values are: # disabled # enabled # # The default value is: # disabled # # The HSM cleaner scans the PNFS trash directory for deleted # files stored on an HSM and sends a request to an attached # pool to delete that file from the HSM. # # The HSM cleaner by default runs in the PNFS domain. To # enable the cleaner, this setting needs to be set to enabled # at the PNFS domain *and* at all pools that are supposed # to delete files from an HSM. # #hsmCleaner=disabled # ---- Location of trash directory for files on tape # # The HSM cleaner periodically scans this directory to # detect deleted files. # #hsmCleanerTrash=/opt/pnfsdb/pnfs/1 # ---- Location of repository directory of the HSM cleaner # # The HSM cleaner uses this directory to store information # about files in could not clean right away. The cleaner # will reattempt to clean the files later. # #hsmCleanerRepository=/opt/pnfsdb/pnfs/1/repository # ---- Interval between scans of the trash directory # # Specifies the time in seconds between successive scans of the # trash directory. # #hsmCleanerScan=90 # ---- Interval between retries # # Specifies the time in seconds between successive attempts to # clean files stored in the cleaner repository. # #hsmCleanerRecover=3600 # ---- Interval between flushing failures to the repository # # When the cleaner fails to clean a file, information about this # file is added to the repository. This setting specifies the time # in seconds between successive flushes to the repository. Until # the information is kept in memory and in the trash directory. # # Each flush will create a new file. A lower value will cause the # repository to be split into more files. A higher value will # cause a higher memory usage and a larger number of files in the # trash directory. # #hsmCleanerFlush=60 # ---- Max. length of in memory queue of files to clean # # When the trash directory is scanned, information about deleted # files is queued in memory. This variable specifies the maximum # length of this queue. When the queue length is reached, scanning # is suspended until files have been cleaned or flushed to the # repository. # #hsmCleanerCleanerQueue=10000 # ---- Timeout for pool communication # # Files are cleaned from an HSM by sending a message to a pool to # do so. This variable specifies the timeout in seconds after # which the operation is considered to have failed. # #hsmCleanerTimeout=120 # ---- Maximum concurrent requests to a single HSM # # Files are cleaned in batches. This variable specified the # largest number of files to include in a batch per HSM. # #hsmCleanerRequest=100 # ----------------------------------------------------------------------- # Directory Pools # ----------------------------------------------------------------------- # #directoryPoolPnfsBase=/pnfs/fs # ----------------------------------------------------------------------- # Srm Settings for experts # ----------------------------------------------------------------------- # #srmVersion=version1 #pnfsSrmPath=/ #parallelStreams=10 #srmAuthzCacheLifetime=60 #srmGetLifeTime=14400000 #srmBringOnlineLifeTime=14400000 #srmPutLifeTime=14400000 #srmCopyLifeTime=14400000 #srmTimeout=3600 #srmVacuum=true #srmVacuumPeriod=21600 #srmProxiesDirectory=/tmp #srmBufferSize=1048576 #srmTcpBufferSize=1048576 #srmDebug=true #srmGetReqThreadQueueSize=10000 #srmGetReqThreadPoolSize=250 #srmGetReqMaxWaitingRequests=1000 #srmGetReqReadyQueueSize=10000 #srmGetReqMaxReadyRequests=2000 #srmGetReqMaxNumberOfRetries=10 #srmGetReqRetryTimeout=60000 #srmGetReqMaxNumOfRunningBySameOwner=100 #srmBringOnlineReqThreadQueueSize=10000 #srmBringOnlineReqThreadPoolSize=250 #srmBringOnlineReqMaxWaitingRequests=1000 #srmBringOnlineReqReadyQueueSize=10000 #srmBringOnlineReqMaxReadyRequests=2000 #srmBringOnlineReqMaxNumberOfRetries=10 #srmBringOnlineReqRetryTimeout=60000 #srmBringOnlineReqMaxNumOfRunningBySameOwner=100 #srmPutReqThreadQueueSize=10000 #srmPutReqThreadPoolSize=250 #srmPutReqMaxWaitingRequests=1000 #srmPutReqReadyQueueSize=10000 #srmPutReqMaxReadyRequests=1000 #srmPutReqMaxNumberOfRetries=10 #srmPutReqRetryTimeout=60000 #srmPutReqMaxNumOfRunningBySameOwner=100 #srmCopyReqThreadQueueSize=10000 #srmCopyReqThreadPoolSize=250 #srmCopyReqMaxWaitingRequests=1000 #srmCopyReqMaxNumberOfRetries=10 #srmCopyReqRetryTimeout=60000 #srmCopyReqMaxNumOfRunningBySameOwner=100 #srmPoolManagerTimeout=300 #srmPoolTimeout=300 #srmPnfsTimeout=300 #srmMoverTimeout=7200 #remoteCopyMaxTransfers=150 #remoteHttpMaxTransfers=30 #remoteGsiftpMaxTransfers=${srmCopyReqThreadPoolSize} # #srmDbName=dcache #srmDbUser=srmdcache #srmDbPassword=srmdcache #srmDbLogEnabled=false # # srmls settings follow # # The following variable turnes of asynchronous srmls # behavior. SrmLs is executed in non-blocking mode on a # thread queue in the server and client is given request token. # Client can query status of request using this token. Async. # srmls avoids holding connections to the server while srmls is # executed. # #srmAsynchronousLs=false # # Number of entries allowed to be returnes in a single srmls request # (e.g. number of files in directory) # #srmLsMaxNumberOfEntries=1000 # # Maximum recursion depth # #srmLsMaxNumberOfLevels=100 # # Srmls schedule parameters: # #srmLsRequestThreadQueueSize=1000 #srmLsRequestThreadPoolSize=30 #srmLsRequestMaxWaitingRequests=1000 #srmLsRequestReadyQueueSize= 1000 #srmLsRequestMaxReadyRequests=60 #srmLsRequestMaxNumberOfRetries=10 #srmLsRequestRetryTimeout=60000 #srmLsRequestMaxNumberOfRunningBySameOwner=100 #srmLsRequestLifetime=3600000 # # The following variable enables logging of the history of the SRM # request transitions in the database so that it can be examined # though the srmWatch monitoring tool. #srmJdbcMonitoringLogEnabled=false # # Enabling the following option turns off the latest changes that # made service to honor the SRM client's protocol list order for # GET/PUT commands. This is needed temporarily to support old # srmcp clients. #srmIgnoreClientProtocolOrder=false # ---- SRM Password file. # # Set the following variable to /root/.pgpass for improved security. # # srmPasswordFile= # -- Enable overwrite for SRM v1.1. # # Set the following variable to true if you want overwrite to be # enabled for the SRM v1.1 interface as well as for SRM v2.2 # interface when client does not specify desired overwrite mode. # This option will be considered only if the overwriteEnabled # variable is set to yes (or true). # # srmOverwriteByDefault=false # ---- Enable custom address resolution. # # The srmCustomGetHostByAddr option enables a custom IP resolution, # if the standard InetAddress method fails. # # srmCustomGetHostByAddr=false # --srmClientDNSLookup # perform the lookup of the client hostname on basis of client ip # the result is used in pool pool selection # if srmClientDNSLookup is set to false (default) # client ip is used # srmClientDNSLookup=false # ---- Enable automatic creation of directories. # # Allow automatic creation of directories via SRM # # allow=true, disallow=false # RecursiveDirectoryCreation=true # ---- Allow delete via SRM # # Allow deletion of files via the SRM interface. # # allow=true, disallow=false # AdvisoryDelete=true #pinManagerDatabaseHost=${srmDbHost} #spaceManagerDatabaseHost=${srmDbHost} # ---- Reserve space for non SRM transfers. # # If the transfer request comes from the door and there was no # prior space reservation made for this file, should we try to # reserve space before satisfying the request? # #SpaceManagerReserveSpaceForNonSRMTransfers=false # ---- Location of LinkGroupAuthorizationFile # # The LinkGroupAuthorizationFileName file contains the list of VOMS # FQANs that are allowed to make space reservations within a given # link group. # #SpaceManagerLinkGroupAuthorizationFileName=/opt/d-cache/etc/LinkGroupAuthorization.conf # --- Default access latency used if space reservation request # does not specify one # #DefaultAccessLatencyForSpaceReservation=${DefaultAccessLatency} # if the srm is restarted and there are pending requests # their state will change to Failed or Done # if srmCleanPendingRequestsOnRestart is true #srmCleanPendingRequestsOnRestart=false # ----------------------------------------------------------------------- # Logging Configuration # ----------------------------------------------------------------------- # ---- Directory for the Log Files # # If no value is set, the default value is: # ${ourHomeDir}/log/ # logArea=/var/log # ---- Restart behaviour # # This variable describes what should be done with an existing log # file when a domain is restarted. The options are either to rename # LOGFILE to LOGFILE.old so allowing a new log file to be created, # or to retain the log file and subsequent logging information will # be appended. # # The valid values are: # new # keep # The default value is: # keep # #logMode=keep # ----------------------------------------------------------------------- # Billing / Accounting # ----------------------------------------------------------------------- # ---- Directory for billing logs # # The directory within which the billing logs are to be written. # billingDb=${ourHomeDir}/billing # ---- Store billing data in database # # This variable describes whether the billing information should be # written to a PostgreSQL database. A database called 'billing' must # be created. # #billingToDb=no # The PostgreSQL database host: # EXPERT: First is default if billingToDb=no, second for billingToDb=yes #billingDatabaseHost=localhost #billingDbUer=srmdcache #billingDbPass=srmdcache #billingDbName=billing #billingDbCommitRows=100 #billingDbCommitIntervalInMilliseconds=30000 # the following enables using pgfile, which is disabled by #billingDbPgPassFileName=/root/.pgpass # ------------------------------------------------------------------------ # Info-based info provider # ------------------------------------------------------------------------ # # The following variables are used by the script that generates # LDIF-formatted data from the XML data the info service provides. # This requires both the info service and the internal dCache web # service to be running. The web service must be accessible from # whichever machine the info provider is executed on. # ---- Host that is running the web service # # The name of the machine that is running the dCache web service. # This is used to build the URI for fetching dCache's current # state. If no value is used, localhost is used as a default # value. # #httpHost=localhost # ---- TCP port used by web service # # The TCP port on which the web service listens. If no value # is specified then 2288 is used as a default. # #httpPort=2288 # ---- Directory of LDAP transformation configuration # # This variable describes in which directory the configuration file # is stored. The default value is $ourHomeDir/etc # #xylophoneConfigurationDir=$ourHomeDir/etc # ---- Filename of LDAP transformation configuration # # This variable provides the filename that describes how the XML # should be transformed. The default value is glue-1.3.xml # #xylophoneConfigurationFile=glue-1.3.xml # ---- XSLT processor # # This variable describes which XSLT processor to use. The current # valid options are xsltproc and saxon. If none is specified then # saxon is used by deafult. # #xsltProcessor=saxon # ----------------------------------------------------------------------- # Info Provider # ----------------------------------------------------------------------- # # The following variables are used by the (old) dynamic info # provider, which is used for integration of dCache as a storage # element in the WLCG information system. All variables are used by # the client side of the dynamic info provider which is called # at regular intervals by the gLite GIP (generic info provider) # framework. It consists of the two scripts: # # jobs/infoDynamicSE-plugin-dcache # jobs/infoDynamicSE-provider-dcache # ---- Time between retrievals # # The time, in seconds, between successive information retrievals. # Default: 180 # #infoCollectorInterval=180 # ---- Location of static LDIF # # The static LDIF file used by GIP. This is also used by the # plugin to determine the info it should output. # Default: /opt/lcg/var/gip/ldif/lcg-info-static-se.ldif # #infoProviderStaticFile=/opt/lcg/var/gip/ldif/lcg-info-static-se.ldif # ---- Where infoCollector service is running # # This is the hostname of the node that runs the infoCollector # service. The default value is localhost. # #infoCollectorHost=localhost # ---- The port on which the InfoCollector cell will listen # # This variable is used by the InfoCollector cell as well as the # dynamic info provider scripts. The default value is 22111. # #infoCollectorPort=22111 # ------------------------------------------------------------------------ # Statistics module # ------------------------------------------------------------------------ # ---- Directory for storing statistics. # # This is the directory under which the statistics module will # store historic data. # statisticsLocation=${ourHomeDir}/statistics # ------------------------------------------------------------------------ # xrootd Configuration # ------------------------------------------------------------------------ # ---- Global read-only # # This variable controls whether any write access is permitted. # This is to avoid any unauthenticated writes. The variable # overrides all other authorization settings. # #xrootdIsReadOnly=true # ---- Writable paths # # This variable describes which directories have write access. # Xrootd clients may only write into these directories and their # subdirectories. This variable overrides any remote authorization # settings; for example, from the filecatalogue. # #xrootdAllowedPaths=/path1:/path2:/path3 # ---- Authorization options # # The following two variables enable authorization in the xrootd # door. Currently, dCache supports only one plugin, which # implements token based authorization controlled by a remote # filecatalogue. This requires an additional keystore file that # holds the keypairs needed to do the authorisation. A template # keystore file can be found in ${ourHomeDir}/etc/keystore.temp. # #xrootdAuthzPlugin=org.dcache.xrootd.security.plugins.tokenauthz.TokenAuthorizationFactory #xrootdAuthzKeystore=${ourHomeDir}/etc/keystore # ---- Mover queue # # The mover queue on the pool to which this request will be scheduled. # #xrootdIoQueue= # ---- Max concurrent connections. # # The maximum number of simultaneous physical connections (aka # Logins) to permit. # #xrootdMaxLogin=50 # ---- Max concurrent open files per connection. # # This variable describes the maximum number of simultaneous open # files per physical connection (e.g., a single ROOT client # instance). # #xrootdMaxOpenFilesPerConnection=5000 # ----------------------------------------------------------------------- # ACL Configuration # ----------------------------------------------------------------------- # # The following options describe how dCache ACL support will contact # a database for querying and updating ACLs. # By default, the table 't_acl' is used in database 'chimera' on # the machine 'localhost'. # If Chimera is deployed with the 'chimera' database on the same machine # as ChimeraDomain then the table will exist locally and # no configuration is needed. # If PNFS is deployed then a suitable table must be created and # the acl variables adjusted accordingly. # # One of the following cases must be used: # 1) only UNIX permissions are used # permissionHandler=diskCacheV111.services.acl.UnixPermissionHandler # 2) only ACL permissions are used # permissionHandler=diskCacheV111.services.acl.ACLPermissionHandler # 3) ACL permissions are used first. If ACLs do not state whether # an operation is allowed or denied then UNIX permissions are used # permissionHandler=diskCacheV111.services.acl.ACLPermissionHandler,diskCacheV111.services.acl.UnixPermissionHandler # # The default case is 1). # # #permissionHandler=diskCacheV111.services.acl.UnixPermissionHandler #aclEnabled=false #aclTable=t_acl #aclConnDriver=org.postgresql.Driver #aclConnUrl=jdbc:postgresql://localhost/chimera?prepareThreshold=3 #aclConnUser=postgres #aclConnPswd= # ----------------------------------------------------------------------- # Tape protection # ----------------------------------------------------------------------- # Tape protection feature is only available if stageConfigurationFilePath line is uncommented, # and there is a similarly named file containing a list of FQANs and DNs whose owners # are allowed to stage files (i.e., to read files from dCache that are stored only on tape). # # Stage configuration can be provided either on the door or on the PoolManager as described # in the following two cases below: # 1) stage configuration provided on the door # (remember to repeat the same configuration on each door): # stagePolicyEnforcementPoint=doors # 2) stage configuration provided on the PoolManager: # stagePolicyEnforcementPoint=PoolManager # # The default case is 1). # #stageConfigurationFilePath=${ourHomeDir}/config/StageConfiguration.conf #stagePolicyEnforcementPoint=doors 07070100079911000081a4000000650000000a000000014acc660b00000707000000b600010008ffffffffffffffff0000002b00000000reloc/opt/d-cache/etc/dcache.kpwd.template# This file was automatically generated by KAuthFile class # Semiformal definition of the file format follows # # The file has the following format: # FILE = TOKENS # TOKENS = TOKEN | TONENS NL TOKEN # TOKEN = COMMENT | MAPPING | RECORD | PWDRECORD | EMPTYLINE # NL = # WS = # COMMENT = WS '#' # PWDRECORD = WS passwd WS USER WS PASSWDHASH WS UID WS GID WS HOME WS ROOT WS [FSROOT WS] # PASSWDHASH = # PWDRECORD = WS USER WS PASSWDHASH WS UID WS GID WS HOME WS ROOT WS [FSROOT WS] # RECORD = USERAUTHENTICATION [SECUREIDS] EMPTYLINE # USERAUTHENTICATION = WS login WS USER WS UID WS GID WS HOME WS ROOT WS [FSROOT WS] # USER = # UID = # GID = # HOME = # ROOT = # FSROOT = # SECUREIDS = SECUREIDS ([COMMENT] |[SECUREIDLINE]) NL # SECUREIDLINE = WS SECUREID WS NL # SECUREID = | # EMPTYLINE = WS NL # MAPPING = WS mapping WS SECUREID USER NL # # the following are the mappings from secure credetials ids to user names # these are used to map credentials to the default user, # if user is not supplied and can not be derived from credentials # in user created files this do not have to be in a separate section version 2.1 mapping "/O=Grid/O=Globus/OU=domain.org/CN=EXP Production" local-account # the following are the user auth records login local-account read-write uid gid / / / /O=Grid/O=Globus/OU=domain.org/CN=EXP Production # the following are the user auth records 07070100079916000081a4000000650000000a000000014acc660b000006c1000000b600010008ffffffffffffffff0000002b00000000reloc/opt/d-cache/etc/node_config.template# # $Id: node_config.template,v 1.6 2007-06-19 10:04:10 tigran Exp $ # # ---- Overall configuration # DCACHE_HOME=/opt/d-cache POOL_PATH=/opt/d-cache/etc NUMBER_OF_MOVERS=100 # ---- Name Space configuration # # The supported name space implementations are Chimera and PNFS. # # Possible values for the NAMESPACE variable are chimera or pnfs. # If nothing is specified or the value is invalid then pnfs is used. # NAMESPACE=pnfs PNFS_ROOT=/pnfs PNFS_INSTALL_DIR=/opt/pnfs PNFS_START=yes PNFS_OVERWRITE=no # SERVER_ID defaults to `hostname -d` #SERVER_ID=domain.name # ---- Name Space Node # # The name space node is the node that exports the name space # through NFS. For PNFS this will be the node running the PNFS # daemons. For Chimera this will be any node running the Chimera # NFSv3 daemon. # # This variable was formally known as the "ADMIN_NODE" and now # has been renamed. # #NAMESPACE_NODE=myNameSpaceNode # ---- Service groups to be started on this node # # Service groups to start on this host. Legitimate values are: # # admin # # Starts the following services in addition to what is specified # in the SERVICES parameter: lm, dCache, chimera or pnfs, dir, # admin, httpd, utility and gPlazma. # NODE_TYPE= # ---- Custom services to be started on this node # # White space separated list of services or domains to start on this # host. Legitimate service names are # # dcap, gPlazma, xrootd, gridftp, gsidcap, srm, admin, # infoProvider, chimera, pnfs, httpd, utility, dir, info, # statistics, lm, dCache, replica # # or any domain name prefix. These services are started in addition # to the services selected by the NODE_TYPE parameter. # SERVICES= 07070100079915000081a4000000650000000a000000014acc660b0000121e000000b600010008ffffffffffffffff0000002400000000reloc/opt/d-cache/etc/logConfig.xml 07070100079913000081a4000000650000000a000000014acc660b00005a81000000b600010008ffffffffffffffff0000002c00000000reloc/opt/d-cache/etc/glue-1.3.xml.template EXAMPLESITE-ID dcache-srm.example.org UNDEFINEDVALUE UNDEFINEDVALUE 1 3 dcache 0 ://: file transfer httpg://:/srm/managerv2 2.2.0 space allocation space manager file pinning volatile Information for VO /d:dCache/d:poolgroups/d:poolgroup[@name='']/d:space/d:metric[@name='total'] /d:dCache/d:poolgroups/d:poolgroup[@name='']/d:space/d:metric[@name='total'] /d:dCache/d:poolgroups/d:poolgroup[@name='']/d:space/d:metric[@name='free'] /d:dCache/d:poolgroups/d:poolgroup[@name='']/d:space/d:metric[@name='removable'] 0 /d:dCache/d:poolgroups/d:poolgroup[@name='']/d:space/d:metric[@name='free'] /d:dCache/d:poolgroups/d:poolgroup[@name='']/d:space/d:metric[@name='removable'] replica online neverExpire /d:dCache/d:poolgroups/d:poolgroup[@name='']/d:space/d:metric[@name='total'] /d:dCache/d:poolgroups/d:poolgroup[@name='']/d:space/d:metric[@name='free'] /d:dCache/d:poolgroups/d:poolgroup[@name='']/d:space/d:metric[@name='removable'] /d:dCache/d:poolgroups/d:poolgroup[@name='']/d:space/d:metric[@name='free'] /d:dCache/d:poolgroups/d:poolgroup[@name='']/d:space/d:metric[@name='removable'] 1000 1000000000 -1 07070100079919000081a4000000650000000a000000014acc660b0000030e000000b600010008ffffffffffffffff0000002b00000000reloc/opt/d-cache/etc/psql_drop_dcache.sqlDROP TABLE copyfilerequests ; DROP TABLE copyfilerequests_b ; DROP TABLE copyrequests ; DROP TABLE copyrequests_b ; DROP TABLE getrequests_protocols ; DROP TABLE getrequests_protocols_b ; DROP TABLE getfilerequests ; DROP TABLE getfilerequests_b ; DROP TABLE getrequests ; DROP TABLE getrequests_b ; DROP TABLE pins ; DROP TABLE pinrequests ; DROP TABLE srmnextrequestid ; DROP TABLE putrequests_protocols ; DROP TABLE putrequests_protocols_b ; DROP TABLE putfilerequests ; DROP TABLE putfilerequests_b ; DROP TABLE putrequests ; DROP TABLE putrequests_b ; DROP TABLE srmrequestcredentials ; DROP TABLE nextpinrequestid ; DROP TABLE pinrequestsv1 ; DROP TABLE spacemanagernextid ; DROP TABLE spacemanagerpoolreservation ; DROP TABLE spacemanagerpoolspace ; 070701000798c8000041ed000000650000000a000000064acc660b00000000000000b600010008ffffffffffffffff0000001700000000reloc/opt/d-cache/docs070701000798fe000041ed000000650000000a000000034acc660b00000000000000b600010008ffffffffffffffff0000001f00000000reloc/opt/d-cache/docs/scripts070701000798ff000041ed000000650000000a000000024acc660b00000000000000b600010008ffffffffffffffff0000002700000000reloc/opt/d-cache/docs/scripts/sorting07070100079900000081a4000000650000000a000000014acc660500000af1000000b600010008ffffffffffffffff0000003100000000reloc/opt/d-cache/docs/scripts/sorting/common.js/** * addEvent written by Dean Edwards, 2005 * with input from Tino Zijdel * * http://dean.edwards.name/weblog/2005/10/add-event/ **/ function addEvent(element, type, handler) { // assign each event handler a unique ID if (!handler.$$guid) handler.$$guid = addEvent.guid++; // create a hash table of event types for the element if (!element.events) element.events = {}; // create a hash table of event handlers for each element/event pair var handlers = element.events[type]; if (!handlers) { handlers = element.events[type] = {}; // store the existing event handler (if there is one) if (element["on" + type]) { handlers[0] = element["on" + type]; } } // store the event handler in the hash table handlers[handler.$$guid] = handler; // assign a global event handler to do all the work element["on" + type] = handleEvent; }; // a counter used to create unique IDs addEvent.guid = 1; function removeEvent(element, type, handler) { // delete the event handler from the hash table if (element.events && element.events[type]) { delete element.events[type][handler.$$guid]; } }; function handleEvent(event) { var returnValue = true; // grab the event object (IE uses a global event object) event = event || fixEvent(window.event); // get a reference to the hash table of event handlers var handlers = this.events[event.type]; // execute each event handler for (var i in handlers) { this.$$handleEvent = handlers[i]; if (this.$$handleEvent(event) === false) { returnValue = false; } } return returnValue; }; function fixEvent(event) { // add W3C standard event methods event.preventDefault = fixEvent.preventDefault; event.stopPropagation = fixEvent.stopPropagation; return event; }; fixEvent.preventDefault = function() { this.returnValue = false; }; fixEvent.stopPropagation = function() { this.cancelBubble = true; }; // end from Dean Edwards /** * Creates an Element for insertion into the DOM tree. * From http://simon.incutio.com/archive/2003/06/15/javascriptWithXML * * @param element the element type to be created. * e.g. ul (no angle brackets) **/ function createElement(element) { if (typeof document.createElementNS != 'undefined') { return document.createElementNS('http://www.w3.org/1999/xhtml', element); } if (typeof document.createElement != 'undefined') { return document.createElement(element); } return false; } /** * "targ" is the element which caused this function to be called * from http://www.quirksmode.org/js/events_properties.html **/ function getEventTarget(e) { var targ; if (!e) { e = window.event; } if (e.target) { targ = e.target; } else if (e.srcElement) { targ = e.srcElement; } if (targ.nodeType == 3) { // defeat Safari bug targ = targ.parentNode; } return targ; } 07070100079902000081a4000000650000000a000000014acc660500002f73000000b600010008ffffffffffffffff0000004500000000reloc/opt/d-cache/docs/scripts/sorting/standardista-table-sorting.js/** * Written by Neil Crosby. * http://www.workingwith.me.uk/articles/scripting/standardista_table_sorting * * This module is based on Stuart Langridge's "sorttable" code. Specifically, * the determineSortFunction, sortCaseInsensitive, sortDate, sortNumeric, and * sortCurrency functions are heavily based on his code. This module would not * have been possible without Stuart's earlier outstanding work. * * Use this wherever you want, but please keep this comment at the top of this file. * * Copyright (c) 2006 Neil Crosby * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. **/ var standardistaTableSorting = { that: false, isOdd: false, sortColumnIndex : -1, lastAssignedId : 0, newRows: -1, lastSortedTable: -1, /** * Initialises the Standardista Table Sorting module **/ init : function() { // first, check whether this web browser is capable of running this script if (!document.getElementsByTagName) { return; } this.that = this; this.run(); }, /** * Runs over each table in the document, making it sortable if it has a class * assigned named "sortable" and an id assigned. **/ run : function() { var tables = document.getElementsByTagName("table"); for (var i=0; i < tables.length; i++) { var thisTable = tables[i]; if (css.elementHasClass(thisTable, 'sortable')) { this.makeSortable(thisTable); } } }, /** * Makes the given table sortable. **/ makeSortable : function(table) { // first, check if the table has an id. if it doesn't, give it one if (!table.id) { table.id = 'sortableTable'+this.lastAssignedId++; } // if this table does not have a thead, we don't want to know about it if (!table.tHead || !table.tHead.rows || 0 == table.tHead.rows.length) { return; } // we'll assume that the last row of headings in the thead is the row that // wants to become clickable var row = table.tHead.rows[table.tHead.rows.length - 1]; for (var i=0; i < row.cells.length; i++) { // create a link with an onClick event which will // control the sorting of the table var linkEl = createElement('a'); linkEl.href = '#'; linkEl.onclick = this.headingClicked; linkEl.setAttribute('columnId', i); linkEl.title = 'Click to sort'; // move the current contents of the cell that we're // hyperlinking into the hyperlink var innerEls = row.cells[i].childNodes; for (var j = 0; j < innerEls.length; j++) { linkEl.appendChild(innerEls[j]); } // and finally add the new link back into the cell row.cells[i].appendChild(linkEl); var spanEl = createElement('span'); spanEl.className = 'tableSortArrow'; spanEl.appendChild(document.createTextNode('\u00A0\u00A0')); row.cells[i].appendChild(spanEl); } if (css.elementHasClass(table, 'autostripe')) { this.isOdd = false; var rows = table.tBodies[0].rows; // We appendChild rows that already exist to the tbody, so it moves them rather than creating new ones for (var i=0;i 0) { previousSortOrder = arrows[0].getAttribute('sortOrder'); } // work out how we want to sort this column using the data in the first cell // but just getting the first cell is no good if it contains no data // so if the first cell just contains white space then we need to track // down until we find a cell which does contain some actual data var itm = '' var rowNum = 0; while ('' == itm && rowNum < table.tBodies[0].rows.length) { itm = that.getInnerText(table.tBodies[0].rows[rowNum].cells[column]); rowNum++; } var sortfn = that.determineSortFunction(itm); // if the last column that was sorted was this one, then all we need to // do is reverse the sorting on this column if (table.id == that.lastSortedTable && column == that.sortColumnIndex) { newRows = that.newRows; newRows.reverse(); // otherwise, we have to do the full sort } else { that.sortColumnIndex = column; var newRows = new Array(); for (var j = 0; j < table.tBodies[0].rows.length; j++) { newRows[j] = table.tBodies[0].rows[j]; } newRows.sort(sortfn); } that.moveRows(table, newRows); that.newRows = newRows; that.lastSortedTable = table.id; // now, give the user some feedback about which way the column is sorted // first, get rid of any arrows in any heading cells var arrows = css.getElementsByClass(tr, 'tableSortArrow', 'span'); for (var j = 0; j < arrows.length; j++) { var arrowParent = arrows[j].parentNode; arrowParent.removeChild(arrows[j]); if (arrowParent != td) { spanEl = createElement('span'); spanEl.className = 'tableSortArrow'; spanEl.appendChild(document.createTextNode('\u00A0\u00A0')); arrowParent.appendChild(spanEl); } } // now, add back in some feedback var spanEl = createElement('span'); spanEl.className = 'tableSortArrow'; if (null == previousSortOrder || '' == previousSortOrder || 'DESC' == previousSortOrder) { spanEl.appendChild(document.createTextNode(' \u2191')); spanEl.setAttribute('sortOrder', 'ASC'); } else { spanEl.appendChild(document.createTextNode(' \u2193')); spanEl.setAttribute('sortOrder', 'DESC'); } td.appendChild(spanEl); return false; }, getInnerText : function(el) { if ('string' == typeof el || 'undefined' == typeof el) { return el; } if (el.innerText) { return el.innerText; // Not needed but it is faster } var str = el.getAttribute('standardistaTableSortingInnerText'); if (null != str && '' != str) { return str; } str = ''; var cs = el.childNodes; var l = cs.length; for (var i = 0; i < l; i++) { // 'if' is considerably quicker than a 'switch' statement, // in Internet Explorer which translates up to a good time // reduction since this is a very often called recursive function if (1 == cs[i].nodeType) { // ELEMENT NODE str += this.getInnerText(cs[i]); break; } else if (3 == cs[i].nodeType) { //TEXT_NODE str += cs[i].nodeValue; break; } } // set the innertext for this element directly on the element // so that it can be retrieved early next time the innertext // is requested el.setAttribute('standardistaTableSortingInnerText', str); return str; }, determineSortFunction : function(itm) { var sortfn = this.sortCaseInsensitive; if (itm.match(/^\d\d[\/-]\d\d[\/-]\d\d\d\d$/)) { sortfn = this.sortDate; } if (itm.match(/^\d\d[\/-]\d\d[\/-]\d\d$/)) { sortfn = this.sortDate; } if (itm.match(/^[$]/)) { sortfn = this.sortCurrency; } if (itm.match(/^\d?\.?\d+$/)) { sortfn = this.sortNumeric; } if (itm.match(/^[+-]?\d*\.?\d+([eE]-?\d+)?$/)) { sortfn = this.sortNumeric; } if (itm.match(/^([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])$/)) { sortfn = this.sortIP; } return sortfn; }, sortCaseInsensitive : function(a, b) { var that = standardistaTableSorting.that; var aa = that.getInnerText(a.cells[that.sortColumnIndex]).toLowerCase(); var bb = that.getInnerText(b.cells[that.sortColumnIndex]).toLowerCase(); if (aa==bb) { return 0; } else if (aa val.length) { val = '0'+val; } vals[x] = val; } val = vals.join('.'); return val; }, sortIP : function(a,b) { var that = standardistaTableSorting.that; var aa = that.makeStandardIPAddress(that.getInnerText(a.cells[that.sortColumnIndex]).toLowerCase()); var bb = that.makeStandardIPAddress(that.getInnerText(b.cells[that.sortColumnIndex]).toLowerCase()); if (aa==bb) { return 0; } else if (aaN^n~/?O_o0 <0… :|1ĉ+Z1Z;z2ȑ$K<2ʕ,[| 3̙4kڼ3Ν<{ 4СD=4ҥL:} 5ԩTZ5֭\z 6رd˚=D;070701000798f0000081a4000000650000000a000000014acc660500000a5c000000b600010008ffffffffffffffff0000002c00000000reloc/opt/d-cache/docs/images/pnfslogo1.gifGIF89a8|= k@ܺ @n_xn@@P0 @$@.*v@TJ<  MG{ @d@\  *vJ< H 0G @D=\k@:B LL @Jܰ@`HK Ll =Xk| `J  @ 0 f0  ' @0 nx@R`$ @<'B0 d_n!7Image generated by Aladdin Ghostscript (device=ppmraw) , H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJՅj(֯*^glHp``mj$kؚt%WDI߾ 318#vi_vyeKfv]:ˊzj׾ ;v_wGuh;r=۶к׽ ߴk w?=:u+c7<׉=4z}F}bOwwj|- ZhG!m  >xX|EPW! waF"!FDYybfuͥ3" ٷ`cNYFbvGD8Z*w%TR.9iуEaע*ouyfv$z(ћHTdwgr rYآРjuzR!VȠEE晝#^I#Zەq(V wQSZkʐ^_)zectƧ,BDֵжUfcy-k+;@i*Pq \J Jf`!ƨ:8^kwWLἰFpVGo2[\cm- 4#pN,w4cF:(,4H'o;$w .{GF\ul.=cXvٻ6T=mR7=nvlpr:Sd-# >_%wmұUڦgtC.*|7IxVE7yR+Y'T1 {Ž{JXZOߴ9_׻Z%-λ#y[s-nBܥLԋږ? ٯQKw17L\vڊ%]]GC!\1zQ+#welpԼx+! 56j+_,14t:wG j&4AQ2$(% PV Z&%#jH3R]z6 Bi?K"ǘiLc 7qJ^˙'F01~ 81*fDNJ1p$H:1r3eD2.XvQyyZ1F -MoQ^K_v:RR|Ěe6"hD%hZ$;Y6>1l2ecs'3}lH2T;ն |xӚOe #R:)G;\4#!DOQ0fkQX31[#8te`t@>f ~*Ԛ9ʐ{ PNbNW$E:Rv.7>u~Q} S*GmoJ4ȥb˯!a2+3_uU$=bj=g*KI`愭*֩yuKJT}J w ڍIϚ)mh[[)C$o{.qaNvb]ZV&WHL[_,xV);w N^n~/?O_o0 <0… :|1ĉ+Z1Z;z2ȑ$K<2ʕ,[| 3̙4kڼ3Ν<{ 4СD=4ҥL:} 5ԩTZ5֭\z 6رd˚=D;070701000798da000081a4000000650000000a000000014acc66050000153a000000b600010008ffffffffffffffff0000002d00000000reloc/opt/d-cache/docs/images/eagle-main.gifGIF89a*bffNN>>""v""r~~66fnzbbnn22ZZ~zjFFn&&**vvRR..~::BBJJRRVV^^ffrrzz~&&ꂂ..**::>>""&&22FFBBJJVVjj66RR**..NN::nn^^rrjjZZ^^bb~~>>JJzz2266FFvvBBVV! ,*66»66њԣʤв˓ǥޥZ+]vUȰ?DvT/ljX̘Cm2 9\Y1 &˛8=y4@"/uL; ]ΣH}KfZ-իxdP('a;KH`LX4$ٷIDgiаݻKFԅ|'(џ6HHUhRMrˠq.^$l4 @c?ƹp?$_`B#d Hɫ KMw=KWom~(A(5YvlU7຅?#ё$a^ p M*$Fg-T\[d}DZhŅ,KHp(H5Wt%Z,q^($*L*wy:Lh> ŐX~Bf1f! l<V1 Yƙ;ށ5wx杨WxJ񅜈^Tmg!с9b1*QHAE6.F kЂxe"[nADDC.=[ !"ΊGTDT@1 Nm!xdnaCIYeoE03l+/EGbBI$V;t@80؋gwpVŦRQN̐5<. \x7 >z, DL. lSʽve˄HZR(W@E PE!@ (@tf+=l<1#!7)B&КB|83zx`"N mPx L1z鼯; =ė ̮ ]4HW/g(hl 9GP 3,7 GS_/~سr&k SxA QTFp!BZB|A\p,/D9@^Wv׻驐-$w8Y 8` Al#&';*"?IKaV Yd,D2"0>5*\`qO&A: C0/]&X!5X@馈8V̔գ+pasBֵ (Ѕl=+!3  (f!y[ Y~E\L]+ !q0h7C `1@uOZ캖k2b&S8f1rUB4PyDd!ܩͅ @ Q r㲀Y >&BL@ |J`ihvJAU=hk!|`v&D4*U cTcxTuFgv H!Wb+ W"keV!fx1]̌f@Մi*WR0_ /\aMKcϘŒ"A8.p/_ BfK"Av/gn*sGKDWDl B~K5r~Oՠ릿bὈ0^ŬD؈8hYqN[ H kW e1 Ԃb,.D P W!B7XBF%Z! 8'%䒦AC l IA} a&a{#\ h2 a XڗU/➈u Z !aYs1nsyTK˙JZ#;kZ1&~M:d'=Ǧ:pk%G.H>Zz'0!\޲hĜS~&6`h .0g  v\ЀЇzӛW^t;;GN݅I #tx9O1u]F_QodT Oh'Eg"ݓsK*e {ه\6O&G~g-'__}yҢet&4O}N_Z@zt+u-tc^y&X+;'x9F، +x_O9Țҋ mwҰEYyIt9#,96 _[h MG:9 =iu)|ږhD~ќpIHܙX9aPtIQ̩IIZЏ,l_$ڕvl{X:gIyzp=WZf a#8(HgQ:tw:` ٥Ly 3jYhBڋq(ڍiqpx뉑nɔZxi3:*K>QG I{\|yw C_YOh SVɪW9`}lڦI*wxpjWjWIn ڪFڦњ aG&ꆔ@t)z@ ǖ u#u))N k [ag t /Ztp~k Lp:7 2sɜz0D7πvw y䊙n9H(ѩY  *z[}gz{|Puɬk%祐@j]yƸ*` '`yK۩Pk˘=y篘x kp Qnp**r;z}]K豇ew+mKoQ;۽ +tw‹vkU:ZD!"pُĶ2ZJ 9 px ꑣٲꚒz7[ʷ.̯ɠ9Ȋ| ,r~7 )6{ Z)py)껾k*Lq~RO\n} { dž@(YڌȻyFy͛L{:>><<<:::888666444222000...,,,***(((&&&$$$"""  !,e H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JC| ѧl0#@p@%[ײ|YAuλ0mO[`DˮNhP]4Qxyn!i".Ѷ}a0a!ˇN| ck.$FVI7bj,c7P^nܛ8P\|%O 3̺O '.|IR' n1PwN'&ddI\>N`DqP47.NЁ;JԦ r[n9` uXQ"CH#A1aB"AsC> 3 76rlP8 /S2 x7Pa AA9qO8!p1 n>M'h4c2Ѡ)dcf8р?e0/!A8@$,0 p?NM~꡾QtG!:  ڐ^A8 쀻Hqv) bq ;26xr1'ꑤT8!G5\9;"0 `-BJ0+[8pA J r[(40F#197@CTTa 9PbI(rЊa0p8q{!ap?)`(@ (A0{x#BlUaX^ ĕ 0Qr &0gisXm6@zTp!Z"Qul#; LaE$<ь: 176#0kϞA*n4"p@|̣8+p 7! k Bv]b,AGz 'G0:8qvZe gA pu@p,. A fptPӰsd L]E0հ @ðՐW` $w \o Pm{ * ԰`Y1`  PI 0֔P*<0M\a me`Ր$Y0L$ F  p0 A)!)6`9PF'P}0"1 ]P3=fpn;m @4IZh|Yp`:  p_pD; VP }Qbp V` lӰ fa @`@0g KA82[*W P^g=aP`0E> Ѓ?( TsP hȐc)P S]@* H`Z p` R`Ġi1a X ,tdF `x/ Pq zd ,3H2`S@ap 555 T u0PU "V0 y n`ipP`h=0s 4R^p  F$pː l 4 Ϸj`Pc=s,`0 L0:-oL6p5ʰa @i0 ` ˰:`0 4 2Qp2K#R# j;! P[5Z 0@DBD0#FJ(p2 B c{:PKC spD&L;! a ?0_" rBYtS°͐1L{:2 c `\ ,djPo q6N ǰWPzP16 p Ū߰9  50 @i Q PxG c  .@ RPq j7A i SPoX˘D%נHgp p000gb`Ġ z@`~0 q0ް B"0W &ߐP mPÀ p 8K0 wPzM0jw$! u  \і0tp  p *%{@ fV0P L@ pn$X wp *&/G<` m@ rLg 8N {`Mu d9@+H zpS;@<@O10Rd-ad wP PS  0qg w@ 0 YX0 0MX>OP@ dbAG}P; (' qPp; _* XB= Pc@5I`M0q _ 6 P_P Wq@L0y00CX0B *U&0L}6΀Y0 xL l B@7[g7 ) qp G o`8p\V0 K0k xa +E 0m>pQ&PB16waN9o [E! p )Rg]Ð2= j@A@͐3 q=8Pk}d`FfOc0551@KA 0PQǺ"PsPuf ¸ аOp0᦮mp `q  l x@]PA@ B`aJP g3 \@ `82a0GVP c@% PPP q x0 & Kt*W 7 op+0g3 &g5M0 Ҁ9 cPI%)!u ~E0o1u0b0[p /@JE l702o pN +D0K 0 c 4 rJ: ZPFa H )$  稺Րmp T` @-2jaF )aitf )?_i;070701000798e1000081a4000000650000000a000000014acc660500000708000000b600010008ffffffffffffffff0000003000000000reloc/opt/d-cache/docs/images/eurogatetrans.gifGIF89a{3!,{ڋ޼HN Lv s¢L*9AJj%ZܮbkS=ƈw!gxHEب8IY)iYY(Yj:y3xZ7:Kk5(U˛t;Lt@)[쬩l}Vuڋ2 fk׌v\ݎoFm,m5>/>']Os=6x5-ю&kSy+p} /f4WuHP ~|"WI\lh 5)]_8#XbC" _8NOCʷߎrDT5DbFH7Z(R$LR `Eqi}&!b$iLtE f&bx]&":=A`{(2a)aHeV#dw2 r*5iU*骈:)8n*+&dxXljeS镽:h:+^klA  ؾXjvn>/뢛HlV.-R&2쮲?Ͳ&؁oƤhR1,qzO* pqR8`.UR\@%հj2b-;7ԚuzPָ*HhZVWLAz%B׵3(l`"vf+cǻBvWejvsݬgϊv-iOԪvmk_ ;070701000798d2000081a4000000650000000a000000014acc66050000017a000000b600010008ffffffffffffffff0000002e00000000reloc/opt/d-cache/docs/images/dark-tabaco.gifGIF87alO,@ڋ޼H扦ʶ L ĢL*̦ JԪjܮ N (8HXhx)9IYiy *:JZjz +;K[k{ ,N^n~/?O_o0 <0… :|1ĉ+Z1Z;z2ȑ$K<2ʕ,[| 3̙4kڼ3Ν<{ 4СD=4ҥL:} 5ԩTZ5֭\z 6رd˚=D;070701000798e4000081a4000000650000000a000000014acc6605000001b4000000b600010008ffffffffffffffff0000003300000000reloc/opt/d-cache/docs/images/fermi_logo_trans.gifGIF89apd!,pdڋ޼H扦ʶ#-+N|Kr,(4$T:M"9-U Wl&^mKtȌvc'8hWx6(4iIt9y9 JhVWJqjŪ:z j8J$[sLYQ:J * !Aݠqmټ >n~ANnn^--n?Ͽ3k^#XO@d1Lt-Cm04& F3SY)MDRfdf1˝BI,j4(08BQӨ7ZIr8Y>(ʭĎլVeպd-Xepݺ dȿ|K8Ō;~ 9ɔ;070701000798fb000081a4000000650000000a000000014acc660500000351000000b600010008ffffffffffffffff0000002600000000reloc/opt/d-cache/docs/images/tux.gifGIF89a2:?FKkԡܶ>J shXY$%*oi `/+gd!,2: $dihZlQ$RmҜ뷪pH,Sokf8J(A`@0vHY, km=v6lzXpc]viVz4Pv,FWyYCW3TK  X 5tv3p y* lgc  a * yGK| XqiRF6!3v*w"8%3xIA8+uIDN$69偙3SY(~T f9 2XLYh.y,Ȝ0.<=(0 bu M-+R#j XT6PFXp2Uh'V{U1ӲAli6 zP17d,]/린_3 GLX̋Gu; [T؇~Ч_&>D^ y`$c!JuaM(c39D@\axac \xcAi,6(c3Id77.T9dH{$;(NDH`PD>' 3)I&DJ%hqaj 8Ef*j,)P ,@ꪬi;070701000798e7000081a4000000650000000a000000014acc660500000105000000b600010008ffffffffffffffff0000002700000000reloc/opt/d-cache/docs/images/line.gifGIF89aQ!,֌ڋ޼H扦ʶ L ĢL*A JԪ:hܮ NY #l֌(hgxF7T H٧Xɹv 7I%*Yv [&J+Qt; :Zl*L̜D]m} .>N^n~/??T;070701000798f9000081a4000000650000000a000000014acc660500003f1b000000b600010008ffffffffffffffff0000002900000000reloc/opt/d-cache/docs/images/trudex.gifGIF87a  |DOKĖ,|R3[_X}ftJ8F@2e_Sݬ~~s8/UOCFB=t{ea]ɽμkpm~}μ!$424윍UQMIJ,)"гTI?Ԓ̾غ޵ihatwp\> igR97+JHAz4>=,64\gelJPTcLzzdYXQkƴeYBđ\|z}δ~$(&ĪD:.$&ļtja|zrxj$z,TE1\Dtwdpn0"œt~jTr\tql$"$ҳtgRw\LVL亶Ͷ䷺t¬ҿ¤¯D2ɯȲ51)š̈́zdZP4:LUJ3Ķr¬,"&ĒD񬜆ȿtoc,/-LOH㤎w$.+,[kue`AM!Ãrh ]2@#(b *q% /uY%s˙IO!IpD4dxh)S&N* 6u †X^H5ۊ!amE+zZ$+8iCGpndi1M fFGAY܁YŖm}Wmɖ.+7Xb^`߶{ܙ^}5ۨZAgqFȀ$4U|yʛqb4dHhy6#[Oʵ'oVwU]#YepAa XEe4 orsءJet}IAGytK/6AMͤ0hgtjbV܄]Hpa 8`VR%XCeO41}gke}Eu+dRaM"L5 mPDMHMhj&ۀV(kTn [[V8 dCR cI"xËbpԤ PA,lJ%U͵[8)X*~ `T f+$hPJ2'bVz^1d 4) P>sEr *B)(oepWn8l5hBѬ2I!HΘfT#yGM}P! ,ߵR<,ͼ)o\^VL~eYЖEAře KYXgDEwP /L*.h$&6qq+ai|3hHkUiMz hL`T$G!F'3΄w+xrq :zY, cB Ź-.+n>璐 ,o%L.}bͶSkP̵I"K}H "R+zρGVXJ1 9B 8A\*rs w H-0݈4ڨ Q4@U v"qL2(WI:CpLa ː@o H/ܲ%MfKPÆcpB4 :loAWXэ3Ht^2 `PCB B4ˉ0DxShA Byp $po@\G>2)YԤ]\p[HA Ё9#602,ZHf(IW<2@gps! LPꀕ.#;+L4 Z&/YFVg)i6ؐyVB,W`W?y m N R   pn Q ` uOP{%L h#7 DP 9l  `y xPGx6(ݐ 0hi;`_܈X5Lb$T V#BhPTi  5:pPG n 9rPXu $DU` ޠJ 6q P^@i xPg't 6ws P47Oک" i"%Aǐ 5: `  m:ЦkuY$`ѕD%ah OY)PK 2 > IJ(cl 0 x 2(S&>+ pNP^ N0:` nPŪo:ˠJ_gl M0`0wJp 7+lS2 Pr t Lk tPs6 ̐ `!G!@0/B NY@ p*`p;ʠI{g26@}TBp)fKHgl2@/ [ tНpU[)*#B=UVVoBІ^@  g s+ rРJ quP70R 8 i&pk${gUНAF`%>I 2`i)_rJeVF&C(R :  Gp !+nРn^ ɼ`-p" B $8X{) PXp; 'w$, pdPp c1e(r Ssa1Pq^`Gz` j! 궾 Ǻ:u `4Pw`@i$v tlbd{iKR6$0{\$ĀT5LP` pPG*` Z ŻLnt{ ^ .dZU{v bp8 =:})4 p/ME(0$I@DРj : zN` G [ P e@ F`;nPPp B;9<0Êz$pJkݼB+Q7Ȳ p:"$ h֠^ :p Ȁ :0V]L` !_= 8b'@ B`DSyvv4 {4͒L #FB v-9t2ـ $ԗՖ ϡ* P0n el#P2+ tF@zT{gzh(Fh"T%i@7[f`PulN P} - m*|$GPÌ`} iz70gc ϸt蝙``=*0c0,լ< b0 Yg+e՘ jp ri;v $@@ (Σp;eҢ,ݰ@y7]>Qv1 u9h1  n G и P UG5`ݩ`^ >Q`UM5! T Ծ` }k ɫլ$zİuaڵ 'Hhc"g>=thUy}p ޝ :NPkn *yp{N[$<@bp @ # 0#Ub6gD0HTv~ К<P + nP*>  GlNvu$bP^ڝt8 }FKB[v ̾tJ\/ QN 094 ۠z؝tp'>3 qM H/rjpz_mNQI؅Ԑ]DLj:]؃uÇ3ؐ!A $(0XB[uh0%E(@VFÄ1=&Reʖ]d3S7+hЀ@'H {7={_𣳅/{$94Xmߴqջ@:Xbp[1cβ93R5eO9s~9JOBf&vcb'rd ꪸcAu9"X (0AEJ"ɲ̌X, O''hSbuvPfeH0p^)<"~*~CR :$Cb8 .ЀŞ/` 4࢘B, z Id ghpP1 ()L>0Œ*'K .w"؁@ezxIZ~<4!-z聗U)v.Ã4icLQ@ `1_tc$~L j >f4.`ژ⡂+fLg C*+k M:p:@,h&u邑6"2pAL1bFVB@'"C=&e>@/&|TPS ;xf'x ,gYhMqM2тUA* jf)MP&+QW`,kI@z WXRפl<ik|9Zp׃GXgPX"G&0J8#?W^Nlo^S 6P' }e?{KS `R(FER%3lP &2Y~Y&B6D&^VdlOS,@7ÙRy, L6(YI1@YL0̡e)iS8ExvIh@8xp'&bF@&1G򖉊@5ך'dIo7d 1Zf;M$,< JZ\:. xD1@ ?)g0^ FPH& ]ȣ 4( QqCqJnhf&%7D Y5R.BW˧iCR1TLa_@'(m! Mr#HB|Ot)PpdDW(6l*T!0l2d&lMC#ÒJ¼[a3+@(kɖbzv +[CS͈TBd%+ɮX<xRA>JtSb +&C;g|ɢ@?0iKn*р\ĢF!q4-[f¥ |J;x3|A9AVG;Zw`ji|pHw2CXL1RnyW+W*4? y 7C_SLBdב y#toFoHX!8{M,*3UW+>[d2P *H&@O0& z;,)8*;f2%*ڞ\f+6;2j8  .{W@ p%0yL|1X8oH*r]!3*؅b$h` ֻ4C"8+&`gHd l@XI  W#Hn4oTu;HITkPD+\ F4;‰8kBpR*D@e j.+PRq 94# =h8Z,2\X;%U c!qM"d 䣁"@؊.W q|GZm>4 98Re : Rރ;&A8lּ+; 8TH j ~ h$x, )Ho`3 $o*,xD аcɉ+ ΣP-4$,<6}ByO spˤFXp&$8p CJ XȃC X ЇR KaADt,1#|Q%SJ8h6T@:qcD=!XT|P Crk H" xe&l&()R’[/+`edQ"2&d4 #8OSJAÛ̜$!TXnx `Ci(5. +`sxЅ0?%[}+ & K`=bSC:ZC&@f:0َoY1>@4H6@Yxh( ijHq4p⛻` * A;2Ӆ%(([B$ d8h.H;sv[o( nX,8xe  DЇ*pL)@ *z(P3+ˏ8ӫ8|F|S á @$XS[4@\H"8 +u)% S%ڏ퉻cQ5H}ѝD_d=Bl9I#5 (Lo:-^"c0ԠV 2 ]%߉T+YHHeく,ȩJ䓇Y/]k ^81<N@*\Gc륥/h 0?9܆ ]q@c,:tQ,Q ; (L10u))n1bJ%<&.%'.KT.&cЃP\-&cOjMD֐K*D 4TC=[nً>Ć`R["} @(0J( iP8pVڝhP Sh:[87i?1^p: t⾄LDS9[n /F#8F58%2ax_D;HȆ4'&OuCx*"i&* =DS`PڃJT(΀p0-q4&5m=(D6!1h4h-ЖCuiB:`~`<>:xA O('. fa(@P@&8a8|Hc0!Q$qD]Ҁ 2; H" 8~Pe^0n^┩P8d9>`(Ah2(@hp*8 &4aTd s &*#K® Yx "24?XD.%=0fP2@l2~_PȬn >4[ 1ٛd@mq޼` =bC-@)Xba"u;_/x+y0 vpM/; &å^U彩A*Ɋv.BÖtm[rr9P~CBH? sAzpd0`i艝(Jj䞓Ӑ fXϗ|u sz7Sily3v*x_y(a`A-86p%ojVq0. ^HD@e-@ &ME~k?rZ鹦M@h@dz+}8_ QF.ΆUn.(A@R)-{(8) 6f"`>4Zq[u0LSBL^9z*aOxgWƅ=lb V   ՈF䨂ftWP bYh"&ޠ9YeO@d>`dd)ttKS-ْ oxlxЂ"Ӡrݙn|edo2g@ӢӨ8k0|+~IËB:=g!:# lΞhFcrό$3rF8΀T(rF7oOTPl D4 @PCY% ՟?5yЈ_'Ob%GQxء" z$iC&XLGGat&N%ˆjp-!r${vCvITf$1KyfSԁ:= ;?< ε&ʔ a9%Uz!3;]Д/ӝ-[1+ { ?& `e 1( W #jC/$M4;H$F69#C5QEq4"4%.U)W\QeW M6=B\\v`w=GWyT!C3Kl )92 hP+ \Ѝ.0G/P PbD6d#M  p%GC ([@BV4T p@Tq$tʑzvPŕl<'Dbfl# ? ) 6EsH0d1ȓ>TZKRL&!d# NHNmC8MaƔ3]Nh=az4l0?pE*4>a#B@tYV D OqVB/F^Z42tm$`Y@[u@Pes4OVx*8~PȈU@YN'y2{0f -9Xy^083!5q!I#t m pra(n?x5@ r@-OM¢"-bQ:gȭ ԣA-hG; \؏=;:2IHDE(9 4dØ$.Ci<tp]JA;d0"'QmRPID1$!,&6R&:yl\ {xKP&QH\ӂ)9V^2 9BHIi짃 Et,vS졊PᅂPqAn*a~(7.H#*}\"JuɃ lTP8Qf@/jhAʌNЌ&pxϨBҪU.p0JXB 14T!:|qxģXP*!DX p(#8L!@01k(@,BmL*B)Q]-:[q ^TzϨ08&91Mll@J%~kls:QOD h Ot>H Zw%$=3cM2Uo<p|PVd9Q5/+,DpF b{ tƜi2r9'JG0?`hFR걂M f[A>@|=O{"v^vL06Npo|#ϸ Pmnp0@5Ȧbc~)Lٌnrcm *j``(:>B= Q*aHPLUX[{y_nlcY7׀7>o#'o !#[S"7=~ i)~qb l|npцlE>< `BP@x ›ИV?U]4K==HNXY+h7 `@._"x b C@@!mxAOXX%P$ H3tY4&0A"t Q` 5׵OF@`r` <@ A.Y4Ah)t&h9&@lQl j)0(C7 <7LAf8|C &6Ք>ti (6`8P%bh(H? ȡh VIf(F&MA7BP2X ? IESdm$_A)ڍ^=)@x84 60S27jC87A", |& - pbC! GԉוBP^]h d- z57 $@@$$$܁;$+ @pe dR/z7p`S2C 8>2)&4A$l&<pJa10a<ĹF@Ri5׊VxC@"@&]=\AȓHY l t%`( _@b 6 747T \C"$55P .0 F2 (6l&766`<D}@Rwάk01n`Ω.{d"6ڣ .Aނ0u^ <(N!  ibC A8C/HA CbC7XCo$`C)lB-6T O--[ yK! 19ׄqłXA{&9z@i/7,\2618xerW><z67XCȁ>k=r l--,-.)"02ñT`U)M * '$|"`./X`ة><0q"t< .Tq8@"0"*KA*-܂ ])px9 w.0 ᱝR@;070701000798cf000081a4000000650000000a000000014acc66050000017a000000b600010008ffffffffffffffff0000002700000000reloc/opt/d-cache/docs/images/cian.gifGIF87a,@ڋ޼H扦ʶ L ĢL*̦ JԪjܮ N (8HXhx)9IYiy *:JZjz +;K[k{ ,N^n~/?O_o0 <0… :|1ĉ+Z1Z;z2ȑ$K<2ʕ,[| 3̙4kڼ3Ν<{ 4СD=4ҥL:} 5ԩTZ5֭\z 6رd˚=D;070701000798ea000081a4000000650000000a000000014acc6605000003f8000000b600010008ffffffffffffffff0000002800000000reloc/opt/d-cache/docs/images/new01.gifGIF89a#U+U+++++UUUUUUUUՀUժUUUUUUUUU+UU+U+U+U+U+UUUUUUUUUUUUUUUUUUUՀUUUUUUUժUUUUUUUUUUUUUUUUU+U+++++UUUUUUUUՀUժՀUՀՀՀՀՀUU+U+++++UUUUUUUUՀUժժUժժժժ UUՀժ+U+Հ+ժ+++UUUՀUժUUUUՀժՀUՀժժUՀժUՀժU+U+++++UUUUUUUUՀUժUU𠠤!,#H*\ȰCF,oÁ틸o߾۷oń۷o߾}۷o߾}۷oɄطOPݷ辟 5:t>>4T(FtpSc aM}d 7W(Cݷ//}۷o߾}۷o߾}۷gq߾}Yᾟ?H۸s;070701000798d7000081a4000000650000000a000000014acc660500000482000000b600010008ffffffffffffffff0000003000000000reloc/opt/d-cache/docs/images/documentation.gifGIF89awI!,wIڋ޼H扦ʶ L ĢL*̦ JԪjܮ N 7GHx8 (gHyة`B釆*Zd ڗy:4KʊË2<sK\,wP|lR,m<]L-lxm`>Z.@OA~m_#>Ϭ]#^%^Ik*o* bw81Hm6&N*2ٲJ Q(Qj#ϑ9c51$Rf&Syu֔hϡ[uS̈́z 3ӭqdE*.ךj۳כvzgw-ޒ)$bzW|]yb}?VY vx$Π:: C5K抲kf,ۻYpԪSgU\cM_F|ٴb-zuO:;{6շko>>rAOG`;9Gs wNXf`euz ?\}*:!{bYXWa.Ȣ8 e2#~&rGda85^#=5$a|Bie/y@lۘ0xl:M]XQiaV)G6d6 ⣚JХe*'ZzA)*vj!=D9?*b׫ZZ~%VPgfVzi^;*4vܞch{Ռ(|[E%YwղnN+¹YzFon  |/g;.NDW {+VboqE<񺐙L\-f(@N* rwsj:$t=#FE]נ8]ť*$ zlyh%tՐ(6a}MfTD'2&i11":&GzUw6]hY>)TZB]J!敃/ax6e^%rRABMN{ߎ{{|O||/|?}OO}_}oE;070701000798e5000081a4000000650000000a000000014acc66050000017a000000b600010008ffffffffffffffff0000002b00000000reloc/opt/d-cache/docs/images/greenbox.gifGIF87aQ,ڋ޼H扦ʶ L ĢL*̦ JԪjܮ N (8HXhx)9IYiy *:JZjz +;K[k{ ,N^n~/?O_o0 <0… :|1ĉ+Z1Z;z2ȑ$K<2ʕ,[| 3̙4kڼ3Ν<{ 4СD=4ҥL:} 5ԩTZ5֭\z 6رd˚=D;070701000798f7000081a4000000650000000a000000014acc66050000046b000000b600010008ffffffffffffffff0000002a00000000reloc/opt/d-cache/docs/images/sunlogo.gifGIF89aw<ܧɈppUU<<[/! ADOBE:IR1.0! ,w<pI8ͻ`(dih^Cp,tmx/LpH,$l:)ZX5zۯx, h9nkp:NΟPߝz|}qJy{pIRz`UyzP>?FM=ByJ@zJC? x ړFB=M۠کDƹ鎨@O=qCr>}G** AGRbQ%I0)%uFB.q A%_C4l''ǐ:Gw,5WMvѕ es C05\&<|% zPƛ+ZȤ=y8aH^CP% H2/Z`a%buxQ$iz3j%M;Xg L+(_mT|̂30EQs}G"T=f뗱$O%Np=cȝud\Q7[DbD]HKGP6OiNH+wZGXqW}@3&r >A99M1$@N?GP61}gYO91c=IZNyt@tvXemՋarLn$f 1-iB(@(bD^`BĚPTM[%@Y]"*j(˜EoFͩ P>eyz6@oic@!{KZcqWaf @k2ғ vB>PjXA+%ОzH /#C#*cBfP@ MВ'Y2@Q@R6s;Q%qIgsSp)(#,v%#HבPޣ9fBܛ6֢o:ڣ4 ,A2ֿ=5Fԙw?ja7Z7 %L7&%?.WngwG;070701000798ca000081a4000000650000000a000000014acc660500000209000000b600010008ffffffffffffffff0000002700000000reloc/opt/d-cache/docs/images/area.gifGIF89aD!,Dڋ޼H扦ʶ L ě jtJM*Z܎ ~d6ZN;hnq\K{WqvQuUgiP7!9&u(hiذIY 6x9ș :Jʐt*0K˘+t ܹ[{K\, {:imG =L팮ZM.~m^j]npkd4q`D\ ذu8 c@PQa&jad2*$ ov/'Ǘ;x4rQX́'?Bդ|J8ԫքM}\ ճcӖekf"C:h\ަ 6VJ~W0'-oӪtO7ർxeb4|58O% ujZQ9Ҕ3<̛;=ԫ[=ܻ{z;070701000798de000081a4000000650000000a000000014acc6605000000e9000000b600010008ffffffffffffffff0000002b00000000reloc/opt/d-cache/docs/images/eaglered.gifGIF87aA1Q,A1Ȍڋ x2H!斶ߚ-\6:?R4}rs=ҀnYX6=|᭪+ txm<bw'8e2V8u&I5鶴V9z'ZJhi DXW(k+)z Ti< FqKս.>N^P;070701000798dd000081a4000000650000000a000000014acc66050000041d000000b600010008ffffffffffffffff0000002a00000000reloc/opt/d-cache/docs/images/eaglebw.gifGIF87aA1u@s8r/ho`me /p@a8tri@cNk /@ch`ep@2P0x00/imag`es/eTa8gleb\w.@gi8f'? 8@ǹT\@8@@ @8 88t8@ @t8@ "@|X8\@ @@8 @@8@t.X@ @88,8{t @TP&@ @\8L8PtQ@&8`Ȱ&@@@R@ @L8X`xԁTP \@ BLt nOvertwrite exisdting @file ,A1H*\ȰÇ#JHŋhƏ ;vI2ȋ%SnN^n~/?O_o0 <0… :|1ĉ+Z1Z;z2ȑ$K<2ʕ,[| 3̙4kڼ3Ν<{ 4СD=4ҥL:} 5ԩTZ5֭\z 6رd˚=D;070701000798e0000081a4000000650000000a000000014acc660500000bc2000000b600010008ffffffffffffffff0000002b00000000reloc/opt/d-cache/docs/images/eurogate.gifGIF89ax33@@OOi @@((gg(g@ m@Uim P%m<@bڭ(m@@Um0.000.0 @(g(g,@/@@@LOn@,L@WO@@((L(gi *(\gW(@Bi ^@W (mHmHXQ@@W@4OB!\(PmLކ\O@HxMcHUW(H0H4im@8UlmPmLmȽi$mUO$BmxPm$$'Hm(g\@@lnPm!3Image generated by GNU Ghostscript (device=ppmraw) ,xH*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνOӫ_Ͼ˟O3_߀|Hw؟@"Z Fh%afHօj!X~(bQRt( UD!Z`0v /Њ6c<)cD6$+ YSLFi2Q) JVbeAZyR_~@n$ecjybt$&vY&w'Ji%)I&9'fdhzdj4i8gd%h⍊DJw>*r'ӌ%.tGzOGJRBǮ+,!f Ik-hAk+vK-^ۖtTN*ok-dk ";0M 0lM"4q[*=M 1ʂe қK!rt}2PLsK;3uIK0OK16|͓ }3L!͐3)mӕLuS[/lMVudRPO9KavcN}6Ri;T7/Vs97qGmo{y~8scd./xRwsy5~y 4_vrKj^ȉ믷Kn+e}.О?|rÛ,r;ES5A+xg s//~'O0UE1OvC`8t۞~V5ylU A Wm(H?#3FJ*t4 evsY%94HF 1Ofl8pģ!3c gI]*,I ]ar|bmP\:Қ4RZA@̙,!7m\FY:JI2LsҜ,:gx`U\ ʱr1Z$d jK(pdžLZ@Qc a>qIDIҗų*Ua/cR`rU`3c)Ov11Wl6~?NTKj)3LT㎊S*^MIY u+~*^&ʬ攮́EjҹjR1k2`)D.вHC1[R}P6gJA:8ԂlATDȹN6,WuJad;N}*a]{SWG-Npt[moYO6L,miMnZg#]퍼UnC[ jck,wAįAT}նnd F.@D_M\RuX:n&^-mW7wIإ#L1->&mC [1up{`KU.L÷_!)L/17֥O|]^۶]**հct/mξ3:ϙm^;)2;yrj{h'#^\SF8-MxBN(OW0gN8Ϲw@ЇNHOҗ;PԧN[XϺַ{`NhOpN+;070701000798fd000081a4000000650000000a000000014acc66050000017a000000b600010008ffffffffffffffff0000002c00000000reloc/opt/d-cache/docs/images/yellowbox.gifGIF87aQ,ڋ޼H扦ʶ L ĢL*̦ JԪjܮ N (8HXhx)9IYiy *:JZjz +;K[k{ ,N^n~/?O_o0 <0… :|1ĉ+Z1Z;z2ȑ$K<2ʕ,[| 3̙4kڼ3Ν<{ 4СD=4ҥL:} 5ԩTZ5֭\z 6رd˚=D;070701000798d6000081a4000000650000000a000000014acc660500000b4a000000b600010008ffffffffffffffff0000002c00000000reloc/opt/d-cache/docs/images/developer.gifGIF87a] KKKmmm,]X0IͻdiE p̼rmOpF@.Haql@ZB ?xLA@n@&Xw%bqM TXm_ $f*p˔ ]!a&SJКc"bԑan⁊63". Z9`bqq_?bJ^.2r20˂k(6u(Eu^GILq(K$2Ph}HPKaㇽj*-.sĈ͒J7Dk >O^:TSPKqwW̲^etpBMFPzb'F>g_`QdCjyQ5B/VF5FwKFP6IJDFZ l2<Zdk%r7iʒi'&khg- u?- %7`H -;9L[).4!vuzV)M \ь+E{^9^ԲAg[FGa9'1 z30DгSaaO)I7ks90R"4!S?I"l0DbP_{xfX'I0)-"󴦆BD'<Ìd=EƗ.i k1)bc`C=_?V "9Cn" /v=3HrP~R;"xR\3*ȁ0Q<$9"C>.>ɶ7Fʃ*)9dIMg4s7hdhxU *z CEs 7q8S1'VY!z8Q}6q JhDB LB+4/O2V(vCan_d%P2c?$e E8;ѩS/2W }`#O$]h!z:EtMsi!"crá7 @#t2#ߤgV)7B%nXm ($gAҜ,ڠG 3q "9ԓbc՜ERY0 Rα*$& TCPZ/PeA:C(e.J}>Lrb_I2NcUD&;YO(P J$!ӬۜR ngRA=!+EVlIS)`hN#"K+T1s64] \3ȤrZsl$@|qpFu~(ݫl]4;-XGJ^x+(XPKm%A#^KS?mܒ0l@ƌφ''H x!_<]]t?ȎO2.: /4VXp 0?e0iVRvT(P6FH#~kbVga<<+N gQ*τӥK VF~(fMX*XEB2 ZL.M HRR!+1>]zGW8LD`QaucV :`4K2E]h#DrMϪQ Q 6J=z34ǴanV6Dt' Zxāe8>g UAx K*yiesR.[AUoqSŕJqApl]"ލJhxivx~-0|YG:ՃK8XW)$8$ qG4uzM^,j(5qMt %1Қ^CP2Ư"#~Gt`%Њ`$ bƓPc)QQ_1AMu)`u9|ӝ2&3YW\- "R%J+_*BBLMI&ӣT/t'c/P7R ꕣx%B& H tsVǃ;c…gOc!WArnc0Dc/ {;4q7 ɇ {ksPvPʡ2,Prg5F%w\d<ЂT!zv1p: :q spǕKUJO@V[9z2eGdv $,)4d .3P~Zw_yPAt1iuD#/cWHM.lH5}H"*8Xx؊;070701000798f2000081a4000000650000000a000000014acc660500000bed000000b600010008ffffffffffffffff0000002b00000000reloc/opt/d-cache/docs/images/rateDist.gifGIF89a??!,80I8ͻ`(dihlp,tmx|pH,Ȥrl:h@ZXv*8\$x-.pMwxȜ=X~ UYVx{|m T" q` wrc YvveAnȧnĦ̐Uɐ:ԋTɡű.p뷏ඃњ)=?T0QY!̻hAo͎ʗVȉ#<"t_`SR&Re%P .:7v<>56OT>RZT\-0u6Uye7^ܓ*+Ɛ$-k2:sM誥S8Xk qkڸ;{-U/ ?IӊZO[yƴ76쀵opY"*m~-ɋyƸKe<=-gFeSYlßc"|nDzC{Tp540}]8hED\h|T\8VM̘ )s1 ? #(r ܔH%V^\Ze} &mbZff&pkrIgdY{Ȳ]$s E7p zzSC8HSSh-:}zlP[zj~ս$CDsC&(!B]ac(BhX}ҴD%PVPs$Wu.%ؐ@Y)xH3dAPizDR{2Hܫ>~u"Um@RxkSvI+/uZׅq0 ]1<3"NWsх-~ݴT+:(}δi HR6CTܪ -clxu~KCG8Fe-vLh]4)͚Bxu7|}{+xoW׎?c3xRaoH瞏riNDDMr'T:dKi1l[zߙLhIÚ$~Q L3(^it!qwlrPڭY;׈:;7aZe"|"[f ;un25/֋&=f]CI6>w^C COghA}E!tF􁩣OcS5S〵Z-g]XCW` VA f+a 0ܹ Ph&Qt|b@qr M}sg:gI`%0zqJ FB{NAW7BKޅUzMU)MomVp/a\2Kd]XYl])g920];1Y9n2U^^sPw|4:L Z: ;%seC:҂KĒ63jK7ʞo[jSOl|jȶы,KY:5ukb6Eja;}VjfFvm=ɚueφv# i'ӿ~kal{6-o8o:>q-ߛ Ƿ}}|^x k#yE.y oU!Ӽ}Q^@ЇN}HOҗ;PԧN[oXIK :Ny:Y)xczb}c%p UE᥽z~/|Qݕ86};"6 o}{G'%ֵu}a qOOl5' sH5S,c*8xh6H1򆴁%"<#7< 4h=1죃BiЍс31 9H| Y DFI: ;070701000798ec000081a4000000650000000a000000014acc66050000017a000000b600010008ffffffffffffffff0000002c00000000reloc/opt/d-cache/docs/images/orangebox.gifGIF87a,ڋ޼H扦ʶ L ĢL*̦ JԪjܮ N (8HXhx)9IYiy *:JZjz +;K[k{ ,N^n~/?O_o0 <0… :|1ĉ+Z1Z;z2ȑ$K<2ʕ,[| 3̙4kڼ3Ν<{ 4СD=4ҥL:} 5ԩTZ5֭\z 6رd˚=D;070701000798d0000081a4000000650000000a000000014acc66050008b7b0000000b600010008ffffffffffffffff0000003500000000reloc/opt/d-cache/docs/images/dCache-web-bg-logo.svg