Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@ jobs:
- jenkins-mp.cern.ch
- jenkins-mp-pool.cern.ch
- jenkins-mp-pool-singularity.cern.ch
- jenkins-revised.cern.ch

steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -266,6 +267,7 @@ jobs:
- jenkins-mp-full.cern.ch
- jenkins-mp-pool-full.cern.ch
- jenkins-mp-pool-singularity-full.cern.ch
- jenkins-revised.cern.ch

steps:
- uses: actions/checkout@v4
Expand Down
58 changes: 58 additions & 0 deletions Pilot/pilotCommands.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ def __init__(self, pilotParams):
import sys
import time
import traceback
import subprocess
from collections import Counter

############################
Expand Down Expand Up @@ -870,6 +871,63 @@ def execute(self):

return localArchitecture

class ConfigureArchitectureWithoutCLI(CommandBase):
"""This command determines the platform.
Separated from the ConfigureDIRAC command for easier extensibility.
"""
def getPlatformString(self):
# Modified to return our desired platform string, R. Graciani
platformTuple = (platform.system(), platform.machine())
if platformTuple[0] == "Linux":
platformTuple += ("-".join(platform.libc_ver()),)
elif platformTuple[0] == "Darwin":
platformTuple += (".".join(platform.mac_ver()[0].split(".")[:2]),)
else:
platformTuple += platform.release()

platformString = "%s_%s_%s" % platformTuple

return platformString

@logFinalizer
def execute(self):
"""This is a simple command to get the platform, and add it to the configuration

The architecture script, as well as its options can be replaced in a pilot extension
"""

try:
localArchitecture = self.getPlatformString()
except Exception as e:
self.log.error("Configuration error [ERROR %s]" % str(e))
self.exitWithError(1)


cfg = ["-FDMH"] # force update, skip CA checks, skip CA download, skip VOMS
if self.pp.useServerCertificate:
cfg.append("--UseServerCertificate")
if self.pp.localConfigFile:
cfg.append("-O %s" % self.pp.localConfigFile) # our target file for pilots
cfg.extend(["--cfg", self.pp.localConfigFile]) # this file is also an input
if self.pp.debugFlag:
cfg.append("-ddd")

# real options added here
localArchitecture = localArchitecture.strip().split("\n")[-1].strip()
cfg.append('-S "%s"' % self.pp.setup)
cfg.append("-o /LocalSite/Architecture=%s" % localArchitecture)

# add the local platform as determined by the platform module
cfg.append("-o /LocalSite/Platform=%s" % platform.machine())

configureCmd = "%s %s" % (self.pp.configureScript, " ".join(cfg))
retCode, _configureOutData = self.executeAndGetOutput(configureCmd, self.pp.installEnv)
if retCode:
self.log.error("Configuration error [ERROR %d]" % retCode)
self.exitWithError(retCode)

return localArchitecture


class ConfigureCPURequirements(CommandBase):
"""This command determines the CPU requirements. Needs to be executed after ConfigureSite"""
Expand Down
2 changes: 1 addition & 1 deletion Pilot/pilotTools.py
Original file line number Diff line number Diff line change
Expand Up @@ -832,7 +832,7 @@ def exitWithError(self, errorCode):

self.log.info("List of child processes of current PID:")
retCode, _outData = self.executeAndGetOutput(
"ps --forest -o pid,%%cpu,%%mem,tty,stat,time,cmd --ppid %d" % os.getpid()
"ps --forest -o pid,%%cpu,%%mem,tty,stat,time,cmd -g %d" % os.getpid()
)
if retCode:
self.log.error("Failed to issue ps [ERROR %d] " % retCode)
Expand Down
13 changes: 9 additions & 4 deletions tests/CI/pilot_newSchema.json
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,11 @@
"jenkins-lhcb-dd.cern.ch": {
"Site": "VAR_JENKINS_SITE",
"GridCEType": "LHCbDD"
}
},
"jenkins-revised.cern.ch": {
"Site": "VAR_JENKINS_SITE",
"GridCEType": "TEST-REVISED-COMMANDS"
}
},
"Defaults": {
"Pilot": {
Expand All @@ -92,8 +96,9 @@
"TEST-FULL": "CheckWorkerNode, InstallDIRAC, ConfigureBasics, RegisterPilot, CheckCECapabilities, CheckWNCapabilities, ConfigureSite, ConfigureArchitecture, ConfigureCPURequirements, LaunchAgent",
"LHCb": "CheckWorkerNode, LHCbInstallDIRAC, LHCbConfigureBasics, RegisterPilot, CheckCECapabilities, LHCbAddCVMFSTags, CheckWNCapabilities, ConfigureSite, LHCbConfigureArchitecture, ConfigureCPURequirements",
"LHCbD": "CheckWorkerNode, InstallDIRAC, LHCbConfigureBasics, RegisterPilot, CheckCECapabilities, LHCbAddCVMFSTags, CheckWNCapabilities, ConfigureSite, LHCbConfigureArchitecture, ConfigureCPURequirements",
"LHCbDD": "CheckWorkerNode, InstallDIRAC, ConfigureBasics, RegisterPilot, CheckCECapabilities, LHCbAddCVMFSTags, CheckWNCapabilities, ConfigureSite, LHCbConfigureArchitecture, ConfigureCPURequirements"
}
"LHCbDD": "CheckWorkerNode, InstallDIRAC, ConfigureBasics, RegisterPilot, CheckCECapabilities, LHCbAddCVMFSTags, CheckWNCapabilities, ConfigureSite, LHCbConfigureArchitecture, ConfigureCPURequirements",
"TEST-REVISED-COMMANDS": "CheckWorkerNode, InstallDIRAC, ConfigureBasics, RegisterPilot, CheckCECapabilities, CheckWNCapabilities, ConfigureSite, ConfigureArchitectureWithoutCLI, ConfigureCPURequirements"
}
}
},
"gridpp": {
Expand Down Expand Up @@ -149,4 +154,4 @@
"ConfigurationServers": [
"VAR_CS"
]
}
}