Thank you Nirmal. Please see my responses under [Jeffrey] Also, in my previous email I had a question about why this new jClouds property along with the existing ones are not showing up in the payload for cartridge deployment. I'm trying to confirm if the properties defined under Iaas provider are sent to jClouds. Can you take a look?
Thanks, -Jeffrey From: Nirmal Fernando <nirmal070...@gmail.com<mailto:nirmal070...@gmail.com>> Reply-To: "dev@stratos.incubator.apache.org<mailto:dev@stratos.incubator.apache.org>" <dev@stratos.incubator.apache.org<mailto:dev@stratos.incubator.apache.org>> Date: Saturday, May 10, 2014 7:11 PM To: "dev@stratos.incubator.apache.org<mailto:dev@stratos.incubator.apache.org>" <dev@stratos.incubator.apache.org<mailto:dev@stratos.incubator.apache.org>> Cc: Nirmal Fernando <nir...@wso2.com<mailto:nir...@wso2.com>> Subject: Re: Issue with floating IP allocation Hi Jeffrey, On Fri, May 9, 2014 at 12:59 AM, Jeffrey Nguyen (jeffrngu) <jeffr...@cisco.com<mailto:jeffr...@cisco.com>> wrote: Copied the right email address… From: jeffrngu <jeffr...@cisco.com<mailto:jeffr...@cisco.com>> Date: Thursday, May 8, 2014 12:27 PM To: "dev@stratos.incubator.apache.org<mailto:dev@stratos.incubator.apache.org>" <dev@stratos.incubator.apache.org<mailto:dev@stratos.incubator.apache.org>>, "Nirmal Fernando (JIRA)" <j...@apache.org<mailto:j...@apache.org>> Subject: Issue with floating IP allocation Hi Nirmal, Not sure when we resolve email issue with Stratos alias so I copied you explicitly on this email. Anyway, I opened STRATOS-646 yesterday to track this issue where floating IP allocation fails when we don't pre-allocate the floating IP. I was doing some experiment with a jClouds property named "jclouds.openstack-nova.auto-create-floating-ips". I put it inside the property section where we define the "autoAssignIp" parameter as shown in [1] below. When I tried to subscribe to this cartridge, I got some exceptions shown in [2] below. The place you have used this property is correct. But you have to set autoAssignIp too, to true. [Jeffrey] I tested again with autoAsignIp set to true in addition to the new jClouds property but I still saw the same problem. Any other suggestions? From the java-doc description for the jclouds property, it looks like it is used to create floating IP on-demand AND assign the same floating IP to the spawned instance. For our case, sometimes we want to assign our own floating IP, but we just need it to be allocated at the Iaas level without us manually creating it. I'm not sure this jClouds property was designed to handle this case. Please correct me if I'm wrong on this. Based on the implementation for "ComputeServiceBuilderUtil.buildDefaultComputeService()", we're taking the properties defined in the "property" section of cartridge definition and send it to jClouds as-is. However, in the jClouds wire log, I don't see them in the server create request being sent to jClouds. Or are they encrypted inside "user_data"? Basically, I was trying to see if the above jClouds setting can solve this issue with floating IP allocation. If it does, the next question would be whether we use it as-is or we define a more user-friendly property for Stratos and then internally mask it out with the actual jClouds property. Proper fix would be to set this property if and only if autoAssignIp set to true, in the OpenstackNovaIaas. Then we do not need to specify this jclouds property explicitly. Could you submit a patch? :-) [Jeffrey] I can work on this. However, I think we should make sure the new jClouds property can fix this issue before we worry about how to integrate it into Stratos code. Please let me know what you think. Thanks, -Jeffrey [1] Modified cartridge def "iaasProvider": [ { "imageId": "RegionOne/a00d6082-61c8-4a4c-be3d-9ffbf3968792", "maxInstanceLimit": "4", "networkInterfaces": [ { "networkUuid": "de9464d6-a5c7-4e37-8842-602065a2546a", } ], "property": [ { "name": "instanceType", "value": "RegionOne/a033a14f-ad30-4703-a5bd-ac6496e1d580" }, { "name": "keyPair", "value": "phoenix" }, { "name": "autoAssignIp", "value": "false" }, { "name": "jclouds.openstack-nova.auto-create-floating-ips", "value": "true" }, { "name": "securityGroups", "value": "default" } ], "type": "openstack-Core" } [2] Snippet from wso2carbon.log TID: [0] [STRATOS] [2014-05-08 10:44:02,184] DEBUG {jclouds.wire} - >> "{"server":{"name":"cisco-samp-980","imageRef":"a00d6082-61c8-4a4c-be3d-9ffbf3968792","flavorRef":"a033a14f-ad30-4703-a5bd-ac6496e1d580","metadata":{"jclouds-group":"cisco-samp"},"key_name":"phoenix","security_groups":[{"name":"default"}],"user_data":"U0VSVklDRV9OQU1FPWNpc2NvLXNhbXBsZS12bSxIT1NUX05BTUU9Y2lzY28tc2FtcGxlLXZtLnFtb2cuY2lzY28uY29tLE1VTFRJVEVOQU5UPWZhbHNlLFRFTkFOVF9JRD0tMTIzNCxURU5BTlRfUkFOR0U9LTEyMzQsQ0FSVFJJREdFX0FMSUFTPWNpc2NvLXNhbXBsZS12bSxDTFVTVEVSX0lEPWNpc2NvLXNhbXBsZS12bS5jaXNjby1zYW1wbGUtdixDQVJUUklER0VfS0VZPXBTQ1hCdmk2QXBxME5TY2MsREVQTE9ZTUVOVD1kZWZhdWx0LFJFUE9fVVJMPWh0dHA6Ly9vY3RsLTAxLnFtb2cuY2lzY28uY29tOjEwMDgwL2dpdC9kZWZhdWx0LmdpdCxQT1JUUz0yMixQVVBQRVRfSVA9UFVQUEVUX0lQLFBVUFBFVF9IT1NUTkFNRT1QVVBQRVRfSE9TVE5BTUUsUFVQUEVUX0VOVj1QVVBQRVRfRU5WLE1PTklUT1JJTkdfU0VSVkVSX0FETUlOX1VTRVJOQU1FPXh4eHgsTU9OSVRPUklOR19TRVJWRVJfU0VDVVJFX1BPUlQ9MCxDRVJUX1RSVVNUU1RPUkU9L29wdC9hcGFjaGUtc3RyYXRvcy1jYXJ0cmlkZ2UtYWdlbnQvc2VjdXJpdHkvY2xpZW50LXRydXN0c3RvcmUuamtzLE1PTklUT1JJTkdfU0VSVkVSX0lQPW9jdGwtMDEucW1vZy5jaXNjby5jb20sTUJfSVA9b2N0bC0wMS5xbW9nLmNpc2NvLmNvbSxNQl9QT1JUPTYxNjE2LENFUF9QT1JUPTc2MTEsTU9OSVRPUklOR19TRVJWRVJfQURNSU5fUEFTU1dPUkQ9eHh4eCxDRVBfSVA9b2N0bC0wMS5xbW9nLmNpc2NvLmNvbSxTSU1QTEVfUFJPUEVSVFk9dmFsdWUsTU9OSVRPUklOR19TRVJWRVJfUE9SVD0wLEVOQUJMRV9EQVRBX1BVQkxJU0hFUj1mYWxzZSxUUlVTVFNUT1JFX1BBU1NXT1JEPXdzbzJjYXJib24sQ09NTUlUX0VOQUJMRUQ9ZmFsc2UsTUVNQkVSX0lEPWNpc2NvLXNhbXBsZS12bS5jaXNjby1zYW1wbGUtdjgwZTY1ZDI5LTAzMmQtNGNkNy05NWQ1LTg1YmVjZGYyZTZjOCxMQl9DTFVTVEVSX0lEPW51bGwsTkVUV09SS19QQVJUSVRJT05fSUQ9TjEsUEFSVElUSU9OX0lEPVJlZ2lvbk9uZQ\u003d\u003d","networks":[{"uuid":"de9464d6-a5c7-4e37-8842-602065a2546a"}]}}" {jclouds.wire} TID: [0] [STRATOS] [2014-05-08 10:44:02,707] DEBUG {jclouds.wire} - << "{"server": {"security_groups": [{"name": "default"}], "OS-DCF:diskConfig": "MANUAL", "id": "f0a4a1ae-1a7f-418f-a629-423a1f5ff998", "links": [{"href": "http://10.94.251.12:8774/v2/161d4e9387704433a8519259d65186ba/servers/f0a4a1ae-1a7f-418f-a629-423a1f5ff998", "rel": "self"}, {"href": "http://10.94.251.12:8774/161d4e9387704433a8519259d65186ba/servers/f0a4a1ae-1a7f-418f-a629-423a1f5ff998", "rel": "bookmark"}], "adminPass": "P6BA3jPCPPzB"}}" {jclouds.wire} TID: [0] [STRATOS] [2014-05-08 10:44:02,854] DEBUG {jclouds.wire} - << "{"server": {"status": "BUILD", "updated": "2014-05-08T10:44:02Z", "hostId": "", "OS-EXT-SRV-ATTR:host": null, "addresses": {}, "links": [{"href": "http://10.94.251.12:8774/v2/161d4e9387704433a8519259d65186ba/servers/f0a4a1ae-1a7f-418f-a629-423a1f5ff998", "rel": "self"}, {"href": "http://10.94.251.12:8774/161d4e9387704433a8519259d65186ba/servers/f0a4a1ae-1a7f-418f-a629-423a1f5ff998", "rel": "bookmark"}], "key_name": "phoenix", "image": {"id": "a00d6082-61c8-4a4c-be3d-9ffbf3968792", "links": [{"href": "http://10.94.251.12:8774/161d4e9387704433a8519259d65186ba/images/a00d6082-61c8-4a4c-be3d-9ffbf3968792", "rel": "bookmark"}]}, "OS-EXT-STS:task_state": "scheduling", "OS-EXT-STS:vm_state": "building", "OS-EXT-SRV-ATTR:instance_name": "instance-000001af", "OS-SRV-USG:launched_at": null, "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "flavor": {"id": "a033a14f-ad30-4703-a5bd-ac6496e1d580", "links": [{"href": "http://10.94.251.12:8774/161d4e9387704433a8519259d65186ba/flavors/a033a14f-ad30-4703-a5bd-ac6496e1d580", "rel": "bookmark"}]}, "id": "f0a4a1ae-1a7f-418f-a629-423a1f5ff998", "OS-SRV-USG:terminated_at": null, "OS-EXT-AZ:availability_zone": "nova", "user_id": "bfb57e32b9c941608112db017ba9248f", "name": "cisco-samp-980", "created": "2014-05-08T10:44:02Z", "tenant_id": "161d4e9387704433a8519259d65186ba", "OS-DCF:diskConfig": "MANUAL", "os-extended-volumes:volumes_attached": [], "accessIPv4": "", "accessIPv6": "", "progress": 0, "OS-EXT-STS:power_state": 0, "config_drive": "", "metadata": {"jclouds-group": "cisco-samp"}}}" {jclouds.wire} …. TID: [0] [STRATOS] [2014-05-08 10:44:07,953] DEBUG {jclouds.wire} - << "{"server": {"status": "ACTIVE", "updated": "2014-05-08T10:44:07Z", "hostId": "30b72df643a1170bf586d61c107d73c5efee42f812e95f6c4a98663d", "OS-EXT-SRV-ATTR:host": "denver-stack03", "addresses": {"core": [{"OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:ac:28:59", "version": 4, "addr": "172.16.2.17", "OS-EXT-IPS:type": "fixed"}]}, "links": [{"href": "http://10.94.251.12:8774/v2/161d4e9387704433a8519259d65186ba/servers/f0a4a1ae-1a7f-418f-a629-423a1f5ff998", "rel": "self"}, {"href": "http://10.94.251.12:8774/161d4e9387704433a8519259d65186ba/servers/f0a4a1ae-1a7f-418f-a629-423a1f5ff998", "rel": "bookmark"}], "key_name": "phoenix", "image": {"id": "a00d6082-61c8-4a4c-be3d-9ffbf3968792", "links": [{"href": "http://10.94.251.12:8774/161d4e9387704433a8519259d65186ba/images/a00d6082-61c8-4a4c-be3d-9ffbf3968792", "rel": "bookmark"}]}, "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "OS-EXT-SRV-ATTR:instance_name": "instance-000001af", "OS-SRV-USG:launched_at": "2014-05-08T10:44:06.000000", "OS-EXT-SRV-ATTR:hypervisor_hostname": "denver-stack03.cisco.com<http://denver-stack03.cisco.com>", "flavor": {"id": "a033a14f-ad30-4703-a5bd-ac6496e1d580", "links": [{"href": "http://10.94.251.12:8774/161d4e9387704433a8519259d65186ba/flavors/a033a14f-ad30-4703-a5bd-ac6496e1d580", "rel": "bookmark"}]}, "id": "f0a4a1ae-1a7f-418f-a629-423a1f5ff998", "security_groups": [{"name": "default"}], "OS-SRV-USG:terminated_at": null, "OS-EXT-AZ:availability_zone": "AZ-1", "user_id": "bfb57e32b9c941608112db017ba9248f", "name": "cisco-samp-980", "created": "2014-05-08T10:44:02Z", "tenant_id": "161d4e9387704433a8519259d65186ba", "OS-DCF:diskConfig": "MANUAL", "os-extended-volumes:volumes_attached": [], "accessIPv4": "", "accessIPv6": "", "progress": 0, "OS-EXT-STS:power_state": 1, "config_drive": "", "metadata": {"jclouds-group": "cisco-samp"}}}" {jclouds.wire} TID: [0] [STRATOS] [2014-05-08 10:44:07,965] DEBUG {jclouds.wire} - >> "{}" {jclouds.wire} TID: [0] [STRATOS] [2014-05-08 10:44:07,982] DEBUG {jclouds.wire} - << "{"itemNotFound": {"message": "FloatingIpPoolNotFound: Floating ip pool not found.", "code": 404}}" {jclouds.wire} TID: [0] [STRATOS] [2014-05-08 10:44:07,987] ERROR {jclouds.compute} - createNodesInGroup(cisco-samp), completed: 0/1, errors: 1, rate: 5816ms/op {jclouds.compute} java.util.concurrent.ExecutionException: java.lang.NullPointerException at com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:299) at com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:286) at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116) at org.jclouds.concurrent.FutureIterables$1.run(FutureIterables.java:125) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744) Caused by: java.lang.NullPointerException at org.jclouds.openstack.nova.v2_0.compute.functions.AllocateAndAddFloatingIpToNode.apply(AllocateAndAddFloatingIpToNode.java:100) at org.jclouds.openstack.nova.v2_0.compute.functions.AllocateAndAddFloatingIpToNode.apply(AllocateAndAddFloatingIpToNode.java:53) at com.google.common.util.concurrent.Futures$1.apply(Futures.java:711) at com.google.common.util.concurrent.Futures$ChainingListenableFuture.run(Futures.java:849) ... 3 more TID: [0] [STRATOS] [2014-05-08 10:44:07,988] ERROR {jclouds.compute} - createNodesInGroup(cisco-samp), completed: 0/1, errors: 1, rate: 5817ms/op {jclouds.compute} java.lang.RuntimeException: createNodesInGroup(cisco-samp), completed: 0/1, errors: 1, rate: 5817ms/op at org.jclouds.concurrent.FutureIterables.awaitCompletion(FutureIterables.java:155) at org.jclouds.compute.internal.BaseComputeService.createNodesInGroup(BaseComputeService.java:219) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at com.google.inject.internal.DelegatingInvocationHandler.invoke(DelegatingInvocationHandler.java:37) at com.sun.proxy.$Proxy91.createNodesInGroup(Unknown Source) at org.apache.stratos.cloud.controller.impl.CloudControllerServiceImpl.startInstance(CloudControllerServiceImpl.java:356) -- Best Regards, Nirmal Nirmal Fernando. PPMC Member & Committer of Apache Stratos, Senior Software Engineer, WSO2 Inc. Blog: http://nirmalfdo.blogspot.com/