-
Notifications
You must be signed in to change notification settings - Fork 176
DIRAC v6r20
This only applies if you have extended DIRAC: in PR https://github.com/DIRACGrid/DIRAC/pull/3675 the DIRAC/Core/Utilities/init.py module has been stripped off all its imports. Re-check your code if you were needing them.
The host where the Master CS is running need to have the git binaries installed.
Some tables in AccountingDB should be modified, so start with.
USE AccountingDB
The real name of the table depends from your setup, so what follows are just examples (where the setup is "LHCb-Production").
ALTER TABLE `ac_in_LHCb-Production_Job` MODIFY ProcessingType VARCHAR(256) NOT NULL;
ALTER TABLE `ac_key_LHCb-Production_Job_ProcessingType` MODIFY value VARCHAR(256) NOT NULL;
ALTER TABLE `ac_in_LHCb-Production_DataOperation` MODIFY ExecutionSite VARCHAR(256) NOT NULL;
ALTER TABLE `ac_key_LHCb-Production_DataOperation_ExecutionSite` MODIFY value VARCHAR(256) NOT NULL;
use InstalledComponentsDB;
ALTER TABLE HostLogging MODIFY DiskOccupancy varchar(256);
The CacheFeederAgent should be restarted first, and this will populate correctly the DBs. (should I stop the others first?
The SpaceTokenOccupancy policy does not exist anymore: the new policy FreeDiskSpacePolicy replace it, and it's valid for all the StorageElement types (srm, xroot, dips, ...) provided that StorageElement(seName).getOccupancy() returns correct results.
This means that you can remove from the CS all mentions to SpaceTokenOccupancy policies, e.g. if you have in CS a section like /Operations/Defaults/ResourceStatus/Policies/SpaceTokenOccupancy
it can be removed.
The new policy should instead be added:
Operations
{
Defaults # or a setup
{
ResourceStatus
{
Policies
{
FreeDiskSpaceTB
{
matchParams
{
elementType=StorageElement
statusType=WriteAccess
element=Resource
}
}
}
}
}
}
You should also remove mentions of "SpaceTokenOccupancy" related actions from the /Operations/Defaults/ResourceStatus/PolicyActions/
section.
A new system (Agent & Service) meant to replace the old one and add new feature is available. However, both systems (FTS3 and the "old" FTS ones) cannot co-exist. Please refer to the documentation on how to do the switch over http://dirac.readthedocs.io/en/integration/AdministratorGuide/Systems/DataManagement/fts3.html
If you don't want to switch to the new FTS3 system, the FTSDB should be changed accordingly to what follows, especially if you want to accommodate the stricter MySQL 5.7 requirements:
USE FTSDB;
ALTER TABLE FTSFile MODIFY Error VARCHAR(2048);
ALTER TABLE FTSJob MODIFY Error VARCHAR(2048);
ALTER TABLE FTSJob MODIFY FailedSize BIGINT;
Two stored procedures need to be recreated BEFORE updating to MySQL 5.7: ps_delete_files and ps_delete_replicas_from_file_ids. For this, from the DIRAC/DataManagementSystem/DB/FileCatalogWithFkAndPsDB.sql
, for each of the two procedures, copy the whole PL/SQL code chunk, and copy paste it in MySQL
DROP PROCEDURE IF EXISTS [...]
[...]
END //
DELIMITER ;
- PilotMonitorAgent has been removed. Please de-install it using the SystemAdministration.
- TaskQueueDirector agent has been removed. Please de-install it using the SystemAdministration.
NB: VOs with an extension of the SiteDirector should double-check that their extension is still compatible with the changes in the base DIRAC agent.
The SiteDirector agent, a key agent for many DIRAC installation, has been largely updated. It also includes a new flag, the "pilots3" flag for anyone wanting to submit pilots3 via SiteDirectors (pilots 2 stay the default). Please find more info about pilots3 in the official documentation in http://dirac.readthedocs.io/en/integration/AdministratorGuide/Systems/WorkloadManagement/Pilots/Pilots3.html.
The PilotRequirements table from PilotAgentsDB can be removed:
USE PilotAgentsDB;
DROP TABLE IF EXISTS PilotRequirements;
You can apply the following after having installed the release.
use TaskQueueDB;
ALTER TABLE `TaskQueueDB`.`tq_Jobs` CHANGE COLUMN `JobId` `JobId` int(11) UNSIGNED NOT NULL;
ALTER TABLE `TaskQueueDB`.`tq_Jobs` CHANGE COLUMN `TQId` `TQId` int(11) UNSIGNED NOT NULL;
ALTER TABLE `TaskQueueDB`.`tq_TaskQueues` CHANGE COLUMN `TQId` `TQId` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;
ALTER TABLE `TaskQueueDB`.`tq_TQToSites` CHANGE COLUMN `TQId` `TQId` int(11) UNSIGNED NOT NULL;
ALTER TABLE `TaskQueueDB`.`tq_TQToGridCEs` CHANGE COLUMN `TQId` `TQId` int(11) UNSIGNED NOT NULL;
ALTER TABLE `TaskQueueDB`.`tq_TQToGridMiddlewares` CHANGE COLUMN `TQId` `TQId` int(11) UNSIGNED NOT NULL;
ALTER TABLE `TaskQueueDB`.`tq_TQToBannedSites` CHANGE COLUMN `TQId` `TQId` int(11) UNSIGNED NOT NULL;
ALTER TABLE `TaskQueueDB`.`tq_TQToPlatforms` CHANGE COLUMN `TQId` `TQId` int(11) UNSIGNED NOT NULL;
ALTER TABLE `TaskQueueDB`.`tq_TQToPilotTypes` CHANGE COLUMN `TQId` `TQId` int(11) UNSIGNED NOT NULL;
ALTER TABLE `TaskQueueDB`.`tq_TQToSubmitPools` CHANGE COLUMN `TQId` `TQId` int(11) UNSIGNED NOT NULL;
ALTER TABLE `TaskQueueDB`.`tq_TQToJobTypes` CHANGE COLUMN `TQId` `TQId` int(11) UNSIGNED NOT NULL;
ALTER TABLE `TaskQueueDB`.`tq_TQToTags` CHANGE COLUMN `TQId` `TQId` int(11) UNSIGNED NOT NULL;
ALTER TABLE `TaskQueueDB`.`tq_Jobs` ADD FOREIGN KEY (`TQId`) REFERENCES `TaskQueueDB`.`tq_TaskQueues` (`TQId`);
ALTER TABLE `TaskQueueDB`.`tq_TQToSites` ADD PRIMARY KEY (`TQId`, `Value`);
ALTER TABLE `TaskQueueDB`.`tq_TQToSites` ADD FOREIGN KEY (`TQId`) REFERENCES `TaskQueueDB`.`tq_TaskQueues` (`TQId`);
ALTER TABLE `TaskQueueDB`.`tq_TQToGridCEs` ADD PRIMARY KEY (`TQId`, `Value`);
ALTER TABLE `TaskQueueDB`.`tq_TQToGridCEs` ADD FOREIGN KEY (`TQId`) REFERENCES `TaskQueueDB`.`tq_TaskQueues` (`TQId`);
ALTER TABLE `TaskQueueDB`.`tq_TQToGridMiddlewares` ADD PRIMARY KEY (`TQId`, `Value`);
ALTER TABLE `TaskQueueDB`.`tq_TQToGridMiddlewares` ADD FOREIGN KEY (`TQId`) REFERENCES `TaskQueueDB`.`tq_TaskQueues` (`TQId`);
ALTER TABLE `TaskQueueDB`.`tq_TQToBannedSites` ADD PRIMARY KEY (`TQId`, `Value`);
ALTER TABLE `TaskQueueDB`.`tq_TQToBannedSites` ADD FOREIGN KEY (`TQId`) REFERENCES `TaskQueueDB`.`tq_TaskQueues` (`TQId`);
ALTER TABLE `TaskQueueDB`.`tq_TQToPlatforms` ADD PRIMARY KEY (`TQId`, `Value`);
ALTER TABLE `TaskQueueDB`.`tq_TQToPlatforms` ADD FOREIGN KEY (`TQId`) REFERENCES `TaskQueueDB`.`tq_TaskQueues` (`TQId`);
ALTER TABLE `TaskQueueDB`.`tq_TQToPilotTypes` ADD PRIMARY KEY (`TQId`, `Value`);
ALTER TABLE `TaskQueueDB`.`tq_TQToPilotTypes` ADD FOREIGN KEY (`TQId`) REFERENCES `TaskQueueDB`.`tq_TaskQueues` (`TQId`);
ALTER TABLE `TaskQueueDB`.`tq_TQToSubmitPools` ADD PRIMARY KEY (`TQId`, `Value`);
ALTER TABLE `TaskQueueDB`.`tq_TQToSubmitPools` ADD FOREIGN KEY (`TQId`) REFERENCES `TaskQueueDB`.`tq_TaskQueues` (`TQId`);
ALTER TABLE `TaskQueueDB`.`tq_TQToJobTypes` ADD PRIMARY KEY (`TQId`, `Value`);
ALTER TABLE `TaskQueueDB`.`tq_TQToJobTypes` ADD FOREIGN KEY (`TQId`) REFERENCES `TaskQueueDB`.`tq_TaskQueues` (`TQId`);
ALTER TABLE `TaskQueueDB`.`tq_TQToTags` ADD PRIMARY KEY (`TQId`, `Value`);
ALTER TABLE `TaskQueueDB`.`tq_TQToTags` ADD FOREIGN KEY (`TQId`) REFERENCES `TaskQueueDB`.`tq_TaskQueues` (`TQId`);
The v6r20 release introduces a new OPTIONAL feature: the pilots logging service, which is PARTIALLY available only to users of so-called "Pilots 3". The pilots logging service is very well documented in the official DIRAC documentation, so please refer to that. Operationally, if you want to enable it, you will need an MQ system (like RabbitMQ, but not necessarily), and to do the following steps:
The new DB PilotsLoggingDB should be defined, then the tables in the databases should be created by the PilotsLogging service
new PilotsLogging service (via sysadmin-cli):
install service WorkloadManagement PilotsLogging
To accommodate the stricter MySQL 5.7:
use ReqDB;
ALTER TABLE Request MODIFY Error VARCHAR(2048);
ALTER TABLE Operation MODIFY Error VARCHAR(2048);
ALTER TABLE File MODIFY Error VARCHAR(2048);
The Singularity Computing Element has been added within https://github.com/DIRACGrid/DIRAC/pull/3476
There's no specific changes that needs to be done server-wise.
Please take note about the important changes to default values for the shifterProxy in some agents of the TransformationSystem https://github.com/DIRACGrid/DIRAC/wiki/DIRAC-v6r20p7