コード例 #1
0
ファイル: dockervisops.py プロジェクト: VisualOps/cli
def deploy(config, actions):
    out = {}
    for action in actions:
        if hasattr(eval(action), '__call__'):
            out[action], failure = eval(action)(config, **actions[action])
            if failure:
                break
    app = {}
    db.delete_app_info( config["appname"] )
    for container in (out.get("running",[])+out.get("start_all",[])):
        name = container.get("Name").replace("/","")
        print "--> Container successfully started %s."%name
        db.create_container(config["appname"], container.get("Id"), name)
        app[name] = container
    return app
コード例 #2
0
ファイル: clone.py プロジェクト: VisualOps/cli
            try:
                self.log.debug( "> load data from %s" % app_file )
                stream = open(app_file, 'r')
                app = yaml.load(stream)
            except Exception:
                raise RuntimeError('Load yaml error!')

            config = utils.gen_config(app.get("name","default-app"))
            is_succeed = False
            try:
                app['src_app_id'] = app_id
                app["name"] = config["appname"]
                self.clone_app(config, app)
                #insert app to local db
                db.create_app(config["appname"], config["appname"], app_id, app['region'], base64.b64encode(utils.dict2str(app)) )
                is_succeed = True
            except Result,e:
                print '!!!Expected error occur %s' % str(e.format())
            except Exception,e:
                print '!!!Unexpected error occur %s' % str(e)
            finally:
                if not is_succeed:
                    self.log.debug( '> Clear failed app info in local db' )
                    db.delete_app_info( config["appname"] )
                    raise RuntimeError('Clone app to local failed!')

    # Clone app
    def clone_app(self, config, app_dict):
        run_stack(config, app_dict)