CDR Tickets

Issue Number 3209
Summary Enhance the shared ModifyDocs module used in all global changes
Created 2010-08-19 21:37:42
Issue Type Improvement
Submitted By alan
Assigned To alan
Status Closed
Resolved 2011-02-17 10:51:46
Resolution Fixed
Path /home/bkline/backups/jira/ocecdr/issue.107537
Description

BZISSUE::4897
BZDATETIME::2010-08-19 21:37:42
BZCREATOR::Alan Meyer
BZASSIGNEE::Alan Meyer
BZQACONTACT::William Osei-Poku

There are a number of fixes and enhancements we can make to the
shared global change module "ModifyDocs.py" that will improve all
future global change programs. These include:

Check out issues:

It might be useful to process documents in test mode even if
they are already checked out to someone. Since test mode
doesn't save changes, it doesn't really need to check them
out. But it should still report which ones were locked by
another user so that we can get those documents unlocked
before running in live mode.

We might even have a checkout quick test mode that just does
the document selection, then finds out if any of the
documents are already checked out (locked) and reports that
without doing anything else. This would be very helpful
before a live run.

Validation:

There appears to be a bug that causes the validation software
to not report errors in test mode even when errors have
occurred that render a valid document invalid. We need to
test this and, if it's not working correctly, fix it.

It would also be useful to be able to force validation to
occur for all document in test mode, and not just wait for
live runs to validate every document. We don't need to do
this every time we run in test mode, but it would help if we
could do it on demand.

Logging:

I'd like to have the log file record the version number and
type (CWD, Last version, or Last publishable version) of
every document processed. It does some of this now in the
"saveDoc" routine in live mode, but it's not recorded at all
in test mode.

I'd also like to see a count of docs that could not be
checked out, a total run time, and a clarification of what
was done in the summaries for test mode runs.

Reporting:

The Admin system "Global Change Test Results" program reports
file and diff sizes inaccurately. Only the CWD sizes are
accurate. The others are just copies of the CWD sizes. This
masks important information that testers need in order to
determine that different results obtained for different
versions of a particular document. This should be fixed.

I think it would be worthwhile to spend a minimum of one full
day's work fixing these issues. Two would be better.

Comment entered 2010-08-19 21:43:52 by alan

BZDATETIME::2010-08-19 21:43:52
BZCOMMENTOR::Alan Meyer
BZCOMMENT::1

I'm adding the usual suspects to the CC list for this issue.
See:

http://verdi.nci.nih.gov/tracker/show_bug.cgi?id=4897#c0

for the full description.

Comment entered 2010-08-30 11:18:40 by Beckwith, Margaret (NIH/NCI) [E]

BZDATETIME::2010-08-30 11:18:40
BZCOMMENTOR::Margaret Beckwith
BZCOMMENT::2

Approved.

Comment entered 2010-09-03 00:14:56 by alan

BZDATETIME::2010-09-03 00:14:56
BZCOMMENTOR::Alan Meyer
BZCOMMENT::3

I've modified several modules and committed the changes to
version control. Changes include:

Added new functions in cdr.py:

getElapsed() - reports elapsed time.
isCheckedOut() - reports whether a doc is checked out plus
everything one might want to know about the lock - doc
type, title, who has it, since when, etc.

Added to ModifyDocs.py

Report of version numbers of all processed versions.
New function to check if any docs are locked before a run.
Report time elapsed.
Eliminate checkouts in test mode. Checkout isn't necessary
if we're not going to modify and save the doc.
Made validation check (valPair()) the default instead of
requiring the program to invoke it.
Revised some log messages to be more accurate.

ShowGlobalChangeTestResults.py
Now accurately reporting file sizes. This required a major
refactoring of the code.

I've spent the two days I planned and achieved pretty much all of
the goals. I had thought there was a bug in the validation, but
I'm not seeing it now and I think that I simply failed to specify
validation in an earlier version of the runs. I know I did that,
but don't remember for sure if I fixed that before or after the
run that didn't report errors that it should have reported. I
think I must have fixed it after I should have. If that was the
problem, my change to make validation the default will fix it for
the future.

The new code is in place on Mahler and is in Subversion, but not
installed on Bach or Franck. I want to keep it only on Mahler
until I've run at least one new global change through it on
Mahler, and not just my test programs.

If anything breaks while I am away, revert to the old versions
and I'll fix it when I get back.

In an optimistic spirit, I'll mark this resolved-fixed.

Comment entered 2011-01-27 23:18:50 by alan

BZDATETIME::2011-01-27 23:18:50
BZCOMMENTOR::Alan Meyer
BZCOMMENT::4

Testing of the global change for substage terms, OCECDR-3265 did indeed reveal a couple of bugs in my changes. I've fixed those.

Once we've carried through the full test cycle for 4955, if no more bugs are discovered, we should be ready to promote the revised ModifyDocs.py module.

I also made a minor enhancement to our utility library, cdr.py, to one of the routines that recognizes CDR IDs. It now tolerates cdr... as well as CDR...

Comment entered 2011-02-17 10:51:46 by Osei-Poku, William (NIH/NCI) [C]

BZDATETIME::2011-02-17 10:51:46
BZCOMMENTOR::William Osei-Poku
BZCOMMENT::5

I was able to successfully ran a global last night so I guess this issue can be closed so I am closing the issue now.

Elapsed: 0:00:00.000557