class MsoNeutronUtils extends MsoCommonUtils {

    public boolean deleteNetwork(String networkId, String tenantId, String cloudSiteId) throws MsoException {
        // Obtain the cloud site information where we will create the stack
        CloudSite cloudSite =
                cloudConfig.getCloudSite(cloudSiteId).orElseThrow(() -> new MsoCloudSiteNotFound(cloudSiteId));
        Quantum neutronClient = getNeutronClient(cloudSite, tenantId);

        try {
            // Check that the network exists.
            Network network = findNetworkById(neutronClient, networkId);
            if (network == null) {
                logger.info("{} Network not found! Network id: {} Cloud site: {} Tenant: {} ",
                        MessageEnum.RA_DELETE_NETWORK_EXC, networkId, cloudSiteId, tenantId);
                return false;
            }

            OpenStackRequest<Void> request = neutronClient.networks().delete(network.getId());
            executeAndRecordOpenstackRequest(request);

            logger.debug("Deleted Network {} ({})", network.getId(), network.getName());
        } catch (OpenStackBaseException e) {
            // Convert Neutron exception to an MsoOpenstackException
            MsoException me = neutronExceptionToMsoException(e, "Delete Network");
            throw me;
        } catch (RuntimeException e) {
            // Catch-all
            MsoException me = runtimeExceptionToMsoException(e, "DeleteNetwork");
            throw me;
        }

        return true;
    }

}