[RESOLVED mostly...I changed the import from urllib to urllib3...the graphs don't come through in the emailbut not really concerned about them right now]
The installation instructions seem to be fairly straightforward and give indications it should work on RHEL/CentOS 7, but out of the box it does not work for getting acknowledgements back to Icinga.
I am using the opsgenie-icinga-1.1.0-rpm-x86-64.rpm package (by the way - re-using the naming convention from the Marid packages was bad as it conflicts...)
The actionExecutor.py script executes under the default python interpreter, which for RHEL 7 is still python 2.7. This causes the calls to urllib.urlparse to fail because there were a lot of changes between 2 and 3 with urllib. I couldn't find any way to explicitly call actionExecutor.py with Python 3 (/usr/bin/python3).
I was able to get the script to _mostly_ work by replacing "import urllib.urlparse" with "import urlparse", and I also had to explicitly install the python html library via pip. I then changed the urlparse calls appropriately. But there are still problems with the urlecode calls, etc. I've tried some fixes but I just get more errors.
As of right now, it works for the acknowledgements, but the attempts to get the histogram and trend graphs are broken.
It seems to me like this wasn't well tested in 7.
And FYI, it would be nice if the ability for an acknowledgement notification from icinga was configurable - we prefer to send out the notification so we know someone is working on it.
Hi @Brian O_Neill !
I'm sorry to hear you've run into so many issues along the way.
As you mentioned, RHEL/CentOS 7 (and earlier) have dependencies on python2 at the system level. So any "hard" changes that set python3 as the default can break quite a bit elsewhere. Unfortunately, since golang doesn't execute commands in a typical shell, less drastic options like aliasing the command won't work.
This means the best option is to modify OEC to explicitly look for the "python3" command instead of just "python."
In case you (or anyone else who comes across this!) want to use that method, here's a write up on modifying and recompiling OEC:
https://intercom.help/opsgenie/en/articles/4322942-modifying-oec-to-explicitly-use-python3
It sounds like at this point you've essentially refactored the provided script to work with python2. If you are still having issues, please feel free to reply here or hop into our in-app chat and we can work on getting things up and running for you.
Hope this helps!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.