Thanks' Nirmal for the pointers -

once the code is ready is there a process to get it submitted and checked in 
into the GitHub (review, etc, ...) ?

Thanks

Martin

From: Nirmal Fernando [mailto:nirmal070...@gmail.com]
Sent: Friday, February 28, 2014 7:46 PM
To: Martin Eppel (meppel)
Cc: dev@stratos.incubator.apache.org; Vanson Lim (vlim); Jeffrey Nguyen 
(jeffrngu); Subbu Sundararajan (subbus)
Subject: Re: [Discuss] Some network related improvements for Stratos

Hi Martin,

On Sat, Mar 1, 2014 at 12:26 AM, Martin Eppel (meppel) 
<mep...@cisco.com<mailto:mep...@cisco.com>> wrote:

Hi Nirmal,

We'd like to propose an enhancement to the current apache stratos cloud 
controller to allow the assignment of predefined floating ip when creating a 
new instance.

Instead of auto assigning the floating ip address from the pool (autoAssignIp  
"false" in cartridgeDefinitionBean:iaasProvider, see example below), the ip 
address would be predefined in the cartridge definition as an additional 
property (see example below with property "floatingIp", ) and if available in 
the floating ip pool, assigned to the instance when it is created.  If the 
floating  ip is unavailable, an exception will be thrown and the instance will 
be destroyed.

As for now it would be sufficient to add this enhancement for the OpenStack 
provider.

Let me know what you think, and since going forward we would like to contribute 
to apache stratos I'd  like to use this as an opportunity to get my feet wet 
and contribute the necessary changes.

Can you please advise on the process and proper steps to propose and add an 
enhancement like this to the project ?

Thanks for the explanation.
Currently, at line [1], we are calling IaaS's autoAssignIp method and ask the 
IaaS to assign an IP to the instance. Similarly, I think you should define a 
new API operation at [2] and implement that in each of the IaaS providers.
If you look at the OpenstackNovaIaas implementation [3], you could see that we 
call the FloatingIpApi and assign an IP to an instance. In order to get the 
FloatingIpApi please have a look at line [4]. Now similarly, if you can just 
add a new operation which takes an IP as an argument and the assign that IP to 
the instance, that'll do for you.
Of course, you need to call this method from [1], once you've implemented it. 
Please make sure that this addition would not break other IaaS providers.
Hope this helps!

[1] 
https://git-wip-us.apache.org/repos/asf?p=incubator-stratos.git;a=blob;f=components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java;h=1d773d0968c9916720c61fee0ca9fa6d9b3f9a52;hb=HEAD#l559

[2] 
https://git-wip-us.apache.org/repos/asf?p=incubator-stratos.git;a=blob;f=components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/interfaces/Iaas.java;h=f45d32e10b0306a9b171ff467bdbaf8668d7035d;hb=HEAD

[3] 
https://git-wip-us.apache.org/repos/asf?p=incubator-stratos.git;a=blob;f=components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java;h=d0f50e967fd9de6ed647d4e1f83e3e45e06fdc4e;hb=HEAD#l314

[4] 
https://git-wip-us.apache.org/repos/asf?p=incubator-stratos.git;a=blob;f=components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java;h=d0f50e967fd9de6ed647d4e1f83e3e45e06fdc4e;hb=HEAD#l219





Thanks

Martin



Sample Cartridge definition:



...

"iaasProvider":

        [

            {

                "type": "openstack",

                "imageId": "RegionOne/${IMAGE_ID}",

                "maxInstanceLimit": "4",

                "property":

                [

                    {

                        "name": "instanceType",

                        "value": "RegionOne/${FLAVOR_ID}"

                    },

                    {

                        "name": "keyPair",

                        "value": "${KEY}"

                    },

                    {

                        "name": "autoAssignIp",

                        "value": "false"

                    },

                    {

                        "name": "floatingIp",

                        "value": "10.10.10.10"

                    },

                    {

                        "name": "securityGroups",

                        "value": "default"

                    },

                    {

                        "name": "networkInterfaces",

                        "value": "net1,net2,net3"

                    }

                ]

            }

        ],
...

-




--
Best Regards,
Nirmal

Nirmal Fernando.
PPMC Member & Committer of Apache Stratos,
Senior Software Engineer, WSO2 Inc.

Blog: http://nirmalfdo.blogspot.com/

Reply via email to