]> git.proxmox.com Git - ceph.git/blame - ceph/src/telemetry/server/ceph_telemetry/rest/device.py
update download target update for octopus release
[ceph.git] / ceph / src / telemetry / server / ceph_telemetry / rest / device.py
CommitLineData
eafe8130
TL
1from flask import request, jsonify
2from flask_restful import Resource
3import datetime
4import hashlib
5import json
6import copy
7import psycopg2
8
9class Device(Resource):
10 def __init__(self, report=None):
11 super(Device, self).__init__()
12 self.report = report
13 with open('/opt/telemetry/pg_pass.txt', 'r') as f:
14 p = f.read()
15 self.pg_password = p.strip()
16
17 def put(self):
18 self.report = request.get_json(force=True)
19
20 self.post_to_postgres()
21
22 return jsonify(status=True)
23
24 def _connect_pg(self):
25 return psycopg2.connect(
26 host='localhost',
27 database='telemetry',
28 user='telemetry',
29 password=self.pg_password,
30 )
31
32 def post_to_postgres(self):
33 conn = self._connect_pg()
34 cur = conn.cursor()
35 for devid, devinfo in self.report:
36 for stamp, report in devinfo:
37 cur.execute(
38 'INSERT INTO device_report (device_id, report_stamp, report) VALUES (%s,%s,%s) ON CONFLICT DO NOTHING',
39 (devid, stamp, report))
40 conn.commit()