def parse_id_and_ns()

in src/openwhisk/openwhisk.py [0:0]


def parse_id_and_ns(name):
    name = name.strip()
    if len(name) == 0:
        raise Exception('Name is not specified')
    parts = name.split('/')

    n = len(parts) - 1
    leadingSlash = name[0] == '/' if len(name) > 0 else False

    if n == 0 or (n == 1 and not leadingSlash):
        return { 'namespace': default_namespace, 'id': name }

    # checking for `/namespace/resource_name` and `namespace/package/resource_name`
    if n == 2:
        if leadingSlash:
            return { 'namespace': parts[1], 'id': parts[2] }
        else:
            return { 'namespace': parts[0], 'id': parts[1]+'/'+parts[2] }

    # checking for `/namespace/package/resource_name`
    if n == 3 and leadingSlash:
        return { 'namespace': parts[1], 'id': parts[2]+'/'+parts[3] }

    raise Exception(invalid_resource_error)