Exemple #1
0
    def getStreams(self, namespace_id, query="", skip=0, count=100):
        """Retrieves a list of streams associated with 'namespace_id' under the current tenant"""
        if namespace_id is None:
            raise TypeError
        if query is None:
            raise TypeError

        response = requests.get(
            self.__url +
            self.__getStreamsPath.format(tenant_id=self.__tenant,
                                         namespace_id=namespace_id,
                                         query=query,
                                         skip=skip,
                                         count=count),
            headers=self.__qiHeaders())
        if response.status_code < 200 or response.status_code >= 300:
            response.close()
            raise QiError(
                "Failed to get all QiStreams. {status}:{reason}".format(
                    status=response.status_code, reason=response.text))

        content = json.loads(response.content)
        results = []
        for item in content:
            results.append(QiStream.fromJson(item))
        response.close()
        return results
Exemple #2
0
    def getStream(self, namespace_id, stream_id):
        """Retrieves a stream specified by 'stream_id' from the Qi Service"""
        if namespace_id is None:
            raise TypeError
        if stream_id is None:
            raise TypeError

        response = requests.get(
            self.__url + self.__streamsPath.format(tenant_id=self.__tenant, namespace_id=namespace_id, stream_id=stream_id), 
            headers=self.__qiHeaders())
        if response.status_code < 200 or response.status_code >= 300:
            response.close()
            raise QiError("Failed to get QiStream, {stream_id}. {status}:{reason}".
                          format(stream_id=stream_id, status=response.status_code, reason=response.text))

        stream = QiStream.fromJson(json.loads(response.content))
        response.close()
        return stream
Exemple #3
0
    def getOrCreateStream(self, namespace_id, stream):
        """Tells Qi Service to create a stream based on the local 'stream' QiStream object"""
        if namespace_id is None:
            raise TypeError
        if stream is None or not isinstance(stream, QiStream):
            raise TypeError
        response = requests.post(
            self.__url + self.__streamsPath.format(tenant_id=self.__tenant, namespace_id=namespace_id, stream_id=stream.Id),
            data=stream.toJson(), 
            headers=self.__qiHeaders())

        if response.status_code < 200 or response.status_code >= 300:
            response.close()
            raise QiError("Failed to create QiStream, {stream_id}. {status}:{reason}".
                          format(stream_id=stream.Id, status=response.status_code, reason=response.text))

        stream = QiStream.fromJson(json.loads(response.content))
        response.close()
        return stream
Exemple #4
0
    def getStreams(self, namespace_id, query):
        """Retrieves a list of streams associated with 'namespace_id' under the current tenant"""
        if namespace_id is None:
            raise TypeError
        if query is None:
            raise TypeError

        response = requests.get(
            self.__url + self.__streamsPath.format(tenant_id=self.__tenant, namespace_id=namespace_id),
            headers=self.__qiHeaders())

        if response.status_code == 200:
            print("Succeeded in getting all streams")
        else:
            response.close()
            raise QiError("Failed to get all QiStreams. {status}:{reason}".
                          format(status=response.status_code, reason=response.text))

        content = json.loads(response.content)
        results = []
        for item in content:
            results.append(QiStream.fromJson(item))
        response.close()
        return results