diff --git a/Core/scripts/dirac-install.py b/Core/scripts/dirac-install.py deleted file mode 100755 index 0553c1065a3..00000000000 --- a/Core/scripts/dirac-install.py +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env python -import sys - - -sys.stderr.write("#" * 100 + "\n") -sys.stderr.write("#" * 100 + "\n") -sys.stderr.write("#" * 100 + "\n") -sys.stderr.write("#" * 100 + "\n") -sys.stderr.write("#" * 100 + "\n") -sys.stderr.write("\n") -sys.stderr.write("dirac-install (and python 2 installations) are no longer supported!\n") -sys.stderr.write("\n") -sys.stderr.write("If you really need it, use:\n") -sys.stderr.write(" https://raw.githubusercontent.com/DIRACGrid/management/master/dirac-install.py\n") -sys.stderr.write("\n") -sys.stderr.write("#" * 100 + "\n") -sys.stderr.write("#" * 100 + "\n") -sys.stderr.write("#" * 100 + "\n") -sys.stderr.write("#" * 100 + "\n") -sys.stderr.write("#" * 100 + "\n") diff --git a/dirac.cfg b/dirac.cfg index 0608afeac5f..c7bd73274e8 100644 --- a/dirac.cfg +++ b/dirac.cfg @@ -1038,7 +1038,6 @@ Operations WriteProtocols = srm WriteProtocols += dips # FTS related options. See http://dirac.readthedocs.io/en/latest/AdministratorGuide/Systems/DataManagement/fts.html - FTSVersion = FTS3 # should only be that... FTSPlacement { FTS3 diff --git a/docs/source/AdministratorGuide/Configuration/ConfReference/Operations/DataManagement/index.rst b/docs/source/AdministratorGuide/Configuration/ConfReference/Operations/DataManagement/index.rst index a2edc57c0e4..0ff5dd6d359 100644 --- a/docs/source/AdministratorGuide/Configuration/ConfReference/Operations/DataManagement/index.rst +++ b/docs/source/AdministratorGuide/Configuration/ConfReference/Operations/DataManagement/index.rst @@ -17,7 +17,6 @@ Operations / DataManagement * WriteProtocols (['srm', 'dips']): list of the possible protocols to be used to perform the write and remove operations. Overwritten at the level of a StorageElement configuration. * AllowUserReplicaManagement (False): if set to True, clients without the FileCatalogManagement property can use the dirac-dms-remove-catalog-* commands to manipulate the file catalog. * ForceIndexedMetadata (False): if True disables implicit creation of non-indexed Metadata. -* FTSVersion (FTS2): version of FTS to use. Possibilities: FTS3 or FTS2 (deprecated) * FTSPlacement section: - FTS3 section: diff --git a/docs/source/AdministratorGuide/Systems/DataManagement/fts3.rst b/docs/source/AdministratorGuide/Systems/DataManagement/fts3.rst index 0566058e3ea..030504cef11 100644 --- a/docs/source/AdministratorGuide/Systems/DataManagement/fts3.rst +++ b/docs/source/AdministratorGuide/Systems/DataManagement/fts3.rst @@ -42,13 +42,11 @@ In order for the transfers to be submitted to the FTS system, the following opti * ``FTSMode`` must be True * ``FTSBannedGroups`` should contain the list of groups for which you'd rather do direct transfers. - * ``UseNewFTS3`` should be True in order to use this new FTS system (soon to be deprecated) ======================== Operations configuration ======================== - * DataManagement/FTSVersion: FTS2/FTS3. Set it to FTS3... * DataManagement/FTSPlacement/FTS3/ServerPolicy: Policy to choose the FTS server see `FTSServer policy`_. * DataManagement/FTSPlacement/FTS3/FTS3Plugin: Plugin to alter the behavior of the FTS3Agent diff --git a/src/DIRAC/Core/Base/Script.py b/src/DIRAC/Core/Base/Script.py index 2f28b93405f..f04d7d251d1 100755 --- a/src/DIRAC/Core/Base/Script.py +++ b/src/DIRAC/Core/Base/Script.py @@ -69,7 +69,7 @@ def __call__(self, func=None): "Invalid dirac- console_scripts entry_point: " + repr(entrypoint) + "\n" - + "All dirac- console_scripts should be wrapped in the DiracScript " + + "All dirac- console_scripts should be wrapped in the Script " + "decorator to ensure extension overlays are applied correctly." ) return entrypointFunc._func() diff --git a/src/DIRAC/Core/Security/m2crypto/X509Chain.py b/src/DIRAC/Core/Security/m2crypto/X509Chain.py index 4df854bb620..8fb971db04c 100644 --- a/src/DIRAC/Core/Security/m2crypto/X509Chain.py +++ b/src/DIRAC/Core/Security/m2crypto/X509Chain.py @@ -20,7 +20,7 @@ from DIRAC import S_OK, S_ERROR from DIRAC.Core.Utilities import DErrno -from DIRAC.Core.Utilities.Decorators import executeOnlyIf, deprecated +from DIRAC.Core.Utilities.Decorators import executeOnlyIf from DIRAC.ConfigurationSystem.Client.Helpers import Registry from DIRAC.Core.Security.m2crypto import PROXY_OID, LIMITED_PROXY_OID, DIRAC_GROUP_OID, DEFAULT_PROXY_STRENGTH from DIRAC.Core.Security.m2crypto.X509Certificate import X509Certificate @@ -165,22 +165,6 @@ def __init__(self, certList=False, keyObj=False): if keyObj: self._keyObj = keyObj - @classmethod - @deprecated("Use loadChainFromFile instead", onlyOnce=True) - def instanceFromFile(cls, chainLocation): - """Class method to generate a X509Chain from a file - - :param chainLocation: path to the file - - :returns: S_OK(X509Chain) - """ - chain = cls() - result = chain.loadChainFromFile(chainLocation) - if not result["OK"]: - return result - - return S_OK(chain) - @staticmethod def generateX509ChainFromSSLConnection(sslConnection): """Returns an instance of X509Chain from the SSL connection @@ -393,24 +377,6 @@ def getIssuerCert(self): return S_OK(self._certList[self.__firstProxyStep + 1]) return S_OK(self._certList[-1]) - @deprecated("Only here for compatibility reason", onlyOnce=True) - @needPKey - def getPKeyObj(self): - """ - Get the pkey obj - - :returns: ~M2Crypto.EVP.PKey object - """ - return S_OK(self._keyObj) - - @deprecated("Only here for compatibility reason") - @needCertList - def getCertList(self): - """ - Get the cert list - """ - return S_OK(self._certList) - @needCertList def getNumCertsInChain(self): """ diff --git a/src/DIRAC/Core/Security/test/Test_X509Chain.py b/src/DIRAC/Core/Security/test/Test_X509Chain.py index acb2d3ebaa9..38682e4b4a9 100644 --- a/src/DIRAC/Core/Security/test/Test_X509Chain.py +++ b/src/DIRAC/Core/Security/test/Test_X509Chain.py @@ -155,22 +155,6 @@ def test_loadChainFromString_non_pem(get_X509Chain_class): assert res["Errno"] == EX509 -@parametrize("key_file", CERTKEYS) -def test_init_with_key(key_file, get_X509Chain_class): - """Test init with key object as argument and check the content""" - - chain1 = get_X509Chain_class() - chain1.loadKeyFromFile(key_file) - - # Get the key and check the number of bits - keyObj = chain1.getPKeyObj()["Value"] - - chain2 = get_X509Chain_class(keyObj=keyObj) - assert chain1.dumpPKeyToString() == chain2.dumpPKeyToString() - # Careful ! The two keys are the same object - assert chain2.getPKeyObj()["Value"] is keyObj - - @parametrize("key_file", CERTKEYS) def test_privatekey_without_password(key_file, get_X509Chain_class): """Test loading a key from a file, retrieve the object and check the content""" @@ -178,10 +162,6 @@ def test_privatekey_without_password(key_file, get_X509Chain_class): X509Chain = get_X509Chain_class() res = X509Chain.loadKeyFromFile(key_file) assert res["OK"] - # Get the key and check the number of bits - res = X509Chain.getPKeyObj() - assert res["OK"] - assert res["Value"].size() == 512 # Check that the content of the object is correct. # CAUTION ! The object is PKCS8, while the file contains PKCS1. @@ -195,10 +175,6 @@ def test_privatekey_with_password(get_X509Chain_class): X509Chain = get_X509Chain_class() res = X509Chain.loadKeyFromFile(ENCRYPTEDKEY, password=ENCRYPTEDKEYPASS) assert res["OK"] - # Get the key and check the number of bits - res = X509Chain.getPKeyObj() - assert res["OK"] - assert res["Value"].size() == 512 def test_privatekey_with_wrong_password(get_X509Chain_class): @@ -233,17 +209,6 @@ def test_getCertInChain_too_far(get_X509Chain_class): x509Chain.getCertInChain(1) -@parametrize("cert_file", CERTS) -def test_getCertList(cert_file, get_X509Chain_class): - """ " Load a chain, and get its length.""" - x509Chain = get_X509Chain_class() - x509Chain.loadChainFromFile(cert_file) - # For a certificate, there should be only 1 certificate in the chain - - assert len(x509Chain.getCertList()["Value"]) == 1 - assert len(x509Chain.getCertList()["Value"]) == x509Chain.getNumCertsInChain()["Value"] - - @parametrize("cert_file", CERTS) def test_certProperties(cert_file, get_X509Chain_class): """Try on a certificate if it is a proxy, limited proxy, VOMS, valid proxy, rfc""" diff --git a/src/DIRAC/Core/Utilities/DIRACScript.py b/src/DIRAC/Core/Utilities/DIRACScript.py deleted file mode 100644 index fad6a0b3893..00000000000 --- a/src/DIRAC/Core/Utilities/DIRACScript.py +++ /dev/null @@ -1,7 +0,0 @@ -from DIRAC.Core.Base.Script import Script -from DIRAC.Core.Utilities.Decorators import deprecated - -# TODO: remove it in 8.1 -@deprecated("DIRACScript is deprecated, use 'from DIRAC.Core.Base.Script import Script' instead.") -class DIRACScript(Script): - pass diff --git a/src/DIRAC/Core/Utilities/Os.py b/src/DIRAC/Core/Utilities/Os.py index fa43a5bbece..3f4b1cd6aef 100755 --- a/src/DIRAC/Core/Utilities/Os.py +++ b/src/DIRAC/Core/Utilities/Os.py @@ -3,10 +3,8 @@ by default on Error they return None """ import os -import shutil import DIRAC -from DIRAC.Core.Utilities.Decorators import deprecated from DIRAC.Core.Utilities.Subprocess import shellCall, systemCall from DIRAC.Core.Utilities import List @@ -145,8 +143,3 @@ def sourceEnv(timeout, cmdTuple, inputEnv=None): result["stderr"] = stderr return result - - -@deprecated("Will be removed in DIRAC 8.1", onlyOnce=True) -def which(executable): - return shutil.which(executable) diff --git a/src/DIRAC/Core/Utilities/test/Test_gCFG.py b/src/DIRAC/Core/Utilities/test/Test_gCFG.py deleted file mode 100755 index 1269085eabd..00000000000 --- a/src/DIRAC/Core/Utilities/test/Test_gCFG.py +++ /dev/null @@ -1,57 +0,0 @@ -# FIXME: should be rewritten as real unittest -# import DIRAC -# from DIRAC.Core.Utilities.CFG import CFG -# -# DIRAC.gLogger.initialize('test_gConfig','/testSectionDebug') -# -# testconfig = '%s/DIRAC/ConfigurationSystem/test/test.cfg' % DIRAC.rootPath -# dumpconfig = '%s/DIRAC/ConfigurationSystem/test/dump.cfg' % DIRAC.rootPath -# -# cfg1 = CFG() -# cfg1.loadFromFile( testconfig ) -# -# with open( testconfig ) as fd: -# cfg1String = fd.read() -# -# cfg2 = CFG() -# cfg2.loadFromBuffer( cfg1.serialize() ) -# -# cfg3 = cfg1.mergeWith( cfg2 ) -# -# testList = [{ 'method' : DIRAC.gConfig.loadFile, -# 'arguments' : ( testconfig, ), -# 'output' : {'OK': True, 'Value': ''} -# }, -# { 'method' : DIRAC.gConfig.dumpLocalCFGToFile, -# 'arguments' : ( dumpconfig, ), -# 'output' : {'OK': True, 'Value': ''} -# }, -# { 'method' : cfg1.serialize, -# 'arguments' : ( ), -# 'output' : cfg1String -# }, -# { 'method' : cfg3.serialize, -# 'arguments' : ( ), -# 'output' : cfg1String -# }] -# -# testdict = { 'DIRAC.gConfig' : testList,} -# -# DIRAC.Tests.run( testdict, 'DIRAC.gConfig.files' ) -# -# -# -# # testList = [{ 'method' : DIRAC.gConfig.get, -# # 'arguments' : ( '/testSection/test', ), -# # 'output' : {'OK': True, 'Value': 'test'} -# # }, -# # # { 'method' : DIRAC.gConfig.get, -# # # 'arguments' : ( '/testSection/nonexisting','OK', ), -# # # 'output' : {'OK': True, 'Value': 'test'} -# # # }, -# # ] -# # -# # testdict = { 'DIRAC.gConfig' : testList,} -# # -# # -# # DIRAC.Tests.run( testdict, 'DIRAC.gConfig' ) diff --git a/src/DIRAC/RequestManagementSystem/ConfigTemplate.cfg b/src/DIRAC/RequestManagementSystem/ConfigTemplate.cfg index aa5cef7810e..4b182fdfd3b 100644 --- a/src/DIRAC/RequestManagementSystem/ConfigTemplate.cfg +++ b/src/DIRAC/RequestManagementSystem/ConfigTemplate.cfg @@ -70,7 +70,6 @@ Agents { Location = DIRAC/DataManagementSystem/Agent/RequestOperations/ReplicateAndRegister FTSMode = False - UseNewFTS3 = True FTSBannedGroups = dirac_user, lhcb_user LogLevel = INFO MaxAttempts = 256 diff --git a/src/DIRAC/Resources/ProxyProvider/test/Test_DIRACCAProxyProvider.py b/src/DIRAC/Resources/ProxyProvider/test/Test_DIRACCAProxyProvider.py index 875ad2b9f7d..b75ad6f7bbd 100644 --- a/src/DIRAC/Resources/ProxyProvider/test/Test_DIRACCAProxyProvider.py +++ b/src/DIRAC/Resources/ProxyProvider/test/Test_DIRACCAProxyProvider.py @@ -105,8 +105,6 @@ def check(proxyStr, proxyProvider, name): for result in [ chain.getRemainingSecs(), chain.getIssuerCert(), - chain.getPKeyObj(), - chain.getCertList(), chain.getNumCertsInChain(), chain.generateProxyToString(3600), chain.generateProxyToFile(proxyFile, 3600), diff --git a/src/DIRAC/WorkloadManagementSystem/DB/JobLoggingDB.py b/src/DIRAC/WorkloadManagementSystem/DB/JobLoggingDB.py index 20ee29f37df..9efce8502fb 100755 --- a/src/DIRAC/WorkloadManagementSystem/DB/JobLoggingDB.py +++ b/src/DIRAC/WorkloadManagementSystem/DB/JobLoggingDB.py @@ -35,8 +35,6 @@ def addLoggingRecord( applicationStatus="idem", date=None, source="Unknown", - minor=None, - application=None, ): """Add a new entry to the JobLoggingDB table. One, two or all the three status components (status, minorStatus, applicationStatus) can be specified. @@ -46,13 +44,6 @@ def addLoggingRecord( UTC time is used. """ - # Backward compatibility - # FIXME: to remove in next version - if minor: - minorStatus = minor - if application: - applicationStatus = application - event = f"status/minor/app={status}/{minorStatus}/{applicationStatus}" self.log.info("Adding record for job ", str(jobID) + ": '" + event + "' from " + source) diff --git a/src/DIRAC/WorkloadManagementSystem/Executor/JobScheduling.py b/src/DIRAC/WorkloadManagementSystem/Executor/JobScheduling.py index 68b458874c3..287367d2a35 100755 --- a/src/DIRAC/WorkloadManagementSystem/Executor/JobScheduling.py +++ b/src/DIRAC/WorkloadManagementSystem/Executor/JobScheduling.py @@ -335,33 +335,6 @@ def __getSitesRequired(self, jobManifest): return S_OK((sites, bannedSites)) - def __filterByPlatform(self, jobPlatform, userSites): - """Filters out sites that have no CE with a matching platform.""" - basePath = "/Resources/Sites" - filteredSites = set() - - # FIXME: can use Resources().getSiteCEMapping() - for site in userSites: - if "." not in site: - # Invalid site name: Doesn't contain a dot! - self.jobLog.warn("Skipped invalid site name", site) - continue - grid = site.split(".")[0] - sitePath = cfgPath(basePath, grid, site, "CEs") - result = gConfig.getSections(sitePath) - if not result["OK"]: - self.jobLog.info("Failed to get CEs", "at site %s" % site) - continue - siteCEs = result["Value"] - - for CEName in siteCEs: - CEPlatform = gConfig.getValue(cfgPath(sitePath, CEName, "OS")) - if jobPlatform == CEPlatform: - # Site has a CE with a matchin platform - filteredSites.add(site) - - return S_OK(list(filteredSites)) - def _getTagsFromManifest(self, jobManifest): """helper method to add a list of tags to the TQ from the job manifest content""" diff --git a/tests/Integration/DataManagementSystem/FIXME_DataLoggingClientTests.py b/tests/Integration/DataManagementSystem/FIXME_DataLoggingClientTests.py deleted file mode 100644 index 20f64de6f98..00000000000 --- a/tests/Integration/DataManagementSystem/FIXME_DataLoggingClientTests.py +++ /dev/null @@ -1,60 +0,0 @@ -# FIXME: to bring back to life - -# ######################################################################## -# # File: DataLoggingClientTests.py -# # Author: Krzysztof.Ciba@NOSPAMgmail.com -# # Date: 2012/07/12 12:28:30 -# ######################################################################## -# -# """ :mod: DataLoggingClientTests -# ======================= -# -# .. module: DataLoggingClientTests -# :synopsis: unitests for DataLoggingClient -# .. moduleauthor:: Krzysztof.Ciba@NOSPAMgmail.com -# -# unitests for DataLoggingClient -# """ -# -# # # -# # @file DataLoggingClientTests.py -# # @author Krzysztof.Ciba@NOSPAMgmail.com -# # @date 2012/07/12 12:28:48 -# # @brief Definition of DataLoggingClientTests class. -# -# # # imports -# import unittest -# # # from DIRAC -# from DIRAC import gLogger -# # # SUT -# from DIRAC.DataManagementSystem.Client.DataLoggingClient import DataLoggingClient -# -# ######################################################################## -# class DataLoggingClientTestCase( unittest.TestCase ): -# """ -# .. class:: DataLoggingClientTests -# -# """ -# def setUp( self ): -# """ c'tor -# -# :param self: self reference -# """ -# gLogger.setLevel( "VERBOSE" ) -# self.log = gLogger.getSubLogger( self.__class__.__name__ ) -# -# def test( self ): -# """ test -# -# :param self: self reference -# """ -# dlc = DataLoggingClient() -# self.assertEqual( isinstance( dlc, DataLoggingClient ), True ) -# self.assertEqual( dlc.getServer(), "DataManagement/DataLogging" ) -# ping = dlc.ping() -# self.assertEqual( ping["OK"], True ) -# -# # # test execution -# if __name__ == "__main__": -# SUITE = unittest.defaultTestLoader.loadTestsFromTestCase( DataLoggingClientTestCase ) -# unittest.TextTestRunner( verbosity = 2 ).run( SUITE ) diff --git a/tests/Integration/DataManagementSystem/FIXME_DataLoggingDBTests.py b/tests/Integration/DataManagementSystem/FIXME_DataLoggingDBTests.py deleted file mode 100644 index 5af991ba8cd..00000000000 --- a/tests/Integration/DataManagementSystem/FIXME_DataLoggingDBTests.py +++ /dev/null @@ -1,122 +0,0 @@ -# FIXME: to bring back to life - -# ######################################################################## -# # File: DataLoggingDBTests.py -# # Author: Krzysztof.Ciba@NOSPAMgmail.com -# # Date: 2012/07/12 13:01:10 -# ######################################################################## -# -# """ :mod: DataLoggingDBTests -# ======================= -# -# .. module: DataLoggingDBTests -# :synopsis: unittests for DataLoggingDB class -# .. moduleauthor:: Krzysztof.Ciba@NOSPAMgmail.com -# -# unittests for DataLoggingDB class -# """ -# -# ## -# # @file DataLoggingDBTests.py -# # @author Krzysztof.Ciba@NOSPAMgmail.com -# # @date 2012/07/12 13:01:33 -# # @brief Definition of DataLoggingDBTests class. -# -# ## imports -# import os -# import sys -# import unittest -# ## from DIRAC -# from DIRAC import gLogger, gConfig -# from DIRAC.Core.Utilities import Time -# ## SUT -# from DIRAC.DataManagementSystem.DB.DataLoggingDB import DataLoggingDB -# -# ######################################################################## -# class DataLoggingDBTestCase(unittest.TestCase): -# """ -# .. class:: DataLoggingDBTests -# -# """ -# ## db ref -# __db = None -# -# def setUp( self ): -# """ set up -# -# :param self: self reference -# """ -# self.log = gLogger.getSubLogger( self.__class__.__name__ ) -# -# if not self.__db: -# gConfig.setOptionValue( "/DIRAC/Setup", "Test" ) -# gConfig.setOptionValue( "/DIRAC/Setups/Test/DataManagement", "Test" ) -# spath = "/Systems/DataManagement/Test/Databases/DataLoggingDB" -# gConfig.setOptionValue( "%s/%s" % ( spath, "Host" ), "127.0.0.1" ) -# gConfig.setOptionValue( "%s/%s" % ( spath, "DBName" ), "AccountingDB" ) -# gConfig.setOptionValue( "%s/%s" % ( spath, "User" ), "Dirac" ) -# gConfig.setOptionValue( "%s/%s" % ( spath, "Password" ), "Dirac" ) -# self.__db = DataLoggingDB() -# -# def test_01_ctor( self ): -# """ DataLoggingDB.__init__ -# -# :param self: self reference -# """ -# self.assertEqual( self.__db != None, True ) -# self.assertEqual( isinstance( self.__db, DataLoggingDB ), True ) -# self.assertEqual( self.__db._connect()["OK"], True ) -# -# def test_02_createTable( self ): -# """ DataLoggingDB._createTable -# -# :param self: self reference -# """ -# self.assertEqual( self.__db._createTable()["OK"], True ) -# -# def test_03_api( self ): -# """ DataLoggingDB API -# -# :param self: self reference -# """ -# -# lfns = [ '/Test/00001234/File1', '/Test/00001234/File2' ] -# fileTuples = tuple( [ ( lfn, "TestStatus", "MinorStatus", Time.toString(), datetime.datetime.utcnow(), "Somewhere" ) -# for lfn in lfns ] ) -# -# result = self.__db.addFileRecord( lfns, "TestStatus", date = '2012-04-28 09:49:02.545466' ) -# self.assertEqual( result["OK"], True ) -# self.assertEqual( result["Value"], 2 ) -# self.assertEqual( result["lastRowId"], 2 ) -# -# result = self.__db.addFileRecords( fileTuples ) -# self.assertEqual( result["OK"], True ) -# -# result = self.__db.getFileLoggingInfo( lfns[0] ) -# self.assertEqual( result["OK"], True ) -# self.assertEqual( len( result["Value"] ), 2 ) -# -# result = self.__db.getFileLoggingInfo( lfns[1] ) -# self.assertEqual( result["OK"], True ) -# self.assertEqual( len( result["Value"] ), 2 ) -# -# result = self.__db.getUniqueStates() -# self.assertEqual( result["OK"], True ) -# self.assertEqual( result["Value"], [ "TestStatus" ] ) -# -# result = self.__db._update( 'DROP TABLE `%s`' % self.__db.tableName ) -# self.assertEqual( result["OK"], True ) -# -# -# ## test execution -# if __name__ == "__main__": -# from DIRAC.Core.Base.Script import Script -# Script.parseCommandLine() -# gLogger.setLevel( 'VERBOSE' ) -# -# if 'PYTHONOPTIMIZE' in os.environ and os.environ['PYTHONOPTIMIZE']: -# gLogger.info( 'Unset python optimization "PYTHONOPTIMIZE"' ) -# sys.exit( 0 ) -# -# SUITE = unittest.defaultTestLoader.loadTestsFromTestCase( DataLoggingDBTestCase ) -# unittest.TextTestRunner( verbosity = 2 ).run( SUITE ) diff --git a/tests/Jenkins/dirac_ci.sh b/tests/Jenkins/dirac_ci.sh index 4ae2c893d7e..57e48396bac 100644 --- a/tests/Jenkins/dirac_ci.sh +++ b/tests/Jenkins/dirac_ci.sh @@ -129,7 +129,6 @@ installSite() { bash "installer.sh" rm "installer.sh" echo "source \"$PWD/diracos/diracosrc\"" > "$PWD/bashrc" - # TODO: This will be fixed properly as part of https://github.com/DIRACGrid/DIRAC/issues/5082 mv "${SERVERINSTALLDIR}/etc/grid-security/"* "${SERVERINSTALLDIR}/diracos/etc/grid-security/" rm -rf "${SERVERINSTALLDIR}/etc" ln -s "${SERVERINSTALLDIR}/diracos/etc" "${SERVERINSTALLDIR}/etc"