def __init__(self, queue, database,
username=None, password=None,
dbadmin_username=None, dbadmin_password=None,
line_format='single-line', tags=None,
unit_system=None, augment_record=True,
inputs=dict(), obs_to_upload='all', append_units_label=True,
server_url=_DEFAULT_SERVER_URL, skip_upload=False,
manager_dict=None,
post_interval=None, max_backlog=sys.maxint, stale=None,
log_success=True, log_failure=True,
timeout=60, max_tries=3, retry_wait=5):
super(InfluxThread, self).__init__(queue,
protocol_name='Influx',
manager_dict=manager_dict,
post_interval=post_interval,
max_backlog=max_backlog,
stale=stale,
log_success=log_success,
log_failure=log_failure,
max_tries=max_tries,
timeout=timeout,
retry_wait=retry_wait)
self.database = database
self.username = username
self.password = password
self.tags = tags
self.upload_all = True if obs_to_upload.lower() == 'all' else False
self.append_units_label = append_units_label
self.inputs = inputs
self.server_url = server_url
self.skip_upload = to_bool(skip_upload)
self.unit_system = unit_system
self.augment_record = augment_record
self.templates = dict()
self.line_format = line_format
# ensure that the database exists
qstr = urllib.urlencode({'q': 'CREATE DATABASE %s' % self.database})
url = '%s/query?%s' % (self.server_url, qstr)
req = urllib2.Request(url)
req.add_header("User-Agent", "weewx/%s" % weewx.__version__)
uname = None
pword = None
if dbadmin_username is not None:
uname = dbadmin_username
pword = dbadmin_password
elif username is not None:
uname = username
pword = password
if uname is not None:
b64s = base64.encodestring(
'%s:%s' % (uname, pword)).replace('\n', '')
req.add_header("Authorization", "Basic %s" % b64s)
try:
self.post_request(req)
except (urllib2.URLError, socket.error, httplib.BadStatusLine, httplib.IncompleteRead), e:
logerr("create database failed: %s" % e)
评论列表
文章目录