Search code examples
javaguiceopenstackjcloudsopenstack-neutron

jcloud openstack-neutron : Exception in thread "main" com.google.inject.ConfigurationException:


I am trying to use Jcloud openstack neutron API and I am hitting this exception when trying to run, I tried building the neutronApi as below. Took this as an example https://gist.github.com/everett-toews/8701756

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

    String provider = "openstack-neutron";
    String identity = "admin:admin"; // tenantName:userName
    String credential = "devstack";

    Properties prop = new Properties();
    prop.setProperty("jclouds.relax-hostname", "true");
    prop.setProperty("jclouds.trust-all-certs", "true");

    neutronApi = ContextBuilder.newBuilder(provider)
            .endpoint("https://<devstack IP>:5000/v2.0")
            .credentials(identity, credential)
            .modules(modules).overrides(prop)
            .buildApi(NeutronApi.class);

and I am getting the below exception

 [java] Exception in thread "main" com.google.inject.ConfigurationException: Guice configuration errors:
 [java] 1) No implementation for org.jclouds.openstack.neutron.v2_0.NeutronApi was bound.
 [java]   while locating org.jclouds.openstack.neutron.v2_0.NeutronApi
 [java] 1 error
 [java]     at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1004)
 [java]     at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1009)
 [java]     at org.jclouds.ContextBuilder.buildApi(ContextBuilder.java:655)
 [java]     at org.jclouds.ContextBuilder.buildApi(ContextBuilder.java:647)
 [java]     at openstack.NovaOpenstack.<init>(Unknown Source)
 [java]     at bootstrap.OpenstackBootstrap.main(Unknown Source)

Jcloud jar ver - 1.8, guava - 3.0, guice - 1.7

Please let me know what am I doing wrong or how to resolve this.

Thanks in advance.


Solution

  • import org.jclouds.openstack.neutron.v2.NeutronApi;
    
    import org.jclouds.openstack.neutron.v2.domain.Network;
    
    import org.jclouds.openstack.neutron.v2.domain.NetworkStatus;
    
    import org.jclouds.openstack.neutron.v2.domain.NetworkType;
    
    import org.jclouds.openstack.neutron.v2.domain.Networks;
    
    import org.jclouds.openstack.neutron.v2.features.NetworkApi;
    
    import org.jclouds.openstack.neutron.v2_0.options.CreateNetworkOptions;
    

    use the above imports

    and change the methods in the code according to the imports