In your code, the "regionNow" variable is an array, not just a string. And you are passing that array serialized, as the region name, instead of just one element.
On 26 October 2016 at 17:24, Ken <run2obt...@gmail.com> wrote: > Hi , > > I have tried to get the example above to work using a basic openstack > installation. > However, I get the error below : > > Exception in thread "main" java.lang.IllegalArgumentException: requested > location [Ljava.lang.String;@2631f68c, which is not in the configured > locations: {RegionOne=Suppliers.ofInstance(http://172.16.18.171:9696/)}. > > I used the string "RegionOne" since I couldn't figure out how to get the > region_id , maybe this is the problem ? > > My code example is : > > public static void main(String[] args) { >> >> neutronApi = ContextBuilder.newBuilder(new NeutronApiMetadata()) >> >> .endpoint("http:/xx.xx.xx.xx:5000/v2.0") >> >> .credentials(identity,credential ) >>> >> .modules(ImmutableSet.<Module>of( >> >> new SshjSshClientModule(), >> >> new SLF4JLoggingModule(), >> >> new BouncyCastleCryptoModule())) >> >> .buildApi(NeutronApi.class); >> >> regions = neutronApi.getConfiguredRegions(); >> >> >> >> System.out.println("Connected !!"); >> >> System.out.println("regions" + regions); >> >> regionNow = regions.toArray(new String[regions.size()]); >> >> System.out.println("the region : " + regionNow[0]); >> >> createFireWall(); >> >> } >> >> public static void createFireWall() { >> >> String [] addresses = {"172.24.4.3", "1.2.3.4"}; >> >> String [] ports = {"80", "23"}; >> >> FWaaSApi fWaaSApi = neutronApi.getFWaaSApi(regionNow.toString()).get(); >> >> System.out.println(fWaaSApi); >> >> FirewallPolicy firewallPolicy = fWaaSApi.createFirewallPolicy( >>> CreateFirewallPolicy.builder() >> >> .name(String.format(JCLOUDS_FW_POLICY_PATTERN, name)) >> >> .build()); >> >> for (String address : addresses) { >> >> for (String inboundPort : ports) { >> >> FirewallRule firewallRule = fWaaSApi.createFirewallRule( >>> CreateFirewallRule.builder() >> >> .name(ruleName) >> >> .destinationIpAddress(address) >> >> .destinationPort(inboundPort) >> >> .enabled(true) >> >> .action("allow") >> >> .protocol("tcp") >> >> .build()); >> >> fWaaSApi.insertFirewallRuleToPolicy(firewallPolicy.getId(), >>> firewallRule.getId()); >> >> } >> >> } >> >> } >> >> > Many thanks in advance. > > Regards, > > Ken.. > > > > On Sun, Oct 23, 2016 at 11:19 PM, Ken <run2obt...@gmail.com> wrote: > >> Hi Andrea & Ignasi, >> >> Many thanks for quickly responding to my enquiries. >> Sorry, I didn't make it very clear that my focus was more in the >> direction of OpenStack yet Andrea provided an apt response. >> Also, the Ignasi's information about security groups is very useful >> because this equally falls within my purview. >> >> I am already reading though the references .... >> >> >> Many thanks !! >> >> Regards, >> >> Kennedy >> >> >> On Sun, Oct 23, 2016 at 8:51 PM, Andrea Turli <andrea.tu...@gmail.com> >> wrote: >> >>> Hi Ken, >>> >>> in addition to Ignasi' suggestions I can add also the following >>> (hopefully) useful links for FWaaS API, presuming you are in the context of >>> Openstack. >>> >>> Recently we add the support for those API to Openstack Neutron [4]. As >>> usual you can create instantiate a NeutronApi with something like >>> >>> NeutronApi neutronApi = ContextBuilder.newBuilder(new >>> NeutronApiMetadata()) >>> .endpoint(endpoint) >>> .credentials(credentials) >>> .modules(ImmutableSet.<Module>of( >>> new SshjSshClientModule(), >>> new SLF4JLoggingModule(), >>> new BouncyCastleCryptoModule())) >>> .buildApi(NeutronApi.class) >>> >>> and for example use it to create a firewall and add a rule like >>> >>> FWaaSApi fWaaSApi = neutronApi.getFWaaSApi(regionId).get(); >>> FirewallPolicy firewallPolicy = fWaaSApi.createFirewallPolicy( >>> CreateFirewallPolicy.builder() >>> .name(String.format(JCLOUDS_FW_POLICY_PATTERN, name)) >>> .build()); >>> >>> for (String address : addresses) { >>> for (String inboundPort : ports) { >>> FirewallRule firewallRule = fWaaSApi.createFirewallRule(Cr >>> eateFirewallRule.builder() >>> .name(ruleName) >>> .destinationIpAddress(address) >>> .destinationPort(inboundPort) >>> .enabled(true) >>> .action("allow") >>> .protocol("tcp") >>> .build()); >>> fWaaSApi.insertFirewallRuleToPolicy(firewallPolicy.getId(), >>> firewallRule.getId()); >>> } >>> } >>> >>> >>> HTH, >>> Andrea >>> >>> [4]: https://github.com/jclouds/jclouds-labs-openstack/pull/196 >>> >>> On Sun, Oct 23, 2016 at 6:07 PM, Ignasi Barrera <n...@apache.org> wrote: >>> >>>> Hi Ken, >>>> >>>> Not all providers have an API to effectively manage firewalls, but >>>> most that do, implement the jclouds SecurityGroupExtension [1]. You >>>> can get it by calling: >>>> >>>> context.getComputeService().getSecurityGroupExtension(); >>>> >>>> That will return an optional that will be present if the extension is >>>> supported by the provider. You'll see in the javadocs that it has >>>> methods to create and manage security groups, and also to configure >>>> the ruleset set for each. Once you have configured the security >>>> groups, you can create nodes and assign them to the desired security >>>> groups by using the TemplateOptions#securityGroups() method [2]. >>>> >>>> Alternatively, in some providers that don't support the security >>>> groups extension, you can still use the TemplateOptions#inboundPorts >>>> [3] to open ports in the nodes you create. >>>> >>>> >>>> HTH! >>>> >>>> I. >>>> >>>> >>>> [1] http://jclouds-javadocs.elasticbeanstalk.com/org/jclouds/com >>>> pute/extensions/SecurityGroupExtension.html >>>> [2] http://jclouds-javadocs.elasticbeanstalk.com/org/jclouds/com >>>> pute/options/TemplateOptions.html#securityGroups(java.lang.Iterable) >>>> [3] http://jclouds-javadocs.elasticbeanstalk.com/org/jclouds/com >>>> pute/options/TemplateOptions.html#inboundPorts(int...) >>>> >>>> On 22 October 2016 at 21:40, Ken <run2obt...@gmail.com> wrote: >>>> > Hi, I am trying to use jclouds FWaaS API, I cannot find examples like >>>> there >>>> > are for swift etc. Can someone point me to where such is available or >>>> maybe >>>> > give me a basic examples....e.g creating a firewall. >>>> > >>>> > Many thanks. >>>> >>> >>> >> >