OK, folks, so you want to keep your Cisco UC systems up-to-date and decided to upgrade your TelePresence Management Suite (and extensions for it) to the latest-and-greatest. You’ve done your due diligence and followed the Install and Upgrade guides and Release Notes for all systems that can be potentially affected (TMS, TMSPE, TMSXE, VCS, etc.) to ensure you cover all your bases in regards to inter-dependencies (there are plenty). However, after the upgrade, you notice a few new alarms on the VCS and TMS. The errors may look something like the following:
On TMS:
"((-1) Importer Error : TypeError('__init__() takes exactly 4 arguments (2 given)',))"
On VCS Control:
"The VCS is unable to communicate with the TMS Provisioning Extension services. Phone book service failures can also occur if TMS does not have any users provisioned against this cluster."
In the event log on the VCS, you would see some additional details:
"...provisioning: Level="ERROR" Detail="Import from TMS Provisioning Extension services failed" Service="device" Status="{"reason": "Importer Error : TypeError('__init__() takes exactly 4 arguments (2 given)',)", "reason_code": -1, "detail": "Traceback (most recent call last):\n File \"/share/python/site-packages/ni/externalmanagerinterface/control/importcontrol.py\", line 766, in run\n File \"/share/python/site-packages/ni/utils/web/restclient.py\", line 345, in send_get\n File \"/share/python/site-packages/ni/utils/web/restclient.py\", line 308, in send_request\n File \"/share/python/site-packages/ni/utils/web/restclient.py\", line 320, in http_request\n File \"/share/python/site-packages/ni/utils/web/httplib2ssl.py\", line 399, in request\n File \"/lib64/python2.7/site-packages/httplib2/__init__.py\", line 1608, in request\n File \"/lib64/python2.7/site-packages/httplib2/__init__.py\", line 1359, in _request\n File \"/lib64/python2.7/site-packages/httplib2/__init__.py\", line 1247, in _auth_from_challenge\n File \"/lib64/python2.7/site-packages/httplib2/__init__.py\", line 523, in __init__\nTypeError: __init__() takes exactly 4 arguments (2 given)\n", "success": false, "error": "InternalServerError"}"
What gives? Well, apparently, there has been a change in the way the TMSPE is authenticating with TMS in the newest version of the suite. Navigate to your TMS server and open IIS Manager. Expand Sites -> Default Web Site; click on ‘tmsagent’, then select ‘Authentication’. Ensure that ‘Digest Authentication’ is disabled.
If it is enabled, disable it and then restart your web server (iisreset /noforce). Next, verify that Provisioning Extension is operating successfully (you may need to restart TMS Provisioning Extension service).
Hope this helps someone.