{"action":"created","comment":{"url":"https://api.github.com/repos/quattor/template-library-grid/pulls/comments/28951758","id":28951758,"diff_hunk":"@@ -1,200 +1,251 @@\n-unique template personality/argus/pep;\r\n-\r\n-# Unique identifier  for the PEP \r\n-variable PEP_ENTITY_ID ?= 'http://' + PEP_HOST + '/pepd';\r\n-\r\n-# PEP admin service port\r\n-variable PEP_ADMIN_PORT ?= 8155;\r\n-\r\n-# PEP admin service password for shurtdown, clear cache, ..., commands\r\n-variable PEP_ADMIN_PASSWORD ?= undef;\r\n-\r\n-# List of PDP endpoint URLs for the PEP to use\r\n-variable PEP_PDP_ENDPOINTS ?= list('https://' + PDP_HOST + ':' + to_string(PDP_PORT) + '/authz');\r\n-\r\n-# Indicates whether to prefer a DN based mapping for the login name mapping\r\n-# over a primary FQAN login name mapping.\r\n-variable DNForAccountMapping ?= false;\r\n-\r\n-variable PEP_LOCATION = ARGUS_LOCATION + '/pepd';\r\n-variable PEP_LOCATION_ETC = ARGUS_LOCATION_ETC + '/pepd';\r\n-variable PEP_LOCATION_LOG = ARGUS_LOCATION_LOG + '/pepd';\r\n-variable PEP_LOCATION_SBIN = PEP_LOCATION + '/sbin';\r\n-\r\n-\r\n-#-----------------------------------------------------------------------------\r\n-# PEP Configuration\r\n-#-----------------------------------------------------------------------------\r\n-\r\n-variable PEP_CONFIG_FILE = PEP_HOME + '/conf/pepd.ini';\r\n-variable PEP_CONFIG_CONTENTS = {\r\n-  contents = '#' + \"\\n\";\r\n-  contents = contents + '# Argus PEP Server configuration' + \"\\n\";\r\n-  contents = contents + '#' + \"\\n\";\r\n-  contents = contents + '#  Documentation: https://twiki.cern.ch/twiki/bin/view/EGEE/AuthZPEPDConfig' + \"\\n\";\r\n-  contents = contents + '# ' + \"\\n\";\r\n-  contents = contents + '[SERVICE]' + \"\\n\";\r\n-  contents = contents + 'entityId = ' + PEP_ENTITY_ID + \"\\n\";\r\n-  contents = contents + 'hostname = ' + PEP_HOST + \"\\n\";\r\n-  contents = contents + 'port = ' + to_string(PEP_PORT) + \"\\n\";\r\n-  contents = contents + 'adminPort = ' + to_string(PEP_ADMIN_PORT) + \"\\n\";\r\n-  if (is_defined(PEP_ADMIN_PASSWORD)) {\r\n-    contents = contents + 'adminPassword = ' + PEP_ADMIN_PASSWORD + \"\\n\";\r\n-  };\r\n-  contents = contents + \"\\n\";\r\n-  contents = contents + 'pips = REQVALIDATOR_PIP OPENSSLSUBJECT_PIP GLITEXACMLPROFILE_PIP COMMONXACMLPROFILE_PIP' + \"\\n\";\r\n-  contents = contents + 'obligationHandlers = ACCOUNTMAPPER_OH' + \"\\n\";\r\n-  contents = contents + \"\\n\";\r\n-  contents = contents + '[PDP]' + \"\\n\";\r\n-  contents = contents + 'pdps =';\r\n-  foreach (i;endpoint;PEP_PDP_ENDPOINTS) {\r\n-    contents = contents + ' ' + endpoint;\r\n-  };\r\n-  contents = contents + \"\\n\";\r\n-  contents = contents + \"\\n\";\r\n-  contents = contents + '[SECURITY]' + \"\\n\";\r\n-  contents = contents + 'servicePrivateKey = ' + SITE_DEF_HOST_KEY + \"\\n\";\r\n-  contents = contents + 'serviceCertificate = ' + SITE_DEF_HOST_CERT + \"\\n\";\r\n-  contents = contents + 'trustInfoDir = ' + SITE_DEF_CERTDIR + \"\\n\";\r\n-  contents = contents + 'enableSSL = true' + \"\\n\";\r\n-  contents = contents + 'requireClientCertAuthentication = true' + \"\\n\";\r\n-  contents = contents + \"\\n\";\r\n-  contents = contents + '#' + \"\\n\";\r\n-  contents = contents + '# Policy Information Points (PIP) configuration' + \"\\n\";\r\n-  contents = contents + '#' + \"\\n\";\r\n-  contents = contents + '[REQVALIDATOR_PIP]' + \"\\n\";\r\n-  contents = contents + 'parserClass = org.glite.authz.pep.pip.provider.RequestValidatorPIPIniConfigurationParser' + \"\\n\";\r\n-  contents = contents + 'validateRequestSubjects = true' + \"\\n\";\r\n-  contents = contents + 'validateRequestResources = true' + \"\\n\";\r\n-  contents = contents + 'validateRequestAction = true' + \"\\n\";\r\n-  contents = contents + 'validateRequestEnvironment = false' + \"\\n\";\r\n-  contents = contents + \"\\n\";\r\n-  contents = contents + '[OPENSSLSUBJECT_PIP]' + \"\\n\";\r\n-  contents = contents + 'parserClass = org.glite.authz.pep.pip.provider.OpenSSLSubjectPIPIniConfigurationParser' + \"\\n\";\r\n-  contents = contents + 'opensslSubjectAttributeIDs = http://glite.org/xacml/attribute/subject-issuer urn:oasis:names:tc:xacml:1.0:subject:subject-id' + \"\\n\";\r\n-  contents = contents + 'opensslSubjectAttributeDatatypes = http://www.w3.org/2001/XMLSchema#string' + \"\\n\";\r\n-  contents = contents + \"\\n\";\r\n-  contents = contents + '[GLITEXACMLPROFILE_PIP]' + \"\\n\";\r\n-  contents = contents + 'parserClass = org.glite.authz.pep.pip.provider.GLiteAuthorizationProfilePIPIniConfigurationParser' + \"\\n\";\r\n-  contents = contents + 'vomsInfoDir = ' + SITE_DEF_VOMSDIR + \"\\n\";\r\n-  contents = contents + 'acceptedProfileIDs = http://glite.org/xacml/profile/grid-ce/1.0 http://glite.org/xacml/profile/grid-wn/1.0' + \"\\n\";\r\n-  contents = contents + \"\\n\";\r\n-  contents = contents + '[COMMONXACMLPROFILE_PIP]' + \"\\n\";\r\n-  contents = contents + 'parserClass = org.glite.authz.pep.pip.provider.CommonXACMLAuthorizationProfilePIPIniConfigurationParser' + \"\\n\";\r\n-  contents = contents + 'vomsInfoDir = ' + SITE_DEF_VOMSDIR + \"\\n\";\r\n-  contents = contents + 'acceptedProfileIDs = http://dci-sec.org/xacml/profile/common-authz/1.1' + \"\\n\";\r\n-  contents = contents + \"\\n\";\r\n-  contents = contents + '#' + \"\\n\";\r\n-  contents = contents + '# Obligation Handlers (OH) configuration' + \"\\n\";\r\n-  contents = contents + '#' + \"\\n\";\r\n-  contents = contents + '[ACCOUNTMAPPER_OH]' + \"\\n\";\r\n-  contents = contents + 'parserClass = org.glite.authz.pep.obligation.dfpmap.DFPMObligationHandlerConfigurationParser' + \"\\n\";\r\n-  contents = contents + 'handledObligationId = http://glite.org/xacml/obligation/local-environment-map' + \"\\n\";\r\n-  contents = contents + 'accountMapFile = ' + SITE_DEF_GRIDMAP + \"\\n\";\r\n-  contents = contents + 'groupMapFile = ' + LCMAPS_CONFIG_DIR + \"/groupmapfile\\n\";\r\n-  contents = contents + 'gridMapDir = ' + SITE_DEF_GRIDMAPDIR + \"\\n\";\r\n-  contents = contents + 'useSecondaryGroupNamesForMapping = true' + \"\\n\";\r\n-\r\n-  contents;\r\n-};\r\n-\r\n-\"/software/components/filecopy/services\" =\r\n-  npush(escape(PEP_CONFIG_FILE),\r\n-        nlist(\"config\",PEP_CONFIG_CONTENTS,\r\n-              \"owner\",\"root\",\r\n-              \"perms\",\"0640\",\r\n-       )\r\n-  );\r\n-\r\n-\r\n-#-----------------------------------------------------------------------------\r\n-# PEP Startup Script\r\n-#-----------------------------------------------------------------------------\r\n-\r\n-variable PEP_STARTUP_FILE = '/etc/init.d/pepd';\r\n-variable PEP_STARTUP_CONTENTS = {\r\n-  contents = \"#!/bin/bash\\n\";\r\n-  contents = contents + '###############################################################################' + \"\\n\";\r\n-  contents = contents + '#' + \"\\n\";\r\n-  contents = contents + '#       Copyright (c) Members of the EGEE Collaboration. 2004' + \"\\n\";\r\n-  contents = contents + '#       See http://eu-egee.org/partners/ for details on the copyright holders' + \"\\n\";\r\n-  contents = contents + '#       For license conditions see the license file or http://eu-egee.org/license.html' + \"\\n\";\r\n-  contents = contents + '#' + \"\\n\";\r\n-  contents = contents + '#   Startup script for PEP daemon server' + \"\\n\";\r\n-  contents = contents + '#' + \"\\n\";\r\n-  contents = contents + '#   chkconfig: 345 97 97' + \"\\n\";\r\n-  contents = contents + '#' + \"\\n\";\r\n-  contents = contents + '#   description:  PEP daemon server startup script' + \"\\n\";\r\n-  contents = contents + '#' + \"\\n\";\r\n-  contents = contents + '#   processname: pepd' + \"\\n\";\r\n-  contents = contents + '#' + \"\\n\";\r\n-  contents = contents + '#   Author(s): Maria Alandes Pradillo <yaim-contact@cern.ch>' + \"\\n\";\r\n-  contents = contents + '#              Valery Tschopp <argus-support@cern.ch>' + \"\\n\";\r\n-  contents = contents + '#' + \"\\n\";\r\n-  contents = contents + '#   Version: V1.2' + \"\\n\";\r\n-  contents = contents + '#' + \"\\n\";\r\n-  contents = contents + '#   Date: 12/04/2010' + \"\\n\";\r\n-  contents = contents + '###############################################################################' + \"\\n\";\r\n-  contents = contents + 'PEP_HOME=' + PEP_HOME + \"\\n\";\r\n-  contents = contents + 'export PEP_HOME' + \"\\n\";\r\n-  contents = contents + \"\\n\";\r\n-  contents = contents + 'if [ `id -u` -ne 0 ]; then' + \"\\n\";\r\n-  contents = contents + '    echo \"You need root privileges to run this script\"' + \"\\n\";\r\n-  contents = contents + '    exit 1' + \"\\n\";\r\n-  contents = contents + 'fi ' + \"\\n\";\r\n-  contents = contents + \"\\n\";\r\n-  contents = contents + 'case \"$1\" in' + \"\\n\";\r\n-  contents = contents + '    start)' + \"\\n\";\r\n-  contents = contents + '        ' + PEP_HOME + '/sbin/pepdctl.sh start' + \"\\n\";\r\n-  contents = contents + '        ;; ' + \"\\n\";\r\n-  contents = contents + '    stop)' + \"\\n\";\r\n-  contents = contents + '        ' + PEP_HOME + '/sbin/pepdctl.sh stop' + \"\\n\";\r\n-  contents = contents + '        ;;' + \"\\n\";\r\n-  contents = contents + '    status)' + \"\\n\";\r\n-  contents = contents + '        ' + PEP_HOME + '/sbin/pepdctl.sh status' + \"\\n\";\r\n-  contents = contents + '        ;;' + \"\\n\";\r\n-  contents = contents + '    clearcache)' + \"\\n\";\r\n-  contents = contents + '        ' + PEP_HOME + '/sbin/pepdctl.sh clearResponseCache' + \"\\n\";\r\n-  contents = contents + '        ;;' + \"\\n\";\r\n-  contents = contents + '    *)' + \"\\n\";\r\n-  contents = contents + '        echo \"Usage: $0 {start|stop|status|clearcache}\"' + \"\\n\";\r\n-  contents = contents + '        exit 1' + \"\\n\";\r\n-  contents = contents + '        ;;' + \"\\n\";\r\n-  contents = contents + 'esac' + \"\\n\";\r\n-  contents = contents + \"\\n\";\r\n-  contents = contents + 'exit $?' + \"\\n\";\r\n-\r\n-  contents;\r\n-};\r\n-\r\n-'/software/components/filecopy/services' =\r\n-  npush(escape(PEP_STARTUP_FILE),\r\n-        nlist('config', PEP_STARTUP_CONTENTS,\r\n-              'owner', 'root',\r\n-              'perms', '0755',\r\n-              'restart', '/sbin/service pepd restart',\r\n-       )\r\n-  );\r\n-\r\n-\r\n-#-----------------------------------------------------------------------------\r\n-# Fix temporary RPM issues\r\n-#-----------------------------------------------------------------------------\r\n-\r\n-include { 'components/dirperm/config' };\r\n-\r\n-'/software/components/dirperm/paths' = {\r\n-  SELF[length(SELF)] = nlist('path', PEP_LOCATION_ETC,\r\n-                             'owner', 'root:root',\r\n-                             'perm', '0750',\r\n-                             'type', 'd',\r\n-                            );\r\n-  SELF[length(SELF)] = nlist('path', PEP_LOCATION_LOG,\r\n-                             'owner', 'root:root',\r\n-                             'perm', '0750',\r\n-                             'type', 'd',\r\n-                            );\r\n-\r\n-  SELF;\r\n-};\r\n-\r\n+unique template personality/argus/pep;\n+\n+# Unique identifier  for the PEP \n+variable PEP_ENTITY_ID ?= 'http://' + PEP_HOST + '/pepd';\n+\n+# PEP admin service port\n+variable PEP_ADMIN_PORT ?= 8155;\n+\n+# PEP admin service password for shurtdown, clear cache, ..., commands\n+variable PEP_ADMIN_PASSWORD ?= undef;\n+\n+# List of PDP endpoint URLs for the PEP to use\n+variable PEP_PDP_ENDPOINTS ?= list('https://' + PDP_HOST + ':' + to_string(PDP_PORT) + '/authz');\n+\n+# Indicates whether to prefer a DN based mapping for the login name mapping\n+# over a primary FQAN login name mapping.\n+variable DNForAccountMapping ?= false;\n+\n+variable PEP_LOCATION = ARGUS_LOCATION + '/pepd';\n+variable PEP_LOCATION_ETC = ARGUS_LOCATION_ETC + '/pepd';\n+variable PEP_LOCATION_LOG = ARGUS_LOCATION_LOG + '/pepd';\n+variable PEP_LOCATION_SBIN = PEP_LOCATION + '/sbin';\n+\n+# PDP responses caching mechanism\n+# variable PEP_PDP_CACHE_ENABLED ?= false;  # recommended\n+variable PEP_PDP_CACHE_ENABLED ?= true;     # default\n+\n+# PEP daemon java options\n+# variable PEP_JAVA_OPTIONS ?= '-Xmx1024M'; # recommended\n+variable PEP_JAVA_OPTIONS ?= '-Xmx256M';    # default\n+\n+#-----------------------------------------------------------------------------\n+# PEP Configuration\n+#-----------------------------------------------------------------------------\n+\n+variable PEP_CONFIG_FILE = PEP_HOME + '/conf/pepd.ini';\n+variable PEP_CONFIG_CONTENTS = {\n+  contents = '#' + \"\\n\";\n+  contents = contents + '# Argus PEP Server configuration' + \"\\n\";\n+  contents = contents + '#' + \"\\n\";\n+  contents = contents + '#  Documentation: https://twiki.cern.ch/twiki/bin/view/EGEE/AuthZPEPDConfig' + \"\\n\";\n+  contents = contents + '# ' + \"\\n\";\n+  contents = contents + '[SERVICE]' + \"\\n\";\n+  contents = contents + 'entityId = ' + PEP_ENTITY_ID + \"\\n\";\n+  contents = contents + 'hostname = ' + PEP_HOST + \"\\n\";\n+  contents = contents + 'port = ' + to_string(PEP_PORT) + \"\\n\";\n+  contents = contents + 'adminPort = ' + to_string(PEP_ADMIN_PORT) + \"\\n\";\n+  if (is_defined(PEP_ADMIN_PASSWORD)) {\n+    contents = contents + 'adminPassword = ' + PEP_ADMIN_PASSWORD + \"\\n\";\n+  };\n+  contents = contents + \"\\n\";\n+  contents = contents + 'pips = REQVALIDATOR_PIP OPENSSLSUBJECT_PIP GLITEXACMLPROFILE_PIP COMMONXACMLPROFILE_PIP' + \"\\n\";\n+  contents = contents + 'obligationHandlers = ACCOUNTMAPPER_OH' + \"\\n\";\n+  contents = contents + \"\\n\";\n+  contents = contents + '[PDP]' + \"\\n\";\n+  contents = contents + 'pdps =';\n+  foreach (i;endpoint;PEP_PDP_ENDPOINTS) {\n+    contents = contents + ' ' + endpoint;\n+  };\n+  contents = contents + \"\\n\";\n+  if (is_boolean(PEP_PDP_CACHE_ENABLED) && ! PEP_PDP_CACHE_ENABLED) {\n+    contents = contents + \"# disable the cache\\n\";\n+    contents = contents + \"maximumCachedResponses = 0\\n\";\n+  };\n+  contents = contents + \"\\n\";\n+  contents = contents + '[SECURITY]' + \"\\n\";\n+  contents = contents + 'servicePrivateKey = ' + SITE_DEF_HOST_KEY + \"\\n\";\n+  contents = contents + 'serviceCertificate = ' + SITE_DEF_HOST_CERT + \"\\n\";\n+  contents = contents + 'trustInfoDir = ' + SITE_DEF_CERTDIR + \"\\n\";\n+  contents = contents + 'enableSSL = true' + \"\\n\";\n+  contents = contents + 'requireClientCertAuthentication = true' + \"\\n\";\n+  contents = contents + \"\\n\";\n+  contents = contents + '#' + \"\\n\";\n+  contents = contents + '# Policy Information Points (PIP) configuration' + \"\\n\";\n+  contents = contents + '#' + \"\\n\";\n+  contents = contents + '[REQVALIDATOR_PIP]' + \"\\n\";\n+  contents = contents + 'parserClass = org.glite.authz.pep.pip.provider.RequestValidatorPIPIniConfigurationParser' + \"\\n\";\n+  contents = contents + 'validateRequestSubjects = true' + \"\\n\";\n+  contents = contents + 'validateRequestResources = true' + \"\\n\";\n+  contents = contents + 'validateRequestAction = true' + \"\\n\";\n+  contents = contents + 'validateRequestEnvironment = false' + \"\\n\";\n+  contents = contents + \"\\n\";\n+  contents = contents + '[OPENSSLSUBJECT_PIP]' + \"\\n\";\n+  contents = contents + 'parserClass = org.glite.authz.pep.pip.provider.OpenSSLSubjectPIPIniConfigurationParser' + \"\\n\";\n+  contents = contents + 'opensslSubjectAttributeIDs = http://glite.org/xacml/attribute/subject-issuer urn:oasis:names:tc:xacml:1.0:subject:subject-id' + \"\\n\";\n+  contents = contents + 'opensslSubjectAttributeDatatypes = http://www.w3.org/2001/XMLSchema#string' + \"\\n\";\n+  contents = contents + \"\\n\";\n+  contents = contents + '[GLITEXACMLPROFILE_PIP]' + \"\\n\";\n+  contents = contents + 'parserClass = org.glite.authz.pep.pip.provider.GLiteAuthorizationProfilePIPIniConfigurationParser' + \"\\n\";\n+  contents = contents + 'vomsInfoDir = ' + SITE_DEF_VOMSDIR + \"\\n\";\n+  contents = contents + 'acceptedProfileIDs = http://glite.org/xacml/profile/grid-ce/1.0 http://glite.org/xacml/profile/grid-wn/1.0' + \"\\n\";\n+  contents = contents + \"\\n\";\n+  contents = contents + '[COMMONXACMLPROFILE_PIP]' + \"\\n\";\n+  contents = contents + 'parserClass = org.glite.authz.pep.pip.provider.CommonXACMLAuthorizationProfilePIPIniConfigurationParser' + \"\\n\";\n+  contents = contents + 'vomsInfoDir = ' + SITE_DEF_VOMSDIR + \"\\n\";\n+  contents = contents + 'acceptedProfileIDs = http://dci-sec.org/xacml/profile/common-authz/1.1' + \"\\n\";\n+  contents = contents + \"\\n\";\n+  contents = contents + '#' + \"\\n\";\n+  contents = contents + '# Obligation Handlers (OH) configuration' + \"\\n\";\n+  contents = contents + '#' + \"\\n\";\n+  contents = contents + '[ACCOUNTMAPPER_OH]' + \"\\n\";\n+  contents = contents + 'parserClass = org.glite.authz.pep.obligation.dfpmap.DFPMObligationHandlerConfigurationParser' + \"\\n\";\n+  contents = contents + 'handledObligationId = http://glite.org/xacml/obligation/local-environment-map' + \"\\n\";\n+  contents = contents + 'accountMapFile = ' + SITE_DEF_GRIDMAP + \"\\n\";\n+  contents = contents + 'groupMapFile = ' + LCMAPS_CONFIG_DIR + \"/groupmapfile\\n\";\n+  contents = contents + 'gridMapDir = ' + SITE_DEF_GRIDMAPDIR + \"\\n\";\n+  contents = contents + 'useSecondaryGroupNamesForMapping = true' + \"\\n\";\n+\n+  contents;\n+};\n+\n+\"/software/components/filecopy/services\" =\n+  npush(escape(PEP_CONFIG_FILE),\n+        nlist(\"config\",PEP_CONFIG_CONTENTS,\n+              \"owner\",\"root\",\n+              \"perms\",\"0640\",\n+       )\n+  );\n+\n+\n+#-----------------------------------------------------------------------------\n+# PEP system configuration file\n+#-----------------------------------------------------------------------------\n+\n+variable PEP_SYSCONFIG_FILE ?= '/etc/sysconfig/argus-pepd';\n+'/software/components/filecopy/services' = {\n+    this = <<EOF;\n+#\n+# Options for the Argus PEP server\n+#\n+#JAVACMD=\"/usr/bin/java\"\n+# IPv4 instead of IPv6\n+#PEPD_JOPTS=\"-Djava.net.preferIPv4Stack=true\"\n+PEPD_JOPTS=PEP_JAVA_OPTIONS\n+#PEPD_HOME=\"/usr/share/argus/pepd\"\n+#PEPD_CONF=\"/etc/argus/pepd/pepd.ini\"\n+#PEPD_CONFDIR=\"/etc/argus/pepd\"\n+#PEPD_LOGDIR=\"/var/log/argus/pepd\"\n+#PEPD_LIBDIR=\"/var/lib/argus/pepd/lib\"\n+#PEPD_ENDORSEDDIR=\"/var/lib/argus/pepd/lib/endorsed\"\n+#PEPD_PROVIDEDDIR=\"/var/lib/argus/pepd/lib/provided\"\n+#PEPD_PID=\"/var/run/argus-pepd.pid\"\n+\n+# OS provided dependencies (false to use embedded)\n+#PEPD_USE_OS_CANL=\"false\"\n+#PEPD_USE_OS_BCPROV=\"false\"\n+#PEPD_USE_OS_VOMS=\"false\"\n+#PEPD_USE_OS_BCMAIL=\"false\"\n+EOF\n+    this = replace('PEP_JAVA_OPTIONS', PEP_JAVA_OPTIONS, this);\n+    SELF[escape(PEP_SYSCONFIG_FILE)] = nlist(\n+        'config', this,\n+        'owner', 'root',\n+        'perms', '0640',\n+        'backup', false,\n+        'restart', '/sbin/service pepd restart',\n+    );\n+    SELF;\n+};\n+\n+#-----------------------------------------------------------------------------\n+# PEP Startup Script\n+#-----------------------------------------------------------------------------\n+\n+variable PEP_STARTUP_FILE = '/etc/init.d/pepd';\n+variable PEP_STARTUP_CONTENTS = {\n+  contents = \"#!/bin/bash\\n\";\n+  contents = contents + '###############################################################################' + \"\\n\";\n+  contents = contents + '#' + \"\\n\";\n+  contents = contents + '#       Copyright (c) Members of the EGEE Collaboration. 2004' + \"\\n\";\n+  contents = contents + '#       See http://eu-egee.org/partners/ for details on the copyright holders' + \"\\n\";\n+  contents = contents + '#       For license conditions see the license file or http://eu-egee.org/license.html' + \"\\n\";\n+  contents = contents + '#' + \"\\n\";\n+  contents = contents + '#   Startup script for PEP daemon server' + \"\\n\";\n+  contents = contents + '#' + \"\\n\";\n+  contents = contents + '#   chkconfig: 345 97 97' + \"\\n\";\n+  contents = contents + '#' + \"\\n\";\n+  contents = contents + '#   description:  PEP daemon server startup script' + \"\\n\";\n+  contents = contents + '#' + \"\\n\";\n+  contents = contents + '#   processname: pepd' + \"\\n\";\n+  contents = contents + '#' + \"\\n\";\n+  contents = contents + '#   Author(s): Maria Alandes Pradillo <yaim-contact@cern.ch>' + \"\\n\";\n+  contents = contents + '#              Valery Tschopp <argus-support@cern.ch>' + \"\\n\";\n+  contents = contents + '#' + \"\\n\";\n+  contents = contents + '#   Version: V1.2' + \"\\n\";\n+  contents = contents + '#' + \"\\n\";\n+  contents = contents + '#   Date: 12/04/2010' + \"\\n\";\n+  contents = contents + '###############################################################################' + \"\\n\";\n+  contents = contents + 'PEP_HOME=' + PEP_HOME + \"\\n\";\n+  contents = contents + 'export PEP_HOME' + \"\\n\";\n+  contents = contents + \"\\n\";\n+  contents = contents + 'if [ `id -u` -ne 0 ]; then' + \"\\n\";\n+  contents = contents + '    echo \"You need root privileges to run this script\"' + \"\\n\";\n+  contents = contents + '    exit 1' + \"\\n\";\n+  contents = contents + 'fi ' + \"\\n\";\n+  contents = contents + \"\\n\";\n+  contents = contents + 'case \"$1\" in' + \"\\n\";\n+  contents = contents + '    start)' + \"\\n\";\n+  contents = contents + '        ' + PEP_HOME + '/sbin/pepdctl.sh start' + \"\\n\";\n+  contents = contents + '        ;; ' + \"\\n\";\n+  contents = contents + '    stop)' + \"\\n\";\n+  contents = contents + '        ' + PEP_HOME + '/sbin/pepdctl.sh stop' + \"\\n\";\n+  contents = contents + '        ;;' + \"\\n\";\n+  contents = contents + '    status)' + \"\\n\";\n+  contents = contents + '        ' + PEP_HOME + '/sbin/pepdctl.sh status' + \"\\n\";\n+  contents = contents + '        ;;' + \"\\n\";\n+  contents = contents + '    clearcache)' + \"\\n\";\n+  contents = contents + '        ' + PEP_HOME + '/sbin/pepdctl.sh clearResponseCache' + \"\\n\";\n+  contents = contents + '        ;;' + \"\\n\";\n+  contents = contents + '    *)' + \"\\n\";\n+  contents = contents + '        echo \"Usage: $0 {start|stop|status|clearcache}\"' + \"\\n\";\n+  contents = contents + '        exit 1' + \"\\n\";\n+  contents = contents + '        ;;' + \"\\n\";\n+  contents = contents + 'esac' + \"\\n\";\n+  contents = contents + \"\\n\";\n+  contents = contents + 'exit $?' + \"\\n\";\n+\n+  contents;\n+};\n+\n+'/software/components/filecopy/services' =\n+  npush(escape(PEP_STARTUP_FILE),\n+        nlist('config', PEP_STARTUP_CONTENTS,\n+              'owner', 'root',\n+              'perms', '0755',\n+              'restart', '/sbin/service pepd restart',\n+       )\n+  );\n+\n+\n+#-----------------------------------------------------------------------------\n+# Fix temporary RPM issues\n+#-----------------------------------------------------------------------------\n+\n+include { 'components/dirperm/config' };\n+\n+'/software/components/dirperm/paths' = {\n+  SELF[length(SELF)] = nlist('path', PEP_LOCATION_ETC,","path":"personality/argus/pep.pan","position":null,"original_position":438,"commit_id":"0fc0201fc500c3e3bca4a59c882d6740a5f528ce","original_commit_id":"40170ff588b40d9e9636631cf30629a5176ae548","user":{"login":"victor-mendoza","id":1932671,"avatar_url":"https://avatars.githubusercontent.com/u/1932671?v=3","gravatar_id":"","url":"https://api.github.com/users/victor-mendoza","html_url":"https://github.com/victor-mendoza","followers_url":"https://api.github.com/users/victor-mendoza/followers","following_url":"https://api.github.com/users/victor-mendoza/following{/other_user}","gists_url":"https://api.github.com/users/victor-mendoza/gists{/gist_id}","starred_url":"https://api.github.com/users/victor-mendoza/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/victor-mendoza/subscriptions","organizations_url":"https://api.github.com/users/victor-mendoza/orgs","repos_url":"https://api.github.com/users/victor-mendoza/repos","events_url":"https://api.github.com/users/victor-mendoza/events{/privacy}","received_events_url":"https://api.github.com/users/victor-mendoza/received_events","type":"User","site_admin":false},"body":"done","created_at":"2015-04-23T10:23:56Z","updated_at":"2015-04-23T10:23:56Z","html_url":"https://github.com/quattor/template-library-grid/pull/134#discussion_r28951758","pull_request_url":"https://api.github.com/repos/quattor/template-library-grid/pulls/134","_links":{"self":{"href":"https://api.github.com/repos/quattor/template-library-grid/pulls/comments/28951758"},"html":{"href":"https://github.com/quattor/template-library-grid/pull/134#discussion_r28951758"},"pull_request":{"href":"https://api.github.com/repos/quattor/template-library-grid/pulls/134"}}},"pull_request":{"url":"https://api.github.com/repos/quattor/template-library-grid/pulls/134","id":31333580,"html_url":"https://github.com/quattor/template-library-grid/pull/134","diff_url":"https://github.com/quattor/template-library-grid/pull/134.diff","patch_url":"https://github.com/quattor/template-library-grid/pull/134.patch","issue_url":"https://api.github.com/repos/quattor/template-library-grid/issues/134","number":134,"state":"open","locked":false,"title":"Argus: allow workarounds for performance issues","user":{"login":"victor-mendoza","id":1932671,"avatar_url":"https://avatars.githubusercontent.com/u/1932671?v=3","gravatar_id":"","url":"https://api.github.com/users/victor-mendoza","html_url":"https://github.com/victor-mendoza","followers_url":"https://api.github.com/users/victor-mendoza/followers","following_url":"https://api.github.com/users/victor-mendoza/following{/other_user}","gists_url":"https://api.github.com/users/victor-mendoza/gists{/gist_id}","starred_url":"https://api.github.com/users/victor-mendoza/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/victor-mendoza/subscriptions","organizations_url":"https://api.github.com/users/victor-mendoza/orgs","repos_url":"https://api.github.com/users/victor-mendoza/repos","events_url":"https://api.github.com/users/victor-mendoza/events{/privacy}","received_events_url":"https://api.github.com/users/victor-mendoza/received_events","type":"User","site_admin":false},"body":"These changes are necessary for the [suggested workarounds] (https://twiki.cern.ch/twiki/bin/view/EGEE/ArgusEMIDeployment).","created_at":"2015-03-17T13:17:29Z","updated_at":"2015-04-23T10:23:56Z","closed_at":null,"merged_at":null,"merge_commit_sha":"02c59a3d6517d151e634e4106d1a6effe60f4028","assignee":null,"milestone":{"url":"https://api.github.com/repos/quattor/template-library-grid/milestones/5","html_url":"https://github.com/quattor/template-library-grid/milestones/15.4","labels_url":"https://api.github.com/repos/quattor/template-library-grid/milestones/5/labels","id":811165,"number":5,"title":"15.4","description":null,"creator":{"login":"jrha","id":323309,"avatar_url":"https://avatars.githubusercontent.com/u/323309?v=3","gravatar_id":"","url":"https://api.github.com/users/jrha","html_url":"https://github.com/jrha","followers_url":"https://api.github.com/users/jrha/followers","following_url":"https://api.github.com/users/jrha/following{/other_user}","gists_url":"https://api.github.com/users/jrha/gists{/gist_id}","starred_url":"https://api.github.com/users/jrha/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jrha/subscriptions","organizations_url":"https://api.github.com/users/jrha/orgs","repos_url":"https://api.github.com/users/jrha/repos","events_url":"https://api.github.com/users/jrha/events{/privacy}","received_events_url":"https://api.github.com/users/jrha/received_events","type":"User","site_admin":false},"open_issues":8,"closed_issues":0,"state":"open","created_at":"2014-10-02T10:31:05Z","updated_at":"2015-04-17T10:34:10Z","due_on":"2015-04-28T07:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/quattor/template-library-grid/pulls/134/commits","review_comments_url":"https://api.github.com/repos/quattor/template-library-grid/pulls/134/comments","review_comment_url":"https://api.github.com/repos/quattor/template-library-grid/pulls/comments{/number}","comments_url":"https://api.github.com/repos/quattor/template-library-grid/issues/134/comments","statuses_url":"https://api.github.com/repos/quattor/template-library-grid/statuses/0fc0201fc500c3e3bca4a59c882d6740a5f528ce","head":{"label":"victor-mendoza:argus_performance","ref":"argus_performance","sha":"0fc0201fc500c3e3bca4a59c882d6740a5f528ce","user":{"login":"victor-mendoza","id":1932671,"avatar_url":"https://avatars.githubusercontent.com/u/1932671?v=3","gravatar_id":"","url":"https://api.github.com/users/victor-mendoza","html_url":"https://github.com/victor-mendoza","followers_url":"https://api.github.com/users/victor-mendoza/followers","following_url":"https://api.github.com/users/victor-mendoza/following{/other_user}","gists_url":"https://api.github.com/users/victor-mendoza/gists{/gist_id}","starred_url":"https://api.github.com/users/victor-mendoza/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/victor-mendoza/subscriptions","organizations_url":"https://api.github.com/users/victor-mendoza/orgs","repos_url":"https://api.github.com/users/victor-mendoza/repos","events_url":"https://api.github.com/users/victor-mendoza/events{/privacy}","received_events_url":"https://api.github.com/users/victor-mendoza/received_events","type":"User","site_admin":false},"repo":{"id":26855210,"name":"template-library-grid","full_name":"victor-mendoza/template-library-grid","owner":{"login":"victor-mendoza","id":1932671,"avatar_url":"https://avatars.githubusercontent.com/u/1932671?v=3","gravatar_id":"","url":"https://api.github.com/users/victor-mendoza","html_url":"https://github.com/victor-mendoza","followers_url":"https://api.github.com/users/victor-mendoza/followers","following_url":"https://api.github.com/users/victor-mendoza/following{/other_user}","gists_url":"https://api.github.com/users/victor-mendoza/gists{/gist_id}","starred_url":"https://api.github.com/users/victor-mendoza/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/victor-mendoza/subscriptions","organizations_url":"https://api.github.com/users/victor-mendoza/orgs","repos_url":"https://api.github.com/users/victor-mendoza/repos","events_url":"https://api.github.com/users/victor-mendoza/events{/privacy}","received_events_url":"https://api.github.com/users/victor-mendoza/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/victor-mendoza/template-library-grid","description":"Template library for configuring EMI grid middleware services","fork":true,"url":"https://api.github.com/repos/victor-mendoza/template-library-grid","forks_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/forks","keys_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/keys{/key_id}","collaborators_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/teams","hooks_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/hooks","issue_events_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/issues/events{/number}","events_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/events","assignees_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/assignees{/user}","branches_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/branches{/branch}","tags_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/tags","blobs_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/git/refs{/sha}","trees_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/git/trees{/sha}","statuses_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/statuses/{sha}","languages_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/languages","stargazers_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/stargazers","contributors_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/contributors","subscribers_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/subscribers","subscription_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/subscription","commits_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/commits{/sha}","git_commits_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/git/commits{/sha}","comments_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/comments{/number}","issue_comment_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/issues/comments{/number}","contents_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/contents/{+path}","compare_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/compare/{base}...{head}","merges_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/merges","archive_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/downloads","issues_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/issues{/number}","pulls_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/pulls{/number}","milestones_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/milestones{/number}","notifications_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/labels{/name}","releases_url":"https://api.github.com/repos/victor-mendoza/template-library-grid/releases{/id}","created_at":"2014-11-19T09:59:52Z","updated_at":"2015-03-17T10:00:54Z","pushed_at":"2015-04-23T10:18:22Z","git_url":"git://github.com/victor-mendoza/template-library-grid.git","ssh_url":"git@github.com:victor-mendoza/template-library-grid.git","clone_url":"https://github.com/victor-mendoza/template-library-grid.git","svn_url":"https://github.com/victor-mendoza/template-library-grid","homepage":null,"size":1994,"stargazers_count":0,"watchers_count":0,"language":"Pan","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"umd-3"}},"base":{"label":"quattor:umd-3","ref":"umd-3","sha":"1a9e946e14fd978d8347c587db55e0e72749a932","user":{"login":"quattor","id":1557169,"avatar_url":"https://avatars.githubusercontent.com/u/1557169?v=3","gravatar_id":"","url":"https://api.github.com/users/quattor","html_url":"https://github.com/quattor","followers_url":"https://api.github.com/users/quattor/followers","following_url":"https://api.github.com/users/quattor/following{/other_user}","gists_url":"https://api.github.com/users/quattor/gists{/gist_id}","starred_url":"https://api.github.com/users/quattor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/quattor/subscriptions","organizations_url":"https://api.github.com/users/quattor/orgs","repos_url":"https://api.github.com/users/quattor/repos","events_url":"https://api.github.com/users/quattor/events{/privacy}","received_events_url":"https://api.github.com/users/quattor/received_events","type":"Organization","site_admin":false},"repo":{"id":13220203,"name":"template-library-grid","full_name":"quattor/template-library-grid","owner":{"login":"quattor","id":1557169,"avatar_url":"https://avatars.githubusercontent.com/u/1557169?v=3","gravatar_id":"","url":"https://api.github.com/users/quattor","html_url":"https://github.com/quattor","followers_url":"https://api.github.com/users/quattor/followers","following_url":"https://api.github.com/users/quattor/following{/other_user}","gists_url":"https://api.github.com/users/quattor/gists{/gist_id}","starred_url":"https://api.github.com/users/quattor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/quattor/subscriptions","organizations_url":"https://api.github.com/users/quattor/orgs","repos_url":"https://api.github.com/users/quattor/repos","events_url":"https://api.github.com/users/quattor/events{/privacy}","received_events_url":"https://api.github.com/users/quattor/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/quattor/template-library-grid","description":"Template library for configuring EMI grid middleware services","fork":false,"url":"https://api.github.com/repos/quattor/template-library-grid","forks_url":"https://api.github.com/repos/quattor/template-library-grid/forks","keys_url":"https://api.github.com/repos/quattor/template-library-grid/keys{/key_id}","collaborators_url":"https://api.github.com/repos/quattor/template-library-grid/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/quattor/template-library-grid/teams","hooks_url":"https://api.github.com/repos/quattor/template-library-grid/hooks","issue_events_url":"https://api.github.com/repos/quattor/template-library-grid/issues/events{/number}","events_url":"https://api.github.com/repos/quattor/template-library-grid/events","assignees_url":"https://api.github.com/repos/quattor/template-library-grid/assignees{/user}","branches_url":"https://api.github.com/repos/quattor/template-library-grid/branches{/branch}","tags_url":"https://api.github.com/repos/quattor/template-library-grid/tags","blobs_url":"https://api.github.com/repos/quattor/template-library-grid/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/quattor/template-library-grid/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/quattor/template-library-grid/git/refs{/sha}","trees_url":"https://api.github.com/repos/quattor/template-library-grid/git/trees{/sha}","statuses_url":"https://api.github.com/repos/quattor/template-library-grid/statuses/{sha}","languages_url":"https://api.github.com/repos/quattor/template-library-grid/languages","stargazers_url":"https://api.github.com/repos/quattor/template-library-grid/stargazers","contributors_url":"https://api.github.com/repos/quattor/template-library-grid/contributors","subscribers_url":"https://api.github.com/repos/quattor/template-library-grid/subscribers","subscription_url":"https://api.github.com/repos/quattor/template-library-grid/subscription","commits_url":"https://api.github.com/repos/quattor/template-library-grid/commits{/sha}","git_commits_url":"https://api.github.com/repos/quattor/template-library-grid/git/commits{/sha}","comments_url":"https://api.github.com/repos/quattor/template-library-grid/comments{/number}","issue_comment_url":"https://api.github.com/repos/quattor/template-library-grid/issues/comments{/number}","contents_url":"https://api.github.com/repos/quattor/template-library-grid/contents/{+path}","compare_url":"https://api.github.com/repos/quattor/template-library-grid/compare/{base}...{head}","merges_url":"https://api.github.com/repos/quattor/template-library-grid/merges","archive_url":"https://api.github.com/repos/quattor/template-library-grid/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/quattor/template-library-grid/downloads","issues_url":"https://api.github.com/repos/quattor/template-library-grid/issues{/number}","pulls_url":"https://api.github.com/repos/quattor/template-library-grid/pulls{/number}","milestones_url":"https://api.github.com/repos/quattor/template-library-grid/milestones{/number}","notifications_url":"https://api.github.com/repos/quattor/template-library-grid/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/quattor/template-library-grid/labels{/name}","releases_url":"https://api.github.com/repos/quattor/template-library-grid/releases{/id}","created_at":"2013-09-30T16:11:55Z","updated_at":"2015-03-19T11:13:18Z","pushed_at":"2015-04-23T10:18:22Z","git_url":"git://github.com/quattor/template-library-grid.git","ssh_url":"git@github.com:quattor/template-library-grid.git","clone_url":"https://github.com/quattor/template-library-grid.git","svn_url":"https://github.com/quattor/template-library-grid","homepage":null,"size":3230,"stargazers_count":6,"watchers_count":6,"language":"Pan","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":10,"mirror_url":null,"open_issues_count":10,"forks":10,"open_issues":10,"watchers":6,"default_branch":"umd-3"}},"_links":{"self":{"href":"https://api.github.com/repos/quattor/template-library-grid/pulls/134"},"html":{"href":"https://github.com/quattor/template-library-grid/pull/134"},"issue":{"href":"https://api.github.com/repos/quattor/template-library-grid/issues/134"},"comments":{"href":"https://api.github.com/repos/quattor/template-library-grid/issues/134/comments"},"review_comments":{"href":"https://api.github.com/repos/quattor/template-library-grid/pulls/134/comments"},"review_comment":{"href":"https://api.github.com/repos/quattor/template-library-grid/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/quattor/template-library-grid/pulls/134/commits"},"statuses":{"href":"https://api.github.com/repos/quattor/template-library-grid/statuses/0fc0201fc500c3e3bca4a59c882d6740a5f528ce"}}}}