Exemplo n.º 1
0
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()
Exemplo n.º 2
0
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()
Exemplo n.º 3
0
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()
Exemplo n.º 4
0
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)