Revision history for Python extension module PyLoadL

20/04/2007 PyLoadL 0.3.2.1

  - Added deprecated ll_start_job routine for Kenneth Yoshimoto (kenneth@sdsc.edu)
  - Minor changes to prevent some pyrex warnings

03/03/2007 PyLoadL 0.3.2

  - Added missing variable LL_AdapterReqRcxtBlks to pyloadlvar.py.tmpl 
    provided by Kenneth Yoshimoto (kenneth@sdsc.edu)
  - Fixed ll_start_job_ext routine, tested with LoadLeveler 3.3.2.8/9,
    Python 2.4.2 with Pyrex 0.9.3.1 for SDSC, Python 2.4.3 & Pyrex 0.9.5.1 and
    Python 2.5 with Pyrex 0.9.5.1

29/11/2006 PyLoadL 0.3.1

  - Tested with LoadLeveler 3.3.2.6, Python 2.5, Pyrex 0.9.4.1
  - Added example llconfig.py based on C code provided by April Brown (IBM-LL Dev)

31/10/2006 PyLoadL 0.3.0

  - Tested with LoadLeveler 3.3.2.6, Python 2.5, Pyrex 0.9.4.1
  - Modified setup.py to use llctl -v command to determine
    LoadLeveler version and not RPM database
  - Modified llctl regular expression to cope with 
    LoadLeveler 3.3.2.5A interim release for X86 & X86_64
  - Corrected assignment of LL_BgBPLocation to an int array
  - Added BlueGene examples :
    llstatus-b.py (llstatus -b command)
    llstatus-B.py (llstatus -B all command)
  - Added Data Access Variables that appeared in LL3.3.2.0 :
    LL_AdapterUsagePortNumber, LL_AdapterUsageLmc,
    LL_AdapterPortNumber, LL_AdapterLmc,
    LL_AdapterUsageNetworkId64, LL_AdapterUsageDeviceDriver,
    LL_AdapterUsageDeviceType
  - Added Undocumented Config API functions (UNSUPPORTED), offical in LoadLeveler 3.4
    ll_read_config & ll_config_changed, added simple ll_config.py example

19/8/2006 PyLoadL 0.2.0 (ProtoGeek Release)

  - Tested with LoadLeveler 3.3.2.5, Pyrex 0.9.4.1
  - Modified setup.py to cope with new RPM packaging format 
    for LoadLeveler 3.3.2.x
  - Added LoadLeveler 3.3.2.x FairShare API function:
    ll_fair_share, FairShare object data and llfs example
  - Added DataSpec decoder for LL_FairShareEntryTypes,
    LL_FairShareAllocatedShares & LL_FairShareUsedShares 
    int arrays (Mary Cushion)
  - Added new ClassUser object data

  - Tested BlueGene/L support (LoadLever SUSE9 PPC 64 3.3.1.0-3 RPM)
    My Gratitude to my friends at San Diego Supercomputer Center (SDSC)
    who made this possible

  - Modified LL_BGPartitionNodeCardList/LL_BgPartitionBPList to an array 
    of strings to pyloadlvar.py.tmpl - Thanks to Mike Hawkins
  - Added new DataSpec type & decoder for LL_BGPartitionNodeCardList and 
    LL_BgPartitionBPList in pyloadl.pyx.tmpl
  - Corrected dual definition of LL_BgMachineSize to LL_BgMachineSwitchCount 
    in pyloadlvar.py.tmpl
  - Added BlueGene/L examples

12/2/2006 PyLoadL 0.1.0

  - Initial BlueGene/L support - (Untested)

1/1/2006 PyLoadL 0.0.5

  - Initial Linux support - (LoadLeveler SUSE 10 3.3.1.2 RPM)
  - Added LoadLeveler 3.3 Workload API functions: 
    ll_cluster, ll_cluster_auth & ll_move_job
  - Added llcluster code examples

8/12/2005 PyLoadL 0.0.4

  - Tested with LoadLeveler 3.3.1.0 - 3.3.1.1 & Python 2.4.2
  - Tested with LoadLeveler 3.3.0.0 - 3.3.0.5 & Python 2.4.1/2.4.2, 
    Pyrex 0.9.3.1
  - Tested with LoadLeveler 3.2.0.15 & Python 2.3.5
  - Added back rev support for LoadLeveler 3.1.x (untested)
  - Added code examples:
    llqres.py, llrmres.py, llmkres.py, llbindres.py, llchres.py, llpreempt.py, 
    llpreempt_jobs.py
  - Added LoadLeveler 3.3 Reservation API functions:  ll_make_reservation,
    ll_change_reservation, ll_remove_reservation, ll_bind & ll_preempt_jobs
  - Added LoadLeveler 3.3 Workload API functions: ll_terminate_job, ll_modify, 
    ll_run_scheduler and ll_preempt_jobs 
    (Many Thanks To Peter Mayes, Waiman Chan)
  - Modified cluster.py example code for memory enforcement
  - Correctly free arrays in pyloadl.pyx.tmpl (Mike Hawkins)
  - Renamed pyloadlvar.py to pyloadlvar.py.tmpl
  - Added C Preprocessor step in setup.py to generate a python file from a
    pyloadlvar.py.tmpl template file for the LoadLeveler versions installed

14/06/2005 PyLoadL 0.0.3

  - Tested with LoadLeveler 3.2.0.14 & Python 2.4.1/2.3.5
  - Corrected class.py example code
  - Corrected mem in LL_STEP_ID structure to be uint64_t

19/02/2005 PyLoadL 0.0.2

  - Tested with LoadLeveler 3.2.0.12 & Python 2.2.3, changed setup.py for 
    mininum Python version
  - Fixed setup.py so pyloadl.so is copied to site-packages/pyloadl/ directory
  - Added global history example code
  - Modified pyloadl.pyx.tmpl to handle int64_t/uint64_t correctly
  - Added to pyloadlvar.py new int64_t/uint64_t data types
  - Modified pyloadl.pyx.tmpl to handle LL_AdapterWindowList conversion

31/12/2004 PyLoadL 0.0.1

  - Tested with LoadLeveler 3.2.0.12 and Python 2.3.4
  - Corrected Python version check in setup.py,
    reported by Kenneth Yoshimoto (kenneth@sdsc.edu)
  - Missing free object of pyStringSeqToStringArray in ll_start_job_ext function
  - Added PyCObjValid test to ll_query in example code, false if pointer 
    could not be created
  - Added XML-RPC server/client example code

29/10/2004 PyLoadL Beta 1

  - Converted tabbed indentation to spaces
  - Added new LoadLeveler 3.2.0.9 API fields LL_StepStartTime &
    LL_StepUserRcxtBlocks index values to pyloadlvar.py
  - Added LL_StepBulkXfer, LL_StepTotalRcxtBlocks, LL_StepStartTime,
    LL_StepUserRcxtBlocks to enum declaration in pyloadl.pyx
  - Corrected LL_StepMaxProtocols enum declaration in pyloadl.pyx
  - Added C Preprocessor ifdefs for identified LoadLeveler 3.1 & 3.2 API
    features
  - Renamed pyloadpy.pyx to pyloadpy.pyx.tmpl
  - Added C Preprocessor step in setup.py to generate a pyrex file from a
    pyloadl.pyx.tmpl template file for the LoadLeveler versions installed
  - Corrected llq examples to detect correct hold type for a held job
  - Added jobremain example that displays remaining time for a jobstep
  - Modified CHANGELOG layout
  - Added missing API fields LL_AdapterUsageTag & LL_AdapterUsageNetworkId
    to pyloadl.pyx.tmpl and pyloadlvar.py
  - Added to pyloadlvar.py enum values for FREE_SLOTS_LIMITED_BY_MAX_STARTERS,
    MAXIMUM_SLOTS_LIMITED_BY_MAX_STARTERS & FREE_SLOTS_LIMITED_BY_MAX_JOBS

05/09/2004 PyLoadL Alpha 4

  - Cleaned up setup.py for Python package classifiers, modified the
    LoadLeveler version string section for LoadLeveler dependant features
    in the future
  - Corrected class.py example code bug

04/07/2004 PyLoadL Alpha 3

  - Cleaned up the documentation again
  - Added more examples
  - Added job states as constants in pyloadlvar
  - Changed the int64 conversion type to long long
  - Defined cdef type time_t as int
  - Corrected index value for LL_ResourceRequirementValue64, LL_StepLargePage 
    and LL_StepMaxProtocolInstances in pyloadlvar.py.tmpl
  - Added LL_StepBulkXfer & LL_StepTotalRcxtBlocks index values to pyloadlvar

30/06/2004 PyLoadL Alpha 2

  - Cleaned up the documentation and examples
  - Converted PyLoadL functions names to match LoadLeveler API function
    name via Pyrex feature
  - Corrected incorrect C char** data type to python list conversion that
    was demonstrated via the example class.py script with data in char**
    fields such as LL_ClassExcludeUsers

26/06/2004 PyLoadL Alpha 1

  - Initial release

