import sys import os # argument passed to runner program is stored in host variable host = sys.argv[1] #host = "cs" param.dbconn(host) if not os.path.exists(param.newpath): os.makedirs(param.newpath) if sys.argv[1] in ('cs', 'abasence.io'): print("Extracting Json for " + str(param.start_date) + " - " + str(param.end_date)) else: print("No other ETL defiend yet") if (host == "cs"): param.counter = 2 for i in param.tbl_cs: print('Extracting Json for ' + i + ' started') runner = Exporter(i) runner.start() else: print("no other mongo source is defined yet") # run the ETL process until all the mentioned collections in the param file are exported. while param.counter != 0: importer.import_data()
class Gui(QtGui.QWidget): # ========================================================================= def __init__(self, parent=None): super(Gui, self).__init__(parent) self.videoComboBox = QtGui.QComboBox(self) self.videoComboBox.currentIndexChanged.connect(self.videoIndexChanged) self.audioComboBox = QtGui.QComboBox(self) self.audioComboBox.currentIndexChanged.connect(self.audioIndexChanged) self.recordPushButton = QtGui.QPushButton(self) self.recordPushButton.setCheckable(True) self.recordPushButton.clicked.connect(self.recordClicked) separator = QtGui.QFrame(self) separator.setFrameStyle(QtGui.QFrame.HLine | QtGui.QFrame.Sunken) layout = QtGui.QVBoxLayout(self) layout.addWidget(self.videoComboBox) layout.addWidget(self.audioComboBox) layout.addWidget(separator) layout.addWidget(self.recordPushButton) self.setLayout(layout) self.resetToDefault() # ========================================================================= def resetToDefault(self): self.video = Video() self.audio = Audio() self.populateVideoComboBox() self.populateAudioComboBox() self.recordPushButton.setIcon( QtGui.QIcon(os.path.join(scriptDir, 'rec_btn_off.svg'))) self.recordPushButton.setChecked(False) self.recordPushButton.setEnabled(False) # ========================================================================= def populateVideoComboBox(self): self.videoComboBox.clear() self.videoComboBox.addItem('Select video screen...') for screen in self.video.screens: comboBoxItem = 'Screen {i}, size {s}'.format( i=self.videoComboBox.count(), s=screen.size) self.videoComboBox.addItem(comboBoxItem) # ========================================================================= def populateAudioComboBox(self): self.audioComboBox.clear() self.audioComboBox.addItem('Select audio device...') for device in self.audio.devices: comboBoxItem = '{d}'.format(d=device.description) self.audioComboBox.addItem(comboBoxItem) # ========================================================================= def videoIndexChanged(self, index): if index: self.video.screenSet(index - 1) self.checkEnableRecord() # ========================================================================= def audioIndexChanged(self, index): if index: self.audio.deviceSet(index - 1) self.checkEnableRecord() # ========================================================================= def recordClicked(self): if self.recordPushButton.isChecked(): self.videoComboBox.setEnabled(False) self.audioComboBox.setEnabled(False) self.recordPushButton.setIcon( QtGui.QIcon(os.path.join(scriptDir, 'rec_btn_on.svg'))) self.startRecorder() else: self.videoComboBox.setEnabled(True) self.audioComboBox.setEnabled(True) self.recordPushButton.setIcon( QtGui.QIcon(os.path.join(scriptDir, 'rec_btn_off.svg'))) self.stopRecorder() # ========================================================================= def checkEnableRecord(self): if self.videoComboBox.currentIndex() and \ self.audioComboBox.currentIndex(): self.recordPushButton.setEnabled(True) else: self.recordPushButton.setEnabled(False) # ========================================================================= def startRecorder(self): strftime = time.strftime('%Y%m%d%H%M%S') self.workdir = '/tmp/xcorder/{s}/'.format(s=strftime) if not os.path.isdir(self.workdir): os.makedirs(self.workdir) self.recorder = Recorder(self.video.screen, self.audio.device, self.workdir) self.recorder.start() # ========================================================================= def stopRecorder(self): self.recorder.stop() filename = QtGui.QFileDialog.getSaveFileName(None, 'Save As:', '', '*.mov ;; *.*') if filename: if not str(filename).lower().endswith('.mov'): filename += '.mov' self.exporter = Exporter(self.workdir, filename) self.exporter.start() print('\nFile saved {f}\n'.format(f=filename)) # ========================================================================= def infoDialog(self, message): messageBox = QtGui.QMessageBox(QtGui.QMessageBox.Information, 'Message', message, QtGui.QMessageBox.Ok, parent=self) messageBox.show()
class Gui(QtGui.QWidget): # ========================================================================= def __init__(self, parent=None): super(Gui, self).__init__(parent) self.videoComboBox = QtGui.QComboBox(self) self.videoComboBox.currentIndexChanged.connect(self.videoIndexChanged) self.audioComboBox = QtGui.QComboBox(self) self.audioComboBox.currentIndexChanged.connect(self.audioIndexChanged) self.recordPushButton = QtGui.QPushButton(self) self.recordPushButton.setCheckable(True) self.recordPushButton.clicked.connect(self.recordClicked) separator = QtGui.QFrame(self) separator.setFrameStyle(QtGui.QFrame.HLine|QtGui.QFrame.Sunken) layout = QtGui.QVBoxLayout(self) layout.addWidget(self.videoComboBox) layout.addWidget(self.audioComboBox) layout.addWidget(separator) layout.addWidget(self.recordPushButton) self.setLayout(layout) self.resetToDefault() # ========================================================================= def resetToDefault(self): self.video = Video() self.audio = Audio() self.populateVideoComboBox() self.populateAudioComboBox() self.recordPushButton.setIcon(QtGui.QIcon(os.path.join(scriptDir, 'rec_btn_off.svg'))) self.recordPushButton.setChecked(False) self.recordPushButton.setEnabled(False) # ========================================================================= def populateVideoComboBox(self): self.videoComboBox.clear() self.videoComboBox.addItem('Select video screen...') for screen in self.video.screens: comboBoxItem = 'Screen {i}, size {s}'.format( i=self.videoComboBox.count(), s=screen.size) self.videoComboBox.addItem(comboBoxItem) # ========================================================================= def populateAudioComboBox(self): self.audioComboBox.clear() self.audioComboBox.addItem('Select audio device...') for device in self.audio.devices: comboBoxItem = '{d}'.format(d=device.description) self.audioComboBox.addItem(comboBoxItem) # ========================================================================= def videoIndexChanged(self, index): if index: self.video.screenSet(index - 1) self.checkEnableRecord() # ========================================================================= def audioIndexChanged(self, index): if index: self.audio.deviceSet(index - 1) self.checkEnableRecord() # ========================================================================= def recordClicked(self): if self.recordPushButton.isChecked(): self.videoComboBox.setEnabled(False) self.audioComboBox.setEnabled(False) self.recordPushButton.setIcon(QtGui.QIcon(os.path.join(scriptDir, 'rec_btn_on.svg'))) self.startRecorder() else: self.videoComboBox.setEnabled(True) self.audioComboBox.setEnabled(True) self.recordPushButton.setIcon(QtGui.QIcon(os.path.join(scriptDir, 'rec_btn_off.svg'))) self.stopRecorder() # ========================================================================= def checkEnableRecord(self): if self.videoComboBox.currentIndex() and \ self.audioComboBox.currentIndex(): self.recordPushButton.setEnabled(True) else: self.recordPushButton.setEnabled(False) # ========================================================================= def startRecorder(self): strftime = time.strftime('%Y%m%d%H%M%S') self.workdir = '/tmp/xcorder/{s}/'.format(s=strftime) if not os.path.isdir(self.workdir): os.makedirs(self.workdir) self.recorder = Recorder( self.video.screen, self.audio.device, self.workdir) self.recorder.start() # ========================================================================= def stopRecorder(self): self.recorder.stop() filename = QtGui.QFileDialog.getSaveFileName( None, 'Save As:', '', '*.mov ;; *.*') if filename: if not str(filename).lower().endswith('.mov'): filename += '.mov' self.exporter = Exporter(self.workdir, filename) self.exporter.start() print('\nFile saved {f}\n'.format(f=filename)) # ========================================================================= def infoDialog(self, message): messageBox = QtGui.QMessageBox( QtGui.QMessageBox.Information, 'Message', message, QtGui.QMessageBox.Ok, parent=self) messageBox.show()
if param.reset_time == param.reset_value: filter_row = " where updated_at >='" + str( param.reset_start_date) + "' and updated_at<'" + str( param.reset_end_date) + "'" else: filter_row = " where updated_at >='" + str( param.start_date) + "' and updated_at<'" + str(param.end_date) + "'" #filter_row = " " filter_row_segment = " where updated_at::date >= current_date::date -1 and updated_at::date < current_date::date " if (host == "nwsl"): param.counter = 2 for i in param.tbl_nwsl: print('extraction of ' + i + ' started') runner = Exporter("select * from " + i + filter_row, i + "_nwsl") runner.start() runner_employee = Exporter("select * from newsletter_customers", 'newsletter_customers') runner_employee.start() elif (host == "core"): param.counter = 26 for i in param.tbl_core: print('extraction of ' + i + ' started') runner = Exporter("select * from " + i + filter_row, i) runner.start() runner_employee = Exporter("select * from employees", 'employees') runner_employee.start()
@app.route("/metrics", methods=["GET"]) def get_data(): return Response(generate_latest(), mimetype=CONTENT_TYPE_LATEST) def load_config(): with open(CONF_LOCATION) as f: data = yaml.load(f, Loader=yaml.FullLoader) if "debug" not in data or "refresh_rate" not in data or "hosts" not in data: logger.fatal( 'FATAL: /src/config.yml must contain "debug", "refresh_rate" and "hosts"' ) exit(-1) return data if __name__ == "__main__": conf = load_config() metrics = { "ping": Gauge("ping", "Ping duration in ms", ["host"]), "ports": Gauge("ports", "Open ports on host", ["host", "port", "protocol"]), } for host in conf["hosts"]: exporter = Exporter(host, conf["refresh_rate"], metrics) exporter.start() app.run(debug=conf["debug"], host="0.0.0.0", port=9100)