(cls, json_resp)
return neutron_endpoint
Parse the service catalog returned by the Identity API for an endpoint matching the Neutron service
        Sends a CRITICAL service check when none are found registered in the Catalog
Parse the service catalog returned by the Identity API for an endpoint matching the Neutron service
        Sends a CRITICAL service check when none are found registered in the Catalog
Parse the service catalog returned by the Identity API for an endpoint matching the Neutron service Sends a CRITICAL service check when none are found registered in the Catalog
def get_neutron_endpoint(cls, json_resp):
        """
        Parse the service catalog returned by the Identity API for an endpoint matching the Neutron service
        Sends a CRITICAL service check when none are found registered in the Catalog
        """
        catalog = json_resp.get('token', {}).get('catalog', [])
        match = 'neutron'

        neutron_endpoint = None
        for entry in catalog:
            if entry['name'] == match or 'Networking' in entry['name']:
                valid_endpoints = {}
                for ep in entry['endpoints']:
                    interface = ep.get('interface', '')
                    if interface in ['public', 'internal']:
                        valid_endpoints[interface] = ep['url']

                if valid_endpoints:
                    # Favor public endpoints over internal
                    neutron_endpoint = valid_endpoints.get("public", valid_endpoints.get("internal"))
                    break
        else:
            raise MissingNeutronEndpoint()

        return neutron_endpoint
def get_neutron_endpoint ( cls , json_resp ) : catalog = json_resp . get ( 'token' , { } ) . get ( 'catalog' , [ ] ) match = 'neutron' neutron_endpoint = None for entry in catalog : if entry [ 'name' ] == match or 'Networking' in entry [ 'name' ] : valid_endpoints = { } for ep in entry [ 'endpoints' ] : interface = ep . get ( 'interface' , '' ) if interface in [ 'public' , 'internal' ] : valid_endpoints [ interface ] = ep [ 'url' ] if valid_endpoints : # Favor public endpoints over internal neutron_endpoint = valid_endpoints . get ( "public" , valid_endpoints . get ( "internal" ) ) break else : raise MissingNeutronEndpoint ( ) return neutron_endpoint