class MsoNeutronUtils extends MsoCommonUtils {

    public NetworkInfo queryNetwork(String networkNameOrId, String tenantId, String cloudSiteId) throws MsoException {
        logger.debug("In queryNetwork");

        // Obtain the cloud site information
        CloudSite cloudSite =
                cloudConfig.getCloudSite(cloudSiteId).orElseThrow(() -> new MsoCloudSiteNotFound(cloudSiteId));

        Quantum neutronClient = getNeutronClient(cloudSite, tenantId);

        // Check if the network exists and return its info
        try {
            Network network = findNetworkByNameOrId(neutronClient, networkNameOrId);
            if (network == null) {
                logger.debug("Query Network: {} not found in tenant {}", networkNameOrId, tenantId);
                return null;
            }
            return new NetworkInfoMapper(network).map();
        } catch (OpenStackBaseException e) {
            // Convert Neutron exception to an MsoOpenstackException
            MsoException me = neutronExceptionToMsoException(e, "QueryNetwork");
            throw me;
        } catch (RuntimeException e) {
            // Catch-all
            MsoException me = runtimeExceptionToMsoException(e, "QueryNetwork");
            throw me;
        }
    }

}