repo.py 文件源码

python
阅读 69 收藏 0 点赞 0 评论 0

项目:solaris-ips 作者: oracle 项目源码 文件源码
def get_versions(self, header=None, ccancel=None):
                """Query the repo for versions information.
                Returns a fileobject. If server returns 401 (Unauthorized)
                check for presence of X-IPkg-Error header and decode."""

                requesturl = self.__get_request_url("versions/0/")
                fobj = self._fetch_url(requesturl, header, ccancel=ccancel,
                    failonerror=False)

                try:
                        # Bogus request to trigger
                        # StreamingFileObj.__fill_buffer(), otherwise the
                        # TransportProtoError won't be raised here. We can't
                        # use .read() since this will empty the data buffer.
                        fobj.getheader("octopus", None)
                except tx.TransportProtoError as e:
                        if e.code == http_client.UNAUTHORIZED:
                                exc_type, exc_value, exc_tb = sys.exc_info()
                                try:
                                        e.details = self._analyze_server_error(
                                             fobj.getheader("X-IPkg-Error",
                                             None))
                                except:
                                        # If analysis fails, raise original
                                        # exception.
                                        if six.PY2:
                                                six.reraise(exc_value, None,
                                                    exc_tb)
                                        else:
                                                raise exc_value
                        raise
                return fobj
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号