forked from DIRACGrid/DIRAC
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrelease.notes
More file actions
1635 lines (1250 loc) · 67.3 KB
/
release.notes
File metadata and controls
1635 lines (1250 loc) · 67.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
[v6r7-pre8]
*Core
NEW: Subprocess - timeout wrapper for subprocess calls
*Framework
NEW: SystemAdministratorIntegrator client for collecting info from several hosts
NEW: SystemAdministrator - added getHostInfo()
FIX: dirac-proxy-init - always check for errors in S_OK/ERROR returned structures
*Accounting
NEW: Accounting/Job - added validation of reported values to cope with the weird Yandex case
*DMS
FIX: FTSSubmitAgent - file for some reason rejected from submission should stay in 'Waiting' in
TransferDB.Channel table
FIX: FTSRequest - fix in the log printout
CHANGE: dirac-dms-add-file removed, dirac-dms-add-files renamed to dirac-dms-add-file
FIX: FileCatalogCLI - check the result of removeFile call
FIX: LcgFileCatalogClient - get rid of LHCb specific VO evaluation
*RSS
NEW: general reimplementation:
New DB schema using python definition of tables, having three big blocks: Site, Resource and Node.
MySQLMonkey functionality almost fully covered by DB module, eventually will disappear.
Services updated to use new database.
Clients updated to use new database.
Synchronizer updated to fill the new database. When helpers will be ready, it will need an update.
One ElementInspectorAgent, configurable now is hardcoded.
New Generic StateMachine using OOP.
Commands and Policies simplified.
ResourceStatus using internal cache, needs to be tested with real load.
Fixes for the state machine
Replaced Bad with Degraded status ( outside RSS ).
Added "Access" to Read|Write|Check|Remove SE statuses wherever it applies.
ResourceStatus returns by default "Active" instead of "Allowed" for CS calls.
Caching parameters are defined in the CS
FIX: dirac-admin-allow/ban-se - allow a SE on Degraded ( Degraded->Active ) and ban a SE on Probing
( Probing -> Banned ). In practice, Active and Degraded are "usable" states anyway.
*WMS
FIX: OptimizerExecutor - failed optimizations will still update the job
NEW: JobWrapper - added LFNUserPrefix VO specific Operations option used for building user LFNs
CHANGE: JobDB - do not interpret SystemConfig in the WMS/JobDB
CHANGE: JobDB - Use CPUTime JDL only, keep MaxCPUTime for backward compatibility
CHANGE: JobWrapper - use CPUTime job parameter instead of MaxCPUTime
CHANGE: JobAgent - use CEType option instead of CEUniqueID
*SMS
FIX: StorageManagementDB - when removing unlinked replicas, take into account the case where a
staging request had been submitted, but failed
*Resources
NEW: glexecCE - add new possible locations of the glexec binary: OSG specific stuff and in last resort
looking in the PATH
NEW: LcgFileCatalogClient - in removeReplica() get the needed PFN inside instead of providing it as an argument
*TS
CHANGE: Transformation types definition are moved to the Operations CS section
[v6r6p10]
*RMS
FIX: RequestDBMySQL - better escaping of queries
[v6r6p9]
*Core
FIX: Utilities/PromptUser.py - better user prompt
*Accounting
NEW: Add some validation to the job records because of weird data coming from YANDEX.ru
*DMS
BUGFIX: ReplicaManager - typo errStr -> infoStr in __replicate()
FIX: FTSRequest - fixed log message
*WMS
FIX: SiteDirector - use CSGlobals.getVO() call instead of explicit CS option
[v6r6p8]
*Transformation
BUGFIX: TransformationDB - typo in getTransformationFiles(): iterValues -> itervalues
[v6r6p7]
*Resources
FIX: StorageFactory - uncommented line that was preventing the status to be returned
BUGFIX: CE remote scripts - should return status and not call exit()
BUGFIX: SSHComputingElement - wrong pilot ID reference
[v6r6p6]
*WMS
FIX: TaskQueueDB - in findOrphanJobs() retrieve orphaned jobs as list of ints instead of list of tuples
FIX: OptimizerExecutor - added import of datetime to cope with the old style optimizer parameters
*Transformation
FIX: TransformationAgent - fix finalization entering in an infinite loop
NEW: TransformationCLI - added resetProcessedFile command
FIX: TransformationCleaningAgent - treating the archiving delay
FIX: TransformationDB - fix in getTransformationFiles() in case of empty file list
[v6r6p5]
*Transformation
FIX: TransformationAgent - type( transClient -> transfClient )
FIX: TransformationAgent - self._logInfo -> self.log.info
FIX: TransformationAgent - skip if no Unused files
FIX: TransformationAgent - Use CS option for replica cache lifetime
CHANGE: TransformationAgent - accept No new Unused files every [6] hours
[v6r6p4]
*DMS
FIX: TransferAgent - protection for files that can not be scheduled
BUGFIX: TransferDB - typo (instIDList - > idList ) fixed
*Transformation
BUGFIX: TransformationAgent - typo ( loginfo -> logInfo )
[v6r6p3]
FIX: merged in patch v6r5p14
*Core
BUGFIX: X509Chain - return the right structure in getCredentials() in case of failure
FIX: dirac-deploy-scripts.py - allow short scripts starting from "d"
FIX: dirac-deploy-scripts.py - added DCOMMANDS_PPID env variable in the script wrapper
FIX: ExecutorReactor - reduced error message dropping redundant Task ID
*Interfaces
BUGFIX: Dirac.py - allow to pass LFN list to replicateFile()
*DMS
FIX: FileManager - extra check if all files are available in _findFiles()
BUGFIX: FileCatalogClientCLI - bug in DirectoryListing
[v6r6p2]
FIX: merged in patch v6r5p13
*WMS
FIX: SiteDirector - if no community set, look for DIRAC/VirtualOrganization setting
*Framework
FIX: SystemLoggingDB - LogLevel made VARCHAR in the MessageRepository table
FIX: Logging - several log messages are split in fixed and variable parts
FIX: SystemLoggingDB - in insertMessage() do not insert new records in auxiliary tables if they
are already there
[v6r6p1]
*Core:
CHANGE: PromptUser - changed log level of the printout to NOTICE
NEW: Base Client constructor arguments are passed to the RPCClient constructor
*DMS:
NEW: FTSRequest - added a prestage mechanism for source files
NEW: FileCatalogClientCLI - added -f switch to the size command to use raw faile tables
instead of storage usage tables
NEW: FileCatalog - added orphan directory repair tool
NEW: FIleCatalog - more counters to control the catalog sanity
*WMS:
FIX: SandboxStoreClient - no more kwargs tricks
FIX: SandboxStoreClient returns sandbox file name in case of upload failure to allow failover
FIX: dirac-pilot - fixed VO_%s_SW_DIR env variable in case of OSG
*TS:
FIX: TransformationManagerHandler - avoid multiple Operations() instantiation in
getTransformationSummaryWeb()
[v6r6]
*Core
CHANGE: getDNForUsername helper migrated from Core.Security.CS to Registry helper
NEW: SiteSEMapping - new utilities getSitesGroupedByTierLevel(), getTier1WithAttachedTier2(),
getTier1WithTier2
CHANGE: The DIRAC.Core.Security.CS is replaced by the Registry helper
BUGFIX: dirac-install - properly parse += in .cfg files
FIX: Graphs.Utilities - allow two lines input in makeDataFromCVS()
FIX: Graphs - allow Graphs package usage if even matplotlib is not installed
NEW: dirac-compile-externals will retrieve the Externals compilation scripts from it's new location
in github (DIRACGrid/Externals)
NEW: Possibility to define a thread-global credentials for DISET connections (for web framework)
NEW: Logger - color output ( configurable )
NEW: dirac-admin-sort-cs-sites - to sort sites in the CS
CHANGE: MessageClient(Factor) - added msgClient attribute to messages
NEW: Core.Security.Properties - added JOB_MONITOR and USER_MANAGER properties
*Configuration
NEW: Registry - added getAllGroups() method
*Framework
NEW: SystemAdministratorClientCLI - possibility to define roothPath and lcgVersion when updating software
*Accounting
NEW: JobPlotter - added Normalized CPU plots to Job accounting
FIX: DBUtils - plots going to greater granularity
*DMS
NEW: FileCatalog - storage usage info stored in all the directories, not only those with files
NEW: FileCatalog - added utility to rebuild storage usage info from scratch
FIX: FileCatalog - addMetadataField() allow generic types, e.g. string
FIX: FileCatalog - path argument is normalized before usage in multiple methods
FIX: FileCatalog - new metadata for files(directories) should not be there before for directories(files)
NEW: FileCatalog - added method for rebuilding DirectoryUsage data from scratch
NEW: FileCatalog - Use DirectoryUsage mechanism for both logical and physical storage
CHANGE: FileCatalog - forbid removing non-empty directories
BUGFIX: FileCatalogClientCLI - in do_ls() check properly the path existence
FIX: FileCatalogClientCLI - protection against non-existing getCatalogCounters method in the LFC client
FIX: DMS Agents - properly call superclass constructor with loadName argument
FIX: ReplicaManager - in removeFile() non-existent file is marked as failed
FIX: Make several classes pylint compliant: DataIntegrityHandler, DataLoggingHandler,
FileCatalogHandler, StorageElementHandler, StorageElementProxyHandler, TransferDBMonitoringHandler
FIX: LogUploadAgent - remove the OSError exception in __replicate()
FIX: FileCatalogClientCLI - multiple check of proper command inputs,
automatic completion of several commands with subcommands,
automatic completion of file names
CHANGE: FileCatalogClientCLI - reformat the output of size command
FIX: dirac-admin-ban-se - allow to go over all options read/write/check for each SE
NEW: StrategyHandler - new implementation to speed up file scheduling + better error reporting
NEW: LcgFileCatalogProxy - moved from from LHCbDirac to DIRAC
FIX: ReplicaManager - removed usage of obsolete "/Resources/StorageElements/BannedTarget"
CHANGE: removed StorageUsageClient.py
CHANGE: removed obsoleted ProcessingDBAgent.py
*WMS
CHANGE: RunNumber job parameter was removed from all the relevant places ( JDL, JobDB, etc )
NEW: dirac-pilot - add environment setting for SSH and BOINC CEs
NEW: WMSAdministrator - get output for non-grid CEs if not yet in the DB
NEW: JobAgent - job publishes BOINC parameters if any
CHANGE: Get rid of LHCbPlatform everywhere except TaskQueueDB
FIX: SiteDirector - provide list of sites to the Matcher in the initial query
FIX: SiteDirector - present a list of all groups of a community to match TQs
CHANGE: dirac-boinc-pilot dropped
CHANGE: TaskQueueDirector does not depend on /LocalSite section any more
CHANGE: reduced default delays for JobCleaningAgent
CHANGE: limit the number of jobs received by JobCleaningAgent
CHANGE: JobDB - use insertFields instead of _insert
CHANGE: Matcher, TaskQueueDB - switch to use Platform rather than LHCbPlatform retaining LHCbPlatform compatibility
BUGFIX: Matcher - proper reporting pilot site and CE
CHANGE: JobManager - improved job Killing/Deleting logic
CHANGE: dirac-pilot - treat the OSG case when jobs on the same WN all run in the same directory
NEW: JobWrapper - added more status reports on different failures
FIX: PilotStatusAgent - use getPilotProxyFromDIRACGroup() instead of getPilotProxyFromVOMSGroup()
CHANGE: JobMonitoringHandler - add cutDate and condDict parameters to getJobGroup()
NEW: JobMonitoringHandler - check access rights with JobPolicy when accessing job info from the web
NEW: JobManager,JobWrapper - report to accounting jobs in Rescheduled final state if rescheduling is successful
FIX: WMSAdministrator, SiteDirector - store only non-empty pilot output to the PilotDB
NEW: added killPilot() to the WMSAdministrator interface, DiracAdmin and dirac-admin-kill-pilot command
NEW: TimeLeft - renormalize time left using DIRAC Normalization if available
FIX: JobManager - reconnect to the OptimizationMind in background if not yet connected
CHANGE: JobManifest - use Operations helper
NEW: JobCleaningAgent - delete logging records from JobLoggingDB when deleting jobs
*RMS
FIX: RequestDBFile - better exception handling in case no JobID supplied
FIX: RequestManagerHandler - make it pylint compliant
NEW: RequestProxyHandler - is forwarding requests from voboxes to central RequestManager.
If central RequestManager is down, requests are dumped into file cache and a separate thread
running in background is trying to push them into the central.
CHANGE: Major revision of the code
CHANGE: RequestDB - added index on SubRequestID in the Files table
CHANGE: RequestClient - readRequestForJobs updated to the new RequetsClient structure
*RSS
NEW: CS.py - Space Tokens were hardcoded, now are obtained after scanning the StorageElements.
*Resources
FIX: SSHComputingElement - enabled multiple hosts in one queue, more debugging
CHANGE: SSHXXX Computing Elements - define SSH class once in the SSHComputingElement
NEW: SSHComputingElement - added option to define private key location
CHANGE: Get rid of legacy methods in ComputingElement
NEW: enable definition of ChecksumType per SE
NEW: SSHBatch, SSHCondor Computing Elements
NEW: SSHxxx Computing Elements - using remote control scripts to better capture remote command errors
CHANGE: put common functionality into SSHComputingElement base class for all SSHxxx CEs
NEW: added killJob() method tp all the CEs
NEW: FileCatalog - take the catalog information info from /Operations CS section, if defined there,
to allow specifications per VO
*Interfaces
CHANGE: Removed Script.initialize() from the API initialization
CHANGE: Some general API polishing
FIX: Dirac.py - when running in mode="local" any directory in the ISB would not get untarred,
contrary to what is done in the JobWrapper
*TS
BUGFIX: TaskManager - bug fixed in treating tasks with input data
FIX: TransformationCleaningAgent - properly call superclass constructor with loadName argument
NEW: TransformationCleaningAgent - added _addExtraDirectories() method to extend the list of
directories to clean in a subclass if needed
CHANGE: TransformationCleaningAgent - removed usage of StorageUsageClient
NEW: TransformationAgent is multithreaded now ( implementation moved from LHCbDIRAC )
NEW: added unit tests
NEW: InputDataAgent - possibility to refresh only data registered in the last predefined period of time
NEW: TransformationAgent(Client) - management of derived transformations and more ported from LHCbDIRAC
BUGFIX: TransformationDB - wrong SQL statement generation in setFileStatusForTransformation()
[v6r5p14]
*Core
NEW: Utilities - added Backports utility
*WMS
FIX: Use /Operations/JobScheduling section consistently, drop /Operations/Matching section
NEW: Allow VO specific share correction plugins from extensions
FIX: Executors - several fixes
[v6r5p13]
*WMS
FIX: Executors - VOPlugin will properly send and receive the params
NEW: Correctors can be defined in an extension
FIX: Correctors - Properly retrieve info from the CS using the ops helper
[v6r5p12]
FIX: merged in patch v6r4p34
[v6r5p11]
FIX: merged in patch v6r4p33
*Core
FIX: MySQL - added offset argument to buildConditions()
[v6r5p10]
FIX: merged in patch v6r4p32
[v6r5p9]
FIX: merged in patch v6r4p30
[v6r5p8]
FIX: merged in patch v6r4p29
[v6r5p7]
FIX: merged in patch v6r4p28
[v6r5p6]
FIX: merged in patch v6r4p27
*Transformation
BUGFIX: TransformationDB - StringType must be imported before it can be used
*RSS
NEW: CS.py - Space Tokens were hardcoded, now are obtained after scanning the StorageElements.
[v6r5p5]
FIX: merged in patch v6r4p26
[v6r5p4]
FIX: merged in patch v6r4p25
[v6r5p3]
*Transformation
FIX: merged in patch v6r4p24
[v6r5p2]
*Web
NEW: includes DIRACWeb tag web2012092101
[v6r5p1]
*Core
BUGFIX: ExecutorMindHandler - return S_OK() in the initializeHandler
FIX: OptimizationMindHandler - if the manifest is not dirty it will not be updated by the Mind
*Configuration
NEW: Resources helper - added getCompatiblePlatform(), getDIRACPlatform() methods
*Resources
FIX: SSHComputingElement - add -q option to ssh command to avoid banners in the output
FIX: BOINCComputingElement - removed debugging printout
FIX: ComputingElement - use Platform CS option which will be converted to LHCbPlatform for legacy compatibility
*DMS
FIX: RequestAgentBase - lowering loglevel from ALWAYS to INFO to avoid flooding SystemLogging
*WMS:
FIX: SiteDirector - provide CE platform parameter when interrogating the TQ
FIX: GridPilotDirector - publish pilot OwnerGroup rather than VOMS role
FIX: WMSUtilities - add new error string into the parsing of the job output retrieval
[v6r5]
NEW: Executor framework
*Core
NEW: MySQL.py - added Test case for Time.dateTime time stamps
NEW: MySQL.py - insertFields and updateFields can get values via Lists or Dicts
NEW: DataIntegrityDB - use the new methods from MySQL and add test cases
NEW: DataIntegrityHandler - check connection to DB and create tables (or update their schema)
NEW: DataLoggingDB - use the new methods from MySQL and add test cases
NEW: DataLoggingHandler - check connection to DB and create tables (or update their schema)
FIX: ProcessPool - killing stuck workers after timeout
CHANGE: DB will throw a RuntimeException instead of a sys.exit in case it can't contact the DB
CHANGE: Several improvements on DISET
CHANGE: Fixed all DOS endings to UNIX
CHANGE: Agents, Services and Executors know how to react to CSSection/Module and react accordingly
NEW: install tools are updated to deal with executors
FIX: dirac-install - add -T/--Timeout option to define timeout for distribution downloads
NEW: dirac-install - added possibility of defining dirac-install's global defaults by command line switch
BUGFIX: avoid PathFinder.getServiceURL and use Client class ( DataLoggingClient,LfcFileCatalogProxyClient )
FIX: MySQL - added TIMESTAMPADD and TIMESTAMPDIFF to special values not to be scaped by MySQL
NEW: ObjectLoader utility
CHANGE: dirac-distribution - added global defaults flag and changed the flag to -M or --defaultsURL
FIX: Convert to string before trying to escape value in MySQL
NEW: DISET Services - added PacketTimeout option
NEW: SystemLoggingDB - updated to use the renewed MySQL interface and SQL schema
NEW: Added support for multiple entries in /Registry/DefaultGroup, for multi-VO installations
CHANGE: Component installation procedure updated to cope with components inheriting Modules
CHANGE: InstallTools - use dirac- command in runit run scripts
FIX: X509Chain - avoid a return of error when the group is not valid
FIX: MySQL - reduce verbosity of log messages when high level methods are used
CHANGE: Several DB classes have been updated to use the MySQL buildCondition method
NEW: MySQL - provide support for greater and smaller arguments to all MySQL high level methods
FIX: Service.py - check all return values from all initializers
*Configuration
CHANGE: By default return option and section lists ordered as in the CS
NEW: ConfigurationClient - added function to refresh remote configuration
*Framework
FIX: Registry.findDefaultGroup will never return False
CHANGE: ProxyManager does not accept proxies without explicit group
CHANGE: SystemAdministratorHandler - force refreshing the configuration after new component setup
*RSS
CHANGE: removed code execution from __init__
CHANGE: removed unused methods
NEW: Log all policy results
*Resources
NEW: updated SSHComputingElement which allows multiple job submission
FIX: SGETimeLeft - better parsing of the batch system commands output
FIX: InProcessComputingElement - when starting a new job discard renewal of the previous proxy
NEW: BOINCComputingElement - new CE client to work with the BOINC desktop grid infrastructure
*WMS
CHANGE: WMS Optimizers are now executors
CHANGE: SandboxStoreClient can directly access the DB if available
CHANGE: Moved JobDescription and improved into JobManifest
FIX: typo in JobLoggingDB
NEW: JobState/CachedJobState allow access to the Job via DB/JobStateSync Service automatically
BUGFIX: DownloadInputData - when not enough disk space, message was using "buffer" while it should be using "data"
FIX: the sandboxmetadataDB explosion when using the sandboxclient without direct access to the DB
NEW: Added support for reset/reschedule in the OptimizationMind
CHANGE: Whenever a DB is not properly initialized it will raise a catchable RuntimeError exception
instead of silently returning
FIX: InputDataResolution - just quick mod for easier extensibility, plus removed some LHCb specific stuff
NEW: allow jobids in a file in dirac-wms-job-get-output
NEW: JobManager - zfill in %n parameter substitution to allow alphabetical sorting
NEW: Directors - added checking of the TaskQueue limits when getting eligible queues
CHANGE: Natcher - refactor to simpify the logic, introduced Limiter class
CHANGE: Treat MaxCPUTime and CPUTime the same way in the JDL to avoid confusion
NEW: SiteDirector - added options PilotScript, MaxPilotsToSubmit, MaxJobsInFillMode
BUGFIX: StalledJobAgent - use cpuNormalization as float, not string
FIX: Don't kill an executor if a task has been taken out from it
NEW: dirac-boinc-pilot - pilot script to be used on the BOINC volunteer nodes
FIX: SiteDirector - better handling of tokens and filling mode
NEW: Generic pilot identities are automatically selected by the TQD and the SiteDirector
if not explicitly defined in /Pilot/GenericDN and GenericGroup
NEW: Generic pilot groups can have a VO that will be taken into account when selecting generic
credentials to submit pilots
NEW: Generic pilots that belong to a VO can only match jobs from that VO
NEW: StalledJobAgent - added rescheduling of jobs stuck in Matched or Rescheduled status
BUGFIX: StalledJobAgent - default startTime and endTime to "now", avoid None value
NEW: JobAgent - stop after N failed matching attempts (nothing to do), use StopAfterFailedMatches option
CHANGE: JobAgent - provide resource description as a dictionary to avoid extra JDL parsing by the Matcher
CHANGE: Matcher - report pilot info once instead of sending it several times from the job
CHANGE: Matcher - set the job site instead of making a separate call to JobStateUpdate
NEW: Matcher - added Matches done and matches OK statistics
NEW: TaskQueue - don't delete fresh task queues. Wait 5 minutes to do so.
CHANGE: Disabled TQs can also be matched, if no jobs are there, a retry will be triggered
*Transformation
FIX: TransformationAgent - a small improvement: now can pick the prods status to handle from the CS,
plus few minor corrections (e.g. logger messages)
FIX: TransformationCLI - take into accout possible failures in resetFile command
*Accounting
NEW: AccountingDB - added retrieving RAW records for internal stuff
FIX: AccountingDB - fixed some logic for readonly cases
CHANGE: Added new simpler and faster bucket insertion mechanism
NEW: Added more info when rebucketing
FIX: Calculate the rebucket ETA using remaining records to be processed instead of the total records to be processed
FIX: Plots with no data still carry the plot name
*DMS
NEW: SRM2Storage - added retry in the gfal calls
NEW: added new FTSCleaningAgent cleaning up TransferDB tables
FIX: DataLoggingClient and DataLoggingDB - tests moved to separate files
CHANGE: request agents cleanup
*RMS
CHANGE: Stop using RequestAgentMixIn in the request agents
[v6r4p34]
*DMS
BUGFIX: FileCatalogCLI - fixed wrong indentation
CHANGE: RegistrationTask - removed some LHCb specific defaults
[v6r4p33]
*DMS
CHANGE: FTSRequest - be more verbose if something is wrong with file
[v6r4p32]
*WMS
FIX: StalledJobAgent - avoid exceptions in the stalled job accounting reporting
*DMS
NEW: FTSMonitorAgent - handling of expired FTS jobs
*Interfaces
CHANGE: Dirac.py - attempt to retrieve output sandbox also for Completed jobs in retrieveRepositorySandboxes()
[v6r4p30]
*Core
BUGFIX: dirac-admin-bdii-ce-voview - proper check of the result structure
*Interfaces
FIX: Dirac.py, Job.py - allow to pass environment variables with special characters
*DMS
NEW: FileCatalogCLI - possibility to sort output in the ls command
*WMS:
FIX: JobWrapper - interpret environment variables with special characters
[v6r4p29]
*RMS
BUGFIX: RequestDBMySQL - wrong indentation in __updateSubRequestFiles()
[v6r4p28]
*Interfaces
CHANGE: Dirac.py, DiracAdmin.py - remove explicit timeout on RPC client instantiation
*RSS
FIX: CS.py - fix for updated CS location (backward compatible)
*DMS
BUGFIX: StrategyHandler - bug fixed determineReplicationTree()
FIX: FTSRequest - add checksum string to SURLs file before submitting an FTS job
*WMS
FIX: JobWrapper - protection for double quotes in JobName
CHANGE: SiteDirector - switched some logging messages from verbose to info level
*RMS
NEW: Request(Client,DBMySQL,Manager) - added readRequestsForJobs() method
[v6r4p27]
*DMS
FIX: SRM2Storage - removed hack for EOS (fixed server-side)
*Transformation
CHANGE: TransformationClient - limit to 100 the number of transformations in getTransformations()
NEW: TransformationAgent - define the transformations type to use in the configuration
*Interfaces
FIX: Job.py - fix for empty environmentDict (setExecutionEnv)
[v6r4p26]
*Transformation
BUGFIX: TransformationClient - fixed calling sequence in rpcClient.getTransformationTasks()
NEW: TransformationClient - added log messages in verbose level.
[v6r4p25]
*DMS
BUGFIX: StrategyHandler - sanity check for wrong replication tree
[v6r4p24]
*Core
NEW: MySQL - add 'offset' argument to the buildCondition()
*Transformation
FIX: TransformationAgent - randomize the LFNs for removal/replication case when large number of those
CHANGE: TransformationClient(DB,Manager) - get transformation files in smaller chunks to
improve performance
FIX: TransformationAgent(DB) - do not return redundant LFNs in getTransformationFiles()
[v6r4p23]
*Web
NEW: includes DIRACWeb tag web2012092101
[v6r4p22]
*DMS
FIX: SRM2Storage - fix the problem with the CERN-EOS storage
[v6r4p21]
*Core
BUGFIX: SGETimeLeft - take into account dd:hh:mm:ss format of the cpu consumed
[v6r4p20]
*WMS
BUGFIX: PilotDirector, GridPilotDirector - make sure that at least 1 pilot is to be submitted
BUGFIX: GridPilotDirector - bug on how pilots are counted when there is an error in the submit loop.
BUGFIX: dirac-pilot - proper install script installation on OSG sites
[v6r4p19]
*RMS
FIX: RequestDBMySQL - optimized request selection query
[v6r4p18]
*Configuration
BUGFIX: CE2CSAgent.py - the default value must be set outside the loop
*DMS
NEW: dirac-dms-create-replication-request
BUGFIX: dirac-dms-fts-submit, dirac-dms-fts-monitor - print out error messages
*Resources
BUGFIX: TorqueComputingElement.py, plus add UserName for shared Queues
*WMS
BUGFIX: JobManagerHandler - default value for pStart (to avoid Exception)
[v6r4p17]
*Core
FIX: dirac-configure - setup was not updated in dirac.cfg even with -F option
FIX: RequestHandler - added fix for Missing ConnectionError
*DMS
FIX: dirac-dms-clean-directory - command fails with `KeyError: 'Replicas'`.
*WMS
FIX: SiteDirector - adapt to the new method in the Matcher getMatchingTaskQueue
FIX: SiteDirector - added all SubmitPools to TQ requests
[v6r4p16]
*Core:
FIX: dirac-install - bashrc/cshrc were wrongly created when using versionsDir
*Accounting
CHANGE: Added new simpler and faster bucket insertion mechanism
NEW: Added more info when rebucketing
*WMS
CHANGE: Matcher - refactored to take into account job limits when providing info to directors
NEW: JoAgent - reports SubmitPool parameter if applicable
FIX: Matcher - bad codition if invalid result
[v6r4p15]
*WMS
FIX: gLitePilotDirector - fix the name of the MyProxy server to avoid crasehs of the gLite WMS
*Transformation
FIX: TaskManager - when the file is on many SEs, wrong results were generated
[v6r4p13]
*DMS
FIX: dirac-admin-allow-se - added missing interpreter line
[v6r4p12]
*DMS
CHANGE: RemovalTask - for DataManager shifter change creds after failure of removal with her/his proxy.
*RSS
NEW: Added RssConfiguration class
FIX: ResourceManagementClient - Fixed wrong method name
[v6r4p11]
*Core
FIX: GGUSTicketsClient - GGUS SOAP URL updated
*DMS
BUGFIX: ReplicaManager - wrong for loop
*RequestManagement
BUGFIX: RequestClient - bug fix in finalizeRequest()
*Transformation
FIX: TaskManager - fix for correctly setting the sites (as list)
[v6r4p10]
*RequestManagement
BUGFIX: RequestContainer - in addSubrequest() function
*Resources
BUGFIX: SRM2Storage - in checksum type evaluation
*ResourceStatusSystem
BUGFIX: InfoGetter - wrong import statement
*WMS
BUGFIX: SandboxMetadataDB - __init__() can not return a value
[v6r4p9]
*DMS
CHANGE: FailoverTransfer - ensure the correct execution order of the subrequests
[v6r4p8]
Bring in fixes from v6r3p17
*Core:
FIX: Don't have the __init__ return True for all DBs
NEW: Added more protection for exceptions thrown in callbacks for the ProcessPool
FIX: Operations will now look in 'Defaults' instead of 'Default'
*DataManagement:
FIX: Put more protection in StrategyHandler for neither channels not throughput read out of TransferDB
FIX: No JobIDs supplied in getRequestForJobs function for RequestDBMySQL taken into account
FIX: Fix on getRequestStatus
CHANGE: RequestClient proper use of getRequestStatus in finalizeRequest
CHANGE: Refactored RequestDBFile
[v6r4p7]
*WorkloadManagement
FIX: SandboxMetadataDB won't explode DIRAC when there's no access to the DB
CHANGE: Whenever a DB fails to initialize it raises a catchable exception instead of just returning silently
*DataManagement
CHANGE: Added Lost and Unavailable to the file metadata
[v6r4p6]
Bring fixes from v6r4p6
[v6r4p5]
*Configuration
NEW: Added function to generate Operations CS paths
*Core
FIX: Added proper ProcessPool checks and finalisation
*DataManagement
FIX: don't set Files.Status to Failed for non-existign files, failover transfers won't go
FIX: remove classmethods here and there to unblock requestHolder
CHANGE: RAB, TA: change task timeout: 180 and 600 (was 600 and 900 respectively)
FIX: sorting replication tree by Ancestor, not hopAncestorgit add DataManagementSystem/Agent/TransferAgent.py
NEW: TA: add finalize
CHANGE: TransferAgent: add AcceptableFailedFiles to StrategyHandler to ban FTS channel from scheduling
FIX: if there is no failed files, put an empty dict
*RSS
FIX: RSS is setting Allowed but the StorageElement checks for Active
*Workflows
FIX: Part of WorfklowTask rewritten to fix some issues and allow 'ANY' as site
*Transformation
FIX: Wrong calls to TCA::cleanMetadataCatalogFiles
[v6r4p4]
*Core
FIX: Platform.py - check if Popen.terminate is available (only from 2.6)
[v6r4p3]
*Core
FIX: ProcessPool with watchdog and timeouts - applied in v6r3 first
[v6r4p2]
*StorageManagement
BUGFIX: StorageElement - staging is a Read operation and should be allowed as such
*WMS
BUGFIX: InProcessComputingElement, JobAgent - proper return status code from the job wrapper
*Core
FIX: Platform - manage properly the case of exception in the ldconfig execution
[v6r4p1]
*DMS
FIX: TransferDB.getChannelObservedThroughput - the channelDict was created in a wrong way
*RSS
FIX: ResourceStatus was not returning Allowed by default
[v6r4]
*Core
FIX: dirac-install-db.py: addDatabaseOptionsToCS has added a new keyed argument
NEW: SGETimeLeft.py: Support for SGE backend
FIX: If several extensions are installed, merge ConfigTemplate.cfg
NEW: Service framework - added monitoring of file descriptors open
NEW: Service framework - Reduced handshake timeout to prevent stuck threads
NEW: MySQL class with new high level methods - buildCondition,insertFields,updateFields
deleteEntries, getFields, getCounters, getDistinctAttributeValues
FIX: ProcessPool - fixes in the locking mechanism with LockRing, stopping workers when the
parent process is finished
FIX: Added more locks to the LockRing
NEW: The installation tools are updated to install components by name with the components module specified as an option
*DMS
FIX: TransferDB.py - speed up the Throughput determination
NEW: dirac-dms-add-files: script similar to dirac-dms-remove-files,
allows for 1 file specification on the command line, using the usual dirac-dms-add-file options,
but also can take a text file in input to upload a bunch of files. Exit code is 0 only if all
was fine and is different for every error found.
NEW: StorageElementProxy- support for data downloading with http protocol from arbitrary storage,
needed for the web data download
BUGFIX: FileCatalogCLI - replicate operation does a proper replica registration ( closes #5 )
FIX: ReplicaManager - __cleanDirectory now working and thus dirac-dms-clean-directory
*WMS
NEW: CPU normalization script to run a quick test in the pilot, used by the JobWrapper
to report the CPU consumption to the accounting
FIX: StalledJobAgent - StalledTimeHours and FailedTimeHours are read each cycle, refer to the
Watchdog heartBeat period (should be renamed); add NormCPUTime to Accounting record
NEW: SiteDirector - support for the operation per VO in multi-VO installations
FIX: StalledJobAgent - get ProcessingType from JDL if defined
BUGFIX: dirac-wms-job-peek - missing printout in the command
NEW: SiteDirector - take into account the number of already waiting pilots when evaluating the number of pilots to submit
FIX: properly report CPU usage when the Watchdog kill the payload.
*RSS
BUGFIX: Result in ClientCache table is a varchar, but the method was getting a datetime
NEW: CacheFeederAgent - VOBOX and SpaceTokenOccupancy commands added (ported from LHCbDIRAC)
CHANGE: RSS components get operational parameters from the Operations handler
*DataManagement
FIX: if there is no failed files, put an empty dict
*Transformation
FIX: Wrong calls to TCA::cleanMetadataCatalogFiles
[v6r3p19]
*WMS
FIX: gLitePilotDirector - fix the name of the MyProxy server to avoid crashes of the gLite WMS
[v6r3p18]
*Resources
BUGFIX: SRM2Storage - in checksum type evaluation
[v6r3p17]
*DataManagement
FIX: Fixes issues #783 and #781. Bugs in ReplicaManager removePhisicalReplica and getFilesFromDirectory
FIX: Return S_ERROR if missing jobid arguments
NEW: Checksum can be verified during FTS and SRM2Storage
[v6r3p16]
*DataManagement
FIX: better monitoring of FTS channels
FIX: Handle properly None value for channels and bandwidths
*Core
FIX: Properly calculate the release notes if there are newer releases in the release.notes file
[v6r3p15]
*DataManagement
FIX: if there is no failed files, put an empty dict
*Transformation
FIX: Wrong calls to TCA::cleanMetadataCatalogFiles
[v6r3p14]
* Core
BUGFIX: ProcessPool.py: clean processing and finalisation
BUGFIX: Pfn.py: don't check for 'FileName' in pfnDict
* DMS
NEW: dirac-dms-show-fts-status.py: script showing last hour history for FTS channels
NEW: TransferDBMonitoringHandler.py: new function exporting FST channel queues
BUGFIX: TransferAgent.py,RemovalAgent.py,RegistrationAgent.py - unlinking of temp proxy files, corection of values sent to gMonitor
BUGFIX: StrategyHandler - new config option 'AcceptableFailedFiles' to unblock scheduling for channels if problematic transfers occured for few files
NEW: TransferAgent,RemovalAgent,RegistrationAgent - new confing options for setting timeouts for tasks and ProcessPool finalisation
BUGFIX: ReplicaManager.py - reverse sort of LFNs when deleting files and directories to avoid blocks
NEW: moved StrategyHandler class def to separate file under DMS/private
* TMS
FIX: TransformationCleaningAgent.py: some refactoring, new way of disabling/enabline execution by 'EnableFlag' config option
[v6r3p13]
*Core
FIX: Added proper ProcessPool checks and finalisation
*DataManagement
FIX: don't set Files.Status to Failed for non-existign files, failover transfers won't go
FIX: remove classmethods here and there to unblock requestHolder
CHANGE: RAB, TA: change task timeout: 180 and 600 (was 600 and 900 respectively)
FIX: sorting replication tree by Ancestor, not hopAncestorgit add DataManagementSystem/Agent/TransferAgent.py
NEW: TA: add finalize
CHANGE: TransferAgent: add AcceptableFailedFiles to StrategyHandler to ban FTS channel from scheduling
[v6r3p12]
*Core
FIX: Platform.py - check if Popen.terminate is available (only from 2.6)
[v6r3p11]
*Core
FIX: ProcessPool with watchdog and timeouts
[v6r3p10]
*StorageManagement
BUGFIX: StorageElement - staging is a Read operation and should be allowed as such
*WMS
BUGFIX: InProcessComputingElement, JobAgent - proper return status code from the job wrapper
*Core
FIX: Platform - manage properly the case of exception in the ldconfig execution
[v6r3p9]
*DMS
FIX: TransferDB.getChannelObservedThroughput - the channelDict was created in a wrong way
[v6r3p8]
*Web
CHANGE: return back to the release web2012041601
[v6r3p7]
*Transformation
FIX: TransformationCleaningAgent - protection from deleting requests with jobID 0
[v6r3p6]
*Core
FIX: dirac-install-db - proper key argument (follow change in InstallTools)
FIX: ProcessPool - release all locks every time WorkignProcess.run is executed, more fixes to come
FIX: dirac-configure - for Multi-Community installations, all vomsdir/vomses files are now created
*WMS
NEW: SiteDirector - add pilot option with CE name to allow matching of SAM jobs.
BUGFIX: dirac-pilot - SGE batch ID was overwriting the CREAM ID
FIX: PilotDirector - protect the CS master if there are at least 3 slaves
NEW: Watchdog - set LocalJobID in the SGE case
[v6r3p5]
*Core:
BUGFIX: ProcessPool - bug making TaskAgents hang after max cycles
BUGFIX: Graphs - proper handling plots with data containing empty string labels
FIX: GateWay - transfers were using an old API
FIX: GateWay - properly calculate the gateway URL
BUGFIX: Utilities/Pfn.py - bug in pfnunparse() when concatenating Path and FileName
*Accounting
NEW: ReportGenerator - make AccountingDB readonly
FIX: DataCache - set daemon the datacache thread
BUGFIX: BasePlotter - proper handling of the Petabyte scale data
*DMS:
BUGFIX: TransferAgent, RegistrationTask - typos
[v6r3p4]
*DMS:
BUGFIX: TransferAgent - wrong value for failback in TA:execute