Hall of Famer
- Aug 16, 2011
It could be more readily worked around;workaround at present isn't ideal requiring a server reboot to restore encrypted communication after a certificate is installed.
service nginx restartshould do it without any other interruption to services on the machine. And updating the script to work with -U3 shouldn't be hard--but if I want it to work with both -U3 and prior versions (which I do; I haven't updated my main system to -U3 and now think I'm unlikely to), that's going to take a bit more thought. It would no doubt help if my familiarity level with Python were somewhere above "banging rocks together."
But the bigger issue, I think, is:
- It's a breaking change in the API
- It happened in what should be a bugfix/maintenance release
- It's undocumented (the official TrueNAS documentation hub still says to use the GET method, or at least it did this morning), unless you look at the documentation that's internal to the product--where all it gives you (once you find it--it isn't exactly the easiest thing to navigate) is this:
- There was absolutely no warning of the change. I just went line-by-line through the changelog, and it just isn't there. The closest I saw was this one:
But when I follow the link to the Jira issue, I don't see any discussion, comments, or anything else that would tell me that the method for this endpoint is changing. Even if I click through to the PR, I don't see it, though it's certainly possible I'm failing to understand something that would be evident to someone who actually knew Python
system/general/ui_restartcall was immediate--the UI restarted immediately, breaking the connection, and causing a connection error. That's actually the condition my script tests for to indicate success--which is more than a little counterintuitive. To accept the request, return a "success" status, delay a few seconds, and then restart the UI (which is what it's intended to do now in -U3), is much better behavior. I don't know why they felt the need to make the delay configurable, or if that's what necessitated the change from GET to POST, but again, the overall change in behavior is positive.
But positive change or not, iX published and documented an API. People integrated with it. And they broke it, deliberately, in a bugfix release, without a word of warning to anyone or a scrap of documentation.