我的组织使用SSO身份验证。尝试通过pyal从python使用api密钥连接集会时遇到错误。不知道我在做什么错。任何帮助表示赞赏! 我在sample.py文件中使用以下代码(唯一的变化是我输入了API密钥值,工作空间名称和项目名称)-
import sys
from pyral import Rally, rallyWorkset
options = [arg for arg in sys.argv[1:] if arg.startswith('--')]
args = [arg for arg in sys.argv[1:] if arg not in options]
server, user, password, apikey, workspace, project = rallyWorkset(options)
print(server)
rally = Rally('rally1.rallydev.com', apikey='<my api key>', workspace='<workspace name>', project='<project name>')
rally.enableLogging('mypyral.log')
workspaces = rally.getWorkspaces()
for wksp in workspaces:
print("%s %s" % (wksp.oid, wksp.Name))
projects = rally.getProjects(workspace=wksp.Name)
for proj in projects:
print("%12.12s %s" % (proj.oid, proj.Name))
我得到的错误-
rally1.rallydev.com
Traceback (most recent call last):
File "sample.py", line 10, in <module>
rally = Rally('rally1.rallydev.com', apikey='<my api key>', workspace='<workspace name>', project='<project name>')
File "C:\...\Python\Python36\lib\site-packages\pyral\restapi.py", line 259, in __init__
self.contextHelper.check(self.server, wksp, proj, self.isolated_workspace)
File "C:\...\Python\Python36\lib\site-packages\pyral\context.py", line 171, in check
user_response = self._getUserInfo()
File "C:\...\Python\Python36\lib\site-packages\pyral\context.py", line 276, in _getUserInfo
raise RallyRESTAPIError(problem)
pyral.context.RallyRESTAPIError: Target Rally host: 'rally1.rallydev.com' non-existent or unreachable
答案 0 :(得分:0)
我也在Rally host is non-existent or unreachable via pyral上回答了这篇文章。
我只需要解决此问题,这是由于我的Python安装未使用TLS 1.2引起的。您需要确保Python使用的OpenSSL版本支持TLS 1.2。
要查看正在使用的TLS版本,您可以执行以下检查:
python -c "import requests; print(requests.get('https://www.howsmyssl.com/a/check', verify=False).json()['tls_version'])"
要查看使用哪个OpenSSL:
python -c "import ssl; print(ssl.OPENSSL_VERSION)"
我没有解决办法来将OpenSSL更新到正确的版本。我相信您将能够为自己的环境找到一些东西。
答案 1 :(得分:0)
在执行以下步骤后,问题已解决-