Skip to content

remove CRAB Server external_config #9167

@belforte

Description

@belforte

CRABServer pulls from gitlab the external config https://gitlab.cern.ch/crab3/CRAB3ServerConfig/-/blob/master/cmsweb-rest-config.json

In a way I'd like to fully get rid of this "external config" things and those obscure "modes".

The only customization that we have now via 'mode is to use a different S3 bucket, and it would be much more clear if we put that in CRABServer's config.py in CMSKubernetes.

Currently we

  • disguise the S3 bucket name as an URL
  • put in a JSON file which the REST fetches every 30 minutes
  • so that the Client can retrieved it at crab submit time and pass it to the REST again via the DB
  • so that the REST knows which bucket to use

Sounds pretty damn stupid.

And I fear that if I am not here, it would take you a long time to figure this out.

Plan

  • change server config.py to support new code by adding following two lines:

    • data.s3_bucket = 'crabcache_dev' or crabcache_preprod or crabcache_prod as appropriate for each cluster
    • data.compatibleClientVersions = ["v3", "development"]
  • change REST ( Stop using external config part1 #9180 ) to:

    • pick bucket from config (alredy picks delegate-dn from there), save it in DB and ignore cacheurl HTTP param in RESTUserWorkflow.py so that it does not matter whether client sends it or not.
    • remove banned-out-destinations which we never used
    • remove from TW as well (unused code anyhow) remove bannedOutDestination from TW #9176
    • move compatible version to CRABServer/.../config.py
  • deploy new REST

    • in preprod (testbed)
    • in prod
  • change config.py and cmsweb-rest-config.json to eliminate now-useles things (see description in Stop using external config part1 #9180)

  • change client not to send useless cacheurl and once in production remove unused cacheSSL and filecacheurl variables/args CRABClient#5411

    • remove cacheurl submit argument for submit from RESTUserWorkflow.py (where it is now optional)
  • move handling of "htcondorPool" and htcondorScheddsLink (i.e. list of enabled schedulers) to TW and manage them via puppet

  • deploy new TW, then

    • remove them for REST code "htcondorPool" and htcondorScheddsLink (
    • remove all references to "external config" everywhere

And finally we can:

  • get rid of @conn_handler() everywhere in CRABServer repo

Some of those actions can be pursued independently. I will open ad-hoc issues and possibly hand to DevOps

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions