def __init__(self): self.app = None self.resources = {} load_resources(self) self.reset() self.scene_width = BLOCK_SIZE[0]*GAME_AREA_SIZE[0] self.scene_height = BLOCK_SIZE[1]*GAME_AREA_SIZE[1]
def __init__(self, monitor_name, config=None): self.logger = logging.getLogger(self.__class__.__name__) self.apps = {} self.name = monitor_name self.available_resources = load_resources() self.config = config self.limits = dict(self.config.limits) # self.resources = [self.available_resources[0](self)] + \ self.resources = \ [resource_class(self, policy=self.config.policies.get(resource_class.name.lower(), None),\ usage=self.config.usage.get(resource_class.name.lower(), None),\ limit=self.config.limit.get(resource_class.name.lower(), None)) for resource_class in self.available_resources if resource_class.name.lower() in self.config.resources] self.limits[self.DEFAULT_LIMIT_NAME] = self._get_default_limit() for tname in self.resources[0].list_apps(): # TODO find a way to restore previous limits ? Perhaps keep a # runtime file somewhere and reload it ? limit = self._get_default_limit() t = App(tname, limit, self._get_init_usage()) self.apps[tname] = t
def _run_squadron(squadron_dir, squadron_state_dir, node_name, dont_rollback, force, dry_run): """ Runs apply to set up the temp directory, and then runs commit if dry_run is false. Keyword arguments: squadron_dir -- where the Squadron description dir is squadron_state_dir -- where Squadron should store its state between runs node_name -- what this node is called dont_rollback -- if true, doesn't automatically rollback to the previous version force -- treat all files as created, always deploy dry_run -- whether or not to apply changes """ log.debug('entering _run_squadron') try: run_info = runinfo.get_last_run_info(squadron_state_dir, dry_run) last_run_dir = run_info['dir'] last_run_sum = run_info['checksum'] last_commit = run_info['commit'] except KeyError: log.debug("Looks like info.json is empty or malformated") #Is this bad? last_run_dir = None last_run_sum = {} last_commit = None if not dry_run: prefix = 'sq-' tempdir = os.path.join(squadron_state_dir, 'tmp') makedirsp(tempdir) new_dir = make_temp(tempdir, prefix, last_run_dir) else: new_dir = make_temp(tempfile.gettempdir(), 'squadron') resources = load_resources(squadron_dir) log.info("Staging directory: %s", new_dir) result = commit.apply(squadron_dir, node_name, new_dir, resources, last_run_dir, dry_run) log.debug("commit.apply returned: %s", result) # Is this different from the last time we ran? this_run_sum = walk_hash(new_dir) log.debug("Last run sum: %s", last_run_sum) log.debug("This run sum: %s", this_run_sum) paths_changed, new_paths = _get_hash_diff(last_run_sum, this_run_sum, force) if this_run_sum != last_run_sum or force: if not dry_run: _deploy(squadron_dir, new_dir, last_run_dir, result, this_run_sum, last_run_sum, last_commit, dont_rollback, resources, force) info = {'dir': new_dir, 'commit':result, 'checksum': this_run_sum} log.debug("Writing run info to %s: %s", squadron_state_dir, info) runinfo.write_run_info(squadron_state_dir, info) log.info("Successfully deployed to %s", new_dir) return info else: log.info("Dry run changes") actions, reactions = _get_action_reaction(squadron_dir, result) log.info("%s actions, %s reactions", len(actions), len(reactions)) log.debug("Actions are: %s", actions) log.debug("Reactions are: %s", reactions) log.info("===============") log.info("Paths changed:") for path in paths_changed: log.info("\t%s", path) log.info("\nNew paths:") for path in new_paths: log.info("\t%s", path) else: if not dry_run: _run_actions(squadron_dir, new_dir, result, resources, paths_changed, new_paths) _run_tests(squadron_dir, result) log.info("Nothing changed.") return None
from flask import Flask from flask_sslify import SSLify from resources import load_resources app = Flask(__name__, static_folder='static', static_url_path='', template_folder='templates') sslify = SSLify(app) app.config.from_object('conf.settings') app.secret_key = app.config['APP_SECRET_KEY'] load_resources(app) if '__main__' == __name__: app.run( host=app.config['HOST'], port=app.config['PORT'], debug=app.config['DEBUG'] )