Upgrade Review

Document: Upgrade One Pager

Bobby's note: Since wiki page links don't show up as links in a table currently, I've added "(link" in front of them below.

Item Section Comment Response
kasso-01 2.2.1 I am concerned about the dependency on parsing asadmin output. This seems very dangerous. What happens if asadmin output changes? Does asupgrade fail? The upgrade process is separate from whatever the tool is doing – the tool calls asadmin in a Runtime#exec call. So the only problem would be that the tool doesn't notice that there was some possible error output. Right now it checks for the string "SEVERE" in the output (actually it uses Level.SEVERE#getLocalizedName), which can report false positives, but that's better than the other way around. I'll change it to look for SEVERE or WARNING instead (feature issue filed – let me know if you want to keep it checking for SEVERE only). In either case, the tool can only alert the user to check the logs for details. The tool always checks the exit code of the asadmin process as well.
kasso-02 2.2.1 If asadmin is sensitive to asadmin output changes what measures have been taken to ensure changes made to asadmin output are communicated to this team? It's basically just been Bill and I talking. In the past, this has only been an issue once, at which point I simplified the parsing to look just for the level info and ignore the format of the log entry. One note: the asadmin client output doesn't go to the server.log file, so I need to capture it and put it in the upgrade log for users to check. Issue filed here
kasso-03 2.2.3 What is being done to ensure desired upgrade tasks which do not fall under an existing module are handled? (possibly via documentation) I think this same issue is also mentioned as a TBD in section 4.3. It's on the (link upgrade dashboard page along with all the other modules.
kasso-04 2.2.6 Why can't upgrade be supported from v2? (instead of the v2 -> 2.1 -> 3.1)? Good catch. v2 "should" work, but I think we started with 2.1 to simplify the support matrix. I don't think 2->2.1 is considered an upgrade, and 2->3 worked so 2->3.1 should also work. I've made the change that anything before GFv2 must be upgraded to 2.1 first.
kasso-05 4.1 The spec states: "Modules should also log any changes made in the configuration when making them." What logging level should the module owners use? Added text that they should be INFO level. That may be a bit verbose, but an upgrade generally happens once on a domain. (link Change is here (hmm, anchors don't seem to work in these links).
kasso-06 general It appears that asupgrade is misnamed. It really is a migration assistant in that it copies material from an old version of GF to a new version of GF. It then relies on the new version of GF to perform the upgrade of the configuration. The asupgrade tool does not appear to perform an actual upgrade. I'm not recommending we rename the tool at this point though. We could still get rid of it (heh). Back in "the day," the tool did all the work, but that didn't scale. We also used to use "migration" to mean a tool that moved configuration information from another app server to GF, so it's a semantic fun house.
kasso-07 general Does asadmin return error codes based on success or failure? I don't know every case that results in a non-zero exit code, but the tool checks for it. If there is an error at the asadmin client level, e.g. a wrong master password, then it exits with a 1 and this is communicated to the user.
kasso-08 general There is definite overlap here with asadmin backup-domain and asadmin restore-domain commands. It seems like one could use these existing tools to migrate the domain from an older version of GF to a new install and then rely on asadmin start-domain --upgrade. At least in v3 I get this from the backup-domain command: "CLI194 Previously supported command: backup-domain is not supported for this release."
kasso-09 general It is not clear where upgrade-in-place via UpdateCenter details are being captured (e.g. Will the v3 repos be updated with 3.1 pkgs or will new 3.1 repos be required?) - This is more an FYI as I'm looking into this gap. Thanks – we may have talked about this in a few other places, but as far as the actual upgrade code is concerned, it doesn't know if this is a new installation or an in-place updated installation.