def show(args): """Show the details of a resource.""" if args.environment: url = "%s/%s/%s/environment/%s/" % ( args.base_url, args.type, args.name, args.environment) else: url = "%s/%s/%s/" % ( args.base_url, args.type, args.name) context = {"username": args.username, "password": args.password} try: response = request( url, method='GET', context=context) except: pass if response.content: sys.stdout.write(json.dumps(json.loads(response.content), sort_keys=True, indent=4))
def delete(args): """Delete a resource.""" if args.environment: url = "%s/%s/%s/environment/%s/" % ( args.base_url, args.type, args.name, args.environment) else: url = "%s/%s/%s/" % (args.base_url, args.type, args.name) context = {"username": args.username, "password": args.password} try: response = request( url, method='DELETE', context=context) except: pass if response.status_code == 204: sys.stdout.write("%s %s deleted" % ( args.type.capitalize(), args.name)) elif response.status_code == 404: sys.stderr.write("%s %s not found" % ( args.type.capitalize(), args.name)) elif response.status_code < 500: sys.stderr.write("Something went wrong...")
def list(args): """List all resources of a type.""" url = "%s/%s/" % (args.base_url, args.type) context = {"username": args.username, "password": args.password} try: response = request( url, method='GET', context=context) except: sys.stderr.write("Could not connect to the API...") sys.exit(2) if response.status_code in [200, 201, 204]: if response.content: response_dict = json.loads(response.content) for item in response_dict["items"]: sys.stdout.write(item['name'] + "\n") else: sys.stderr.write("Something went wrong...")
def create(args): """Create a new resource.""" values = vars(args) values.pop('func') if args.type == "app": environment = { "requirements_file": "requirements.txt", "cname_records": [], "name": args.environment, "backends": [ { "count": 1, "region": "eu1" } ], "flavor": args.flavor, } message = { "environments": [environment], "name": args.name, "repository": { "location": args.location, "name": args.environment, "variant": "git" }, "variant": "python" } if args.flavor == "wsgi": message["environment"] = { "wsgiflavor": { "wsgi_project_root": args.root, "wsgi_entry_point": args.wsgi_entry } } elif args.flavor == "django": message["environment"] = { "djangoflavor": { "django_project_root": args.root, "django_settings_module": args.django_settings, "inject_db": args.django_skip_inject_db } } elif args.type == "repository": message = { "name": args.name, "location": args.location, "variant": "git" } url = "%s/%s/" % (args.base_url, args.type) context = {"username": args.username, "password": args.password} try: response = request( url, method='POST', message=json.dumps(message), context=context) except: pass try: if response.status_code in [200, 201, 204] : sys.stdout.write("%s %s created" % ( args.type.capitalize(), args.name)) elif response.status_code == 405: sys.stderr.write("%s %s already exists" % ( args.type.capitalize(), args.name)) elif response.status_code < 500: sys.stderr.write("Something went wrong...") except: sys.stderr.write(response['error'])