def _create_resource(self, args, global_args, resource): """Create a resource""" self._output_formatter(global_args) try: resource.save(username=env.username, password=env.password) except HttpBackendError as e: self.out.error(json.loads(e.args[1])) sys.exit(1) if global_args.raw: self.out.info(Serializer.dump(resource)) else: self.out.info("--> %s %s is created!" % ( args.service.capitalize() if args.service else 'App', 'for %s' % args.appname if args.service else args.appname)) self.out.info("--> Details of the %s:\n" % ( args.service if args.service else 'app')) self._show_resource(args, global_args) if not args.service: self.out.info("\n--> Don't forget to create a database if you need one!") self.out.info("--> You can now deploy the app with: thirty " "deploy %s" % args.appname) else: self.out.info("\n--> Note: You probably need to deploy the app again")
def it_serializes_a_collection_correctly(self): """Dump the collection in this weird json format.""" instances = Instances() instances.add(Instance({'id': 1})) eq_(json.dumps(self.expected_collection), DropinJsonSerializer.dump(instances))
def it_populates_a_document_from_a_serialized_string(self): """Load a populated document from a json string.""" obj = App() app = DropinJsonSerializer.load(obj, json.dumps(self.fixture)) eq_(self.fixture, app.render()) eq_(app, obj)
def do_app_worker(self, args, global_args): """Update the configuration of a worker.""" if global_args.raw: out = utils.RawOutputFormatter() else: out = utils.ResourceOutputFormatter() env.service = args.service env.appname = args.appname Worker = utils._get_document("Worker") worker = Worker({'name': args.appname}) try: worker.fetch(username=global_args.username, password=global_args.password) except HttpBackendError as e: out.error(json.loads(e.args[1])) sys.exit(1) if args.add_var: Variable = utils._get_document('EnvironmentVariable') for e in args.add_var: item = e.split("=") variable = Variable({'name': item[0], 'value': item[1]}) worker.envvars.add(variable) if args.del_var: new_collection = [] for e in args.del_var: for doc in worker.envvars.collection_set: if e != doc.name: new_collection.append(doc) worker.envvars.collection_set = new_collection if args.instances: worker.instances = args.instances try: worker.save(username=global_args.username, password=global_args.password) except HttpBackendError as e: out.error(json.loads(e.args[1])) sys.exit(1) if global_args.raw: out.info(Serializer.dump(worker)) else: out.info("--> %s %s updated!" % (args.service.capitalize(), args.appname)) out.info("--> New %s configuration:\n" % args.service) output = ShowAction() output.do_show(args, global_args)
def _update_resource(self, args, global_args, resource): """Update a resource with an additional resource""" self._output_formatter(global_args) try: resource.save(username=env.username, password=env.password) except HttpBackendError as e: self.out.error(json.loads(e.args[1])) sys.exit(1) if global_args.raw: self.out.info(Serializer.dump(resource)) else: self.out.info("--> %s %s is created!" % (args.service.capitalize(), args.appname)) self.out.info("--> Details of the %s:\n" % args.service) self._show_resource(args, global_args)
def do_app_repository(self, args, global_args): """Update the configuration of a repository.""" if global_args.raw: out = utils.RawOutputFormatter() else: out = utils.ResourceOutputFormatter() context = {} env.service = args.service env.appname = args.appname Repository = utils._get_document("Repository") repository = Repository({'name': args.appname}, context=context) try: repository.fetch(username=global_args.username, password=global_args.password) except HttpBackendError as e: out.error(json.loads(e.args[1])) sys.exit(1) if args.location: repository.location = args.location if args.ssh_key: with open(args.ssh_key, 'r') as f: repository.ssh_key = base64.b64encode(f.read()) try: repository.save(username=global_args.username, password=global_args.password) except HttpBackendError as e: out.error(json.loads(e.args[1])) sys.exit(1) if global_args.raw: out.info(Serializer.dump(repository)) else: out.info("--> %s %s updated!" % (args.service.capitalize(), repository.name)) out.info("--> New %s configuration:\n" % args.service) output = ShowAction() output.do_show(args, global_args)
def it_serializes_a_document_correctly(self): """Dump the document in this weird json format.""" app = App(self.fixture) eq_(json.dumps(self.expected), DropinJsonSerializer.dump(app))
def do_app(self, args, global_args): """Update the configuration of an app.""" if global_args.raw: out = utils.RawOutputFormatter() else: out = utils.ResourceOutputFormatter() env.appname = args.appname App = utils._get_document("App") app = App({'name': args.appname}) try: app.fetch(username=global_args.username, password=global_args.password) except HttpBackendError as e: out.error(json.loads(e.args[1])) sys.exit(1) if args.instances: app.instances = args.instances if args.add_cname: Cname = utils._get_document('CnameRecord') for c in args.add_cname: cname = Cname({'record': c}) app.cnames.add(cname) if args.del_cname: for c in args.del_cname: app.cnames.delete({'record': c}) if args.repo_commit: app.repo_commit = args.repo_commit if args.repository: app.repository.name = args.repository if args.add_var: Variable = utils._get_document('EnvironmentVariable') for e in args.add_var: item = e.split("=") variable = Variable({'name': item[0], 'value': item[1]}) app.envvars.add(variable) if args.del_var: new_collection = [] for e in args.del_var: for doc in app.envvars.collection_set: if e != doc.name: new_collection.append(doc) app.envvars.collection_set = new_collection try: app.save(username=global_args.username, password=global_args.password) except HttpBackendError as e: out.error(json.loads(e.args[1])) sys.exit(1) if global_args.raw: out.info(Serializer.dump(app)) else: out.info("--> App %s updated!" % (args.appname)) out.info("--> New app configuration:\n") output = ShowAction() output.do_show(args, global_args)