Esempio n. 1
0
def main():
    parser = argparse.ArgumentParser()

    group1 = parser.add_mutually_exclusive_group()
    group1.add_argument("--start", action="store_true", default=False, help="start program")
    group1.add_argument("--stop", action="store_true", default=False, help="stop program")
    parser.add_argument("--no-daemon", action="store_true", default=None, help="run in no daemon mode")
    parser.add_argument("-p", "--pid-file", default=None, help="pid file")
    parser.add_argument("-l", "--log-file", default=None, help="log file")
    parser.add_argument("-c", "--config-file", default="./config.yml", help="config file")
    parser.add_argument("-v", "--verbosity", action="count", default=None, help="increase output verbosity")
    parser.add_argument("--version", action="version", version="Version %s" % __version__)
    parser.add_argument("--recalculate", action="store_true", default=False, help="recalculate data")
    parser.add_argument(
        "--platform",
        type=str,
        default=False,
        help=(
            "platform to recalculate, "
            "[cloudstack, ec2, ecs, eucalyptus, gce, idcf, openstack, "
            "rackspacenguk, rackspacengus]"
        ),
    )
    parser.add_argument("--date-from", type=str, default=False, help="from date, 'YYYY-MM-DD' UTC")
    parser.add_argument("--date-to", type=str, default=False, help="to date, 'YYYY-MM-DD' UTC")

    args = parser.parse_args()
    try:
        config = yaml.safe_load(open(args.config_file))["scalr"]
        configure(config, args)
    except SystemExit:
        raise
    except:
        if args.verbosity > 3:
            raise
        else:
            sys.stderr.write("%s\n" % helper.exc_info(line_no=False))
        sys.exit(1)
    try:
        app = AnalyticsProcessing()
        if args.start:
            if helper.check_pid(CONFIG["pid_file"]):
                msg = "Application with pid file '%s' already running. Exit" % CONFIG["pid_file"]
                LOG.info(msg)
                sys.exit(0)
            if not args.no_daemon:
                helper.daemonize()
            app.start()
        elif args.stop:
            app.stop()
        else:
            print "Usage %s -h" % sys.argv[0]
    except KeyboardInterrupt:
        LOG.critical("KeyboardInterrupt")
        return
    except SystemExit:
        pass
    except:
        LOG.exception("Something happened and I think I died")
        sys.exit(1)
Esempio n. 2
0
def main():
    parser = argparse.ArgumentParser()
    group = parser.add_mutually_exclusive_group()
    group.add_argument('--start', action='store_true', default=False,
            help='start program')
    group.add_argument('--stop', action='store_true', default=False,
            help='stop program')
    parser.add_argument('--no-daemon', action='store_true',
            help='run in no daemon mode')
    parser.add_argument('--email-from', default=None,
            help='email address from')
    parser.add_argument('--email-to', default=None,
            help='email address to')
    parser.add_argument('--warning-threshold', type=int, default=None,
            help='warning threshold')
    parser.add_argument('--critical-threshold', type=int, default=None,
            help='critical threshold')
    parser.add_argument('-i', '--interval', type=int, default=None,
            help="execution interval in seconds")
    parser.add_argument('-p', '--pid-file', default=None,
            help='pid file')
    parser.add_argument('-l', '--log-file', default=None,
            help='log file')
    parser.add_argument('-c', '--config-file', default='./config.yml',
            help='config file')
    parser.add_argument('-v', '--verbosity', action='count', default=None,
            help='increase output verbosity')
    parser.add_argument('--version', action='version', version='Version %s' % __version__)
    args = parser.parse_args()
    try:
        config = yaml.safe_load(open(args.config_file))['scalr']
        configure(config, args)
    except:
        if args.verbosity > 3:
            raise
        else:
            sys.stderr.write('%s\n' % helper.exc_info())
        sys.exit(1)
    try:
        daemon = DBQueueEventAlert()
        if args.start:
            LOG.info('Start')
            if not helper.check_pid(CONFIG['pid_file']):
                LOG.info('Another copy of process already running. Exit')
                sys.exit(0)
            daemon.start(daemon= not args.no_daemon)
        elif args.stop:
            LOG.info('Stop')
            daemon.stop()
        else:
            print 'Usage %s -h' % sys.argv[0]
    except KeyboardInterrupt:
        LOG.critical('KeyboardInterrupt')
        sys.exit(0)
    except SystemExit:
        pass
    except:
        LOG.exception('Something happened and I think I died')
        sys.exit(1)
Esempio n. 3
0
def main():
    try:
        parser = argparse.ArgumentParser()

        group = parser.add_mutually_exclusive_group()

        group.add_argument("--start", action="store_true", default=False, help="start daemon")
        group.add_argument("--stop", action="store_true", default=False, help="stop daemon")
        group.add_argument("--restart", action="store_true", default=False, help="restart daemon")

        parser.add_argument("-p", "--pid_file", default=None, help="Pid file")
        parser.add_argument("-c", "--config_file", default="%s/config.yml" % ETC_DIR, help="config file")
        parser.add_argument(
            "-v", "--verbosity", action="count", default=1, help="increase output verbosity [0:4]. Default is 1 - ERROR"
        )
        parser.add_argument("--version", action="version", version="Version %s" % scalrpy.__version__)

        args = parser.parse_args()

        try:
            cnf = yaml.safe_load(open(args.config_file))["scalr"]["msg_sender"]
        except IOError as e:
            sys.stderr.write("%s\n" % str(e))
            sys.exit(1)
        except KeyError:
            sys.stderr.write("%s\nYou must define 'msg_sender' section in config file\n" % str(sys.exc_info()))
            sys.exit(1)

        configure(args, cnf)

    except Exception:
        sys.stderr.write("%s\n" % str(sys.exc_info()))
        sys.exit(1)

    try:
        daemon = Messaging(config)

        if args.start:
            if not helper.check_pid(config["pid_file"]):
                logger.critical("Another copy of process already running. Exit")
                sys.exit(0)
            daemon.start()
        elif args.stop:
            daemon.stop()
        elif args.restart:
            daemon.restart()
        else:
            print "Usage %s -h" % sys.argv[0]

    except SystemExit:
        pass
    except Exception:
        logger.critical("Something happened and I think I died")
        logger.exception("Critical exception")
        sys.exit(1)
Esempio n. 4
0
def main():
    parser = argparse.ArgumentParser()
    group = parser.add_mutually_exclusive_group()
    group.add_argument('--start', action='store_true', default=False,
            help='start program')
    group.add_argument('--stop', action='store_true', default=False,
            help='stop program')
    parser.add_argument('--no-daemon', action='store_true', default=None,
            help="run in no daemon mode")
    parser.add_argument('-p', '--pid-file', default=None,
            help="pid file")
    parser.add_argument('-l', '--log-file', default=None,
            help="log file")
    parser.add_argument('-c', '--config-file', default='./config.yml',
            help='config file')
    parser.add_argument('-i', '--interval', type=int, default=None,
            help="execution interval in seconds. Default is once")
    parser.add_argument('-v', '--verbosity', action='count', default=None,
            help='increase output verbosity')
    parser.add_argument('--version', action='version', version='Version %s' % __version__)
    args = parser.parse_args()
    try:
        config = yaml.safe_load(open(args.config_file))['scalr']
        configure(config, args)
    except SystemExit:
        raise
    except:
        if args.verbosity > 3:
            raise
        else:
            sys.stderr.write('%s\n' % helper.exc_info())
        sys.exit(1)
    try:
        app = AnalyticsPoller()
        if args.start:
            if helper.check_pid(CONFIG['pid_file']):
                msg = "Application with pid file '%s' already running. Exit" % CONFIG['pid_file']
                LOG.info(msg)
                sys.exit(0)
            if not args.no_daemon:
                helper.daemonize()
            app.start()
        elif args.stop:
            app.stop()
        else:
            print 'Usage %s -h' % sys.argv[0]
    except KeyboardInterrupt:
        LOG.critical('KeyboardInterrupt')
        return
    except SystemExit:
        pass
    except:
        LOG.exception('Something happened and I think I died')
        sys.exit(1)
Esempio n. 5
0
 def _start(self):
     if helper.check_pid(self.config['pid_file']):
         raise exceptions.AlreadyRunningError(self.config['pid_file'])
     LOG.debug('Starting')
     if self.args['--daemon']:
         helper.daemonize()
     helper.create_pid_file(self.config['pid_file'])
     atexit.register(helper.delete_file, self.config['pid_file'])
     LOG.info('Started')
     helper.set_proc_name(self.name)
     self()
     LOG.info('Stopped')
Esempio n. 6
0
def main():
    parser = argparse.ArgumentParser()
    group = parser.add_mutually_exclusive_group()
    group.add_argument('--start', action='store_true', default=False,
            help='start program')
    group.add_argument('--stop', action='store_true', default=False,
            help='stop program')
    parser.add_argument('--no-daemon', action='store_true', default=None,
            help="run in no daemon mode")
    parser.add_argument('-p', '--pid-file', default=None,
            help="pid file")
    parser.add_argument('-l', '--log-file', default=None,
            help="log file")
    parser.add_argument('-c', '--config-file', default='./config.yml',
            help='config file')
    parser.add_argument('-t', '--instances-connection-timeout', type=int, default=None,
            help='instances connection timeout')
    parser.add_argument('-v', '--verbosity', action='count', default=None,
            help='increase output verbosity')
    parser.add_argument('--version', action='version', version='Version %s' % __version__)
    args = parser.parse_args()
    try:
        config = yaml.safe_load(open(args.config_file))['scalr']
        configure(config, args)
    except:
        if args.verbosity > 3:
            raise
        else:
            sys.stderr.write('%s\n' % helper.exc_info())
        sys.exit(1)
    try:
        socket.setdefaulttimeout(CONFIG['instances_connection_timeout'])
        daemon = MsgSender()
        if args.start:
            LOG.info('Start')
            if not helper.check_pid(CONFIG['pid_file']):
                LOG.info('Another copy of process already running. Exit')
                sys.exit(0)
            daemon.start(daemon= not args.no_daemon)
        elif args.stop:
            LOG.info('Stop')
            daemon.stop()
        else:
            print 'Usage %s -h' % sys.argv[0]
    except KeyboardInterrupt:
        LOG.critical('KeyboardInterrupt')
        return
    except SystemExit:
        pass
    except:
        LOG.exception('Something happened and I think I died')
        sys.exit(1)
Esempio n. 7
0
 def _start(self):
     if helper.check_pid(self.config['pid_file']):
         raise exceptions.AlreadyRunningError(self.config['pid_file'])
     LOG.debug(self._starting_msg)
     if self.args['--daemon']:
         helper.daemonize()
     helper.create_pid_file(self.config['pid_file'])
     atexit.register(helper.delete_file, self.config['pid_file'])
     helper.set_proc_name(self.name)
     self.start_dtime = datetime.datetime.utcnow()
     LOG.info('Started')
     self()
     LOG.info('Stopped')
Esempio n. 8
0
 def run(self):
     if self.args.start:
         if helper.check_pid(self.config['pid_file']):
             msg = "Application with pid file '%s' already running. Exit" % config['pid_file']
             LOG.info(msg)
             sys.exit(0)
         if self.args.daemon:
             helper.daemonize()
         self.start()
     elif self.args.stop:
         self.stop()
     else:
         print 'Usage %s -h' % sys.argv[0]
Esempio n. 9
0
 def _start(self):
     if helper.check_pid(self.config['pid_file']):
         raise exceptions.AlreadyRunningError(self.config['pid_file'])
     LOG.debug(self._starting_msg)
     LOG.debug('Log file: {}'.format(self.config['log_file']))
     LOG.debug('Pid file: {}'.format(self.config['pid_file']))
     if self.args['--daemon']:
         helper.daemonize()
     helper.create_pid_file(self.config['pid_file'])
     atexit.register(helper.delete_file, self.config['pid_file'])
     helper.set_proc_name(self.name)
     self.start_dtime = datetime.datetime.utcnow()
     LOG.info('Started')
     self()
     LOG.info('Stopped')
Esempio n. 10
0
def main():
    parser = argparse.ArgumentParser()
    group = parser.add_mutually_exclusive_group()
    group.add_argument("--start", action="store_true", default=False, help="start program")
    group.add_argument("--stop", action="store_true", default=False, help="stop program")
    parser.add_argument("--no-daemon", action="store_true", default=None, help="run in no daemon mode")
    parser.add_argument("-p", "--pid-file", default=None, help="pid file")
    parser.add_argument("-l", "--log-file", default=None, help="log file")
    parser.add_argument("-c", "--config-file", default="./config.yml", help="config file")
    parser.add_argument(
        "-t", "--instances-connection-timeout", type=int, default=None, help="instances connection timeout"
    )
    parser.add_argument("-v", "--verbosity", action="count", default=None, help="increase output verbosity")
    parser.add_argument("--version", action="version", version="Version %s" % __version__)
    args = parser.parse_args()
    try:
        config = yaml.safe_load(open(args.config_file))["scalr"]
        configure(config, args)
    except:
        if args.verbosity > 3:
            raise
        else:
            sys.stderr.write("%s\n" % helper.exc_info())
        sys.exit(1)
    try:
        socket.setdefaulttimeout(CONFIG["instances_connection_timeout"])
        daemon = DBQueueEvent()
        if args.start:
            LOG.info("Start")
            if helper.check_pid(CONFIG["pid_file"]):
                LOG.critical("Another copy of process already running. Exit")
                return
            daemon.start(daemon=not args.no_daemon)
        elif args.stop:
            LOG.info("Stop")
            daemon.stop()
        else:
            print "Usage %s -h" % sys.argv[0]
    except SystemExit:
        pass
    except KeyboardInterrupt:
        LOG.critical("KeyboardInterrupt")
        return
    except:
        LOG.exception("Something happened and I think I died")
        sys.exit(1)
Esempio n. 11
0
    def stop(self):
        LOG.info('Stop')
        if not self.pid_file:
            raise Exception("You must specify pid file")

        try:
            pf = file(self.pid_file, 'r')
            pid = int(pf.read().strip())
            pf.close()
        except IOError:
            LOG.error("Pid file %s dosn't exist" % self.pid_file)
            return
        except ValueError:
            LOG.error("Wrong value in pid file %s" % self.pid_file)
            self._delete_pid_file()
            return

        try:
            if helper.check_pid(self.pid_file):
                helper.kill_ps(pid, child=True)
        except Exception:
            LOG.error(helper.exc_info())
Esempio n. 12
0
    def stop(self):
        LOG.info('Stop')
        if not self.pid_file:
            raise Exception("You must specify pid file")

        try:
            pf = file(self.pid_file, 'r')
            pid = int(pf.read().strip())
            pf.close()
        except IOError:
            LOG.error("Pid file %s dosn't exist" % self.pid_file)
            return
        except ValueError:
            LOG.error("Wrong value in pid file %s" % self.pid_file)
            self._delete_pid_file()
            return

        try:
            if helper.check_pid(self.pid_file):
                helper.kill_ps(pid, child=True)
        except Exception:
            LOG.error(helper.exc_info())
Esempio n. 13
0
def main():
    sys.stderr.write("This script is deprecated. Instead use load_statistics.py\n\n")

    parser = argparse.ArgumentParser()

    group = parser.add_mutually_exclusive_group()
    group.add_argument('--start', action='store_true', default=False, help='start daemon')
    group.add_argument('--stop', action='store_true', default=False, help='stop daemon')
    group.add_argument('--restart', action='store_true', default=False, help='restart daemon')

    parser.add_argument('--no-daemon', action='store_true', default=None,
            help="Run in no daemon mode")
    parser.add_argument('--with-snmp', action='store_true', default=None,
            help="Use snmp")
    parser.add_argument('-i', '--interval', type=int, default=None,
            help="execution interval in seconds. Default is 0 - exec once")
    parser.add_argument('-p', '--pid-file', default=None, help="Pid file")
    parser.add_argument('-l', '--log-file', default=None, help="Log file")
    parser.add_argument('-m', '--metrics', default=None, choices=['cpu', 'la', 'mem', 'net'],
            action='append', help="metrics type for processing")
    parser.add_argument('-c', '--config-file', default='./config.yml', help='config file')
    parser.add_argument('-t', '--instances-connection-timeout', type=int, default=None,
            help='instances connection timeout')
    parser.add_argument('-v', '--verbosity', default=None, action='count',
            help='increase output verbosity [0:4]. Default is 1 - Error')
    parser.add_argument('--version', action='version', version='Version %s' % __version__)

    args = parser.parse_args()

    try:
        config = yaml.safe_load(open(args.config_file))['scalr']
        configure(args, config)
    except:
        if args.verbosity > 3:
            raise
        else:
            sys.stderr.write('%s\n' % helper.exc_info())
        sys.exit(1)

    try:
        socket.setdefaulttimeout(CONFIG['instances_connection_timeout'])
        daemon = StatsPoller()

        if args.start:
            LOG.info('Start')
            if helper.check_pid(CONFIG['pid_file']):
                LOG.info('Another copy of process already running. Exit')
                sys.exit(0)
            daemon.start(daemon= not args.no_daemon)
        elif args.stop:
            LOG.info('Stop')
            daemon.stop()
        elif args.restart:
            LOG.info('Restart')
            daemon.restart(daemon= not args.no_daemon)
        else:
            print 'Usage %s -h' % sys.argv[0]

        LOG.info('Exit')

    except KeyboardInterrupt:
        LOG.critical(helper.exc_info())
        helper.kill_ps(mp.current_process().pid, child=True)
        sys.exit(0)
    except SystemExit:
        pass
    except Exception:
        LOG.critical('Something happened and I think I died')
        LOG.exception('Critical exception')
        sys.exit(1)
Esempio n. 14
0
def main():
    try:
        parser = argparse.ArgumentParser()

        group = parser.add_mutually_exclusive_group()
        group.add_argument('--start', action='store_true', default=False, help='start daemon')
        group.add_argument('--stop', action='store_true', default=False, help='stop daemon')
        group.add_argument('--restart', action='store_true', default=False, help='restart daemon')

        parser.add_argument('-i', '--interval', type=int, default=0,
                help="execution interval in seconds. Default is 0 - exec once")
        parser.add_argument('-p','--pid_file', default=None, help="Pid file")
        parser.add_argument('-m', '--metrics', default=None, choices=['cpu', 'la', 'mem', 'net'],
                action='append', help="metrics type for processing")
        parser.add_argument('-c', '--config_file', default='%s/config.yml' % ETC_DIR,
                            help='config file')
        parser.add_argument('-v', '--verbosity', default=1, action='count',
                help='increase output verbosity [0:4]. Default is 1 - Error')
        parser.add_argument('--version', action='version', version='Version %s'
                            % scalrpy.__version__)

        args = parser.parse_args()

        try:
            cnf = yaml.safe_load(open(args.config_file))['scalr']['stats_poller']
        except IOError as e:
            sys.stderr.write('%s\n' % str(e))
            sys.exit(1)
        except KeyError:
            sys.stderr.write('%s\nYou must define \'stats_poller\' section in config file\n'
                             % str(sys.exc_info()))
            sys.exit(1)

        configure(args, cnf)

    except Exception:
        sys.stderr.write('%s\n' % str(sys.exc_info()))
        sys.exit(1)

    try:
        daemon = StatsPoller(config)

        if args.start:
            if not helper.check_pid(config['pid_file']):
                logger.critical('Another copy of process already running. Exit') 
                sys.exit(0)
            daemon.start()
        elif args.stop:
            daemon.stop()
        elif args.restart:
            daemon.restart()
        else:
            print 'Usage %s -h' % sys.argv[0]

        logger.info('Exit')

    except KeyboardInterrupt:
        logger.critical(sys.exc_info()[0])
        sys.exit(0)
    except SystemExit:
        pass
    except Exception:
        logger.critical('Something happened and I think I died')
        logger.exception('Critical exception')
        sys.exit(1)
Esempio n. 15
0
def main():
    try:
        parser = argparse.ArgumentParser()

        group = parser.add_mutually_exclusive_group()
        group.add_argument('--start',
                           action='store_true',
                           default=False,
                           help='start daemon')
        group.add_argument('--stop',
                           action='store_true',
                           default=False,
                           help='stop daemon')
        group.add_argument('--restart',
                           action='store_true',
                           default=False,
                           help='restart daemon')

        parser.add_argument(
            '-i',
            '--interval',
            type=int,
            default=0,
            help="execution interval in seconds. Default is 0 - exec once")
        parser.add_argument('-p', '--pid_file', default=None, help="Pid file")
        parser.add_argument('-m',
                            '--metrics',
                            default=None,
                            choices=['cpu', 'la', 'mem', 'net'],
                            action='append',
                            help="metrics type for processing")
        parser.add_argument('-c',
                            '--config_file',
                            default='%s/config.yml' % ETC_DIR,
                            help='config file')
        parser.add_argument(
            '-v',
            '--verbosity',
            default=1,
            action='count',
            help='increase output verbosity [0:4]. Default is 1 - Error')
        parser.add_argument('--version',
                            action='version',
                            version='Version %s' % scalrpy.__version__)

        args = parser.parse_args()

        try:
            cnf = yaml.safe_load(open(
                args.config_file))['scalr']['stats_poller']
        except IOError as e:
            sys.stderr.write('%s\n' % str(e))
            sys.exit(1)
        except KeyError:
            sys.stderr.write(
                '%s\nYou must define \'stats_poller\' section in config file\n'
                % str(sys.exc_info()))
            sys.exit(1)

        configure(args, cnf)

    except Exception:
        sys.stderr.write('%s\n' % str(sys.exc_info()))
        sys.exit(1)

    try:
        daemon = StatsPoller(config)

        if args.start:
            if not helper.check_pid(config['pid_file']):
                logger.critical(
                    'Another copy of process already running. Exit')
                sys.exit(0)
            daemon.start()
        elif args.stop:
            daemon.stop()
        elif args.restart:
            daemon.restart()
        else:
            print 'Usage %s -h' % sys.argv[0]

        logger.info('Exit')

    except KeyboardInterrupt:
        logger.critical(sys.exc_info()[0])
        sys.exit(0)
    except SystemExit:
        pass
    except Exception:
        logger.critical('Something happened and I think I died')
        logger.exception('Critical exception')
        sys.exit(1)
Esempio n. 16
0
def main():
    parser = argparse.ArgumentParser()
    group = parser.add_mutually_exclusive_group()
    group.add_argument('--start',
                       action='store_true',
                       default=False,
                       help='start program')
    group.add_argument('--stop',
                       action='store_true',
                       default=False,
                       help='stop program')
    parser.add_argument('--no-daemon',
                        action='store_true',
                        default=None,
                        help="run in no daemon mode")
    parser.add_argument('-p', '--pid-file', default=None, help="pid file")
    parser.add_argument('-l', '--log-file', default=None, help="log file")
    parser.add_argument('-c',
                        '--config-file',
                        default='./config.yml',
                        help='config file')
    parser.add_argument('-t',
                        '--instances-connection-timeout',
                        type=int,
                        default=None,
                        help='instances connection timeout')
    parser.add_argument('-v',
                        '--verbosity',
                        action='count',
                        default=None,
                        help='increase output verbosity')
    parser.add_argument('--version',
                        action='version',
                        version='Version %s' % __version__)
    args = parser.parse_args()
    try:
        config = yaml.safe_load(open(args.config_file))['scalr']
        configure(config, args)
    except:
        if args.verbosity > 3:
            raise
        else:
            sys.stderr.write('%s\n' % helper.exc_info())
        sys.exit(1)
    try:
        socket.setdefaulttimeout(CONFIG['instances_connection_timeout'])
        daemon = MsgSender()
        if args.start:
            LOG.info('Start')
            if helper.check_pid(CONFIG['pid_file']):
                LOG.info('Another copy of process already running. Exit')
                sys.exit(0)
            daemon.start(daemon=not args.no_daemon)
        elif args.stop:
            LOG.info('Stop')
            daemon.stop()
        else:
            print 'Usage %s -h' % sys.argv[0]
    except KeyboardInterrupt:
        LOG.critical('KeyboardInterrupt')
        return
    except SystemExit:
        pass
    except:
        LOG.exception('Something happened and I think I died')
        sys.exit(1)
Esempio n. 17
0
def main():
    parser = argparse.ArgumentParser()
    group = parser.add_mutually_exclusive_group()
    group.add_argument('--start', action='store_true', default=False,
            help='start program')
    group.add_argument('--stop', action='store_true', default=False,
            help='stop program')
    parser.add_argument('--poller', action='store_true', default=None,
            help='poller mode')
    parser.add_argument('--plotter', action='store_true', default=None,
            help='plotter mode')
    parser.add_argument('--no-daemon', action='store_true', default=None,
            help="run in no daemon mode")
    parser.add_argument('--with-snmp', action='store_true', default=None,
            help="use snmp")
    parser.add_argument('-i', '--interval', type=int, default=None,
            help="execution interval in seconds. Default is 120")
    parser.add_argument('-p', '--pid-file', default=None,
            help="pid file")
    parser.add_argument('-l', '--log-file', default=None,
            help="log file")
    parser.add_argument('-m', '--metrics', default=None,
            choices=['cpu', 'la', 'mem', 'net', 'io', 'snum'], action='append',
            help="metrics type for processing")
    parser.add_argument('-c', '--config-file', default='./config.yml',
            help='config file')
    parser.add_argument('-v', '--verbosity', default=None, action='count',
            help='increase output verbosity [0:4]. Default is 1 - Error')
    parser.add_argument('--version', action='version', version='Version %s' % __version__)
    args = parser.parse_args()
    try:
        config = yaml.safe_load(open(args.config_file))['scalr']
        configure(config, args)
    except:
        if args.verbosity > 3:
            raise
        else:
            sys.stderr.write('%s\n' % helper.exc_info())
        sys.exit(1)
    try:
        socket.setdefaulttimeout(CONFIG['instances_connection_timeout'])
        daemon = LoadStatistics()
        if args.start:
            LOG.info('Start')
            if helper.check_pid(CONFIG['pid_file']):
                LOG.info('Another copy of process already running. Exit')
                sys.exit(0)
            daemon.start(daemon=not args.no_daemon)
        elif args.stop:
            LOG.info('Stop')
            daemon.stop()
        else:
            print 'Please use %s -h' % sys.argv[0]
        LOG.info('Exit')
    except KeyboardInterrupt:
        sys.stdout.write('Keyboard interrupt\n')
        helper.kill_ps(multiprocessing.current_process().pid, child=True)
        sys.exit(0)
    except SystemExit:
        pass
    except Exception:
        LOG.exception('Something happened and I think I died')
        sys.exit(1)
Esempio n. 18
0
def main():
    parser = argparse.ArgumentParser()
    group = parser.add_mutually_exclusive_group()
    group.add_argument('--start',
                       action='store_true',
                       default=False,
                       help='start program')
    group.add_argument('--stop',
                       action='store_true',
                       default=False,
                       help='stop program')
    parser.add_argument('--poller',
                        action='store_true',
                        default=None,
                        help='poller mode')
    parser.add_argument('--plotter',
                        action='store_true',
                        default=None,
                        help='plotter mode')
    parser.add_argument('--no-daemon',
                        action='store_true',
                        default=None,
                        help="run in no daemon mode")
    parser.add_argument('--with-snmp',
                        action='store_true',
                        default=None,
                        help="use snmp")
    parser.add_argument('-i',
                        '--interval',
                        type=int,
                        default=None,
                        help="execution interval in seconds. Default is 120")
    parser.add_argument('-p', '--pid-file', default=None, help="pid file")
    parser.add_argument('-l', '--log-file', default=None, help="log file")
    parser.add_argument('-m',
                        '--metrics',
                        default=None,
                        choices=['cpu', 'la', 'mem', 'net', 'io', 'snum'],
                        action='append',
                        help="metrics type for processing")
    parser.add_argument('-c',
                        '--config-file',
                        default='./config.yml',
                        help='config file')
    parser.add_argument(
        '-v',
        '--verbosity',
        default=None,
        action='count',
        help='increase output verbosity [0:4]. Default is 1 - Error')
    parser.add_argument('--version',
                        action='version',
                        version='Version %s' % __version__)
    args = parser.parse_args()
    try:
        config = yaml.safe_load(open(args.config_file))['scalr']
        configure(config, args)
    except:
        if args.verbosity > 3:
            raise
        else:
            sys.stderr.write('%s\n' % helper.exc_info())
        sys.exit(1)
    try:
        socket.setdefaulttimeout(CONFIG['instances_connection_timeout'])
        daemon = LoadStatistics()
        if args.start:
            LOG.info('Start')
            if helper.check_pid(CONFIG['pid_file']):
                LOG.info('Another copy of process already running. Exit')
                sys.exit(0)
            daemon.start(daemon=not args.no_daemon)
        elif args.stop:
            LOG.info('Stop')
            daemon.stop()
        else:
            print 'Please use %s -h' % sys.argv[0]
        LOG.info('Exit')
    except KeyboardInterrupt:
        sys.stdout.write('Keyboard interrupt\n')
        helper.kill_ps(multiprocessing.current_process().pid, child=True)
        sys.exit(0)
    except SystemExit:
        pass
    except Exception:
        LOG.exception('Something happened and I think I died')
        sys.exit(1)
Esempio n. 19
0
def main():
    try:
        parser = argparse.ArgumentParser()

        group = parser.add_mutually_exclusive_group()

        group.add_argument('--start',
                           action='store_true',
                           default=False,
                           help='start daemon')
        group.add_argument('--stop',
                           action='store_true',
                           default=False,
                           help='stop daemon')
        group.add_argument('--restart',
                           action='store_true',
                           default=False,
                           help='restart daemon')

        parser.add_argument('-p', '--pid_file', default=None, help="Pid file")
        parser.add_argument('-c',
                            '--config_file',
                            default='%s/config.yml' % ETC_DIR,
                            help='config file')
        parser.add_argument(
            '-v',
            '--verbosity',
            action='count',
            default=1,
            help='increase output verbosity [0:4]. Default is 1 - ERROR')
        parser.add_argument('--version',
                            action='version',
                            version='Version %s' % scalrpy.__version__)

        args = parser.parse_args()

        try:
            cnf = yaml.safe_load(open(args.config_file))['scalr']['msg_sender']
        except IOError as e:
            sys.stderr.write('%s\n' % str(e))
            sys.exit(1)
        except KeyError:
            sys.stderr.write(
                '%s\nYou must define \'msg_sender\' section in config file\n' %
                str(sys.exc_info()))
            sys.exit(1)

        configure(args, cnf)

    except Exception:
        sys.stderr.write('%s\n' % str(sys.exc_info()))
        sys.exit(1)

    try:
        daemon = Messaging(config)

        if args.start:
            if not helper.check_pid(config['pid_file']):
                logger.critical(
                    'Another copy of process already running. Exit')
                sys.exit(0)
            daemon.start()
        elif args.stop:
            daemon.stop()
        elif args.restart:
            daemon.restart()
        else:
            print 'Usage %s -h' % sys.argv[0]

    except SystemExit:
        pass
    except Exception:
        logger.critical('Something happened and I think I died')
        logger.exception('Critical exception')
        sys.exit(1)
Esempio n. 20
0
def main():
    parser = argparse.ArgumentParser()
    group = parser.add_mutually_exclusive_group()
    group.add_argument('--start',
                       action='store_true',
                       default=False,
                       help='start program')
    group.add_argument('--stop',
                       action='store_true',
                       default=False,
                       help='stop program')
    parser.add_argument('--no-daemon',
                        action='store_true',
                        help='run in no daemon mode')
    parser.add_argument('--email-from',
                        default=None,
                        help='email address from')
    parser.add_argument('--email-to', default=None, help='email address to')
    parser.add_argument('--warning-threshold',
                        type=int,
                        default=None,
                        help='warning threshold')
    parser.add_argument('--critical-threshold',
                        type=int,
                        default=None,
                        help='critical threshold')
    parser.add_argument('-i',
                        '--interval',
                        type=int,
                        default=None,
                        help="execution interval in seconds")
    parser.add_argument('-p', '--pid-file', default=None, help='pid file')
    parser.add_argument('-l', '--log-file', default=None, help='log file')
    parser.add_argument('-c',
                        '--config-file',
                        default='./config.yml',
                        help='config file')
    parser.add_argument(
        '-v',
        '--verbosity',
        action='count',
        default=None,
        help='increase output verbosity [0:4]. Default is 1 - ERROR')
    parser.add_argument('--version',
                        action='version',
                        version='Version %s' % __version__)
    args = parser.parse_args()
    try:
        config = yaml.safe_load(open(args.config_file))['scalr']
        configure(config, args)
    except:
        if args.verbosity > 3:
            raise
        else:
            sys.stderr.write('%s\n' % helper.exc_info())
        sys.exit(1)
    try:
        daemon = MessagingAlert()
        if args.start:
            LOG.info('Start')
            if helper.check_pid(CONFIG['pid_file']):
                LOG.info('Another copy of process already running. Exit')
                sys.exit(0)
            daemon.start(daemon=not args.no_daemon)
        elif args.stop:
            LOG.info('Stop')
            daemon.stop()
        else:
            print 'Usage %s -h' % sys.argv[0]
    except KeyboardInterrupt:
        LOG.critical('KeyboardInterrupt')
        sys.exit(0)
    except SystemExit:
        pass
    except:
        LOG.exception('Something happened and I think I died')
        sys.exit(1)
Esempio n. 21
0
def main():
    sys.stderr.write(
        "This script is deprecated. Instead use load_statistics.py\n\n")

    parser = argparse.ArgumentParser()

    group = parser.add_mutually_exclusive_group()
    group.add_argument('--start',
                       action='store_true',
                       default=False,
                       help='start daemon')
    group.add_argument('--stop',
                       action='store_true',
                       default=False,
                       help='stop daemon')
    group.add_argument('--restart',
                       action='store_true',
                       default=False,
                       help='restart daemon')

    parser.add_argument('--no-daemon',
                        action='store_true',
                        default=None,
                        help="Run in no daemon mode")
    parser.add_argument('--with-snmp',
                        action='store_true',
                        default=None,
                        help="Use snmp")
    parser.add_argument(
        '-i',
        '--interval',
        type=int,
        default=None,
        help="execution interval in seconds. Default is 0 - exec once")
    parser.add_argument('-p', '--pid-file', default=None, help="Pid file")
    parser.add_argument('-l', '--log-file', default=None, help="Log file")
    parser.add_argument('-m',
                        '--metrics',
                        default=None,
                        choices=['cpu', 'la', 'mem', 'net'],
                        action='append',
                        help="metrics type for processing")
    parser.add_argument('-c',
                        '--config-file',
                        default='./config.yml',
                        help='config file')
    parser.add_argument('-t',
                        '--instances-connection-timeout',
                        type=int,
                        default=None,
                        help='instances connection timeout')
    parser.add_argument(
        '-v',
        '--verbosity',
        default=None,
        action='count',
        help='increase output verbosity [0:4]. Default is 1 - Error')
    parser.add_argument('--version',
                        action='version',
                        version='Version %s' % __version__)

    args = parser.parse_args()

    try:
        config = yaml.safe_load(open(args.config_file))['scalr']
        configure(args, config)
    except:
        if args.verbosity > 3:
            raise
        else:
            sys.stderr.write('%s\n' % helper.exc_info())
        sys.exit(1)

    try:
        socket.setdefaulttimeout(CONFIG['instances_connection_timeout'])
        daemon = StatsPoller()

        if args.start:
            LOG.info('Start')
            if helper.check_pid(CONFIG['pid_file']):
                LOG.info('Another copy of process already running. Exit')
                sys.exit(0)
            daemon.start(daemon=not args.no_daemon)
        elif args.stop:
            LOG.info('Stop')
            daemon.stop()
        elif args.restart:
            LOG.info('Restart')
            daemon.restart(daemon=not args.no_daemon)
        else:
            print 'Usage %s -h' % sys.argv[0]

        LOG.info('Exit')

    except KeyboardInterrupt:
        LOG.critical(helper.exc_info())
        helper.kill_ps(mp.current_process().pid, child=True)
        sys.exit(0)
    except SystemExit:
        pass
    except Exception:
        LOG.critical('Something happened and I think I died')
        LOG.exception('Critical exception')
        sys.exit(1)