private void buildNeutronApi() {

    String iaasProviderNullMsg = "IaasProvider is null. Unable to build neutron API";
    assertNotNull(iaasProvider, iaasProviderNullMsg);

    String region = ComputeServiceBuilderUtil.extractRegion(iaasProvider);
    String regionNullOrEmptyErrorMsg =
        String.format(
            "Region is not set. Unable to build neutron API for the iaas provider %s",
            iaasProvider.getProvider());
    assertNotNullAndNotEmpty(region, regionNullOrEmptyErrorMsg);

    String endpoint = iaasProvider.getProperty(CloudControllerConstants.JCLOUDS_ENDPOINT);
    String endpointNullOrEmptyErrorMsg =
        String.format(
            "Endpoint is not set. Unable to build neutorn API for the iaas provider %s",
            iaasProvider.getProvider());
    assertNotNullAndNotEmpty(endpoint, endpointNullOrEmptyErrorMsg);

    Iterable<Module> modules = ImmutableSet.<Module>of(new SLF4JLoggingModule());

    try {
      this.neutronApi =
          ContextBuilder.newBuilder(provider)
              .credentials(iaasProvider.getIdentity(), iaasProvider.getCredential())
              .endpoint(endpoint)
              .modules(modules)
              .buildApi(NeutronApi.class);
    } catch (Exception e) {
      String msg =
          String.format(
              "Unable to build neutron API for [provider=%s, identity=%s, credential=%s, endpoint=%s]",
              provider, iaasProvider.getIdentity(), iaasProvider.getCredential(), endpoint);
      log.error(msg, e);
      throw new CloudControllerException(msg, e);
    }

    this.portApi = neutronApi.getPortApi(region);
    String portApiNullOrEmptyErrorMessage =
        String.format("Unable to get port Api from neutron Api for region ", region);
    assertNotNull(portApi, portApiNullOrEmptyErrorMessage);

    this.floatingIPApi = neutronApi.getFloatingIPApi(region).get();
    String floatingIPApiNullOrEmptyErrorMessage =
        String.format("Unable to get floatingIP Api from neutron Api for region ", region);
    assertNotNull(floatingIPApi, floatingIPApiNullOrEmptyErrorMessage);
  }