# Buggy code
def list_input_endpoints(kwargs=None, conn=None, call=None):
    """
    .. versionadded:: 2015.8.0

    List input endpoints associated with the deployment

    CLI Example:

    .. code-block:: bash

        salt-cloud -f list_input_endpoints my-azure service=myservice deployment=mydeployment
    """
    if call != "function":
        raise SaltCloudSystemExit(
            "The list_input_endpoints function must be called with -f or --function."
        )

    if kwargs is None:
        kwargs = {}

    if "service" not in kwargs:
        raise SaltCloudSystemExit('A service name must be specified as "service"')

    if "deployment" not in kwargs:
        raise SaltCloudSystemExit('A deployment name must be specified as "deployment"')

    path = "services/hostedservices/{0}/deployments/{1}".format(
        kwargs["service"],
        kwargs["deployment"],
    )
    data = query(path)

    ret = {}
    for item in data:
        if "Role" not in item:
            continue
        input_endpoint = item["Role"]["ConfigurationSets"]["ConfigurationSet"][
            "InputEndpoints"
        ]["InputEndpoint"]
        if not isinstance(input_endpoint, list):
            input_endpoint = [input_endpoint]
        for endpoint in input_endpoint:
            ret[endpoint["Name"]] = endpoint
    return ret


# Traceback (TypeError)
# salt-cloud -f add_input_endpoint az-mysetup name=http    port=80    protocol=tcp deployment=myproject service=myproject role=myproject

Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/salt/cloud/cli.py", line 245, in run
self.function_provider, self.function_name, kwargs
File "/usr/local/lib/python2.7/site-packages/salt/cloud/__init__.py", line 1525, in do_function
call='function', kwargs=kwargs
File "/usr/local/lib/python2.7/site-packages/salt/cloud/clouds/msazure.py", line 2190, in add_input_endpoint
activity='add',
File "/usr/local/lib/python2.7/site-packages/salt/cloud/clouds/msazure.py", line 2109, in update_input_endpoint
old_endpoints = list_input_endpoints(kwargs, call='function')
File "/usr/local/lib/python2.7/site-packages/salt/cloud/clouds/msazure.py", line 2013, in list_input_endpoints
for item in data:
TypeError: 'NoneType' object is not iterable

# Fixed code
def list_input_endpoints(kwargs=None, conn=None, call=None):
    """
    .. versionadded:: 2015.8.0

    List input endpoints associated with the deployment

    CLI Example:

    .. code-block:: bash

        salt-cloud -f list_input_endpoints my-azure service=myservice deployment=mydeployment
    """
    if call != "function":
        raise SaltCloudSystemExit(
            "The list_input_endpoints function must be called with -f or --function."
        )

    if kwargs is None:
        kwargs = {}

    if "service" not in kwargs:
        raise SaltCloudSystemExit('A service name must be specified as "service"')

    if "deployment" not in kwargs:
        raise SaltCloudSystemExit('A deployment name must be specified as "deployment"')

    path = "services/hostedservices/{0}/deployments/{1}".format(
        kwargs["service"],
        kwargs["deployment"],
    )

    data = query(path)
    if data is None:
        raise SaltCloudSystemExit(
            "There was an error connecting to the Azure API. Check your credentials."
        )

    ret = {}
    for item in data:
        if "Role" not in item:
            continue
        input_endpoint = item["Role"]["ConfigurationSets"]["ConfigurationSet"][
            "InputEndpoints"
        ]["InputEndpoint"]
        if not isinstance(input_endpoint, list):
            input_endpoint = [input_endpoint]
        for endpoint in input_endpoint:
            ret[endpoint["Name"]] = endpoint
    return ret