Difference: WMS34ExtendedReleaseNotes (1 vs. 18)

Revision 182013-03-25 - MarcoCecchi

Line: 1 to 1
 

Extended Release Notes for WMS 3.4.0

Line: 376 to 376
 

For the moment only openssl oneline old DN format is accepted. This PIP Argus PIP must be enabled in the PEPd configuration.

Changed:
<
<
The default authorization mechanism for access control is the gridsite GACL.
>
>
The default authorization mechanism for access control is the gridsite GACL. The WMS automatically sets the Argus resource id to the service endpoint.
 

* 2.4 Dagmanless DAGs

Revision 172012-11-12 - MarcoCecchi

Line: 1 to 1
 

Extended Release Notes for WMS 3.4.0

Line: 450 to 449
 

3) Known Issues

Added:
>
>
If a job has support for proxy renewal enabled, an error will be returned when retrieving the output:

Proxy exception: Unable to get Not Before date from Prox"

WORKAROUND: this change will be overwritten in case of a YAIM reconfiguration

add at the end of the file /etc/profile.d/grid-env.sh the line:

gridenv_set "ICE_DISABLE_DEREGISTER" "1"

restart the glite-wms-ice service:

# /etc/init.d/glite-wms-ice restart

 - Support for GLUE 2.0 is incomplete for what concerns match-making with the JDL attribute datarequirements.
Line: 457 to 470
  - The job perusal feature does not work. Output retrieval fails with error "The Operation is not allowed: the job is not started"
Added:
>
>
[mcecchi@devel15 ~]$ glite-wms-job-perusal --get -f std.out https://devel09.cnaf.infn.it:9000/JJt1CuAgB4bSQ4mUgoQtMg

Connecting to the service https://devel09.cnaf.infn.it:7443/glite_wms_wmproxy_server


Error - WMProxy Server Error
The Operation is not allowed: the job is not started
Error code: SOAP-ENV:Server

WORKAROUND

When getting the above error, you need to rename a file on the WMS:

 - The LCMAPS logging verbosity has changed (log file is now var/log/glite/lcmaps.log), so do not expect the long output that was produced before.

Revision 162012-10-11 - MarcoCecchi

Line: 1 to 1
 

Extended Release Notes for WMS 3.4.0

Line: 520 to 520
 

5) Changed documentation

Changed:
<
<
The gLite WMS System administrator guide has been updated with the "Configuration Changes"
>
>
The gLite WMS System administrator guide has been updated with the "Configuration Changes" (https://wiki.italiangrid.it/twiki/bin/view/WMS/WMSSystemAdministratorGuide)
  The WMPROXY guide has been updated: https://edms.cern.ch/document/674643/1

Revision 152012-10-11 - MarcoCecchi

Line: 1 to 1
 

Extended Release Notes for WMS 3.4.0

Line: 520 to 520
 

5) Changed documentation

Changed:
<
<
The gLite WMS admin guide has been updated. The WMPROXY admin guide has been updated
>
>
The gLite WMS System administrator guide has been updated with the "Configuration Changes"

The WMPROXY guide has been updated: https://edms.cern.ch/document/674643/1

https://wiki.italiangrid.it/twiki/bin/view/WMS/WebHome (WMPROXY guide link changed)

 -- MarcoCecchi - 2012-06-22

META FILEATTACHMENT attachment="ismdump.fl.bz2" attr="" comment="Classad rendering of a GLUE2.0 dump of the WMS Information System Cache" date="1341580865" name="ismdump.fl.bz2" path="ismdump.fl.bz2" size="35056" user="MarcoCecchi" version="1"

Revision 142012-10-11 - MarcoCecchi

Line: 1 to 1
 

Extended Release Notes for WMS 3.4.0

Line: 14 to 14
 
2.6) Support for RFC proxies (bug #88128)
3) Known Issues
4) Code changes
Changed:
<
<
>
>
5) Changed documentation
 

1) Supported platforms

Line: 518 to 518
  Total removed = 8k + 2k = 10k
Added:
>
>

5) Changed documentation

The gLite WMS admin guide has been updated. The WMPROXY admin guide has been updated

 -- MarcoCecchi - 2012-06-22

META FILEATTACHMENT attachment="ismdump.fl.bz2" attr="" comment="Classad rendering of a GLUE2.0 dump of the WMS Information System Cache" date="1341580865" name="ismdump.fl.bz2" path="ismdump.fl.bz2" size="35056" user="MarcoCecchi" version="1"

Revision 132012-09-28 - MarcoCecchi

Line: 1 to 1
 

Extended Release Notes for WMS 3.4.0

Line: 450 to 450
 

3) Known Issues

Changed:
<
<
- ARC CE 12.x is not supperted.
>
>
- Support for GLUE 2.0 is incomplete for what concerns match-making with the JDL attribute datarequirements.
 
Changed:
<
<
While WMS 3.4 works with ARC CE 11.x, the 12.x releases seem to have broken job submission
>
>
- ARC CE 12.x is not supported, 11.x is.
 
Changed:
<
<
- The job perusal feature does not work. Output retrieval fails with this error:
>
>
- The job perusal feature does not work. Output retrieval fails with error "The Operation is not allowed: the job is not started"
 
Changed:
<
<
 ===> ERROR: Command glite-wms-job-perusal --get -f out.txt --dir /home/capannini/WMS-Test-Suite/WMS-service/WMSService-Test_20120911165612/jobOutput https://cert-13.cnaf.infn.it:9000/-4AKS693kkIhSsXsCK9xbw failed. Failure message: 
Connecting to the service https://cert-13.cnaf.infn.it:7443/glite_wms_wmproxy_server
Error - WMProxy Server Error
The Operation is not allowed: the job is not started
>
>
- The LCMAPS logging verbosity has changed (log file is now var/log/glite/lcmaps.log), so do not expect the long output that was produced before.
 

4) Code changes

Revision 122012-09-28 - MarcoCecchi

Line: 1 to 1
 

Extended Release Notes for WMS 3.4.0

Changed:
<
<

Supported platforms

>
>

1) Supported platforms
2) Major changes
2.1) GLUE2 purchasing and match-making
2.1.1) Purchasing
2.1.2) Match-making with GLUE2.0
2.3) Argus authZ for access control
2.4) Dagmanless DAGs
2.5) Condor 7.8.0
2.6) Support for RFC proxies (bug #88128)
3) Known Issues
4) Code changes

1) Supported platforms

  Scientific Linux 5.x x86_64

Scientific Linux 6.x x86_64

Changed:
<
<

Major changes

>
>

2) Major changes

 
Changed:
<
<

* GLUE2 purchasing and match-making

>
>

* 2.1 GLUE2 purchasing and match-making

 
Changed:
<
<

Purchasing

>
>

2.1.1) Purchasing

  - The WMS core module, responsible for the match-making, has two separate purchaser threads for fetching GLUE1.3 and GLUE2.0 information. These can be independently enabled by configuration (WM section), in this way:
Line: 278 to 294
  ]
Changed:
<
<

Match-making with GLUE2.0

>
>

2.1.2) Match-making with GLUE2.0

  - GLUE1.3 and 2.0 attributes are referenced in the JDL through the usual 'other.' operator (see next section), specified in the JDL requirements and rank expressions. Selection on GLUE13 or GLUE20 attributes is simply enabled by referring to the appropriate attributes in the JDL. GLUE20 will be accessed through the structure shown above.
Line: 351 to 367
 
Changed:
<
<

* Argus authZ for access control

>
>

* 2.3 Argus authZ for access control

  There are two new variables that need to be specified in the siteinfo file:
Line: 363 to 379
 For the moment only openssl oneline old DN format is accepted. This PIP Argus PIP must be enabled in the PEPd configuration. The default authorization mechanism for access control is the gridsite GACL.
Changed:
<
<

* Dagmanless DAGs

>
>

* 2.4 Dagmanless DAGs

  The WMS used to implement submission and management of DAG jobs via Condor DAGMan. A DAG engine has now been implemented in the WMS engine (WM). This change is to a great extent transparent to the end user.
Line: 375 to 391
  3) Ability to handle DAGs with run-time errors so as not to leave the DAG in pending states.
Changed:
<
<

* Condor 7.8.0

>
>

* 2.5 Condor 7.8.0

  This change will mainly enable submission to GRAM5 CEs.
Line: 386 to 402
 - Condor 7.8.0 is maintained and repackaged in the EMI WMS through a separate package, named condor-emi. condor-emi does not only provides the official Condor 7.8.0, but also includes several fixes (concerning security and submission to ARC) that have not been ported upstream by the Condor team yet.
Changed:
<
<

* Support for RFC proxies (bug #88128)

>
>

* 2.6 Support for RFC proxies (bug #88128)

  LCG-CE not expected to support them. OSG, ARC and CREAM CEs will do.
Line: 432 to 448
  - wm.WmsRequirements now has also the queue requirements, that were hard-coded before
Added:
>
>

3) Known Issues

- ARC CE 12.x is not supperted.

While WMS 3.4 works with ARC CE 11.x, the 12.x releases seem to have broken job submission

- The job perusal feature does not work. Output retrieval fails with this error:

 ===> ERROR: Command glite-wms-job-perusal --get -f out.txt --dir /home/capannini/WMS-Test-Suite/WMS-service/WMSService-Test_20120911165612/jobOutput https://cert-13.cnaf.infn.it:9000/-4AKS693kkIhSsXsCK9xbw failed. Failure message: 
Connecting to the service https://cert-13.cnaf.infn.it:7443/glite_wms_wmproxy_server
Error - WMProxy Server Error
The Operation is not allowed: the job is not started
 
Changed:
<
<

Code changes

>
>

4) Code changes

  EMI2 WMS introduces several code changes, to comply with the strict EMI JRA1 KPI (Key Performance Indicators) in terms of consolidation and reduction of lines of code. In particular, a non trivial refactoring of authN/Z in wmproxy took place, together with the removal of the dependency on Condor DAGMan, another big change. For the build, Cmake started replacing autotools throughout. Roughly speaking:

Revision 112012-09-27 - MarcoCecchi

Line: 1 to 1
 

Extended Release Notes for WMS 3.4.0

Supported platforms

Line: 424 to 424
  - added attributes for specifying shared objects to be instantiated by dlopen (helper, purchasers)
Changed:
<
<
- added wm.EnabledReplanner (boolean). The job replanner can now be disabled by configuration.
>
>
- added wm.EnabledReplanner (boolean, defaults to FALSE). The job replanner can now be toggled by configuration. The replanning feature is not always used, and in some cases it can show problems with queries to the LB, in case of high load. For this reason it is now disabled by default.
  - reduced wm.MatchRetryPeriod 600 -> 300. It now also indicates the time interval with which DAGs are evaluated by the WM engine

Revision 102012-07-18 - MarcoCecchi

Line: 1 to 1
 

Extended Release Notes for WMS 3.4.0

Added:
>
>

Supported platforms

Scientific Linux 5.x x86_64

Scientific Linux 6.x x86_64

 

Major changes

* GLUE2 purchasing and match-making

Revision 92012-07-11 - MarcoCecchi

Line: 1 to 1
 

Extended Release Notes for WMS 3.4.0

Major changes

Line: 168 to 168
  ]
Deleted:
<
<
Note the attribute PurchasedBy = "ism_ii_g2_purchaser".
 Storage Element:
Line: 349 to 347
 

* Argus authZ for access control

Changed:
<
<
There are two new variables that are to be specified in the siteinfo file:
>
>
There are two new variables that need to be specified in the siteinfo file:
 
USE_ARGUS=<boolean>

Revision 82012-07-11 - MarcoCecchi

Line: 1 to 1
Changed:
<
<

WMS 3.4.0. Extended Release Notes

>
>

Extended Release Notes for WMS 3.4.0

 

Major changes

Line: 318 to 318
  to match both GLUE 1.3 and GLUE 2.0, just place the two expressions above in or. Shortly:
Changed:
<
<
WmsRequirements = (GLUE13Reqs) || (GLUE2Reqs);
>
>
WmsRequirements = GLUE13Reqs || GLUE2Reqs;
  To test a simple match-making, after having enabled the GLUE 2.0 purchaser in the WM, as described, create a requirements expression like this one in your JDL:
Line: 376 to 376
 This change will mainly enable submission to GRAM5 CEs.

NOTES:

Added:
>
>
 - Condor 7.8.0 will install in FHS compliant paths
Added:
>
>
 - Condor 7.8.0 is maintained and repackaged in the EMI WMS through a separate package, named condor-emi. condor-emi does not only provides the official Condor 7.8.0, but also includes several fixes (concerning security and submission to ARC) that have not been ported upstream by the Condor team yet.
Added:
>
>
 

* Support for RFC proxies (bug #88128)

Changed:
<
<
LCG-CE not expected to support them. OSG, ARC and CREAM CEs will.
>
>
LCG-CE not expected to support them. OSG, ARC and CREAM CEs will do.
 

Configuration Changes

Revision 72012-07-11 - MarcoCecchi

Line: 1 to 1
 

WMS 3.4.0. Extended Release Notes

Major changes

Line: 276 to 276
 

Match-making with GLUE2.0

Changed:
<
<
- GLUE1.3 and 2.0 attributes are referenced in the JDL through the usual 'other.' operator (see next section), specified in the JDL requirements and rank expressions. Selection on GLUE13 or GLUE20 attributes is simply enabled by referring to the appropriate attributes in the JDL. GLUE20 will be accessed through the structure shown above. In this release the JDL attribute DataRequirements (and all the deprecated attributes to do match-making with data) will not work on GLUE2.0 resources.
>
>
- GLUE1.3 and 2.0 attributes are referenced in the JDL through the usual 'other.' operator (see next section), specified in the JDL requirements and rank expressions. Selection on GLUE13 or GLUE20 attributes is simply enabled by referring to the appropriate attributes in the JDL. GLUE20 will be accessed through the structure shown above.
 
Changed:
<
<
Examples of match-making:
>
>
In this release the JDL attribute DataRequirements (and all the deprecated attributes to do match-making with data) will not work on GLUE2.0 resources.

Some examples of match-making:

  Match on GLUE13 resources. Same as it has always been:
Line: 353 to 355
 USE_ARGUS= ARGUS_PEPD_ENDPOINTS="list_of_space_separated_URLs" # i.e.: "https://argus01.lcg.cscs.ch:8154/authz https://argus02.lcg.cscs.ch:8154/authz https://argus03.lcg.cscs.ch:8154/authz"
Added:
>
>
 For the moment only openssl oneline old DN format is accepted. This PIP Argus PIP must be enabled in the PEPd configuration.
Added:
>
>
The default authorization mechanism for access control is the gridsite GACL.
 

* Dagmanless DAGs

Revision 62012-07-10 - MarcoCecchi

Line: 1 to 1
Changed:
<
<

WMS 3.4 EMI2 Extended Release Notes

>
>

WMS 3.4.0. Extended Release Notes

 

Major changes

Line: 276 to 276
 

Match-making with GLUE2.0

Changed:
<
<
- GLUE1.3 and 2.0 attributes are referenced in the JDL through the usual 'other.' operator (see next section), specified in the JDL requirements and rank expressions. Selection on GLUE13 or GLUE20 attributes is simply enabled by referring to the appropriate attributes in the JDL. GLUE20 will be accessed through the structure shown above.
>
>
- GLUE1.3 and 2.0 attributes are referenced in the JDL through the usual 'other.' operator (see next section), specified in the JDL requirements and rank expressions. Selection on GLUE13 or GLUE20 attributes is simply enabled by referring to the appropriate attributes in the JDL. GLUE20 will be accessed through the structure shown above. In this release the JDL attribute DataRequirements (and all the deprecated attributes to do match-making with data) will not work on GLUE2.0 resources.
 
Changed:
<
<
Example:
>
>
Examples of match-making:
  Match on GLUE13 resources. Same as it has always been:

Revision 52012-07-09 - MarcoCecchi

Line: 1 to 1
 

WMS 3.4 EMI2 Extended Release Notes

Major changes

Line: 16 to 16
  To produce a full ASCII dump of the Information System cache, rendered in classad, execute the following command on the WMS.
Deleted:
<
<
echo "[ command = \"ism_dump\"; ]"> /var/workload_manager/jobdir/new/req0

Setting:

 
Changed:
<
<
EnableIsmIiGlue13Purchasing = false; EnableIsmIiGlue20Purchasing = true;
>
>
echo "[ command = \"ism_dump\"; ]"> /var/workload_manager/jobdir/new/req0
 
Changed:
<
<
will produce a dump similar to the file has been included in this twiki.
>
>
A GLUE 2.0 dump taken from lcg-bdii.cern.ch has been included in this twiki.
 
Changed:
<
<
The GLUE 1.3 purchaser is always executed before the GLUE 2.0 one. In this way, when the latter starts fetching entries it can find that the same representation was already produced in GLUE 1.3, for a given resource. So two cases here:
>
>
The GLUE 1.3 purchaser is always executed before the GLUE 2.0 one. In this way, when the latter starts fetching entries it will find one of the following cases:
 
Changed:
<
<
1) the entry was already fetched by the GLUE1.3 purchaser. A merge, G13.Ad.Update(G20.Ad), will be done on the entry with same key GLUECEUniqueId = OtherInfo.CREAMCEId. The same entry will be selectable by both G13 and G20 requirements. Furthermore, the match-making based on data will keep on working, provided that the JDL refers to G13 attributes. 2) The entry was NOT already purchased by the GLUE1.3 purchaser. A direct insert of the GLUE 2.0, that will only be matched by referring to GLUE2.0 attributes in the JDL requirements and rank expressions.
>
>
1) the entry was already fetched by the GLUE1.3 purchaser. A merge, G13_Ad.Update(G20_Ad), will be done on the entry with same key that was created by the GLUE 1.3 purchaser (GLUECEUniqueId). The rule to understand if an entry refers to the same resource is the following: IsUndefined(OtherInfo.CREAMCEId) ? GLUE2.Computing.Share.ID : OtherInfo.CREAMCEId The same entry will be selectable by both G13 and G20 requirements. Furthermore, the match-making based on data will keep on working, provided that the JDL refers to G13 attributes.

2) The entry was NOT already purchased by the GLUE1.3 purchaser. A new insertion of the GLUE 2.0 resource will be done. That entry will only be matched by referring to GLUE2.0 attributes in the JDL requirements and rank expressions.

  While GLUE1.3 is represented in the WMS as a flattened structure of key/value pairs, mostly, the GLUE2.0 retains the full blown tree of the schema.
Line: 116 to 113
  MaxCPUTime = ; FreeSlots = ; EstimatedAverageWaitingTime = ;
Changed:
<
<
ID = "string";
>
>
ID = "string"; // NB: this will be used to hook up possible G13 entries with same GLUECEUniqueId and merge G13 and G20 representations InfoProviderVersion = "string"
  MappingQueue = "string"; TotalJobs = ; DefaultWallTime = ;
Line: 125 to 123
  [ InfoProviderName = "string"; InfoProviderHost = "string";
Changed:
<
<
CREAMCEId = "string"; // NB: this will be used to hook up possible G13 entries with same GLUECEUniqueId and merge G13 and G20 representations
>
>
CREAMCEId = "string"; // NB: this will also be used to hook up possible G13 entries with same GLUECEUniqueId and merge G13 and G20 representations
  InfoProviderVersion = "string" // ... ];
Line: 306 to 304
  IMPORTANT: the requirements expressed in the JDL are appended to WmsRequirements, a WMS defined classad expression, that includes authZ checks and various constraints on the resource side, automatically appended in && to the user requirements. The present default for WmsRequirements only includes GLUE13 attributes. So, according to what type of purchaser is enabled by configuration, the WmsRequirements expressions must be adapted accordingly. The default is:
Added:
>
>
  ((ShortDeadlineJob ? TRUE) ? RegExp(".*sdj$", other.GlueCEUniqueID) : RegExp(".*sdj$", other.GlueCEUniqueID)) && (other.GlueCEPolicyMaxTotalJobs = 0 || other.GlueCEStateTotalJobs < other.GlueCEPolicyMaxTotalJobs) && (EnableWmsFeedback =? TRUE ? RegExp("cream", other.GlueCEImplementationName, "i") : true);
Added:
>
>
  To match only GLUE2 resources, replace with this expression:
Line: 314 to 314
 ((member(CertificateSubject, other.GLUE2.Computing.Endpoint.Policy) || member(strcat("VO:", VirtualOrganisation), other.GLUE2.Computing.Endpoint.Policy) || FQANmember(strcat("VOMS:", VOMS_FQAN), other.GLUE2.Computing.Endpoint.Policy)) && FQANmember(strcat("DENY:", VOMS_FQAN), other.GLUE2.Computing.Endpoint.Policy) && (other.Glue2.Computing.Share.MaxRunningJobs = 0 || other.Glue2.Computing.ShareTotalJobs < other.Glue2.Computing.Share.MaxRunningJobs) && (EnableWmsFeedback =? TRUE ? RegExp("cream", other.GLUE2.Computing.Endpoint.ImplementationName, "i") : true))
Changed:
<
<
to match both GLUE 1.3 and GLUE 2.0, just place the expression above in or with the existing one, kind of: WmsRequirements = (GLUE13Reqs) || (GLUE2Reqs);
>
>
to match both GLUE 1.3 and GLUE 2.0, just place the two expressions above in or. Shortly:
 
Changed:
<
<
- GLUE2.0 match-making
>
>
WmsRequirements = (GLUE13Reqs) || (GLUE2Reqs);
 
Changed:
<
<
After having enabled G2 purchasing in the WM, as in the above test, created a requirements expression like this in your JDL:
>
>
To test a simple match-making, after having enabled the GLUE 2.0 purchaser in the WM, as described, create a requirements expression like this one in your JDL:
 
Added:
>
>
 requirements = other.GLUE2.Computing.Endpoint.Name == "ce.csl.ee.upatras.gr_org.glite.ce.CREAM";
Added:
>
>
 
Changed:
<
<
where the proper values have been taken from the ISM dump. Then, in the WM section, comment out the WmsRequirements expression and replace it with an expression referring to valid GLUE2.0 attributes (WmsRequirements=true can be good, to start) . Restart the WMPROXY. Now submit a list-match request, making sure that no default is taken by some inherited configurations.
>
>
Then, in the WM section of the WMS configuration, comment out the WmsRequirements expression and replace it with an expression referring to valid GLUE2.0 attributes (WmsRequirements=true can be a good start) . Restart the wmproxy service. Now submit a list-match request, making sure that no extra default is taken by some inherited configurations.
 
[mcecchi@ui ~]$ glite-wms-job-list-match -a -c glite_wmsui.conf  --endpoint https://devel09.cnaf.infn.it:7443/glite_wms_wmproxy_server ls_g2.jdl 
Line: 342 to 344
 ======================================================================
Deleted:
<
<
For example, the authZ check would become:

if(isdefined(other.GlueCEAccessControlBaseRule) , member(CertificateSubject,other.GlueCEAccessControlBaseRule), member(CertificateSubject,other.GLUE2.Computing.Endpoint.Policy));

 

* Argus authZ for access control

Line: 423 to 422
 

Code changes

Changed:
<
<
EMI2 WMS introduces several code changes, to comply with the strict EMI JRA1 KPI (Key Performance Indicators) in terms of consolidation and reduction of lines of code. In particular, a non trivial refactoring of authN/Z in wmproxy took place, together with the removal of the dependency on Condor DAGMan, another big change. For the build, Cmake started replacing autotools throughout. A lot of code has changed!

Roughly speaking:

>
>
EMI2 WMS introduces several code changes, to comply with the strict EMI JRA1 KPI (Key Performance Indicators) in terms of consolidation and reduction of lines of code. In particular, a non trivial refactoring of authN/Z in wmproxy took place, together with the removal of the dependency on Condor DAGMan, another big change. For the build, Cmake started replacing autotools throughout. Roughly speaking:
  ~6k lines of code were added in existing modules

Revision 42012-07-09 - MarcoCecchi

Line: 1 to 1
 

WMS 3.4 EMI2 Extended Release Notes

Major changes

Line: 7 to 7
 

Purchasing

Changed:
<
<
- The WMS core module has two separate purchaser threads for GLUE1.3 and GLUE2.0. These can be independently enabled by configuration (WM section), in this way:
>
>
- The WMS core module, responsible for the match-making, has two separate purchaser threads for fetching GLUE1.3 and GLUE2.0 information. These can be independently enabled by configuration (WM section), in this way:
 
    EnableIsmIiGlue13Purchasing  =  <boolean>;
    EnableIsmIiGlue20Purchasing  =  <boolean>;
Changed:
<
<
To produce a full ASCII dump of the Information System cache, rendered in classad, execute this command
>
>
To produce a full ASCII dump of the Information System cache, rendered in classad, execute the following command on the WMS.
  echo "[ command = \"ism_dump\"; ]"> /var/workload_manager/jobdir/new/req0
Line: 27 to 27
  will produce a dump similar to the file has been included in this twiki.
Changed:
<
<
The GLUE 1.3 purchaser is always executed before the GLUE 2.0 one. In this way, when the latter starts fetching entries it can find that the same representation was already produced in GLUE 1.3. So two cases:
>
>
The GLUE 1.3 purchaser is always executed before the GLUE 2.0 one. In this way, when the latter starts fetching entries it can find that the same representation was already produced in GLUE 1.3, for a given resource. So two cases here:
 
Changed:
<
<
1) The entry was already purchased by the GLUE1.3 purchaser. esiste gią in ISM un G13Ad con id = G2Ad.id: allora si fa semplicemente un C13.Ad.Update(G2Ad) (di fatto merge). La risorsa risultante sarą matchabile con requirements G2 o G13 indipendentemente inoltre, in questo modo, anche la parte di storage continuerą a funzionare purchč eventuali attributi nel JDL riguardanti lo storage siano espressi in G13.
>
>
1) the entry was already fetched by the GLUE1.3 purchaser. A merge, G13.Ad.Update(G20.Ad), will be done on the entry with same key GLUECEUniqueId = OtherInfo.CREAMCEId. The same entry will be selectable by both G13 and G20 requirements. Furthermore, the match-making based on data will keep on working, provided that the JDL refers to G13 attributes. 2) The entry was NOT already purchased by the GLUE1.3 purchaser. A direct insert of the GLUE 2.0, that will only be matched by referring to GLUE2.0 attributes in the JDL requirements and rank expressions.
 
Changed:
<
<
2) The entry was NOT already purchased by the GLUE1.3 purchaser. A direct insert of the GLUE 2.0, that will only be matched by refering to GLUE2.0 attributes in the JDL requirements and rank expressions.

GLUE1.3 and 2.0 attributes are referenced in the JDL through the usual 'other.' operator (see next section). While GLUE1.3 is represented in the WMS as a flattened structure of key/value pairs, mostly, the GLUE2.0 retains the full blown tree of the schema.

>
>
While GLUE1.3 is represented in the WMS as a flattened structure of key/value pairs, mostly, the GLUE2.0 retains the full blown tree of the schema.
  Computing Element:
Line: 277 to 276
  ]
Changed:
<
<

Match-making

>
>

Match-making with GLUE2.0

- GLUE1.3 and 2.0 attributes are referenced in the JDL through the usual 'other.' operator (see next section), specified in the JDL requirements and rank expressions. Selection on GLUE13 or GLUE20 attributes is simply enabled by referring to the appropriate attributes in the JDL. GLUE20 will be accessed through the structure shown above.

Example:

Match on GLUE13 resources. Same as it has always been:

Requirements = other.GlueCEStateWaitingJobs < 100;
Rank = -other.GlueCEStateWaitingJobs;

Match on GLUE20 resources:

Requirements = other.GLUE2.Computing.Share.WaitingJobs < 100;
Rank = -other.GlueCEStateWaitingJobs;

Match on all GLUE13 and GLUE20 resources:

wj = iff(isdefined(other.GlueCEStateWaitingJobs), other.GlueCEStateWaitingJobs, other.GLUE2.Computing.Share.WaitingJobs)
Requirements = wj < 100;
Rank = -wj;

IMPORTANT: the requirements expressed in the JDL are appended to WmsRequirements, a WMS defined classad expression, that includes authZ checks and various constraints on the resource side, automatically appended in && to the user requirements. The present default for WmsRequirements only includes GLUE13 attributes. So, according to what type of purchaser is enabled by configuration, the WmsRequirements expressions must be adapted accordingly. The default is:

 
Changed:
<
<
- The user requirements are appended to WmsRequirements, that includes authZ checks and various constraints set on the resource side. According to what type of purchaser is selected, the user and wms requirements expressions must be adapted accordingly. They can also be crafted in such a way to be able to manage the co-existence of GLUE 1.3 and 2.0 purchasers. The selection is done with these attributes:
>
>
((ShortDeadlineJob ? TRUE) ? RegExp(".*sdj$", other.GlueCEUniqueID) : RegExp(".*sdj$", other.GlueCEUniqueID)) && (other.GlueCEPolicyMaxTotalJobs = 0 || other.GlueCEStateTotalJobs < other.GlueCEPolicyMaxTotalJobs) && (EnableWmsFeedback =? TRUE ? RegExp("cream", other.GlueCEImplementationName, "i") : true);
 
Changed:
<
<
To match only GLUE2 resources, replace the default attribute WmsRequirements in the WMS configuration with this expression:
>
>
To match only GLUE2 resources, replace with this expression:
 
((member(CertificateSubject, other.GLUE2.Computing.Endpoint.Policy) || member(strcat("VO:", VirtualOrganisation), other.GLUE2.Computing.Endpoint.Policy) || FQANmember(strcat("VOMS:", VOMS_FQAN), other.GLUE2.Computing.Endpoint.Policy)) && !FQANmember(strcat("DENY:", VOMS_FQAN), other.GLUE2.Computing.Endpoint.Policy) && (other.Glue2.Computing.Share.MaxRunningJobs == 0 || other.Glue2.Computing.ShareTotalJobs < other.Glue2.Computing.Share.MaxRunningJobs) && (EnableWmsFeedback =?= TRUE ? RegExp("cream", other.GLUE2.Computing.Endpoint.ImplementationName, "i") : true))
Line: 289 to 316
  to match both GLUE 1.3 and GLUE 2.0, just place the expression above in or with the existing one, kind of: WmsRequirements = (GLUE13Reqs) || (GLUE2Reqs);
Changed:
<
<
- GLUE2.0 match-making PASS
>
>
- GLUE2.0 match-making
  After having enabled G2 purchasing in the WM, as in the above test, created a requirements expression like this in your JDL:
Line: 323 to 350
  There are two new variables that are to be specified in the siteinfo file:
Added:
>
>
 USE_ARGUS=
Changed:
<
<
ARGUS_PEPD_ENDPOINTS="list_of_space_separated_URLs"

// i.e.: "https://argus01.lcg.cscs.ch:8154/authz https://argus02.lcg.cscs.ch:8154/authz https://argus03.lcg.cscs.ch:8154/authz"

>
>
ARGUS_PEPD_ENDPOINTS="list_of_space_separated_URLs" # i.e.: "https://argus01.lcg.cscs.ch:8154/authz https://argus02.lcg.cscs.ch:8154/authz https://argus03.lcg.cscs.ch:8154/authz" For the moment only openssl oneline old DN format is accepted. This PIP Argus PIP must be enabled in the PEPd configuration.
 
Added:
>
>

* Dagmanless DAGs

 
Changed:
<
<
For the moment only openssl oneline old DN format is accepted. This PIP Argus PIP must be enabled in the PEPd configuration.
>
>
The WMS used to implement submission and management of DAG jobs via Condor DAGMan. A DAG engine has now been implemented in the WMS engine (WM). This change is to a great extent transparent to the end user.
 
Changed:
<
<

* dagmanless DAGs

>
>
Nodes are re-evaluated in the WM every MatchRetryPeriod. This design change will introduce several advantages:
 
Changed:
<
<
Nodes are re-evaluated in the WM every MatchRetryPeriod
>
>
1) Simpler, less error prone architecture (integrating DAGMan required several helper modules, limiting mechanisms and the like) 2) Higher performance on DAG jobs, especially those composed by a high number of nodes 3) Ability to handle DAGs with run-time errors so as not to leave the DAG in pending states.
 

* Condor 7.8.0

Changed:
<
<
It will fully enable submission to GRAM5 CEs. The feature requires testing submission to LCG-CE, ARC CE, OSG gram2 and gram5
>
>
This change will mainly enable submission to GRAM5 CEs.
 
Changed:
<
<

* refactoring of authN/Z in wmp

>
>
NOTES: - Condor 7.8.0 will install in FHS compliant paths - Condor 7.8.0 is maintained and repackaged in the EMI WMS through a separate package, named condor-emi. condor-emi does not only provides the official Condor 7.8.0, but also includes several fixes (concerning security and submission to ARC) that have not been ported upstream by the Condor team yet.
 
Changed:
<
<
requires to test authN/Z at large, not only for Argus

* support for RFC proxies (bug #88128)

>
>

* Support for RFC proxies (bug #88128)

  LCG-CE not expected to support them. OSG, ARC and CREAM CEs will.
Deleted:
<
<

* Use of Cmake replacing autotools

 

Configuration Changes

- All the configuration parameters used to tune DAGMan (dismissed) are now removed. They were: DagmanLogLevel, DagmanLogRotate, DagmanMaxPre, MaxDAGRunningNodes

- In the wmproxy rpm, several utilities were distributed: glite_wms_wmproxy_purge_proxycache_binary (now replaced by a script), glite_wms_wmproxy_gacladmin (used to generate GACL files) and glite_wms_wmproxy_gridmapfile2gacl, used to generate a GACL file allowing the same entries as speficied in the gridmap file. All these tools have now been removed.

Changed:
<
<
- removed par. bulkMM
>
>
- removed parameter bulkMM (boolean). The bulk match-making feature (group together collections nodes with same requirements, rank) is now aleays enabled.
  - The configuration parameters filelist used in WMProxy, WM, ICE, JC and LM sections. The filelist based approach for storing requests is slow and prone to corruption, there's no need to maintain it anymore.

- removed configuration parameter locallogger in wmp (of course the locallogger is the local logger, so there's no need for a parameter, the default (localhost) will be simply taken.

Changed:
<
<
- removed asynch purchasing
>
>
- removed IsmIiLDAPSearchAsync, once used for using asynchronous LDAP primitives for querying the BDII.

- added ice.proxy_renewal_timeout = 120. This parameter was introduced to add a watchdog to possibly hanging renewal requests sent to myproxy. The parameter defines the duration of the grace period.

- added wm.IiGlueLib (= "libglite_wms_ism_ii_purchaser.so.0";)

- added wm.EnableIsmIiGlue20Purchasing and EnableIsmIiGlue13Purchasing, already mentioned in this document

- added attributes to define LDAP filters for GLUE2.0 II purchasers.

wm.IsmIiG2LDAPCEFilterExt allows to specify a custom selection query to populate the Computing Element data structure.

wm.IsmIiG2LDAPSEFilterExt allows to specify a custom selection query to populate the Storege Element data structure.

Defaults are:

 
Changed:
<
<
- added IiGlueLib (= "libglite_wms_ism_ii_purchaser.so.0";)
>
>
IsmIiG2LDAPCEFilterExt = "(|(&(objectclass=GLUE2ComputingService)(|(GLUE2ServiceType=org.glite.ce.ARC)(GLUE2ServiceType=org.glite.ce.CREAM)))(|(objectclass=GLUE2ComputingManager)(|(objectclass=GLUE2ComputingShare)(|(&(objectclass=GLUE2ComputingEndPoint)(GLUE2EndpointInterfaceName=org.glite.ce.CREAM))(|(objectclass=GLUE2ToStorageService)(|(&(objectclass=GLUE2MappingPolicy)(GLUE2PolicyScheme=org.glite.standard))(|(&(objectclass=GLUE2AccessPolicy)(GLUE2PolicyScheme=org.glite.standard))(|(objectclass=GLUE2ExecutionEnvironment)(|(objectclass=GLUE2ApplicationEnvironment)(|(objectclass=GLUE2Benchmark)))))))))))";
 
Changed:
<
<
- added EnableIsmIiGlue20Purchasing and EnableIsmIiGlue13Purchasing
>
>
IsmIiG2LDAPSEFilterExt = "(|(objectclass=GLUE2StorageService)(|(objectclass=GLUE2StorageManager)(|(objectclass=GLUE2StorageShare)(|(objectclass=GLUE2StorageEndPoint)(|(objectclass=GLUE2MappingPolicy)(|(objectclass=GLUE2AccessPolicy)(|(objectclass=GLUE2DataStore)(|(objectclass=GLUE2StorageServiceCapacity)(|(objectclass=GLUE2StorageShareCapacity))))))))))";
 
Changed:
<
<
- added LDAP filters for g2 ii purchasers, IsmIiG2LDAPCEFilterExt & IsmIiG2LDAPSEFilterExt
>
>
- added attributes for specifying shared objects to be instantiated by dlopen (helper, purchasers)
 
Changed:
<
<
- added attributes for .so in dlopen (helper, purchasers)
>
>
- added wm.EnabledReplanner (boolean). The job replanner can now be disabled by configuration.
 
Changed:
<
<
- par. MatchRetryPeriod reduced 600 -> 300. It now also indicates the time interval with which DAGs are evaluated by the WM engine
>
>
- reduced wm.MatchRetryPeriod 600 -> 300. It now also indicates the time interval with which DAGs are evaluated by the WM engine
 
Changed:
<
<
- SbRetryDifferentProtocols = true by default in WM conf
>
>
- wm.SbRetryDifferentProtocols = true by default in WM conf
 
Changed:
<
<
- WmsRequirements now has also the queue requirements, that were hard-coded before
>
>
- wm.WmsRequirements now has also the queue requirements, that were hard-coded before
 

Code changes

Changed:
<
<
A lot of code has changed!
>
>
EMI2 WMS introduces several code changes, to comply with the strict EMI JRA1 KPI (Key Performance Indicators) in terms of consolidation and reduction of lines of code. In particular, a non trivial refactoring of authN/Z in wmproxy took place, together with the removal of the dependency on Condor DAGMan, another big change. For the build, Cmake started replacing autotools throughout. A lot of code has changed!
  Roughly speaking:

Revision 32012-07-06 - MarcoCecchi

Line: 1 to 1
 

WMS 3.4 EMI2 Extended Release Notes

Major changes

* GLUE2 purchasing and match-making

Added:
>
>

Purchasing

 
Changed:
<
<

Purchasing

>
>
- The WMS core module has two separate purchaser threads for GLUE1.3 and GLUE2.0. These can be independently enabled by configuration (WM section), in this way:
 
Changed:
<
<
- The user requirements are appended to WmsRequirements, that included authenticatin checks and various constraints on the resource side. According to what type of purchaser is selected, the user and wms requirements expressions must be adapted accordingly. They can also be crafted in such a way to be able to manage the co-existence of GLUE 1.3 and 2.0 purchasers. The selection is done with these attributes:
>
>
    EnableIsmIiGlue13Purchasing  =  <boolean>;
    EnableIsmIiGlue20Purchasing  =  <boolean>;

To produce a full ASCII dump of the Information System cache, rendered in classad, execute this command

 
Changed:
<
<
set
>
>
echo "[ command = \"ism_dump\"; ]"> /var/workload_manager/jobdir/new/req0
 
Added:
>
>
Setting:
  EnableIsmIiGlue13Purchasing = false; EnableIsmIiGlue20Purchasing = true;
Added:
>
>

will produce a dump similar to the file has been included in this twiki.

The GLUE 1.3 purchaser is always executed before the GLUE 2.0 one. In this way, when the latter starts fetching entries it can find that the same representation was already produced in GLUE 1.3. So two cases:

 
Changed:
<
<
in the WM conf, and create a file (the name doesn't matter) like this:
>
>
1) The entry was already purchased by the GLUE1.3 purchaser. esiste gią in ISM un G13Ad con id = G2Ad.id: allora si fa semplicemente un C13.Ad.Update(G2Ad) (di fatto merge). La risorsa risultante sarą matchabile con requirements G2 o G13 indipendentemente inoltre, in questo modo, anche la parte di storage continuerą a funzionare purchč eventuali attributi nel JDL riguardanti lo storage siano espressi in G13.
 
Changed:
<
<
echo "[ command = \"ism_dump\"; ]"> jobdir/new/a
>
>
2) The entry was NOT already purchased by the GLUE1.3 purchaser. A direct insert of the GLUE 2.0, that will only be matched by refering to GLUE2.0 attributes in the JDL requirements and rank expressions.
 
Changed:
<
<
Start the WM, and check that no crash occurs after 3/4 purchasing cycles (decrease the PurchasingRate in case). The dump file will report, for example, entries like this:
>
>
GLUE1.3 and 2.0 attributes are referenced in the JDL through the usual 'other.' operator (see next section). While GLUE1.3 is represented in the WMS as a flattened structure of key/value pairs, mostly, the GLUE2.0 retains the full blown tree of the schema.

Computing Element:

 
    [
Deleted:
<
<
expiry_time = 900; update_time = 1340106474; id = "ce.csl.ee.xxxxx.xx:8443/cream-pbs-dteam/";
  info = [
Deleted:
<
<
GlueCEAccessControlBaseRule = GLUE2.Computing.Endpoint.Policy; GlobusResourceContactString = CEid; QueueName = MappingQueue; GlueHostApplicationSoftwareRunTimeEnvironment = AppName; GlueCEInfoHostName = InfoProviderHost; GlueCEUniqueID = CEid; LRMSType = ProductName; CEid = "ce.csl.ee.xxxxx.xx:8443/cream-pbs-dteam";
  GLUE2 = [ Computing =
Line: 44 to 49
  [ Semantics = {
Changed:
<
<
"http://wiki.italiangrid.org/twiki/bin/view/CREAM/UserGuide"
>
>
// this is a classad list of strings
  };
Changed:
<
<
Implementor = "gLite";
>
>
Implementor = "string";
  WSDL = {
Changed:
<
<
"https://ce.csl.ee.xxxxx.xx:8443/ce-cream/services/CREAM2?wsdl"
>
>
// this is a classad list of strings
  };
Changed:
<
<
ServingState = "production"; Name = "ce.csl.ee.xxxxx.xx_org.glite.ce.CREAM"; ID = "ce.csl.ee.xxxxx.xx.glite.ce.CREAM"; HealthState = "ok";
>
>
ServingState = "string"; Name = "string"; ID = "string"; HealthState = "string";
  SupportedProfile = {
Changed:
<
<
"http://www.ws-i.org/Profiles/BasicProfile-1.0.html"
>
>
// this is a classad list of strings
  };
Changed:
<
<
Staging = "staginginout";
>
>
Staging = "string";
  Capability = {
Changed:
<
<
"executionmanagement.jobexecution"
>
>
// this is a classad list of strings
  };
Changed:
<
<
QualityLevel = "production"; StartTime = "2012-06-16T16:30:03Z";
>
>
QualityLevel = "string"; StartTime = "string";
  TrustedCA = {
Changed:
<
<
"IGTF"
>
>
// this is a classad list of strings
  };
Changed:
<
<
ImplementationName = "CREAM"; DowntimeInfo = "See the GOC DB for downtimes: https://goc.egi.eu/"; InterfaceName = "org.glite.ce.CREAM";
>
>
ImplementationName = "string"; DowntimeInfo = "string"; InterfaceName = "string";
  OtherInfo = [
Changed:
<
<
HostDN = "/C=GR/O=HellasGrid/OU=upatras.gr/CN=ce.csl.ee.upatras.gr"; MiddlewareVersion = "2.0.0-1"; MiddlewareName = "EMI"
>
>
HostDN = "string"; MiddlewareVersion = "string"; MiddlewareName = "string" // ...
  ];
Changed:
<
<
Technology = "webservice"; IssuerCA = "/C=GR/O=HellasGrid/OU=Certification Authorities/CN=HellasGrid CA 2006";
>
>
Technology = "string"; IssuerCA = "string";
  Policy = {
Changed:
<
<
"VO:ops", "VO:dteam", "VO:see" }; URL = "https://ce.csl.ee.xxxxx.xx:8443/ce-cream/services"; HealthStateInfo = "/etc/init.d/tomcat5 is already running (25631)"; ImplementationVersion = "1.14"; InterfaceVersion = "2.1";
>
>
// this is a classad list of strings (in gLite, elements typically contain VO=..., or DENY=...) }; URL = "string"; HealthStateInfo = "string"; ImplementationVersion = "string"; InterfaceVersion = "string";
  JobDescription = {
Changed:
<
<
"glite:jdl"
>
>
// this is a classad list of strings
  } ]; Manager = [
Changed:
<
<
Name = "Computing Manager on ce.csl.ee.upatras.gr"; ID = "ce.csl.ee.xxxxx.xx_ComputingElement_Manager"; ProductVersion = "2.5.7"; ProductName = "torque"
>
>
Name = "string"; ID = "string"; ProductVersion = "string"; ProductName = "string"
  ]; Share = [
Changed:
<
<
DefaultCPUTime = 2880; MaxWallTime = 4320; RunningJobs = 0; WaitingJobs = 444444; ServingState = "production"; MaxCPUTime = 2880; FreeSlots = 0; EstimatedAverageWaitingTime = 2146660842; ID = "ops_ops_ce.csl.ee.upatras.gr_ComputingElement"; MappingQueue = "dteam"; TotalJobs = 0; DefaultWallTime = 60; Description = "Share of dteam for ops";
>
>
DefaultCPUTime = ; MaxWallTime = ; RunningJobs = ; WaitingJobs = ; ServingState = "string"; MaxCPUTime = ; FreeSlots = ; EstimatedAverageWaitingTime = ; ID = "string"; MappingQueue = "string"; TotalJobs = ; DefaultWallTime = ; Description = "string";
  OtherInfo = [
Changed:
<
<
InfoProviderName = "glite-ce-glue2-share-static"; InfoProviderHost = "ce.csl.ee.xxxxx.xx"; CREAMCEId = "ce.csl.ee.xxxxx.xx:8443/cream-pbs-dteam"; InfoProviderVersion = "1.0"
>
>
InfoProviderName = "string"; InfoProviderHost = "string"; CREAMCEId = "string"; // NB: this will be used to hook up possible G13 entries with same GLUECEUniqueId and merge G13 and G20 representations InfoProviderVersion = "string" // ...
  ]; Policy = {
Changed:
<
<
""
>
>
// this is a classad list of strings
  };
Changed:
<
<
EstimatedWorstWaitingTime = 2146660842; MaxRunningJobs = 999999999
>
>
EstimatedWorstWaitingTime = ; MaxRunningJobs = ;
  ]; Service = [
Changed:
<
<
Name = "Computing Service ce.csl.xxxxx.xx_ComputingElement"; Type = "org.glite.ce.CREAM"; ID = "ce.csl.ee.upatras.gr_ComputingElement";
>
>
Name = "string"; Type = "string"; ID = "string";
  Capability = {
Changed:
<
<
"executionmanagement.jobexecution"
>
>
"string"
  };
Changed:
<
<
QualityLevel = "production"; Complexity = "endpointType=2, share=2, resource=1"
>
>
QualityLevel = "string"; Complexity = "string"
  ] Benchmark = {
Line: 146 to 151
  ] Benchmark = {
Deleted:
<
<
  [
Changed:
<
<
Name = "Benchmark HEP-SPEC06"; Type = "HEP-SPEC06"; ID = "ce.csl.ee.upatras.gr_HEP-SPEC06"; Value = "8.35-HEP-SPEC06"
>
>
Name = "string"; Type = "string"; ID = "string"; Value = "string";
  ] }; ApplicationEnvironment = [ AppName = {
Changed:
<
<
"GLITE-3_2_0", "LCG-2", "LCG-2_7_0", "R-GMA", "vo-see-fortran-4.1.2"
>
>
// this is a classad list of strings
  } ] ];
Line: 171 to 171
  ]
Changed:
<
<
Note the attribute PurchasedBy = "ism_ii_g2_purchaser"
>
>
Note the attribute PurchasedBy = "ism_ii_g2_purchaser".

Storage Element:

    [
        info =
            [
                GLUE2 =
                    [
                        Storage =
                            [
                                Endpoint =
                                    [
                                        Semantics =
                                           {
                                             // this is a classad list of strings
                                           };
                                        Implementor = "string";
                                        WSDL =
                                           {
                                             // this is a classad list of strings
                                           };
                                        ServingState = "string";
                                        ID = "string";
                                        HealthState = "string";
                                        SupportedProfile =
                                           {
                                             // this is a classad list of strings
                                           };
                                        Capability =
                                           {
                                             // this is a classad list of strings
                                           };
                                        QualityLevel = "string";
                                        TrustedCA =
                                           {
                                             // this is a classad list of strings
                                           };
                                        ImplementationName = "string";
                                        DowntimeAnnounce = "string";
                                        InterfaceName = "string";
                                        InterfaceExtension =
                                           {
                                              ""
                                           };
                                        OtherInfo =
                                            [
                                            ];
                                        Technology = "string";
                                        IssuerCA = "string";
                                        Policy =
                                           {
                                             // this is a classad list of strings
                                           };
                                        URL = "string";
                                        HealthStateInfo = "string";
                                        ImplementationVersion = "string";
                                        InterfaceVersion = "string";
                                        GLUE2StorageEndpointStorageServiceForeignKey = "string"
                                    ];
                                Manager =
                                    [
                                        ID = "string";
                                        StorageServiceForeignKey = "string";
                                        ProductVersion = "string";
                                        ProductName = "string"
                                    ];
                                Share =
                                    [
                                        Tag = "string";
                                        ServingState = "string";
                                        MaximumLifeTime = <integer>;
                                        ID = "string";
                                        ExpirationMode = "string";
                                        Capacity =
                                            [
                                                TotalSize = <integer>;
                                                Type = "string";
                                                ID = "string";
                                                FreeSize = <integer>;
                                                ReservedSize = <integer>;
                                                UsedSize = <integer>;
                                            ];
                                        StorageServiceForeignKey = "string";
                                        Description = "string";
                                        RetentionPolicy =
                                           {
                                             // this is a classad list of strings
                                           };
                                        DefaultLifeTime = <integer>;
                                        Path = "string";
                                        AccessMode =
                                           {
                                             // this is a classad list of strings
                                           };
                                        AccessLatency = "string";
                                        SharingID = "string"
                                    ]
                            ]
                    ];
                PurchasedBy = "ism_ii_g2_purchaser"
            ]
    ]

Match-making

 
Changed:
<
<

Match-making

>
>
- The user requirements are appended to WmsRequirements, that includes authZ checks and various constraints set on the resource side. According to what type of purchaser is selected, the user and wms requirements expressions must be adapted accordingly. They can also be crafted in such a way to be able to manage the co-existence of GLUE 1.3 and 2.0 purchasers. The selection is done with these attributes:
  To match only GLUE2 resources, replace the default attribute WmsRequirements in the WMS configuration with this expression:
Line: 209 to 315
 ======================================================================
Changed:
<
<
EnableIsmIiGlue13Purchasing = ; EnableIsmIiGlue20Purchasing == ;

The default is c) EnableIsmIiGlue13Purchasing = true & EnableIsmIiGlue20Purchasing = false:

>
>
For example, the authZ check would become:
 
Changed:
<
<
The GLUE 1.3 purchaser is always executed before the GLUE 2.0 one. In this way, when the latter starts it can find:
>
>
if(isdefined(other.GlueCEAccessControlBaseRule) , member(CertificateSubject,other.GlueCEAccessControlBaseRule), member(CertificateSubject,other.GLUE2.Computing.Endpoint.Policy));
 
Changed:
<
<
c1) esiste gią in ISM un G13Ad con id = G2Ad.id: allora si fa semplicemente un C13.Ad.Update(G2Ad) (di fatto merge). La risorsa risultante sarą matchabile con requirements G2 o G13 indipendentemente inoltre, in questo modo, anche la parte di storage continuerą a funzionare purchč eventuali attributi nel JDL riguardanti lo storage siano espressi in G13.
>
>

* Argus authZ for access control

 
Changed:
<
<
c2) in ISM non c'e' un AD con lo stesso G2Ad.id: in questo caso non facciamo alcun update ma un bel insert dell'ad che sarą matchabile solo con requirements G2 compliant nel JDL.
>
>
There are two new variables that are to be specified in the siteinfo file:
 
Changed:
<
<
For example, the authZ check would become:
>
>
USE_ARGUS= ARGUS_PEPD_ENDPOINTS="list_of_space_separated_URLs"
 
Changed:
<
<
if(isdefined(other.GlueCEAccessControlBaseRule) , member(CertificateSubject,other.GlueCEAccessControlBaseRule), member(CertificateSubject,other.GLUE2.Computing.Endpoint.Policy));
>
>
// i.e.: "https://argus01.lcg.cscs.ch:8154/authz https://argus02.lcg.cscs.ch:8154/authz https://argus03.lcg.cscs.ch:8154/authz"
 
Deleted:
<
<

* Argus authZ for access control

 
Changed:
<
<
for the moment only openssl old DN format is accepted.
>
>
For the moment only openssl oneline old DN format is accepted. This PIP Argus PIP must be enabled in the PEPd configuration.
 

* dagmanless DAGs

Line: 281 to 384
  Roughly speaking:
Changed:
<
<
~6k lines of legacy code added
>
>
~6k lines of code were added in existing modules
 
[mcecchi@devel10 34]$ find . -name emi1_diff|xargs grep -c -e'^[>].*'
Line: 297 to 400
 ./emi.wms.wms-ism/emi1_diff:383
Changed:
<
<
ISM Purchasers: added another ~1600 (1622) SLOC from new modules
>
>
plus added another ~1600 (1622) SLOC from new modules (i.e. ISM GLUE2.0 purchasers).

Total added = 6k + 1.5k = 7.5k

  ~8k lines of legacy code removed
Line: 315 to 420
 ./emi.wms.wms-ism/emi1_diff:307
Changed:
<
<
emi.wms.wms-manager: REMOVED several modules (~2300 lines) once needed to integrate Condor DAGMan
>
>
plus removed several modules in emi.wms.wms-manager (~2300 lines). They were once needed to integrate Condor DAGMan.
 
[mcecchi@devel02 src]$ wc -l dagman_helper.* dagman_utils.h filelist_utils.h glite-process-counter-args.c glite-wms-dag-* glite-wms-planner.cpp
Line: 330 to 435
  2382 total
Added:
>
>
Total removed = 8k + 2k = 10k
 -- MarcoCecchi - 2012-06-22
Added:
>
>
META FILEATTACHMENT attachment="ismdump.fl.bz2" attr="" comment="Classad rendering of a GLUE2.0 dump of the WMS Information System Cache" date="1341580865" name="ismdump.fl.bz2" path="ismdump.fl.bz2" size="35056" user="MarcoCecchi" version="1"

Revision 22012-06-28 - MarcoCecchi

Line: 1 to 1
 

WMS 3.4 EMI2 Extended Release Notes

Major changes

* GLUE2 purchasing and match-making

Changed:
<
<
HOW TO TRY IT OUT - User requirements are appended to WmsRequirements, that included authenticatin checks and various constraints on the resource side. According to what type of purchaser is selected, the user and wms requirements expressions must be adapted accordingly. They can also be crafted in such a way to be able to manage the co-existence of GLUE 1.3 and 2.0 purchasers. The selection is done with these attributes:
>
>

Purchasing

- The user requirements are appended to WmsRequirements, that included authenticatin checks and various constraints on the resource side. According to what type of purchaser is selected, the user and wms requirements expressions must be adapted accordingly. They can also be crafted in such a way to be able to manage the co-existence of GLUE 1.3 and 2.0 purchasers. The selection is done with these attributes:

  set
Line: 23 to 25
  [ expiry_time = 900; update_time = 1340106474;
Changed:
<
<
id = "ce.csl.ee.upatras.gr:8443/cream-pbs-dteam/";
>
>
id = "ce.csl.ee.xxxxx.xx:8443/cream-pbs-dteam/";
  info = [ GlueCEAccessControlBaseRule = GLUE2.Computing.Endpoint.Policy;
Line: 33 to 35
  GlueCEInfoHostName = InfoProviderHost; GlueCEUniqueID = CEid; LRMSType = ProductName;
Changed:
<
<
CEid = "ce.csl.ee.upatras.gr:8443/cream-pbs-dteam";
>
>
CEid = "ce.csl.ee.xxxxx.xx:8443/cream-pbs-dteam";
  GLUE2 = [ Computing =
Line: 47 to 49
  Implementor = "gLite"; WSDL = {
Changed:
<
<
"https://ce.csl.ee.upatras.gr:8443/ce-cream/services/CREAM2?wsdl"
>
>
"https://ce.csl.ee.xxxxx.xx:8443/ce-cream/services/CREAM2?wsdl"
  }; ServingState = "production";
Changed:
<
<
Name = "ce.csl.ee.upatras.gr_org.glite.ce.CREAM"; ID = "ce.csl.ee.upatras.gr_org.glite.ce.CREAM";
>
>
Name = "ce.csl.ee.xxxxx.xx_org.glite.ce.CREAM"; ID = "ce.csl.ee.xxxxx.xx.glite.ce.CREAM";
  HealthState = "ok"; SupportedProfile = {
Line: 85 to 87
  "VO:dteam", "VO:see" };
Changed:
<
<
URL = "https://ce.csl.ee.upatras.gr8443/ce-cream/services";
>
>
URL = "https://ce.csl.ee.xxxxx.xx:8443/ce-cream/services";
  HealthStateInfo = "/etc/init.d/tomcat5 is already running (25631)"; ImplementationVersion = "1.14"; InterfaceVersion = "2.1";
Line: 97 to 99
  Manager = [ Name = "Computing Manager on ce.csl.ee.upatras.gr";
Changed:
<
<
ID = "ce.csl.ee.upatras.gr_ComputingElement_Manager";
>
>
ID = "ce.csl.ee.xxxxx.xx_ComputingElement_Manager";
  ProductVersion = "2.5.7"; ProductName = "torque" ];
Line: 119 to 121
  OtherInfo = [ InfoProviderName = "glite-ce-glue2-share-static";
Changed:
<
<
InfoProviderHost = "ce.csl.ee.upatras.gr"; CREAMCEId = "ce.csl.ee.upatras.gr:8443/cream-pbs-dteam";
>
>
InfoProviderHost = "ce.csl.ee.xxxxx.xx"; CREAMCEId = "ce.csl.ee.xxxxx.xx:8443/cream-pbs-dteam";
  InfoProviderVersion = "1.0" ]; Policy =
Line: 132 to 134
  ]; Service = [
Changed:
<
<
Name = "Computing Service ce.csl.ee.upatras.gr_ComputingElement";
>
>
Name = "Computing Service ce.csl.xxxxx.xx_ComputingElement";
  Type = "org.glite.ce.CREAM"; ID = "ce.csl.ee.upatras.gr_ComputingElement"; Capability =
Line: 150 to 152
  Type = "HEP-SPEC06"; ID = "ce.csl.ee.upatras.gr_HEP-SPEC06"; Value = "8.35-HEP-SPEC06"
Deleted:
<
<
],

[ Name = "Benchmark specfp2000"; Type = "specfp2000"; ID = "ce.csl.ee.upatras.gr_specfp2000"; Value = 1.763000000000000E+03 ],

[ Name = "Benchmark specint2000"; Type = "specint2000"; ID = "ce.csl.ee.upatras.gr_specint2000"; Value = 2.088000000000000E+03

  ] }; ApplicationEnvironment = [ AppName = {
Deleted:
<
<
"GLITE-3_0_0", "GLITE-3_1_0",
  "GLITE-3_2_0", "LCG-2",
Deleted:
<
<
"LCG-2_1_0", "LCG-2_1_1", "LCG-2_2_0", "LCG-2_3_0", "LCG-2_3_1", "LCG-2_4_0", "LCG-2_5_0", "LCG-2_6_0",
  "LCG-2_7_0", "R-GMA", "vo-see-fortran-4.1.2"
Line: 195 to 173
  Note the attribute PurchasedBy = "ism_ii_g2_purchaser"
Added:
>
>

Match-making

To match only GLUE2 resources, replace the default attribute WmsRequirements in the WMS configuration with this expression:

((member(CertificateSubject, other.GLUE2.Computing.Endpoint.Policy) || member(strcat("VO:", VirtualOrganisation), other.GLUE2.Computing.Endpoint.Policy) || FQANmember(strcat("VOMS:", VOMS_FQAN), other.GLUE2.Computing.Endpoint.Policy)) && !FQANmember(strcat("DENY:", VOMS_FQAN), other.GLUE2.Computing.Endpoint.Policy) && (other.Glue2.Computing.Share.MaxRunningJobs == 0 || other.Glue2.Computing.ShareTotalJobs < other.Glue2.Computing.Share.MaxRunningJobs) && (EnableWmsFeedback =?= TRUE ? RegExp("cream", other.GLUE2.Computing.Endpoint.ImplementationName, "i") : true))

to match both GLUE 1.3 and GLUE 2.0, just place the expression above in or with the existing one, kind of: WmsRequirements = (GLUE13Reqs) || (GLUE2Reqs);

 - GLUE2.0 match-making PASS

After having enabled G2 purchasing in the WM, as in the above test, created a requirements expression like this in your JDL:

Line: 260 to 248
 

Configuration Changes

Changed:
<
<
- removed DagmanLogLevel

- removed DagmanLogRotate

- removed DagmanMaxPre

- removed MaxDAGRunningNodes

>
>
- All the configuration parameters used to tune DAGMan (dismissed) are now removed. They were: DagmanLogLevel, DagmanLogRotate, DagmanMaxPre, MaxDAGRunningNodes
 
Changed:
<
<
- removed wmp tools
>
>
- In the wmproxy rpm, several utilities were distributed: glite_wms_wmproxy_purge_proxycache_binary (now replaced by a script), glite_wms_wmproxy_gacladmin (used to generate GACL files) and glite_wms_wmproxy_gridmapfile2gacl, used to generate a GACL file allowing the same entries as speficied in the gridmap file. All these tools have now been removed.
  - removed par. bulkMM
Changed:
<
<
- removed par. filelist
>
>
- The configuration parameters filelist used in WMProxy, WM, ICE, JC and LM sections. The filelist based approach for storing requests is slow and prone to corruption, there's no need to maintain it anymore.
 
Changed:
<
<
- removed par. locallogger in wmp
>
>
- removed configuration parameter locallogger in wmp (of course the locallogger is the local logger, so there's no need for a parameter, the default (localhost) will be simply taken.
  - removed asynch purchasing

Revision 12012-06-22 - MarcoCecchi

Line: 1 to 1
Added:
>
>

WMS 3.4 EMI2 Extended Release Notes

Major changes

* GLUE2 purchasing and match-making

HOW TO TRY IT OUT - User requirements are appended to WmsRequirements, that included authenticatin checks and various constraints on the resource side. According to what type of purchaser is selected, the user and wms requirements expressions must be adapted accordingly. They can also be crafted in such a way to be able to manage the co-existence of GLUE 1.3 and 2.0 purchasers. The selection is done with these attributes:

set

EnableIsmIiGlue13Purchasing = false; EnableIsmIiGlue20Purchasing = true;

in the WM conf, and create a file (the name doesn't matter) like this:

echo "[ command = \"ism_dump\"; ]"> jobdir/new/a

Start the WM, and check that no crash occurs after 3/4 purchasing cycles (decrease the PurchasingRate in case). The dump file will report, for example, entries like this:

    [
        expiry_time = 900;
        update_time = 1340106474;
        id = "ce.csl.ee.upatras.gr:8443/cream-pbs-dteam/";
        info =
            [
                GlueCEAccessControlBaseRule = GLUE2.Computing.Endpoint.Policy;
                GlobusResourceContactString = CEid;
                QueueName = GLUE2.Computing.Share.MappingQueue;
                GlueHostApplicationSoftwareRunTimeEnvironment = GLUE2.ApplicationEnvironment.AppName;
                GlueCEInfoHostName = GLUE2.Computing.Share.OtherInfo.InfoProviderHost;
                GlueCEUniqueID = CEid;
                LRMSType = GLUE2.Computing.Manager.ProductName;
                CEid = "ce.csl.ee.upatras.gr:8443/cream-pbs-dteam";
                GLUE2 =
                    [
                        Computing =
                            [
                                Endpoint =
                                    [
                                        Semantics =
                                           {
                                              "http://wiki.italiangrid.org/twiki/bin/view/CREAM/UserGuide"
                                           };
                                        Implementor = "gLite";
                                        WSDL =
                                           {
                                              "https://ce.csl.ee.upatras.gr:8443/ce-cream/services/CREAM2?wsdl"
                                           };
                                        ServingState = "production";
                                        Name = "ce.csl.ee.upatras.gr_org.glite.ce.CREAM";
                                        ID = "ce.csl.ee.upatras.gr_org.glite.ce.CREAM";
                                        HealthState = "ok";
                                        SupportedProfile =
                                           {
                                              "http://www.ws-i.org/Profiles/BasicProfile-1.0.html"
                                           };
                                        Staging = "staginginout";
                                        Capability =
                                           {
                                              "executionmanagement.jobexecution"
                                           };
                                        QualityLevel = "production";
                                        StartTime = "2012-06-16T16:30:03Z";
                                        TrustedCA =
                                           {
                                              "IGTF"
                                           };
                                        ImplementationName = "CREAM";
                                        DowntimeInfo = "See the GOC DB for downtimes: https://goc.egi.eu/";
                                        InterfaceName = "org.glite.ce.CREAM";
                                        OtherInfo =
                                            [
                                                HostDN = "/C=GR/O=HellasGrid/OU=upatras.gr/CN=ce.csl.ee.upatras.gr";
                                                MiddlewareVersion = "2.0.0-1";
                                                MiddlewareName = "EMI"
                                            ];
                                        Technology = "webservice";
                                        IssuerCA = "/C=GR/O=HellasGrid/OU=Certification Authorities/CN=HellasGrid CA 2006";
                                        Policy =
                                           {
                                              "VO:ops",
                                              "VO:dteam",
                                              "VO:see"
                                           };
                                        URL = "https://ce.csl.ee.upatras.gr8443/ce-cream/services";
                                        HealthStateInfo = "/etc/init.d/tomcat5 is already running (25631)";
                                        ImplementationVersion = "1.14";
                                        InterfaceVersion = "2.1";
                                        JobDescription =
                                           {
                                              "glite:jdl"
                                           }
                                    ];
                                Manager =
                                    [
                                        Name = "Computing Manager on ce.csl.ee.upatras.gr";
                                        ID = "ce.csl.ee.upatras.gr_ComputingElement_Manager";
                                        ProductVersion = "2.5.7";
                                        ProductName = "torque"
                                    ];
                                Share =
                                    [
                                        DefaultCPUTime = 2880;
                                        MaxWallTime = 4320;
                                        RunningJobs = 0;
                                        WaitingJobs = 444444;
                                        ServingState = "production";
                                        MaxCPUTime = 2880;
                                        FreeSlots = 0;
                                        EstimatedAverageWaitingTime = 2146660842;
                                        ID = "ops_ops_ce.csl.ee.upatras.gr_ComputingElement";
                                        MappingQueue = "dteam";
                                        TotalJobs = 0;
                                        DefaultWallTime = 60;
                                        Description = "Share of dteam for ops";
                                        OtherInfo =
                                            [
                                                InfoProviderName = "glite-ce-glue2-share-static";
                                                InfoProviderHost = "ce.csl.ee.upatras.gr";
                                                CREAMCEId = "ce.csl.ee.upatras.gr:8443/cream-pbs-dteam";
                                                InfoProviderVersion = "1.0"
                                            ];
                                        Policy =
                                           {
                                              ""
                                           };
                                        EstimatedWorstWaitingTime = 2146660842;
                                        MaxRunningJobs = 999999999
                                    ];
                                Service =
                                    [
                                        Name = "Computing Service ce.csl.ee.upatras.gr_ComputingElement";
                                        Type = "org.glite.ce.CREAM";
                                        ID = "ce.csl.ee.upatras.gr_ComputingElement";
                                        Capability =
                                           {
                                              "executionmanagement.jobexecution"
                                           };
                                        QualityLevel = "production";
                                        Complexity = "endpointType=2, share=2, resource=1"
                                    ]
                       Benchmark =
                           {

                                  [
                                      Name = "Benchmark HEP-SPEC06";
                                      Type = "HEP-SPEC06"; 
                                      ID = "ce.csl.ee.upatras.gr_HEP-SPEC06";
                                      Value = "8.35-HEP-SPEC06"
                                  ],

                                  [
                                      Name = "Benchmark specfp2000";
                                      Type = "specfp2000"; 
                                      ID = "ce.csl.ee.upatras.gr_specfp2000";
                                      Value = 1.763000000000000E+03
                                  ],

                                  [
                                      Name = "Benchmark specint2000";
                                      Type = "specint2000"; 
                                      ID = "ce.csl.ee.upatras.gr_specint2000";
                                      Value = 2.088000000000000E+03
                                  ]
                           }; 
                        ApplicationEnvironment =
                            [
                                AppName =
                                   {
                                      "GLITE-3_0_0",
                                      "GLITE-3_1_0",
                                      "GLITE-3_2_0",
                                      "LCG-2",
                                      "LCG-2_1_0",
                                      "LCG-2_1_1",
                                      "LCG-2_2_0",
                                      "LCG-2_3_0",
                                      "LCG-2_3_1",
                                      "LCG-2_4_0",
                                      "LCG-2_5_0",
                                      "LCG-2_6_0",
                                      "LCG-2_7_0",
                                      "R-GMA",
                                      "vo-see-fortran-4.1.2"
                                   }
                            ]
                    ]; 
                PurchasedBy = "ism_ii_g2_purchaser"
            ]
    ]

Note the attribute PurchasedBy = "ism_ii_g2_purchaser"

- GLUE2.0 match-making PASS

After having enabled G2 purchasing in the WM, as in the above test, created a requirements expression like this in your JDL:

requirements = other.GLUE2.Computing.Endpoint.Name == "ce.csl.ee.upatras.gr_org.glite.ce.CREAM";

where the proper values have been taken from the ISM dump. Then, in the WM section, comment out the WmsRequirements expression and replace it with an expression referring to valid GLUE2.0 attributes (WmsRequirements=true can be good, to start) . Restart the WMPROXY. Now submit a list-match request, making sure that no default is taken by some inherited configurations.

[mcecchi@ui ~]$ glite-wms-job-list-match -a -c glite_wmsui.conf  --endpoint https://devel09.cnaf.infn.it:7443/glite_wms_wmproxy_server ls_g2.jdl 

Connecting to the service https://devel09.cnaf.infn.it:7443/glite_wms_wmproxy_server

==========================================================================

           COMPUTING ELEMENT IDs LIST 
 The following CE(s) matching your job requirements have been found:

   *CEId*
 - ce.csl.ee.upatras.gr:8443/cream-pbs-dteam
 - ce.csl.ee.upatras.gr:8443/cream-pbs-see

==========================================================================

EnableIsmIiGlue13Purchasing = ; EnableIsmIiGlue20Purchasing == ;

The default is c) EnableIsmIiGlue13Purchasing = true & EnableIsmIiGlue20Purchasing = false:

The GLUE 1.3 purchaser is always executed before the GLUE 2.0 one. In this way, when the latter starts it can find:

c1) esiste gią in ISM un G13Ad con id = G2Ad.id: allora si fa semplicemente un C13.Ad.Update(G2Ad) (di fatto merge). La risorsa risultante sarą matchabile con requirements G2 o G13 indipendentemente inoltre, in questo modo, anche la parte di storage continuerą a funzionare purchč eventuali attributi nel JDL riguardanti lo storage siano espressi in G13.

c2) in ISM non c'e' un AD con lo stesso G2Ad.id: in questo caso non facciamo alcun update ma un bel insert dell'ad che sarą matchabile solo con requirements G2 compliant nel JDL.

For example, the authZ check would become:

if(isdefined(other.GlueCEAccessControlBaseRule) , member(CertificateSubject,other.GlueCEAccessControlBaseRule), member(CertificateSubject,other.GLUE2.Computing.Endpoint.Policy));

* Argus authZ for access control

for the moment only openssl old DN format is accepted.

* dagmanless DAGs

Nodes are re-evaluated in the WM every MatchRetryPeriod

* Condor 7.8.0

It will fully enable submission to GRAM5 CEs. The feature requires testing submission to LCG-CE, ARC CE, OSG gram2 and gram5

* refactoring of authN/Z in wmp

requires to test authN/Z at large, not only for Argus

* support for RFC proxies (bug #88128)

LCG-CE not expected to support them. OSG, ARC and CREAM CEs will.

* Use of Cmake replacing autotools

Configuration Changes

- removed DagmanLogLevel

- removed DagmanLogRotate

- removed DagmanMaxPre

- removed MaxDAGRunningNodes

- removed wmp tools

- removed par. bulkMM

- removed par. filelist

- removed par. locallogger in wmp

- removed asynch purchasing

- added IiGlueLib (= "libglite_wms_ism_ii_purchaser.so.0";)

- added EnableIsmIiGlue20Purchasing and EnableIsmIiGlue13Purchasing

- added LDAP filters for g2 ii purchasers, IsmIiG2LDAPCEFilterExt & IsmIiG2LDAPSEFilterExt

- added attributes for .so in dlopen (helper, purchasers)

- par. MatchRetryPeriod reduced 600 -> 300. It now also indicates the time interval with which DAGs are evaluated by the WM engine

- SbRetryDifferentProtocols = true by default in WM conf

- WmsRequirements now has also the queue requirements, that were hard-coded before

Code changes

A lot of code has changed!

Roughly speaking:

~6k lines of legacy code added

[mcecchi@devel10 34]$ find . -name emi1_diff|xargs grep -c -e'^[>].*'
./emi.wms.wms-manager/emi1_diff:1114
./emi.wms.wmproxy/emi1_diff:1754
./emi.wms.wms-brokerinfo/emi1_diff:197
./emi.wms.jobsubmission/emi1_diff:768
./emi.wms.wms-helper/emi1_diff:297
./emi.wms.wms-broker/emi1_diff:36
./emi.wms.ice/emi1_diff:323
./emi.wms.wms-matchmaking/emi1_diff:44
./emi.wms.wms-common/emi1_diff:475
./emi.wms.wms-ism/emi1_diff:383

ISM Purchasers: added another ~1600 (1622) SLOC from new modules

~8k lines of legacy code removed

[mcecchi@devel10 34]$ find . -name emi1_diff|xargs grep -c -e'^[<].*'
./emi.wms.wms-manager/emi1_diff:831  <-- DAG engine
./emi.wms.wmproxy/emi1_diff:2022 <-- authN/Z refactoring, Argus based authZ
./emi.wms.wms-brokerinfo/emi1_diff:200
./emi.wms.jobsubmission/emi1_diff:1464 <-- code refactoring, cleanup for not handling DAGs anymore
./emi.wms.wms-helper/emi1_diff:211
./emi.wms.wms-broker/emi1_diff:23
./emi.wms.ice/emi1_diff:374
./emi.wms.wms-matchmaking/emi1_diff:56
./emi.wms.wms-common/emi1_diff:553
./emi.wms.wms-ism/emi1_diff:307

emi.wms.wms-manager: REMOVED several modules (~2300 lines) once needed to integrate Condor DAGMan

[mcecchi@devel02 src]$ wc -l dagman_helper.* dagman_utils.h filelist_utils.h glite-process-counter-args.c glite-wms-dag-* glite-wms-planner.cpp
  974 dagman_helper.cpp
   72 dagman_helper.h
   38 dagman_utils.h
   58 filelist_utils.h
  375 glite-process-counter-args.c
   48 glite-wms-dag-post.sh
   48 glite-wms-dag-post.sh.in
  769 glite-wms-planner.cpp
 2382 total

-- MarcoCecchi - 2012-06-22

 
This site is powered by the TWiki collaboration platformCopyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback