Red Hat Bugzilla – Bug 831295
running "updatebook" fails with a list of Invalid Topic Title errors
Last modified: 2014-10-19 19:00:54 EDT
When "updatebook" is run after a book has been edited, it fails with a list of errors like this:
ERROR: Line 53: Invalid Topic! Existing topic title doesn't match.
-> Specified: "Try before you buy": Live CD and USB 
-> Topic 225: Try Fedora easily with no risk: Live CD and USB
ERROR: Line 56: Invalid Topic! Existing topic title doesn't match.
-> Specified: Create Live USB 
-> Topic 238: Create Live USB on Microsoft Windows
ERROR: Line 64: Invalid Topic! Existing topic title doesn't match.
-> Specified: The Red Hat Package Manager - rpm 
-> Topic 179: The RPM Package Manager
The topic titles in the database and the names in the content spec must match, to ensure that reused topics are actually the ones that you mean to use. Imagine a situation where you reuse a topic, but accidentally enter the wrong topic ID. Your book would not come out as expected. A validation check when the spec is pushed ensures that what you want is what you get.
After extensive editing, however, it is common that topic titles are refined, changed, or fixed through editing. In this case you might wish to accept all changes into your content spec automatically.
There is a --permissive mode that rewrites all topic titles in your content spec to match the current titles in the database. Use this with care.
To activate this option, add the option in the bin/updatebook script, like this:
java -jar $HOME/csprocessor.jar push -p --config $HOME/csprocessor.ini --host http://127.0.0.1:8180/TopicIndex -u writer
Usually you will want to run the updatebook script first, check the error messages, then run in permissive mode.
In that case, add this to the updatebook script:
java -jar $HOME/csprocessor.jar push $1 --config $HOME/csprocessor.ini --host http://127.0.0.1:8180/TopicIndex -u writer
Now you can call updatebook with -p, like so:
to get permissive mode (rewrite all topic titles in the content spec with titles from the database)
to get an error report about topic titles that have been changed in the database since the content was last pushed.