예제 #1
0
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))
예제 #2
0
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...")
예제 #3
0
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...")
예제 #4
0
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'])