def _generate_request_url()

in ec2stack/providers/cloudstack/requester.py [0:0]


def _generate_request_url(args, secretkey):
    """
    Generates a request URL.

    @param args: Request payload.
    @param secretkey: User's secret key.
    @return: Request URL.
    """
    keys = sorted(args.keys())
    values = map(args.get, keys)

    request_url = urlencode(
        list(
            zip(keys, values)
        )
    )

    request_url = request_url.replace('%5B', '[')
    request_url = request_url.replace('%5D', ']')

    signature = _generate_signature(request_url, secretkey)

    request_url += '&signature=%s' % signature

    request_url = "%s://%s:%s%s?%s" % (
        current_app.config['CLOUDSTACK_PROTOCOL'],
        current_app.config['CLOUDSTACK_HOST'],
        current_app.config['CLOUDSTACK_PORT'],
        current_app.config['CLOUDSTACK_PATH'],
        request_url
    )

    return request_url