Пример #1
0
 def list_releases(self):
     '''
     List Helm Releases
     '''
     stub = ReleaseServiceStub(self.channel)
     req = ListReleasesRequest()
     return stub.ListReleases(req, self.timeout, metadata=self.metadata)
Пример #2
0
 def list_releases(self,
                   limit=RELEASE_LIMIT,
                   status_codes=[],
                   namespace=None):
     '''获得release列表
     Argss:
         :params limit - number of result
         :params status_codes - status_codes list used for filter
             可选值(UNKNOWN, DEPLOYED, DELETED, SUPERSEDED, FAILED,
                    DELETING, PENDING_INSTALL, PENDING_UPGRADE,
                    PENDING_ROLLBACK)
         :params namespace(srt) - k8s namespace
     Returns:
         List Helm Releases
     '''
     releases = []
     stub = ReleaseServiceStub(self.channel)
     req = ListReleasesRequest(limit=limit,
                               status_codes=status_codes,
                               namespace=namespace or '')
     release_list = stub.ListReleases(req,
                                      self.timeout,
                                      metadata=self.metadata)
     for y in release_list:
         releases.extend(y.releases)
     return releases
Пример #3
0
    def list_releases(self):
        '''
        List Helm Releases
        '''
        # TODO(MarshM possibly combine list_releases() with list_charts()
        # since they do the same thing, grouping output differently
        releases = []
        stub = ReleaseServiceStub(self.channel)
        # TODO(mark-burnett): Since we're limiting page size, we need to
        # iterate through all the pages when collecting this list.
        # NOTE(MarshM): `Helm List` defaults to returning Deployed and Failed,
        # but this might not be a desireable ListReleasesRequest default.
        req = ListReleasesRequest(
            limit=RELEASE_LIMIT,
            status_codes=[const.STATUS_DEPLOYED, const.STATUS_FAILED],
            sort_by='LAST_RELEASED',
            sort_order='DESC')

        LOG.debug('Tiller ListReleases() with timeout=%s', self.timeout)
        release_list = stub.ListReleases(req,
                                         self.timeout,
                                         metadata=self.metadata)

        for y in release_list:
            # TODO(MarshM) this log is too noisy, fix later
            # LOG.debug('Found release: %s', y.releases
            releases.extend(y.releases)

        return releases
Пример #4
0
    def list_releases(self):
        """
        List Helm Releases
        """
        releases = []

        offset = None
        stub = ReleaseServiceStub(self._channel)

        while True:
            req = ListReleasesRequest(limit=RELEASE_LIMIT, offset=offset)
            release_list = stub.ListReleases(req,
                                             self._timeout,
                                             metadata=self.metadata)

            for y in release_list:
                offset = str(y.next)
                releases.extend(y.releases)

            # This handles two cases:
            # 1. If there are no releases, offset will not be set and will remain None
            # 2. If there were releases, once we've fetched all of them, offset will be ""
            if not offset:
                break

        return releases
Пример #5
0
 def list_releases(self):
     '''
     List Helm Releases
     '''
     releases = []
     stub = ReleaseServiceStub(self.channel)
     if self.__limit < 0:
         req = ListReleasesRequest()
     else:
         req = ListReleasesRequest(limit=self.__limit)
     release_list = stub.ListReleases(req,
                                      self.timeout,
                                      metadata=self.metadata)
     for y in release_list:
         releases.extend(y.releases)
     return releases
Пример #6
0
 def list_releases(self, status):
     '''
     List Helm Releases
     '''
     releases = []
     stub = ReleaseServiceStub(self.channel)
     req = ListReleasesRequest(limit=RELEASE_LIMIT, status_codes=[status])
     release_list = stub.ListReleases(req,
                                      self.timeout,
                                      metadata=self.metadata)
     for y in release_list:
         releases.extend(y.releases)
     return releases
Пример #7
0
        def get_results():
            releases = []
            done = False
            next_release_expected = ""
            initial_total = None
            while not done:
                req = ListReleasesRequest(
                    offset=next_release_expected,
                    limit=LIST_RELEASES_PAGE_SIZE,
                    status_codes=const.STATUS_ALL)

                LOG.debug(
                    'Tiller ListReleases() with timeout=%s, request=%s',
                    self.timeout, req)
                response = stub.ListReleases(
                    req, self.timeout, metadata=self.metadata)

                found_message = False
                for message in response:
                    found_message = True
                    page = message.releases

                    if initial_total:
                        if message.total != initial_total:
                            LOG.warning(
                                'Total releases changed between '
                                'pages from (%s) to (%s)', initial_total,
                                message.count)
                            raise ex.TillerListReleasesPagingException()
                    else:
                        initial_total = message.total

                    # Add page to results.
                    releases.extend(page)

                    if message.next:
                        next_release_expected = message.next
                    else:
                        done = True

                # Ensure we break out was no message found which
                # is seen if there are no releases in tiller.
                if not found_message:
                    done = True

            return releases
Пример #8
0
    def list_releases(self):
        '''
        List Helm Releases
        '''
        releases = []
        stub = ReleaseServiceStub(self.channel)
        req = ListReleasesRequest(limit=RELEASE_LIMIT,
                                  status_codes=[STATUS_DEPLOYED,
                                                STATUS_FAILED],
                                  sort_by='LAST_RELEASED',
                                  sort_order='DESC')
        release_list = stub.ListReleases(req, self.timeout,
                                         metadata=self.metadata)

        for y in release_list:
            releases.extend(y.releases)

        return releases
Пример #9
0
    def list_releases(self):
        """
        List Helm Releases
        """
        releases = []

        offset = None
        stub = ReleaseServiceStub(self._channel)

        while (offset is None or len(offset) > 0):
            req = ListReleasesRequest(limit=RELEASE_LIMIT, offset=offset)
            release_list = stub.ListReleases(req,
                                             self._timeout,
                                             metadata=self.metadata)
            for y in release_list:
                offset = str(y.next)
                releases.extend(y.releases)
        return releases
Пример #10
0
    def list_releases(self, status_codes=None, filter="", namespace=""):
        """
        List Helm Releases

        Possible status codes can be seen in the status_pb2 in part of Helm gRPC definition
        """
        releases = []

        # Convert the string status codes to the their numerical values
        if status_codes:
            codes_enum = _STATUS.enum_types_by_name.get("Code")
            request_status_codes = [
                codes_enum.values_by_name.get(code).number
                for code in status_codes
            ]
        else:
            request_status_codes = []

        offset = None
        stub = ReleaseServiceStub(self._channel)

        while True:
            req = ListReleasesRequest(
                limit=RELEASE_LIMIT,
                offset=offset,
                filter=filter,
                namespace=namespace,
                status_codes=request_status_codes,
            )
            release_list = stub.ListReleases(req,
                                             self._timeout,
                                             metadata=self.metadata)

            for y in release_list:
                offset = str(y.next)
                releases.extend(y.releases)

            # This handles two cases:
            # 1. If there are no releases, offset will not be set and will remain None
            # 2. If there were releases, once we've fetched all of them, offset will be ""
            if not offset:
                break

        return releases