예제 #1
0
    def __init__(self, driver, run):
        """Init the snitcher with a driver instance.

        :param driver: Instance of driver
        :type driver: neo4j.v1.GraphDatabase.driver
        :param run: Run information object
        :type run: cloud_snitch.runs.Run
        """
        self.driver = driver
        self.run = run
        self.time_in_ms = utils.milliseconds(run.completed)
예제 #2
0
def sync_run(driver, run):
    """Syncs an individuals run.

    :param run: Run to sync
    :type run: runs.Run
    """
    check_run_time(driver, run)
    run.start()
    logger.info("Starting collection on {}".format(run.path))
    consume(driver, run)
    logger.info("Run completion time: {}".format(
        utils.milliseconds(run.completed)))
    run.finish()
예제 #3
0
def sync(paths):
    with DriverContext() as driver:
        for path in paths:
            run = runs.Run(path)
            with lock_environment(driver, run):
                try:
                    check_run_time(driver, run)
                    run.start()
                    logger.info("Starting collection on {}".format(run.path))
                    consume(driver, run)
                    logger.info("Run completion time: {}".format(
                        utils.milliseconds(run.completed)))
                    run.finish()
                except RunAlreadySyncedError as e:
                    logger.info(e)
                except RunInvalidStatusError as e:
                    logger.info(e)
                except RunContainsOldDataError as e:
                    logger.info(e)
                except Exception:
                    logger.exception('Unable to complete run.')
                    run.error()
예제 #4
0
def sync_run(driver, run):
    """Syncs an individuals run.

    :param run: Run to sync
    :type run: runs.Run
    """
    try:
        check_run_time(driver, run)
        run.start()
        logger.info("Starting collection on {}".format(run.path))
        consume(driver, run)
        logger.info("Run completion time: {}".format(
            utils.milliseconds(run.completed)))
        run.finish()
    except RunAlreadySyncedError as e:
        logger.info(e)
    except RunInvalidStatusError as e:
        logger.info(e)
    except RunContainsOldDataError as e:
        logger.info(e)
    except Exception:
        logger.exception('Unable to complete run.')
    run.error()