使用API​​键

时间:2018-08-22 12:22:12

标签: python rally pyral

我的组织使用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

2 个答案:

答案 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)

在执行以下步骤后,问题已解决-

  • 转到火炉位置
  • 编辑config.py文件以包括您的拉力赛登录名USER_NAME和PASSWORD的凭据
  • 在管理员模式下打开命令提示符并运行命令 设置HTTPS_PROXY == http://user:password@proxy.domain.com:port
  • 对于用户ID / psw,请使用SSO凭据,而不要使用Rally凭据(如果它们不同)。
  • 然后运行文件sample.py并成功