Sprint Closeout and Startup -- 2010-05-05
=========================================

:Who: Dave, Robert, Chad

:Note: sprint #5 will continue until the Friday before the meeting in May, i.e. 2010-05-21.


Good, Bad, Ugly
---------------

- Dave - many issues related to external contrstraints on time

- Chad - OK so far

- Roger - seems to be a lot of overhead associated with the process, but generally a worthwhile process.  Discipline is good - forces focus on issues that are designed rather than ad-doc

- Chad - Trac tool overly complicated, confusing interface.  Prefers pivotaltracker.com which has a much nicer interface. 

- Robert - sprint went really well this time.  Need to update trac more often.

- Roger - specifically for this sprint - was a bit more difficult due to unknowns (e.g. timing for Dryad, Giri, etc)

- Robert - need to find a mechanism for better engagement of others - Bruce, Giri, Jim, Ryan

- Roger - completely dependent on Giri for DAAC install so coordination critical



Goals for new Sprint
--------------------

Overall goal is implementing Member Node synchronization:  Usecase #06


Member Nodes - get(), getSystemMetadata(), listObjects()
- Dryad MN operational
- ORNL/DAAC MN operational
- Metacat server running


Coordinating Nodes - get(), search()
- need examples from Giri and Bruce
- need updated Mercury build - jar and war files
- enable mercury indexing
- complete search mechanism 
- CN buildout -> cn_service accessible -> integration testing


Coordinating Node - support UC06
- Metacat create() 
- Task queue
- Polling of listObjects
- component to retrieve content given direction from task queue and store in metacat
- converter from metacat to mercury converter depends on some infrastructure such as a message queue


Stories
-------
New:

- (Story, 5pt) Setup message queue for MN synchronize process and possibly for triggering the metdata conversion process (i.e. feeding into Mercury indexing)

  - evaluate options for queue - activemq, qpid, ...
  - Define the installation process for selected library to incorporate in cn_service
  - define messages
  - implement tests for messages


- (story, 3pt) Design and implement the scheduling component (the scheduler) that add messages to a queue for later processing 

  - based on quartz
  - configuration options (scheduling etc)
  - JMS listener will run something that will poll listObjects() (see Story of polling listObject())


- (story, 5pt) Design and implement a component that responds to tasks from the scheduler (above) for polling listObjects()

  - able to use the ITK client for this (handling the listObjects call)
  - maintain state of last time listobjects was called, serialize objects
  - update UC06 text to flesh out design


- (story, 8pt) Design and implement the component that will retrieve content from MN and store in Metacata

  - use client from the java itk library (https://trac.dataone.org/browser/software/cicore/trunk/itk/d1-java)
  -retrieve systemMetadata from MN based on ID read from messaging queue
  -parse systemMetadata to discover scimeta or data
  -if scimeta then store sysmeta and scimeta in metacat
  -otherwise only store sysmeta


- (story, 20pt) Setup a few VMs for integration testing of CNs

  - automatic build of CNs based on SVN
  - testing of repplication between CNs
  - at least one MN for testing UC06 interactions


- Dave - integration test client essential for this sprint

  - update the stories and tasks associated with ITK client implementation (especially python client)


- (Story - pull from project backlog into sprint #5) Update the CN buildout to use the latest available versions of Metacat, Mercury, and CN_service


- (story, 3pts) Refactor Metacat to make the CRUD service a singleton (2 hrs)

  - remove the servlet context passed into CRUD service
  - fix MC REST service client to use mime-multipart encoding

    - fix MC REST service to do API calls instead of servlet calls



#586 Some work remains - about 1 hr, move to next sprint

#79 - reassign to Waltz.  flesh out details.  Move to next sprint.  Lower priority - implement after UC06

#269 - All tasks move across to next sprint
  - Dave review documentation for Mercury
  
#288 - needs integration test to run it

#346 - completed - close

#565 - reassign to Chad

#262 - Assign to Dave, and adjust tasks (remove 263) 268 - not really part of 262 but required for testing of listObject() - part of general MN testing

#348 - in progress, move forward

#350 - move forward

#352 - increase time and move forward

#591 - move forward - lower priority

#582 - need to prepare some stuff for the May meeting

#536 - move forward. #554 needs to be updated

#605 - move forward

#452 - completed.  close ticket.  

#543 - done

#447 - move forward if necessary

#602 - move forward

#561, 562, 563 - remove.  Duplicates of other ORNL/DAAC related tasks / stories

#593, #594, #595

#337 - move forward, low priority

#331 - move to this sprint

#353 - move into this sprint

#601 - Move to next sprint, add a couple of stories for testing this, but don't refactor the code (i.e. document the outcome and make recommendations)
  - recommend a test of this in the test harness