def sync_database(root_path, dump_mysql, server=DEFAULT_SERVER, sync_data=False, reset=False, remote=False): appcfg = load_app_config(root_path) devcfg = load_dev_config(root_path) if 'mysql' not in devcfg: logger.info("No MySQL configuration found in dev.yaml.") return 'succeeded' logger.info("Dumping database to %s...", dump_mysql) with open(dump_mysql, 'w') as dumpfile: devcfg['mysql'].setdefault('use_unicode', False) devcfg['mysql'].setdefault('charset', 'utf8') conn = MySQLdb.connect(**devcfg['mysql']) try: struct, data = dumps(dumpfile, conn, sync_data) appname = appcfg['application'] finally: conn.close() if remote: logger.info("Syncing database to servers...") try: result = verify(appname, struct, data, reset, server) except: logger.exception('Error occured') return 'failed' return result
def get_app_mysql_config(): from sheep.util import load_dev_config devcfg = load_dev_config(os.environ['SHEEP_APPROOT']) or {} cfg = { 'host': 'localhost', 'port': 3306, 'user': getuser(), 'passwd': '', 'db': os.environ['SHEEP_APPNAME'], } cfg.update(devcfg.get('mysql', {})) return cfg
def dev_main(args): root_path = args.root_path or find_app_root() devcfg = load_dev_config(root_path) if 'mysql' not in devcfg: logger.fatal("No mysql defined in dev.yaml") return 1 cfg = devcfg['mysql'] cmd = ['mysql'] if 'host' in cfg: cmd += ['-h', cfg['host']] if 'port' in cfg: cmd += ['-P', str(cfg['port'])] if 'user' in cfg: cmd += ['-u', cfg['user']] if 'passwd' in cfg: cmd += ['-p%s' % cfg['passwd']] cmd += [cfg['db']] return call(cmd)
def main(args): approot = find_app_root() devcfg = load_dev_config(approot) if not os.path.exists(os.path.join(approot, TEST_YAML)): create_test_yaml(approot, devcfg, TEST_YAML) if 'mysql' in devcfg: sync_database(approot, 'db_dumps.sql', sync_data=False, remote=False) if not os.path.exists(os.path.join(approot, 'permdir_test')): os.mkdir(os.path.join(approot, 'permdir_test')) os.environ['SHEEP_DEV_YAML'] = TEST_YAML nosetests = load_entry_point('nose', 'console_scripts', 'nosetests') sys.argv = ['sheep test'] if os.path.exists(os.path.join(approot, 'nose.cfg')): sys.argv += ['-c', os.path.join(approot, 'nose.cfg')] sys.argv += args.arg activate_app(approot) return nosetests()
#!/usr/bin/python # encoding: UTF-8 """API for permanent dir. Public module variables: permdir -- a string containing path to the directory holding permanent files. """ __all__ = ['permdir'] import os from sheep.util import find_app_root approot = os.environ.get('SHEEP_APPROOT') or find_app_root(raises=False) or '' if os.environ.get('SHEEP_ENV', '').startswith('SDK'): from sheep.util import load_dev_config devcfg = load_dev_config(approot) permdir = os.path.join(approot, devcfg.get('permdir', 'permdir')) else: permdir = os.path.join(approot, 'permdir')