def createType(self, qi_type): if qi_type is None: return if not isinstance(qi_type, QiType): return conn = http.HTTPConnection(self.url) conn.request("POST", self.__typesBase, qi_type.toString(), self.__qi_headers()) response = conn.getresponse() if response.status == 302: # Found url = urlparse(response.getheader("Location")) conn = http.HTTPConnection(self.url) conn.request("GET", url.path, headers=self.__qi_headers()) response = conn.getresponse() if response.status == 200 or response.status == 201: type = QiType.fromString(response.read().decode()) conn.close() return type else: conn.close() raise QiError("Failed to create type. {status}:{reason}".format( status=response.status, reason=response.reason))
def createType(self, tenant_id, namespace_id, qi_type): if qi_type is None: return if not isinstance(qi_type, QiType): return self.__getToken() conn = http.HTTPSConnection(self.url) conn.request("POST", self.__typesBase.format(tenant_id = tenant_id, namespace_id = namespace_id), qi_type.toString(), self.__qi_headers()) response = conn.getresponse() if response.status == 302: # Found url = urlparse(response.getheader("Location")) conn = http.HTTPSConnection(self.url) conn.request("GET", url.path, headers = self.__qi_headers()) response = conn.getresponse() if response.status == 200 or response.status == 201: type = QiType.fromString(response.read().decode()) conn.close() return type else: conn.close() raise QiError("Failed to create type. {status}:{reason}".format(status = response.status, reason = response.reason))
def getOrCreateType(self, namespace_id, type): """Tells Qi Service to create a type based on local 'type' or get if existing type matches""" if namespace_id is None: raise TypeError if type is None or not isinstance(type, QiType): raise TypeError response = requests.post( self.__url + self.__typesPath.format(tenant_id=self.__tenant, namespace_id=namespace_id, type_id=type.Id), data=type.toJson(), headers=self.__qiHeaders()) if response.status_code < 200 or response.status_code >= 300: response.close() raise QiError( "Failed to create type, {type_id}. {status}:{reason}".format( type_id=type.Id, status=response.status_code, reason=response.text)) # Orig # type = QiType.fromJson(json.loads(response.content)) # New content_str = str(response.content) content = json.loads(content_str) type = QiType.fromJson(content) # response.close() return type
def getType(self, type_id): conn = http.HTTPConnection(self.url) conn.request("GET", "/qi/types/" + type_id, headers = self.__qi_headers()) response = conn.getresponse() if response.status != 200: conn.close() raise QiError("Failed to get QiType, {type_id}. {status}:{reason}". format(type_id = type_id, status = response.status, reason = response.reason)) typesresponse = response.read().decode() conn.close() return QiType.fromString(typesresponse)
def getType(self, tenant_id, namespace_id, type_id): self.__getToken() conn = http.HTTPSConnection(self.url) conn.request("GET", self.__typesBase.format(tenant_id = tenant_id, namespace_id = namespace_id) + '/' + type_id, headers = self.__qi_headers()) response = conn.getresponse() if response.status != 200: conn.close() raise QiError("Failed to get QiType, {type_id}. {status}:{reason}". format(type_id = type_id, status = response.status, reason = response.reason)) typesresponse = response.read().decode() conn.close() return QiType.fromString(typesresponse)
def getTypes(self): conn = http.HTTPConnection(self.url) conn.request("GET", self.__typesBase, headers=self.__qi_headers()) response = conn.getresponse() if response.status != 200: conn.close() raise QiError("Failed to get QiTypes {status}:{reason}".format( status=response.status, reason=response.reason)) typesresponse = response.read().decode() conn.close() typeslist = json.loads(typesresponse) returnlist = [] for typedict in typeslist: returnlist.append(QiType.fromDictionary(typedict)) return returnlist
def getTypes(self): conn = http.HTTPConnection(self.url) conn.request("GET", self.__typesBase, headers = self.__qi_headers()) response = conn.getresponse() if response.status != 200: conn.close() raise QiError("Failed to get QiTypes {status}:{reason}". format(status = response.status, reason = response.reason)) typesresponse = response.read().decode() conn.close() typeslist = json.loads(typesresponse) returnlist = [] for typedict in typeslist: returnlist.append(QiType.fromDictionary(typedict)) return returnlist
def getStreamType(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) + "/Type", 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)) type = QiType.fromJson(json.loads(response.content)) response.close() return type
def getTypes(self, namespace_id, skip=0, count=100): """Retrieves a list of types associated with the specified 'namespace_id' under the current tenant""" if namespace_id is None: raise TypeError response = requests.get( self.__url + self.__getTypesPath.format(tenant_id=self.__tenant, namespace_id=namespace_id, 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 QiTypes. {status}:{reason}". format(status=response.status_code, reason=response.text)) types = json.loads(response.content) results = [] for t in types: results.append(QiType.fromJson(t)) response.close() return results
def getType(self, namespace_id, type_id): """Retrieves the type specified by 'type_id' from Qi Service""" if namespace_id is None: raise TypeError if type_id is None: raise TypeError response = requests.get( self.__url + self.__typesPath.format(tenant_id=self.__tenant, namespace_id=namespace_id, type_id=type_id), headers=self.__qiHeaders()) if response.status_code == 200: print("Succeeded in getting type") else: response.close() raise QiError("Failed to get QiType, {type_id}. {status}:{reason}". format(type_id=type_id, status=response.status_code, reason=response.text)) type = QiType.fromJson(json.loads(response.content)) response.close() return type
def createType(self, namespace_id, type): """Tells Qi Service to create a type based on local 'type' object""" if namespace_id is None: raise TypeError if type is None or not isinstance(type, QiType): raise TypeError response = requests.post( self.__url + self.__typesPath.format(tenant_id=self.__tenant, namespace_id=namespace_id), data=type.toJsonString(), headers=self.__qiHeaders()) if response.status_code == 200 or response.status_code == 201: print("Succeeded in creating type") else: response.close() raise QiError( "Failed to create type, {type_id}. {status}:{reason}".format(type_id=type.Id, status=response.status_code, reason=response.text)) type = QiType.fromJson(json.loads(response.content)) response.close() return type