예제 #1
0
def setServer( optionValue ):
  global configurationServer
  configurationServer = optionValue
  DIRAC.gLogger.debug( '/DIRAC/Configuration/Servers =', configurationServer )
  Script.localCfg.addDefaultEntry( '/DIRAC/Configuration/Servers', configurationServer )
  DIRAC.gConfig.setOptionValue( cfgInstallPath( 'ConfigurationServer' ), configurationServer )
  return DIRAC.S_OK()
예제 #2
0
def setSiteName( optionValue ):
  global siteName
  siteName = optionValue
  Script.localCfg.addDefaultEntry( '/LocalSite/Site', siteName )
  DIRAC.__siteName = False
  DIRAC.gConfig.setOptionValue( cfgInstallPath( 'SiteName' ), siteName )
  return DIRAC.S_OK()
예제 #3
0
def setSetup( optionValue ):
  global setup
  setup = optionValue
  DIRAC.gLogger.debug( '/DIRAC/Setup =', setup )
  Script.localCfg.addDefaultEntry( '/DIRAC/Setup', setup )
  DIRAC.gConfig.setOptionValue( cfgInstallPath( 'Setup' ), setup )
  return DIRAC.S_OK()
예제 #4
0
def setLocalSE( optionValue ):
  global localSE
  localSE = optionValue
  DIRAC.gLogger.debug( '/LocalSite/localSE =', localSE )
  Script.localCfg.addDefaultEntry( '/LocalSite/localSE', localSE )
  DIRAC.gConfig.setOptionValue( cfgInstallPath( 'LocalSE' ), localSE )
  return DIRAC.S_OK()
예제 #5
0
def setArchitecture( optionValue ):
  global architecture
  architecture = optionValue
  DIRAC.gLogger.debug( '/LocalSite/Architecture =', architecture )
  Script.localCfg.addDefaultEntry( '/LocalSite/Architecture', architecture )
  DIRAC.gConfig.setOptionValue( cfgInstallPath( 'Architecture' ), architecture )
  return DIRAC.S_OK()
예제 #6
0
def setVO( optionValue ):
  global vo
  vo = optionValue
  DIRAC.gLogger.debug( '/DIRAC/VirtualOrganization =', vo )
  Script.localCfg.addDefaultEntry( '/DIRAC/VirtualOrganization', vo )
  DIRAC.gConfig.setOptionValue( cfgInstallPath( 'VirtualOrganization' ), vo )
  return DIRAC.S_OK()
예제 #7
0
def setCEName( optionValue ):
  global ceName
  ceName = optionValue
  DIRAC.gConfig.setOptionValue( cfgInstallPath( 'CEName' ), ceName )
  return DIRAC.S_OK()
예제 #8
0
def setSkipCAChecks( optionValue ):
  global skipCAChecks
  skipCAChecks = True
  DIRAC.gConfig.setOptionValue( cfgInstallPath( 'SkipCAChecks' ), skipCAChecks )
  return DIRAC.S_OK()
예제 #9
0
def setVO(optionValue):
    global vo
    vo = optionValue
    Script.localCfg.addDefaultEntry("/DIRAC/VirtualOrganization", vo)
    DIRAC.gConfig.setOptionValue(cfgInstallPath("VirtualOrganization"), vo)
    return DIRAC.S_OK()
예제 #10
0
def setSetup( optionValue ):
  global setup
  setup = optionValue
  DIRAC.gConfig.setOptionValue( '/DIRAC/Setup', setup )
  DIRAC.gConfig.setOptionValue( cfgInstallPath( 'Setup' ), setup )
  return DIRAC.S_OK()
예제 #11
0
 def setServerCert(self, optionValue):
     self.useServerCert = True
     DIRAC.gConfig.setOptionValue(cfgInstallPath("UseServerCertificate"),
                                  self.useServerCert)
     return DIRAC.S_OK()
예제 #12
0
def setArchitecture(optionValue):
    global architecture
    architecture = optionValue
    Script.localCfg.addDefaultEntry("/LocalSite/Architecture", architecture)
    DIRAC.gConfig.setOptionValue(cfgInstallPath("Architecture"), architecture)
    return DIRAC.S_OK()
예제 #13
0
def setSetup(optionValue):
    global setup
    setup = optionValue
    DIRAC.gConfig.setOptionValue('/DIRAC/Setup', setup)
    DIRAC.gConfig.setOptionValue(cfgInstallPath('Setup'), setup)
    return DIRAC.S_OK()
예제 #14
0
 def setVO(self, optionValue):
     self.vo = optionValue
     Script.localCfg.addDefaultEntry("/DIRAC/VirtualOrganization", self.vo)
     DIRAC.gConfig.setOptionValue(cfgInstallPath("VirtualOrganization"),
                                  self.vo)
     return DIRAC.S_OK()
예제 #15
0
 def setSetup(self, optionValue):
     self.setup = optionValue
     DIRAC.gConfig.setOptionValue("/DIRAC/Setup", self.setup)
     DIRAC.gConfig.setOptionValue(cfgInstallPath("Setup"), self.setup)
     return DIRAC.S_OK()
예제 #16
0
def setCEName(optionValue):
    global ceName
    ceName = optionValue
    DIRAC.gConfig.setOptionValue(cfgInstallPath('CEName'), ceName)
    return DIRAC.S_OK()
예제 #17
0
 def setGateway(self, optionValue):
     self.gatewayServer = optionValue
     self.setServer(self.gatewayServer + "/Configuration/Server")
     DIRAC.gConfig.setOptionValue(cfgInstallPath("Gateway"),
                                  self.gatewayServer)
     return DIRAC.S_OK()
예제 #18
0
def runDiracConfigure(params):
    Script.registerSwitch("", "login="******"Set DIRAC authorization endpoint",
                          params.setIssuer)
    Script.registerSwitch("S:", "Setup=", "Set <setup> as DIRAC setup",
                          params.setSetup)
    Script.registerSwitch("e:", "Extensions=",
                          "Set <extensions> as DIRAC extensions",
                          params.setExtensions)
    Script.registerSwitch("C:", "ConfigurationServer=",
                          "Set <server> as DIRAC configuration server",
                          params.setServer)
    Script.registerSwitch("I", "IncludeAllServers",
                          "include all Configuration Servers",
                          params.setAllServers)
    Script.registerSwitch("n:", "SiteName=",
                          "Set <sitename> as DIRAC Site Name",
                          params.setSiteName)
    Script.registerSwitch("N:", "CEName=",
                          "Determiner <sitename> from <cename>",
                          params.setCEName)
    Script.registerSwitch("V:", "VO=", "Set the VO name", params.setVO)

    Script.registerSwitch("W:", "gateway=",
                          "Configure <gateway> as DIRAC Gateway for the site",
                          params.setGateway)

    Script.registerSwitch("U", "UseServerCertificate",
                          "Configure to use Server Certificate",
                          params.setServerCert)
    Script.registerSwitch("H", "SkipCAChecks",
                          "Configure to skip check of CAs",
                          params.setSkipCAChecks)
    Script.registerSwitch("D", "SkipCADownload",
                          "Configure to skip download of CAs",
                          params.setSkipCADownload)
    Script.registerSwitch("M", "SkipVOMSDownload",
                          "Configure to skip download of VOMS info",
                          params.setSkipVOMSDownload)

    Script.registerSwitch("A:", "Architecture=",
                          "Configure /Architecture=<architecture>",
                          params.setArchitecture)
    Script.registerSwitch("L:", "LocalSE=",
                          "Configure LocalSite/LocalSE=<localse>",
                          params.setLocalSE)

    Script.registerSwitch(
        "F",
        "ForceUpdate",
        "Force Update of cfg file (i.e. dirac.cfg) (otherwise nothing happens if dirac.cfg already exists)",
        params.forceUpdate,
    )

    Script.registerSwitch("O:", "output=", "output configuration file",
                          params.setOutput)

    Script.parseCommandLine(ignoreErrors=True)

    # Use token auth
    if params.issuer:
        result = login(params)
        if not result["OK"]:
            DIRAC.gLogger.error("Authorization failed: %s" % result["Message"])
            DIRAC.exit(1)
        useTokens = result["Value"]
        if useTokens:
            DIRAC.gConfig.setOptionValue("/DIRAC/Security/UseTokens",
                                         useTokens)
        else:
            DIRAC.gLogger.notice(
                'To use tokens, please, set "/DIRAC/Security/UseTokens=yes".')

    if not params.logLevel:
        params.logLevel = DIRAC.gConfig.getValue(cfgInstallPath("LogLevel"),
                                                 "")
        if params.logLevel:
            DIRAC.gLogger.setLevel(params.logLevel)
    else:
        DIRAC.gConfig.setOptionValue(cfgInstallPath("LogLevel"),
                                     params.logLevel)

    if not params.gatewayServer:
        newGatewayServer = DIRAC.gConfig.getValue(cfgInstallPath("Gateway"),
                                                  "")
        if newGatewayServer:
            params.setGateway(newGatewayServer)

    if not params.configurationServer:
        newConfigurationServer = DIRAC.gConfig.getValue(
            cfgInstallPath("ConfigurationServer"), "")
        if newConfigurationServer:
            params.setServer(newConfigurationServer)

    if not params.includeAllServers:
        newIncludeAllServer = DIRAC.gConfig.getValue(
            cfgInstallPath("IncludeAllServers"), False)
        if newIncludeAllServer:
            params.setAllServers(True)

    if not params.setup:
        newSetup = DIRAC.gConfig.getValue(cfgInstallPath("Setup"), "")
        if newSetup:
            params.setSetup(newSetup)

    if not params.siteName:
        newSiteName = DIRAC.gConfig.getValue(cfgInstallPath("SiteName"), "")
        if newSiteName:
            params.setSiteName(newSiteName)

    if not params.ceName:
        newCEName = DIRAC.gConfig.getValue(cfgInstallPath("CEName"), "")
        if newCEName:
            params.setCEName(newCEName)

    if not params.useServerCert:
        newUserServerCert = DIRAC.gConfig.getValue(
            cfgInstallPath("UseServerCertificate"), False)
        if newUserServerCert:
            params.setServerCert(newUserServerCert)

    if not params.skipCAChecks:
        newSkipCAChecks = DIRAC.gConfig.getValue(
            cfgInstallPath("SkipCAChecks"), False)
        if newSkipCAChecks:
            params.setSkipCAChecks(newSkipCAChecks)

    if not params.skipCADownload:
        newSkipCADownload = DIRAC.gConfig.getValue(
            cfgInstallPath("SkipCADownload"), False)
        if newSkipCADownload:
            params.setSkipCADownload(newSkipCADownload)

    if not params.architecture:
        newArchitecture = DIRAC.gConfig.getValue(
            cfgInstallPath("Architecture"), "")
        if newArchitecture:
            params.setArchitecture(newArchitecture)

    if not params.vo:
        newVO = DIRAC.gConfig.getValue(cfgInstallPath("VirtualOrganization"),
                                       "")
        if newVO:
            params.setVO(newVO)

    if not params.extensions:
        newExtensions = DIRAC.gConfig.getValue(cfgInstallPath("Extensions"),
                                               "")
        if newExtensions:
            params.setExtensions(newExtensions)

    DIRAC.gLogger.notice("Executing: %s " % (" ".join(sys.argv)))
    DIRAC.gLogger.notice('Checking DIRAC installation at "%s"' %
                         DIRAC.rootPath)

    if params.update:
        if params.outputFile:
            DIRAC.gLogger.notice("Will update the output file %s" %
                                 params.outputFile)
        else:
            DIRAC.gLogger.notice("Will update %s" %
                                 DIRAC.gConfig.diracConfigFilePath)

    if params.setup:
        DIRAC.gLogger.verbose("/DIRAC/Setup =", params.setup)
    if params.vo:
        DIRAC.gLogger.verbose("/DIRAC/VirtualOrganization =", params.vo)
    if params.configurationServer:
        DIRAC.gLogger.verbose("/DIRAC/Configuration/Servers =",
                              params.configurationServer)

    if params.siteName:
        DIRAC.gLogger.verbose("/LocalSite/Site =", params.siteName)
    if params.architecture:
        DIRAC.gLogger.verbose("/LocalSite/Architecture =", params.architecture)
    if params.localSE:
        DIRAC.gLogger.verbose("/LocalSite/localSE =", params.localSE)

    if not params.useServerCert:
        DIRAC.gLogger.verbose("/DIRAC/Security/UseServerCertificate =", "no")
        # Being sure it was not there before
        Script.localCfg.deleteOption("/DIRAC/Security/UseServerCertificate")
        Script.localCfg.addDefaultEntry("/DIRAC/Security/UseServerCertificate",
                                        "no")
    else:
        DIRAC.gLogger.verbose("/DIRAC/Security/UseServerCertificate =", "yes")
        # Being sure it was not there before
        Script.localCfg.deleteOption("/DIRAC/Security/UseServerCertificate")
        Script.localCfg.addDefaultEntry("/DIRAC/Security/UseServerCertificate",
                                        "yes")

    host = DIRAC.gConfig.getValue(cfgInstallPath("Host"), "")
    if host:
        DIRAC.gConfig.setOptionValue(cfgPath("DIRAC", "Hostname"), host)

    if params.skipCAChecks:
        DIRAC.gLogger.verbose("/DIRAC/Security/SkipCAChecks =", "yes")
        # Being sure it was not there before
        Script.localCfg.deleteOption("/DIRAC/Security/SkipCAChecks")
        Script.localCfg.addDefaultEntry("/DIRAC/Security/SkipCAChecks", "yes")
    else:
        # Necessary to allow initial download of CA's
        if not params.skipCADownload:
            DIRAC.gConfig.setOptionValue("/DIRAC/Security/SkipCAChecks", "yes")
    if not params.skipCADownload:
        Script.enableCS()
        try:
            dirName = os.path.join(DIRAC.rootPath, "etc", "grid-security",
                                   "certificates")
            mkDir(dirName)
        except Exception:
            DIRAC.gLogger.exception()
            DIRAC.gLogger.fatal("Fail to create directory:", dirName)
            DIRAC.exit(-1)
        try:
            bdc = BundleDeliveryClient()
            result = bdc.syncCAs()
            if result["OK"]:
                result = bdc.syncCRLs()
        except Exception as e:
            DIRAC.gLogger.error("Failed to sync CAs and CRLs: %s" % str(e))

        Script.localCfg.deleteOption("/DIRAC/Security/SkipCAChecks")

    if params.ceName or params.siteName:
        # This is used in the pilot context, we should have a proxy, or a certificate, and access to CS
        if params.useServerCert:
            # Being sure it was not there before
            Script.localCfg.deleteOption(
                "/DIRAC/Security/UseServerCertificate")
            Script.localCfg.addDefaultEntry(
                "/DIRAC/Security/UseServerCertificate", "yes")
        Script.enableCS()
        # Get the site resource section
        gridSections = DIRAC.gConfig.getSections("/Resources/Sites/")
        if not gridSections["OK"]:
            DIRAC.gLogger.warn("Could not get grid sections list")
            grids = []
        else:
            grids = gridSections["Value"]
        # try to get siteName from ceName or Local SE from siteName using Remote Configuration
        for grid in grids:
            siteSections = DIRAC.gConfig.getSections("/Resources/Sites/%s/" %
                                                     grid)
            if not siteSections["OK"]:
                DIRAC.gLogger.warn("Could not get %s site list" % grid)
                sites = []
            else:
                sites = siteSections["Value"]

            if not params.siteName:
                if params.ceName:
                    for site in sites:
                        res = DIRAC.gConfig.getSections(
                            "/Resources/Sites/%s/%s/CEs/" % (grid, site), [])
                        if not res["OK"]:
                            DIRAC.gLogger.warn("Could not get %s CEs list" %
                                               site)
                        if params.ceName in res["Value"]:
                            params.siteName = site
                            break
            if params.siteName:
                DIRAC.gLogger.notice("Setting /LocalSite/Site = %s" %
                                     params.siteName)
                Script.localCfg.addDefaultEntry("/LocalSite/Site",
                                                params.siteName)
                DIRAC.__siteName = False
                if params.ceName:
                    DIRAC.gLogger.notice("Setting /LocalSite/GridCE = %s" %
                                         params.ceName)
                    Script.localCfg.addDefaultEntry("/LocalSite/GridCE",
                                                    params.ceName)

                if not params.localSE and params.siteName in sites:
                    params.localSE = getSEsForSite(params.siteName)
                    if params.localSE["OK"] and params.localSE["Value"]:
                        params.localSE = ",".join(params.localSE["Value"])
                        DIRAC.gLogger.notice("Setting /LocalSite/LocalSE =",
                                             params.localSE)
                        Script.localCfg.addDefaultEntry(
                            "/LocalSite/LocalSE", params.localSE)
                    break

    if params.gatewayServer:
        DIRAC.gLogger.verbose("/DIRAC/Gateways/%s =" % DIRAC.siteName(),
                              params.gatewayServer)
        Script.localCfg.addDefaultEntry(
            "/DIRAC/Gateways/%s" % DIRAC.siteName(), params.gatewayServer)

    # Create the local cfg if it is not yet there
    if not params.outputFile:
        params.outputFile = DIRAC.gConfig.diracConfigFilePath
    params.outputFile = os.path.abspath(params.outputFile)
    if not os.path.exists(params.outputFile):
        configDir = os.path.dirname(params.outputFile)
        mkDir(configDir)
        params.update = True
        DIRAC.gConfig.dumpLocalCFGToFile(params.outputFile)

    if params.includeAllServers:
        # We need user proxy or server certificate to continue in order to get all the CS URLs
        if not params.useServerCert:
            Script.enableCS()
            result = getProxyInfo()
            if not result["OK"]:
                DIRAC.gLogger.notice(
                    "Configuration is not completed because no user proxy is available"
                )
                DIRAC.gLogger.notice(
                    "Create one using dirac-proxy-init and execute again with -F option"
                )
                return 1
        else:
            Script.localCfg.deleteOption(
                "/DIRAC/Security/UseServerCertificate")
            # When using Server Certs CA's will be checked, the flag only disables initial download
            # this will be replaced by the use of SkipCADownload
            Script.localCfg.addDefaultEntry(
                "/DIRAC/Security/UseServerCertificate", "yes")
            Script.enableCS()

        DIRAC.gConfig.setOptionValue("/DIRAC/Configuration/Servers",
                                     ",".join(DIRAC.gConfig.getServersList()))
        DIRAC.gLogger.verbose("/DIRAC/Configuration/Servers =",
                              ",".join(DIRAC.gConfig.getServersList()))

    if params.useServerCert:
        # always removing before dumping
        Script.localCfg.deleteOption("/DIRAC/Security/UseServerCertificate")
        Script.localCfg.deleteOption("/DIRAC/Security/SkipCAChecks")
        Script.localCfg.deleteOption("/DIRAC/Security/SkipVOMSDownload")

    if params.update:
        DIRAC.gConfig.dumpLocalCFGToFile(params.outputFile)

    # ## LAST PART: do the vomsdir/vomses magic

    # This has to be done for all VOs in the installation

    if params.skipVOMSDownload:
        return 0

    result = Registry.getVOMSServerInfo()
    if not result["OK"]:
        return 1

    error = ""
    vomsDict = result["Value"]
    for vo in vomsDict:
        voName = vomsDict[vo]["VOMSName"]
        vomsDirPath = os.path.join(DIRAC.rootPath, "etc", "grid-security",
                                   "vomsdir", voName)
        vomsesDirPath = os.path.join(DIRAC.rootPath, "etc", "grid-security",
                                     "vomses")
        for path in (vomsDirPath, vomsesDirPath):
            mkDir(path)
        vomsesLines = []
        for vomsHost in vomsDict[vo].get("Servers", {}):
            hostFilePath = os.path.join(vomsDirPath, "%s.lsc" % vomsHost)
            try:
                DN = vomsDict[vo]["Servers"][vomsHost]["DN"]
                CA = vomsDict[vo]["Servers"][vomsHost]["CA"]
                port = vomsDict[vo]["Servers"][vomsHost]["Port"]
                if not DN or not CA or not port:
                    DIRAC.gLogger.error("DN = %s" % DN)
                    DIRAC.gLogger.error("CA = %s" % CA)
                    DIRAC.gLogger.error("Port = %s" % port)
                    DIRAC.gLogger.error("Missing Parameter for %s" % vomsHost)
                    continue
                with open(hostFilePath, "wt") as fd:
                    fd.write("%s\n%s\n" % (DN, CA))
                vomsesLines.append('"%s" "%s" "%s" "%s" "%s" "24"' %
                                   (voName, vomsHost, port, DN, voName))
                DIRAC.gLogger.notice("Created vomsdir file %s" % hostFilePath)
            except Exception:
                DIRAC.gLogger.exception(
                    "Could not generate vomsdir file for host", vomsHost)
                error = "Could not generate vomsdir file for VO %s, host %s" % (
                    voName, vomsHost)
        try:
            vomsesFilePath = os.path.join(vomsesDirPath, voName)
            with open(vomsesFilePath, "wt") as fd:
                fd.write("%s\n" % "\n".join(vomsesLines))
            DIRAC.gLogger.notice("Created vomses file %s" % vomsesFilePath)
        except Exception:
            DIRAC.gLogger.exception("Could not generate vomses file")
            error = "Could not generate vomses file for VO %s" % voName

    if params.useServerCert:
        Script.localCfg.deleteOption("/DIRAC/Security/UseServerCertificate")
        # When using Server Certs CA's will be checked, the flag only disables initial download
        # this will be replaced by the use of SkipCADownload
        Script.localCfg.deleteOption("/DIRAC/Security/SkipCAChecks")

    if error:
        return 1

    return 0
예제 #19
0
 def setExtensions(self, optionValue):
     self.extensions = optionValue
     DIRAC.gConfig.setOptionValue("/DIRAC/Extensions", self.extensions)
     DIRAC.gConfig.setOptionValue(cfgInstallPath("Extensions"),
                                  self.extensions)
     return DIRAC.S_OK()
예제 #20
0
def setUseVersionsDir( optionValue ):
  global useVersionsDir
  useVersionsDir = True
  DIRAC.gConfig.setOptionValue( cfgInstallPath( 'UseVersionsDir' ), useVersionsDir )
  return DIRAC.S_OK()
예제 #21
0
 def setSkipVOMSDownload(self, optionValue):
     self.skipVOMSDownload = True
     DIRAC.gConfig.setOptionValue(cfgInstallPath("SkipVOMSDownload"),
                                  self.skipVOMSDownload)
     return DIRAC.S_OK()
예제 #22
0
 def setSiteName(self, optionValue):
     self.siteName = optionValue
     Script.localCfg.addDefaultEntry("/LocalSite/Site", self.siteName)
     DIRAC.__siteName = False
     DIRAC.gConfig.setOptionValue(cfgInstallPath("SiteName"), self.siteName)
     return DIRAC.S_OK()
예제 #23
0
 def setLocalSE(self, optionValue):
     self.localSE = optionValue
     Script.localCfg.addDefaultEntry("/LocalSite/LocalSE", self.localSE)
     DIRAC.gConfig.setOptionValue(cfgInstallPath("LocalSE"), self.localSE)
     return DIRAC.S_OK()
예제 #24
0
def setServerCert(optionValue):
    global useServerCert
    useServerCert = True
    DIRAC.gConfig.setOptionValue(cfgInstallPath('UseServerCertificate'),
                                 useServerCert)
    return DIRAC.S_OK()
예제 #25
0
 def setSkipCAChecks(self, optionValue):
     self.skipCAChecks = True
     DIRAC.gConfig.setOptionValue(cfgInstallPath("SkipCAChecks"),
                                  self.skipCAChecks)
     return DIRAC.S_OK()
예제 #26
0
def setServer(optionValue):
  global configurationServer
  configurationServer = optionValue
  DIRAC.gConfig.setOptionValue('/DIRAC/Configuration/Servers', configurationServer)
  DIRAC.gConfig.setOptionValue(cfgInstallPath('ConfigurationServer'), configurationServer)
  return DIRAC.S_OK()
예제 #27
0
    "ForceUpdate",
    "Force Update of cfg file (i.e. dirac.cfg) (otherwise nothing happens if dirac.cfg already exists)",
    forceUpdate,
)

Script.registerSwitch("O:", "output=", "output configuration file", setOutput)

Script.setUsageMessage(
    "\n".join([__doc__.split("\n")[1], "\nUsage:", "  %s [option|cfgfile] ...\n" % Script.scriptName])
)

Script.parseCommandLine(ignoreErrors=True)
args = Script.getExtraCLICFGFiles()

if not logLevel:
    logLevel = DIRAC.gConfig.getValue(cfgInstallPath("LogLevel"), "")
    if logLevel:
        DIRAC.gLogger.setLevel(logLevel)
else:
    DIRAC.gConfig.setOptionValue(cfgInstallPath("LogLevel"), logLevel)

if not gatewayServer:
    newGatewayServer = DIRAC.gConfig.getValue(cfgInstallPath("Gateway"), "")
    if newGatewayServer:
        setGateway(newGatewayServer)

if not configurationServer:
    newConfigurationServer = DIRAC.gConfig.getValue(cfgInstallPath("ConfigurationServer"), "")
    if newConfigurationServer:
        setServer(newConfigurationServer)
예제 #28
0
def setSkipCAChecks(optionValue):
    global skipCAChecks
    skipCAChecks = True
    DIRAC.gConfig.setOptionValue(cfgInstallPath('SkipCAChecks'), skipCAChecks)
    return DIRAC.S_OK()
예제 #29
0
 def setCEName(self, optionValue):
     self.ceName = optionValue
     DIRAC.gConfig.setOptionValue(cfgInstallPath("CEName"), self.ceName)
     return DIRAC.S_OK()
예제 #30
0
def setExtensions(optionValue):
  global extensions
  extensions = optionValue
  DIRAC.gConfig.setOptionValue('/DIRAC/Extensions', extensions)
  DIRAC.gConfig.setOptionValue(cfgInstallPath('Extensions'), extensions)
  return DIRAC.S_OK()
예제 #31
0
def setSkipVOMSDownload(optionValue):
    global skipVOMSDownload
    skipVOMSDownload = True
    DIRAC.gConfig.setOptionValue(cfgInstallPath('SkipVOMSDownload'),
                                 skipVOMSDownload)
    return DIRAC.S_OK()
예제 #32
0
def setServer(optionValue):
    global configurationServer
    configurationServer = optionValue
    Script.localCfg.addDefaultEntry("/DIRAC/Configuration/Servers", configurationServer)
    DIRAC.gConfig.setOptionValue(cfgInstallPath("ConfigurationServer"), configurationServer)
    return DIRAC.S_OK()
예제 #33
0
def setUseVersionsDir(optionValue):
    global useVersionsDir
    useVersionsDir = True
    DIRAC.gConfig.setOptionValue(cfgInstallPath('UseVersionsDir'),
                                 useVersionsDir)
    return DIRAC.S_OK()
예제 #34
0
def setLocalSE(optionValue):
    global localSE
    localSE = optionValue
    Script.localCfg.addDefaultEntry("/LocalSite/LocalSE", localSE)
    DIRAC.gConfig.setOptionValue(cfgInstallPath("LocalSE"), localSE)
    return DIRAC.S_OK()
예제 #35
0
def setArchitecture(optionValue):
    global architecture
    architecture = optionValue
    Script.localCfg.addDefaultEntry('/LocalSite/Architecture', architecture)
    DIRAC.gConfig.setOptionValue(cfgInstallPath('Architecture'), architecture)
    return DIRAC.S_OK()
예제 #36
0
Script.registerSwitch( "A:", "Architecture=", "Configure /Architecture=<architecture>", setArchitecture )
Script.registerSwitch( "L:", "LocalSE=", "Configure LocalSite/LocalSE=<localse>", setLocalSE )

Script.registerSwitch( "F", "ForceUpdate", "Force Update of cfg file (i.e. dirac.cfg) (otherwise nothing happens if dirac.cfg already exists)", forceUpdate )

Script.registerSwitch ( "O:", "output=", "output configuration file", setOutput )

Script.setUsageMessage( '\n'.join( [ __doc__.split( '\n' )[1],
                                    '\nUsage:',
                                    '  %s [option|cfgfile] ...\n' % Script.scriptName ] ) )

Script.parseCommandLine( ignoreErrors = True )
args = Script.getExtraCLICFGFiles()

if not logLevel:
  logLevel = DIRAC.gConfig.getValue( cfgInstallPath( 'LogLevel' ), '' )
  if logLevel:
    DIRAC.gLogger.setLevel( logLevel )
else:
  DIRAC.gConfig.setOptionValue( cfgInstallPath( 'LogLevel' ), logLevel )

if not gatewayServer:
  newGatewayServer = DIRAC.gConfig.getValue( cfgInstallPath( 'Gateway' ), '' )
  if newGatewayServer:
    setGateway( newGatewayServer )

if not configurationServer:
  newConfigurationServer = DIRAC.gConfig.getValue( cfgInstallPath( 'ConfigurationServer' ), '' )
  if newConfigurationServer:
    setServer( newConfigurationServer )
예제 #37
0
def setLocalSE(optionValue):
    global localSE
    localSE = optionValue
    Script.localCfg.addDefaultEntry('/LocalSite/LocalSE', localSE)
    DIRAC.gConfig.setOptionValue(cfgInstallPath('LocalSE'), localSE)
    return DIRAC.S_OK()
예제 #38
0
def setVO(optionValue):
    global vo
    vo = optionValue
    Script.localCfg.addDefaultEntry('/DIRAC/VirtualOrganization', vo)
    DIRAC.gConfig.setOptionValue(cfgInstallPath('VirtualOrganization'), vo)
    return DIRAC.S_OK()
예제 #39
0
def setExtensions(optionValue):
    global extensions
    extensions = optionValue
    DIRAC.gConfig.setOptionValue('/DIRAC/Extensions', extensions)
    DIRAC.gConfig.setOptionValue(cfgInstallPath('Extensions'), extensions)
    return DIRAC.S_OK()
예제 #40
0
def setServerCert( optionValue ):
  global useServerCert
  useServerCert = True
  DIRAC.gConfig.setOptionValue( cfgInstallPath( 'UseServerCertificate' ), useServerCert )
  return DIRAC.S_OK()
예제 #41
0
    "F", "ForceUpdate",
    "Force Update of cfg file (i.e. dirac.cfg) (otherwise nothing happens if dirac.cfg already exists)",
    forceUpdate)

Script.registerSwitch("O:", "output=", "output configuration file", setOutput)

Script.setUsageMessage('\n'.join([
    __doc__.split('\n')[1], '\nUsage:',
    '  %s [option|cfgfile] ...\n' % Script.scriptName
]))

Script.parseCommandLine(ignoreErrors=True)
args = Script.getExtraCLICFGFiles()

if not logLevel:
    logLevel = DIRAC.gConfig.getValue(cfgInstallPath('LogLevel'), '')
    if logLevel:
        DIRAC.gLogger.setLevel(logLevel)
else:
    DIRAC.gConfig.setOptionValue(cfgInstallPath('LogLevel'), logLevel)

if not gatewayServer:
    newGatewayServer = DIRAC.gConfig.getValue(cfgInstallPath('Gateway'), '')
    if newGatewayServer:
        setGateway(newGatewayServer)

if not configurationServer:
    newConfigurationServer = DIRAC.gConfig.getValue(
        cfgInstallPath('ConfigurationServer'), '')
    if newConfigurationServer:
        setServer(newConfigurationServer)
예제 #42
0
def setSkipVOMSDownload( optionValue ):
  global skipVOMSDownload
  skipVOMSDownload = True
  DIRAC.gConfig.setOptionValue( cfgInstallPath( 'SkipVOMSDownload' ), skipVOMSDownload )
  return DIRAC.S_OK()
예제 #43
0
def setGateway(optionValue):
    global gatewayServer
    gatewayServer = optionValue
    setServer(gatewayServer + '/Configuration/Server')
    DIRAC.gConfig.setOptionValue(cfgInstallPath('Gateway'), gatewayServer)
    return DIRAC.S_OK()
예제 #44
0
def setGateway( optionValue ):
  global gatewayServer
  gatewayServer = optionValue
  setServer( gatewayServer + '/Configuration/Server' )
  DIRAC.gConfig.setOptionValue( cfgInstallPath( 'Gateway' ), gatewayServer )
  return DIRAC.S_OK()
예제 #45
0
def setServer(optionValue):
  global configurationServer
  configurationServer = optionValue
  DIRAC.gConfig.setOptionValue('/DIRAC/Configuration/Servers', configurationServer)
  DIRAC.gConfig.setOptionValue(cfgInstallPath('ConfigurationServer'), configurationServer)
  return DIRAC.S_OK()