【问题标题】:Rally Python API拉力赛 Python API
【发布时间】:2017-10-30 19:03:47
【问题描述】:

我正在尝试按照http://developer.rallydev.com/help/python-toolkit-rally-rest-api 处的说明使用 Python 工具包订阅我公司的 Rally 服务

但是,我遇到了以下错误。

Traceback(最近一次调用最后一次):文件“test_prog.py”,第 12 行,在 拉力赛=拉力赛(服务器,用户,密码,工作区=工作区,项目=项目)文件 “C:\Python27\lib\site-packages\pyral\restapi.py”,第 184 行,在 初始化 self.contextHelper.check(self.server) 文件“C:\Python27\lib\site-packages\pyral\context.py”,第 153 行,检查中 raise RallyRESTAPIError(problem) pyral.context.RallyRESTAPIError: hostname: 'https://rally1.rallydev.com/slm/login.op' 不存在或 无法到达

有谁知道是否有任何订阅设置可以使用 pyral Rally REST API 控制/限制对其的访问?

我在 Windows 7 平台上使用 Python 2.7 使用带有请求 0.9.3 和证书 0.0.8 的 pyral 0.9.1。

非常感谢任何帮助/见解。 谢谢,

【问题讨论】:

  • 认为更新到 0.13.5 请求包可以解决问题。现在我可以连接到服务器,但在身份验证阶段失败并出现 401 错误代码。
  • 我仍然有兴趣了解您是否使用代理。 401 可能来自您的代理服务器,而不是来自 Rally。
  • 不,没有用于访问 Rally 服务器或 Internet 的代理。它是一个托管 Rally 的 https 网络服务器。不确定是否重要。
  • 你能在你的源代码中检查你的服务器 url 连接字符串吗?对于 pyral,它应该是 https://rally1.rallydev.com - 例如,末尾没有 /slm
  • @MarkW 我的配置文件如下: SERVER = rally1.rallydev.com USER = myEmail@CompanyName.com PASSWORD = myPassword 一旦我将 URL 设置为 https,我得到不存在或无法访问的服务器错误.如果我放弃 https,它会在 401 上正确出错,可能是因为 SSL 连接上未加密的用户名和密码。我不太确定问题出在哪里。顺便说一句,感谢您迄今为止的所有帮助。

标签: python rally pyral


【解决方案1】:

您是否通过代理服务器访问互联网?您可能希望与您的 IT 部门核实这一点。

不幸的是,请求和 urllib 包(pyral 依赖于该包)通过 HTTPS 处理 HTTP 存在一些限制。

请求包机制不正确支持基于 HTTP 的 HTTPS,这正是代理连接到 Rally 必须做的事情,因为所有 URL 都是基于 HTTPS 的。 requests 包的维护者意识到了这种情况,并且有针对当前正在评估是否包含的底层依赖项 (urllib3) 的代码修复。

当 requests 包合并代码以正确支持代理时,Rally 的开发人员计划合并该代码并将提供配置步骤(设置环境变量)以使 pyral 在代理环境中工作。

【讨论】:

    【解决方案2】:

    pyral 使用 ping 检查服务器是否可用,因此它不会通过代理工作,直到您更新 pyral 源代码中的 context.py(注释掉第 146-150 行)

    ###reachable, problem = Pinger.ping(target_host)
    ###if not reachable:
    ###if not problem:
    ###problem = "host: '%s' non-existent or unreachable"  %    target_host
    ###raise RallyRESTAPIError(problem)
    

    【讨论】:

      【解决方案3】:

      当您尝试将 CA Agile Central 与您的 python API 集成时,如果发生此错误。

      Target Rally host: 'https://rally1.rallydev.com' non-existent or unreachable
      

      尝试使用“rally1.rallydev.com”而不是“https://rally1.rallydev.com

      rally = Rally(server="rally1.rallydev.com", user,
                            password,
                            workspace,
                            project)
      

      使用 pyral 版本:1.4.0

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-07
        • 1970-01-01
        相关资源
        最近更新 更多