Page History
- 2009-Dec-26 00:08 jfrey
- 2009-Dec-25 23:05 jfrey
- 2009-Dec-25 18:32 jfrey
- 2009-Dec-25 01:13 jfrey
- 2009-Dec-21 17:37 jfrey
- 2009-Nov-16 12:08 nleroy
- 2009-Nov-14 23:55 jfrey
- 2009-Nov-12 01:30 jfrey
- 2009-Nov-12 01:11 jfrey
- 2009-Nov-12 00:27 jfrey
- 2009-Nov-12 00:09 jfrey
- 2009-Nov-11 11:14 jfrey
- 2009-Nov-06 13:21 mccardel
- 2009-Nov-06 12:55 mccardel
- 2009-Nov-06 12:40 mccardel
- 2009-Nov-06 10:42 mccardel
- 2009-Nov-06 01:06 jfrey
- 2009-Nov-05 16:35 jfrey
- 2009-Nov-04 23:49 jfrey
- 2009-Nov-04 23:40 jfrey
- 2009-Nov-04 23:13 jfrey
- 2009-Nov-04 23:13 jfrey
- 2009-Nov-04 22:51 jfrey
- 2009-Oct-19 11:42 jfrey
- 2009-Oct-13 17:44 jfrey
- 2009-Oct-13 13:40 jfrey
- 2009-Oct-13 02:24 jfrey
- 2009-Oct-13 02:11 jfrey
- 2009-Oct-13 01:03 jfrey
- 2009-Jul-14 17:46 mccardel
- 2009-Jul-14 10:56 mccardel
- 2009-Jul-13 18:10 mccardel
- 2009-Jul-13 17:38 mccardel
- 2009-Jul-13 16:07 mccardel
- 2009-Jul-13 14:40 mccardel
- 2009-Jul-13 12:51 mccardel
- 2009-May-27 11:33 nleroy
- 2009-May-19 17:30 jfrey
- 2009-Apr-24 17:21 jfrey
- 2009-Apr-24 10:23 jfrey
- 2009-Apr-22 16:59 jfrey
- 2009-Apr-21 17:05 jfrey
- 2009-Apr-21 16:54 jfrey
- 2009-Apr-21 14:30 jfrey
- 2009-Apr-13 19:54 jfrey
- 2009-Apr-13 15:47 jfrey
- 2009-Apr-13 14:59 jfrey
- 2009-Apr-13 14:16 jfrey
- 2009-Apr-09 10:25 jfrey
- 2009-Apr-08 16:59 jfrey
- 2009-Apr-08 16:54 jfrey
- 2009-Apr-08 16:43 jfrey
- 2009-Apr-08 16:30 jfrey
ClassAd Conversion Todo List
This is the set of tasks that need to be done to convert from old to new ClassAds.
There are two lists. The first list contains items that can be done without affecting Condor current usage of old ClassAds. This mainly consists of adding compatibility functions to new ClassAds that emulate the API of old ClassAds. The second list contains items that will break Condor's usage of old ClassAds. These are mainly changing callsites for old {ClassAd} methods that can't be easily emulated through a compatibility function. This second list should be performed within a short time period once we're ready to 'pull the trigger' on converting to new ClassAds.
Pre-Flag Day Tasks
- Check in Varghese's ClassAdList class that works with new ClassAds. DONE
- Add a method to Varghese's new ClassAdList to move an ad from one list to another. DONE
- Add or fix compatibility for following old ClassAd methods:
- Block #1 [3 days]:
- ClassAd::Assign() DONE
- ClassAd::LookupString(MyString) DONE
- ClassAd::Insert(const char*) DONE
- ClassAd::Insert(const char*,ExprTree*) DONE
- ClassAd::Lookup() DONE
- ClassAd::put()
- ClassAd::initFromStream()
- ClassAd::AssignExpr() DONE
- ClassAd::clear() DONE
- ClassAd::EvalString(const char*, const class AttrList*, char**)
- ClassAd::EvalString(const char*, const class AttrList*, MyString&)
- ClassAd::NextNameOriginal() DONE
- ClassAd::ResetName() DONE
- Block #2 [4 days]:
- ClassAd::sPrintExpr()
- ClassAd::NextExpr()
- ClassAd::NextDirtyExpr() DONE
- ClassAd::SetDirtyFlag()
- ClassAd::GetDirtyFlag()
- ClassAd::ClearAllDirtyFlags()
- ClassAd::GetReferences()
- ClassAd::ChainCollapse()
- ClassAd::EscapeStringValue()
- ClassAd::CopyAttribute()
- ClassAd::fPrintAsXML()
- ClassAd::sPrintAsXML()
- ClassAd::IsValidAttrValue()
- ExprTree::DeepCopy() DONE
- Block #1 [3 days]:
- Write helper functions for these methods which we can't emulate transparently [4 hours]:
- ExprTree::PrintToNewStr() DONE
- ExprTree::PrintToStr() DONE
- ExprTree::EvalTree()
- Write compatibility versions of these free-standing functions that are part of old ClassAds:
- int Parse(const char*s, MyString&name, ExprTree*&tree, int*pos = NULL)
- int ParseClassAdRvalExpr(const char*s, ExprTree*&tree, int*pos = NULL)
- const char * ExprTreeToString( ExprTree*expr )
- bool EvalBool(ClassAd *ad, const char *constraint)
- bool EvalBool(AttrList * ad, ExprTree * tree)
- bool ClassAdsAreSame( ClassAd * ad1, ClassAd * ad2, StringList * ignored_attrs=NULL, bool verbose=false );
- Add ClassAds functions that are in old ClassAds but not in new ClassAds [2 days]:
- Note: these are known as FunctionStringlistFOO, and are in condor_ast.cpp
- stringListSize()
- stringListSum()
- stringListAve()
- stringListMin()
- stringListMax()
- stringListMember()
- stringListIMember()
- stringListRegexpMember()
Flag Day Tasks
- Change most or all references to ClassAd and AttrList with CompatClassAd [4 hours].
- Swap in Varghese's new ClassAdList class [?].
- Fix up the one or two callsites in matchmaker.cpp that move an ad from one ClassAdList to another [4 hours].
- The following methods will need some fixing at the callsites [5 days]:
- ExprTree::RArg() DONE
- ExprTree::LArg() DONE
- ExprTree::PrintToNewStr() DONE
- ExprTree::EvalTree()
- ClassAd(char*,char)
- ExprTree::PrintToStr() DONE
- ExprTree::MyType()
- ClassAd::ExchangeExpressions() DONE
- ClassAd::unchain() DONE
- ClassAd::RestoreChain() DONE
- AttrList::put()
Post-Flag Day Tasks
- As time permits, rewrite callsites to make CompatClassAd unnecessary. The modified callsites can either use native new ClassAd methods or newly-written free-standing functions.
- Replace all usage of attribute CurrentTime with ClassAd function time(). This can start before the flag day.