timeplus.source
source
This module defines base source class :copyright: (c) 2022 by Timeplus :license: Apache2, see LICENSE for more details.
View Source
""" source This module defines base source class :copyright: (c) 2022 by Timeplus :license: Apache2, see LICENSE for more details. """ import requests from timeplus.base import Base from timeplus.resource import ResourceBase class SourceConnection(Base): """ SourceConnection class defines source connection configuration """ def __init__(self): Base.__init__(self) self._set("auto_create", True) def stream(self, *args): return self.prop("stream_name", *args) def auto_create(self, *args): return self.prop("auto_create", *args) def event_time_column(self, *args): return self.prop("event_time_column", *args) class Source(ResourceBase): """ Source class defines source object """ _resource_name = "sources" def __init__(self, env=None): ResourceBase.__init__(self, env) @classmethod def build(cls, id, env=None): obj = cls(env=env) obj._set("id", id) return obj def name(self, *args): return self.prop("name", *args) def connection(self, *args): try: return self.prop("connection_config", *args) except Exception: # TODO it is better to change connection_config to connection here return self.prop("connection", *args) def properties(self, *args): return self.prop("properties", *args) def type(self, *args): return self.prop("type", *args) def id(self): return self.prop("id") def stat(self): self.get() return self.connection()["stat"] def start(self): self.action("start") return self def stop(self): self.action("stop") return self def preview(self, size=3): url = f"{self._base_url}/source/preview" self._logger.debug("post {}", url) previewRequest = { "properties": self.properties(), "size": size, "type": self.type(), } try: r = requests.post( url, json=previewRequest, headers=self._headers, timeout=self._env.http_timeout(), ) if r.status_code < 200 or r.status_code > 299: self._logger.error(f"failed to preview source {r.status_code} {r.text}") else: return r.json() except Exception as e: self._logger.error(f"failed to preivew {e}")
View Source
class SourceConnection(Base): """ SourceConnection class defines source connection configuration """ def __init__(self): Base.__init__(self) self._set("auto_create", True) def stream(self, *args): return self.prop("stream_name", *args) def auto_create(self, *args): return self.prop("auto_create", *args) def event_time_column(self, *args): return self.prop("event_time_column", *args)
SourceConnection class defines source connection configuration
View Source
def __init__(self): Base.__init__(self) self._set("auto_create", True)
View Source
def stream(self, *args): return self.prop("stream_name", *args)
View Source
def auto_create(self, *args): return self.prop("auto_create", *args)
View Source
def event_time_column(self, *args): return self.prop("event_time_column", *args)
Inherited Members
View Source
class Source(ResourceBase): """ Source class defines source object """ _resource_name = "sources" def __init__(self, env=None): ResourceBase.__init__(self, env) @classmethod def build(cls, id, env=None): obj = cls(env=env) obj._set("id", id) return obj def name(self, *args): return self.prop("name", *args) def connection(self, *args): try: return self.prop("connection_config", *args) except Exception: # TODO it is better to change connection_config to connection here return self.prop("connection", *args) def properties(self, *args): return self.prop("properties", *args) def type(self, *args): return self.prop("type", *args) def id(self): return self.prop("id") def stat(self): self.get() return self.connection()["stat"] def start(self): self.action("start") return self def stop(self): self.action("stop") return self def preview(self, size=3): url = f"{self._base_url}/source/preview" self._logger.debug("post {}", url) previewRequest = { "properties": self.properties(), "size": size, "type": self.type(), } try: r = requests.post( url, json=previewRequest, headers=self._headers, timeout=self._env.http_timeout(), ) if r.status_code < 200 or r.status_code > 299: self._logger.error(f"failed to preview source {r.status_code} {r.text}") else: return r.json() except Exception as e: self._logger.error(f"failed to preivew {e}")
Source class defines source object
View Source
def __init__(self, env=None): ResourceBase.__init__(self, env)
View Source
@classmethod def build(cls, id, env=None): obj = cls(env=env) obj._set("id", id) return obj
View Source
def name(self, *args): return self.prop("name", *args)
View Source
def connection(self, *args): try: return self.prop("connection_config", *args) except Exception: # TODO it is better to change connection_config to connection here return self.prop("connection", *args)
View Source
def properties(self, *args): return self.prop("properties", *args)
View Source
def type(self, *args): return self.prop("type", *args)
View Source
def id(self): return self.prop("id")
View Source
def stat(self): self.get() return self.connection()["stat"]
View Source
def start(self): self.action("start") return self
View Source
def stop(self): self.action("stop") return self
View Source
def preview(self, size=3): url = f"{self._base_url}/source/preview" self._logger.debug("post {}", url) previewRequest = { "properties": self.properties(), "size": size, "type": self.type(), } try: r = requests.post( url, json=previewRequest, headers=self._headers, timeout=self._env.http_timeout(), ) if r.status_code < 200 or r.status_code > 299: self._logger.error(f"failed to preview source {r.status_code} {r.text}") else: return r.json() except Exception as e: self._logger.error(f"failed to preivew {e}")