Conversation
… not load faker for rucio#843
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Resolves #843. ATLAS DID names carry AMI tags and, often, a PanDA task ID. For example,
data22_13p6TeV.00437756.physics_Main.merge.AOD.r15869_p6304_tid40703687_00has tagsr15869andp6304and task40703687. With this PR, the WebUI:/task/?jeditaskid=<id>).Both are ATLAS-specific, so each sits behind its own feature flag, off by default. Other deployments see no change.
How it works
ATLAS name parsing (
src/lib/core/utils/atlas-did-name.ts)parseAtlasDIDName(name)returns a typed result per naming scheme. The schemes were confirmed with ATLAS (thanks Mario):data*project.runNumber.streamName.prodStep.dataType.Versionmc*,valid*project.datasetNumber.physicsShort.prodStep.dataType.Versioncond*project.internalCondNumber.shortComment.CONDuser/groupuser.userName.…/group.groupName.…(rest ignored)dataType.pandaTaskId._jobNumber.…, e.g.DAOD_PHYS.34870879._000001.pool.root.1,log.34870879._000001.job.log.tgz.1r15869_p6304_tid40703687_00gives tagsr15869,p6304and task40703687; the trailing_00retry counter is ignored.user.*/group.*names, even when they embed an official name, and names that don't follow a scheme.data18_13TeV.periodAllYear…PhysCont…doesn't count as a production name, because run and dataset numbers must be numeric./is ignored.AMI tags (
dids.ami_tags)GET /api/feature/get-ami-tag-info?tags=…calls AMI's command API (POST <AMI_BASE_URL>/AMI2/FrontEnd,AMIGetAMITagInfo, no auth) through a newAMIGateway.aria-describedby, and stays open while the pointer moves onto it.PanDA task (
dids.panda_task)GET /api/feature/get-panda-task-link?taskId=…builds the link fromPANDA_BASE_URLon the server. This mirrors the existing DDM-link feature.Gating (both features)
withFeatureand return 404 while the flag is off.Configuration
FEATURE_DIDS_AMI_TAGSfalseget-ami-tag-infoAMI_BASE_URLhttps://atlas-ami.cern.chFEATURE_DIDS_PANDA_TASKfalseget-panda-task-linkPANDA_BASE_URLhttps://bigpanda.cern.chAll four are wired into the env-generator, with http(s) validation for the URLs. They're also documented in its README and in
.env.development.local.template.Deployment note:
atlas-ami.cern.chuses a CERN Grid CA certificate. The server needs the CERN Grid CA and CERN Root CA 2 inSERVER_CA_BUNDLE(NODE_EXTRA_CA_CERTS), the same mechanism used for CERN-hosted Rucio. Without them the AMI chips still link out, but no details load. The PanDA link is built without calling BigPanDA, so it isn't affected.Things worth a look
container-config.ts. Other flag-gated features rely only onwithFeature. We load these two only when enabled, so non-ATLAS deployments don't register AMI or PanDA controllers at all.^[a-z]\d+$. Detection is positional, so the earlier "3+ digits" safeguard for free-form names is no longer needed.Out of scope
Testing
npm test: 126 suites / 607 tests pass.npm run buildsucceeds.npm run lint: 0 errors.How to test locally
1. Environment
Add the following to
.env.development.local, then restart the dev server. Both features are loaded at startup, so a restart is required.With the env-generator, use the
RUCIO_WEBUI_-prefixed names:RUCIO_WEBUI_FEATURE_DIDS_AMI_TAGS,RUCIO_WEBUI_AMI_BASE_URL,RUCIO_WEBUI_FEATURE_DIDS_PANDA_TASKandRUCIO_WEBUI_PANDA_BASE_URL. The CA bundle goes inRUCIO_WEBUI_SERVER_CA_BUNDLE.2. Test DIDs
Run these with the
rucioCLI against your dev Rucio server, e.g. inside the rucio dev container. They use therootaccount and theMOCK-POSIXRSE, which needs no X509 proxy.The
--guidflag letsrucio uploadaccept a.pool.rootfile without the ATHENA GUID tool.3. What to expect
data22_13p6TeV:data22_13p6TeV.00437756…r15869_p6304_tid40703687_00r15869,p630440703687mc23_5p36TeV:mc23_5p36TeV.801664…e8514_e8528_tid44601789_00e8514,e852844601789data22_13p6TeV:AOD.40703687._000001.pool.root.140703687data22_13p6TeV:log.40703687._000001.job.log.tgz.140703687The rows appear on the DID details page (
/did/<scope>/<name>) and in the side panel when you select the DID in the DID list.