8 Replies Latest reply on Jan 4, 2016 7:22 AM by Matt Coles

    URLError generating trusted ticket

    Jong Lee



      I've gotten to the final stages of setting up VizAlerts (thank you so much for creating this by the way). I keep getting the error in the subject line when trying to run python C:\VizAlerts\vizalerts.py. I've added my hostname to the list of trusted hosts and precisely followed the install guide. I do have multiple sites on Tableau Server, perhaps that's an issue?


      Any ideas would be greatly appreciated. Please let me know if I need to supply more information.



        • 1. Re: URLError generating trusted ticket
          Matt Coles

          Precisely followed the install guide? You're my favorite person ever, Jong! Let's see if we can get this fixed for you...


          Multiple sites should not be an issue, no, although bugs are always possible. So here are some questions / requests:


          1. Are you running VizAlerts from your Tableau Server host, or from a separate host?

          2. Having a snippet from your log file would be extremely helpful. Just one pass worth should be plenty.

          3. Having your vizalerts.yaml file would be super helpful too--just make sure to remove passwords, and maybe substitute hostnames for fruits or something.


          If everything is set up correctly from what we can both tell, the next place to look will be your vizqlserver logs, under [tableau server root]\data\tabsvc\logs\vizqlserver\vizql*.log

          • 2. Re: URLError generating trusted ticket
            Jong Lee

            Hi Matt,


            I hope "precise" in this case means I didn't accidentally overlook something .


            1. Running from my Tableau Server host

            2. Attached the log file (first few entries show "https://" twice for the url. I removed "https://" from the yaml file in subsequent attempts)

            3. Attached the yaml file with passwords removed and fruits added.


            Thank you for your help!

            • 3. Re: URLError generating trusted ticket
              Matt Coles

              Thanks for attaching those, Jong. VizAlerts is trying to test generating a trusted ticket against your Tableau Server instance, but it's failing to do so. You can get URLError for a bunch of different reasons, such as if it can't even talk to your Tableau Server at all, or if the user is wrong, etc.


              • Looking at your logs and config, the only thing that seems odd is that your logs say that VizAlerts is trying to connect to "fruit.fruit.com", but the config file lists that as the SMTP server rather than the Tableau Server. I'm guessing that's just an artifact of renaming things, but it's worth triple-checking.


              • And just to make sure, your Tableau Server instance is using local authentication (internal), not Active Directory auth, correct? If it is using AD, you need to specify server.user as "fruit.com\[username]".


              • Last thing I can think of--try setting server.ssl to false temporarily, just to eliminate any ssl config issues. server should not be prepended with "http" or "https", the code will add that automatically depending on the server.ssl value.



              If none of that solves the problem, I realized there's a bug in the code that's obscuring the reason for this type of failure. It will help a little to change line 77 of tabUtil\tabhttp.py to:


              errormessage = cgi.escape(u'URLError generating trusted ticket: {}  Request details: {}'.format(str(e.reason), requestdetails))


              That will provide a little more info on the problem you're having.

              • 4. Re: URLError generating trusted ticket
                Jong Lee

                I replaced line 77 with the snippet you gave and found the error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)


                Is there a quick way to add a --no-certcheck anywhere?


                Thank you!

                • 5. Re: URLError generating trusted ticket
                  Matt Coles

                  I should add a config setting to enable cert validation...right now, the only way to not validate on the trusted ticket call is to edit tabhttp.py once again (changes in bold).


                  Add this to the import list at top:

                  import ssl


                  Then, scroll down to around line 60, and edit it so it looks like this:


                  context = ssl._create_unverified_context()
                  request = urllib2.Request(trustedurl, data)
                  response = urllib2.urlopen(request, context=context)


                  You can see if that works if you're not able to test it by disabling SSL.

                  1 of 1 people found this helpful
                  • 6. Re: URLError generating trusted ticket
                    Matt Coles

                    Hey Jong, just wanted to check in and see if you'd had a chance to test that recommendation, and if so, whether it worked for you or not?

                    • 7. Re: URLError generating trusted ticket
                      Jong Lee

                      Hi Matt,


                      Sorry for the much delayed response, I was out of the office for the past 2 weeks.


                      I had a chance to test this today and...SUCCESS!


                      I can't thank you enough for all your help. Extract refresh notification has been a pain for us, now we have it. If I run into any other errors I'll be sure to keep you apprised.


                      THANK YOU!

                      • 8. Re: URLError generating trusted ticket
                        Matt Coles

                        Awesome news! Glad to hear it's working and will be helpful.