You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stratos.apache.org by Rajkumar Rajaratnam <ra...@wso2.com> on 2014/11/12 10:17:32 UTC

Assigning floating IPs to any interfaces of our choice

Hi Devs,

I am working on $Subject. Please find the relevant JIRA at [1]

Currently Stratos will assign a floating IP to eth0 if *autoAssignIp*
property is set to false in cartridge definition. AFAIU, stratos is using
jclouds API to query the available floating IPs, choose one and assign it
to the instance. Correct me if this is not the case.

In order to support $Subject, I am proposing the cartridge definition as
below;

{ "type":"mysql", "provider":"data", "host":"apachestratos.org", "
displayName":"MySQL", "description":"MySQL Cartridge", "version":"5.5", "
multiTenant":"false", "portMapping":[ { "protocol":"http", "port":"80", "
proxyPort":"8280" } ], "deployment":{  }, "iaasProvider":[ { "type":"
openstack", "imageId":"RegionOne/1cd412c1-54ce-405f-9894-ce1387073c6c", "
networkInterfaces":[ { "name":"netOne", "networkUuid":"
84d52a6d-a9e5-472a-9935-a0e195fe5b4a", "fixedIp":"10.0.1.4" }, { "name":"
netTwo", "networkUuid":"512e1f54-1e85-4dac-b2e6-f0b30fc552cf", "
publicNetworkUuids":[ { "name":"externalOne", "networkUuid":"
8f08a69d-cb46-43c9-9ebe-b89dcc78dacc", }, { "name":"externalTwo", "
networkUuid":"b5504321-e7aa-4500-9e00-7bc1b10cb5e9", } ] }, { "name":"
netThree", "networkUuid":"b55f009a-1cc6-4b17-924f-4ae0ee18db5e", "
publicNetworkUuids":[ { "name":"externalThree", "networkUuid":"
83d52a6d-a9e5-572a-9935-a0e195fe5b4r", } ] } ], "maxInstanceLimit":"4", "
property":[ { "name":"instanceType", "value":"RegionOne/4" }, { "name":"
keyPair", "value":"raj" }, { "name":"autoAssignIp", "value":"false" } ] } ],
"loadBalancer":{ "type":"lb", "property":{ "name":"no.load.balancer", "value
":"true" } }}


So, I have introduced some additional elements here in networks section.
publicNetworkUuids will hold one or many external network UUIDs from where
you want to select one IP and assign it the corresponding interface. Let
list me three behaviors, as of now, I have identified.

   1. If *autoAssignIp* property is *true*, stratos will not do anything
   regarding floating IPs when creating instances for this cartridge. But
   openstack will assign a floating IP to the instance.
   2. If *autoAssignIp* property is *false*, and you *don't *specify any
   publicNetworkUuids for any interface, then stratos will assign a floating
   IP to the 1st interface
   3. If *autoAssignIp* property is *false*, and you
   specify publicNetworkUuids, then stratos will assign floating IPs per
   interfaces for which you specified publicNetworkUuids. If you specify
   two publicNetworkUuids for an interface, it will assign two floating IPs to
   that interface and so on.


However, I tried to assign two floating IP addresses to an interface which
resulted in the following error.

*Error: *409-{u'NeutronError': {u'message': u'Cannot associate floating IP
192.168.17.96 (5691eb81-3153-4ee1-b9d0-31fc84516b03) with port
7e9416ce-5077-44c4-97db-b4b14c10dfc9 using fixed IP 10.0.0.167, as that
fixed IP already has a floating IP on external network
ba667f72-7ba8-4b24-b360-b74a0211c83c.', u'type':
u'FloatingIPPortAlreadyAssociated', u'detail': u''}}

I guess we can't assign multiple floating IPs to the same interface from
same network. We would be able to assign multiple floating IPs to the same
interface from multiple networks. Since I am having only one external
network, I couldn't test this. Any idea?

Feel free to share your thoughts.

1. https://issues.apache.org/jira/browse/STRATOS-698

Thanks.

-- 
Raj

Re: Assigning floating IPs to any interfaces of our choice

Posted by Rajkumar Rajaratnam <ra...@wso2.com>.
Doc -
https://cwiki.apache.org/confluence/display/STRATOS/4.1.0+Multiple+Network+Interfaces

On Sat, Dec 6, 2014 at 9:09 AM, Rajkumar Rajaratnam <ra...@wso2.com>
wrote:

> Multiple network interfaces support[1] now available in master branch.
>
> 1. https://issues.apache.org/jira/browse/STRATOS-698
>
> Thanks.
>
> On Thu, Nov 20, 2014 at 11:34 AM, Rajkumar Rajaratnam <ra...@wso2.com>
> wrote:
>
>> In the current code base also, we are considering the first private IP of
>> the member in LB.
>>
>> On Thu, Nov 20, 2014 at 11:27 AM, Rajkumar Rajaratnam <rajkumarr@wso2.com
>> > wrote:
>>
>>> Hi Imesh,
>>>
>>> I am modifying topology to include multiple private/public IPs. So now
>>> member object is having a list of private IPs and a list of public IPs.
>>> Which public IP LB should use? Can we get the first IP as default for
>>> routing?
>>>
>>> Thanks.
>>>
>>> On Thu, Nov 20, 2014 at 1:05 AM, Rajkumar Rajaratnam <rajkumarr@wso2.com
>>> > wrote:
>>>
>>>>
>>>>
>>>> On Thu, Nov 20, 2014 at 12:52 AM, Jeffrey Nguyen (jeffrngu) <
>>>> jeffrngu@cisco.com> wrote:
>>>>
>>>>>
>>>>>  I think it's probably less confusing if we use the terms "private
>>>>> IP" and "fixed private IP" (or "predefined private IP").
>>>>>
>>>>
>>>> Yes. We will use the words *private IP*, *fixed private IP*, *floating
>>>> IP* and *fixed floating IP*.
>>>>
>>>> Thanks Jeffrey for pointing this out.
>>>>
>>>> Thanks.
>>>>
>>>>
>>>>>
>>>>>  -Jeffrey
>>>>>
>>>>>   From: Rajkumar Rajaratnam <ra...@wso2.com>
>>>>> Date: Wednesday, November 19, 2014 11:58 AM
>>>>> To: "dev@stratos.apache.org" <de...@stratos.apache.org>
>>>>> Cc: jeffrngu <je...@cisco.com>, "Matt Turner (matttur)" <
>>>>> matttur@cisco.com>
>>>>> Subject: Re: Assigning floating IPs to any interfaces of our choice
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Nov 19, 2014 at 7:01 PM, Rajkumar Rajaratnam <
>>>>> rajkumarr@wso2.com> wrote:
>>>>>
>>>>>>    Hi all,
>>>>>>
>>>>>>  I have implemented this feature and it is fully functional now. I
>>>>>> had to upgrade Jclouds version to 1.8.1 in order to implement it using
>>>>>> neutron networking API.
>>>>>>
>>>>>>  Let me explain how it works now. I will past network interfaces
>>>>>> section of cartridge definition and explain each features implemented here.
>>>>>>
>>>>>>  "networkInterfaces":[
>>>>>>     {
>>>>>>         "name":"eth0",
>>>>>>         "networkUuid":"512e1f54-1e85-4dac-b2e6-f0b30fc552cf",
>>>>>>         "floatingNetworks":[
>>>>>>             {
>>>>>>                 "name":"externalOne",
>>>>>>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c"
>>>>>>             }
>>>>>>         ]
>>>>>>     },
>>>>>>
>>>>>> // eth0 will get a fixed IP and a floating IP from floating network externalOne
>>>>>>
>>>>>>    Please don't confuse with word "fixed IP" here. It doesn't mean
>>>>> "predefined fixed IP". Each port has at least a fixed IP. From port's point
>>>>> of view, it is a "fixed IP" of the port. That's why I used the word fixed
>>>>> IP.
>>>>>
>>>>>>        {
>>>>>>         "name":"eth1",
>>>>>>         "networkUuid":"68aab21d-fc9a-4c2f-8d15-b1e41f6f7bb8"
>>>>>>     },
>>>>>>
>>>>>> // eth1 will get a fixed IP
>>>>>>
>>>>>>     {
>>>>>>         "name":"eth2",
>>>>>>         "networkUuid":"b55f009a-1cc6-4b17-924f-4ae0ee18db5e",
>>>>>>         "floatingNetworks":[
>>>>>>             {
>>>>>>                 "name":"externalThree",
>>>>>>                 "floatingIP" : "192.168.17.227"
>>>>>>             }
>>>>>>         ]
>>>>>>     },
>>>>>>
>>>>>> // eth2 will get a fixed IP and a predefined floating IP 192.168.17.227
>>>>>>
>>>>>> // if predefined IP is not available, an exception will be thrown
>>>>>>
>>>>>>     {
>>>>>>         "name":"eth3",
>>>>>>         "networkUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
>>>>>>         "floatingNetworks":[
>>>>>>             {
>>>>>>                 "name":"externalThree",
>>>>>>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
>>>>>>                 "floatingIP" : "192.168.17.227"
>>>>>>             }
>>>>>>         ]
>>>>>>     },
>>>>>>
>>>>>> // eth3 will get a fixed IP and a floating IP from the floating network externalThree
>>>>>>
>>>>>> // point here is that we are giving priority to networkUuid to floatingIP
>>>>>>
>>>>>>     {
>>>>>>         "name":"eth4",
>>>>>>         "portUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
>>>>>>         "fixedIp":"10.5.62.3",
>>>>>>         "floatingNetworks":[
>>>>>>             {
>>>>>>                 "name":"external",
>>>>>>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
>>>>>>                 "floatingIP" : "192.168.17.227"
>>>>>>             }
>>>>>>         ]
>>>>>>     },
>>>>>>
>>>>>> // eth4 will get a predefined private IP 10.5.62.3 and a floating IP from network external
>>>>>>
>>>>>>     {
>>>>>>         "name":"eth5",
>>>>>>         "networkUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
>>>>>>         "floatingNetworks":[
>>>>>>             {
>>>>>>                 "name":"externalOne",
>>>>>>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
>>>>>>                 "floatingIP" : "192.168.17.227"
>>>>>>             },
>>>>>>             {
>>>>>>                 "name":"externalTwo",
>>>>>>                 "networkUuid":"sddsdsd-7ba8-4b24-b360-b74a0211c83c",
>>>>>>             }
>>>>>>         ]
>>>>>>     }
>>>>>>
>>>>>> // eth5 will get a fixed IP and a predefined floating IP 192.168.17.227
>>>>>>
>>>>>> // and a floating IP from the floating network externalTwo as well
>>>>>>
>>>>>> // I couldn't test whether it is supported by openstack
>>>>>>
>>>>>> // if openstack supports this, you can also achieve it in stratos
>>>>>>
>>>>>> ]
>>>>>>
>>>>>>
>>>>>>  Please have look at the comments given in each network interfaces
>>>>>> definition.
>>>>>>
>>>>>>  And if you define multiple network interfaces and floating networks,
>>>>>> if even one IP allocation goes wrong, I am throwing exception and kill the
>>>>>> instance.
>>>>>>
>>>>>>  Having this implemented, now I am in the process of doing changes
>>>>>> to some topology events to incorporate multiple private/public IP
>>>>>> addresses.
>>>>>>
>>>>>>  Please feel free to share your concerns.
>>>>>>
>>>>>>  Thanks.
>>>>>>
>>>>>> On Fri, Nov 14, 2014 at 7:14 PM, Rajkumar Rajaratnam <
>>>>>> rajkumarr@wso2.com> wrote:
>>>>>>
>>>>>>>  Update;
>>>>>>>
>>>>>>>
>>>>>>> On Fri, Nov 14, 2014 at 3:44 PM, Rajkumar Rajaratnam <
>>>>>>> rajkumarr@wso2.com> wrote:
>>>>>>>
>>>>>>>>  Update;
>>>>>>>>
>>>>>>>> Currently facing an issue with upstream openstack-neutron-1.8.1.jar.
>>>>>>>>
>>>>>>>> When I see the MANIFEST.MF file of openstack-neutron-1.8.1.jar, it
>>>>>>>> contains ${jclouds.version} in lot of places instead of actual version. Due
>>>>>>>> to this carbon feature installation is failing. Because it is processing
>>>>>>>> MANIFEST.MF and throwing number format exception.
>>>>>>>>
>>>>>>>>  I conveyed this in user@jclouds. For workaround, I am going to
>>>>>>>> manually put the jar into /repository/components/lib and continue the work
>>>>>>>> until it is sorted out in upstream.
>>>>>>>>
>>>>>>>
>>>>>>>  This is a bug. One sent a PR to solve it
>>>>>>>
>>>>>>>  Thanks.
>>>>>>>
>>>>>>>>
>>>>>>>>  Thanks.
>>>>>>>>
>>>>>>>> On Wed, Nov 12, 2014 at 4:48 PM, Rajkumar Rajaratnam <
>>>>>>>> rajkumarr@wso2.com> wrote:
>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Wed, Nov 12, 2014 at 4:37 PM, Udara Liyanage <ud...@wso2.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Raj,
>>>>>>>>>>
>>>>>>>>>>  No I did not try since there were no multiple public networks
>>>>>>>>>> available.
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  Okay Udara. I am setting up a second external network now. Will
>>>>>>>>> run a test soon.
>>>>>>>>>
>>>>>>>>>  Thanks.
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Wed, Nov 12, 2014 at 2:59 PM, Rajkumar Rajaratnam <
>>>>>>>>>> rajkumarr@wso2.com> wrote:
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Wed, Nov 12, 2014 at 2:52 PM, Udara Liyanage <ud...@wso2.com>
>>>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi Raj,
>>>>>>>>>>>>
>>>>>>>>>>>>  If I remember correctly, we can't assign folating ip to the
>>>>>>>>>>>> same port multiple times even I try with Openstack UI.
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>  Horizon UI doesn't support most of the operations. Yes we
>>>>>>>>>>> can't assign multiple floating IPs from the same external network to the
>>>>>>>>>>> same port. But I guess, we can assign multiple floating IPs from different
>>>>>>>>>>> external network to the same port. Did you try this scenario?
>>>>>>>>>>>
>>>>>>>>>>>  Thanks.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Wed, Nov 12, 2014 at 2:47 PM, Rajkumar Rajaratnam <
>>>>>>>>>>>> rajkumarr@wso2.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Hi Devs,
>>>>>>>>>>>>>
>>>>>>>>>>>>>  I am working on $Subject. Please find the relevant JIRA at
>>>>>>>>>>>>> [1]
>>>>>>>>>>>>>
>>>>>>>>>>>>>  Currently Stratos will assign a floating IP to eth0 if
>>>>>>>>>>>>> *autoAssignIp* property is set to false in cartridge
>>>>>>>>>>>>> definition. AFAIU, stratos is using jclouds API to query the available
>>>>>>>>>>>>> floating IPs, choose one and assign it to the instance. Correct me if this
>>>>>>>>>>>>> is not the case.
>>>>>>>>>>>>>
>>>>>>>>>>>>>  In order to support $Subject, I am proposing the cartridge
>>>>>>>>>>>>> definition as below;
>>>>>>>>>>>>>
>>>>>>>>>>>>>    {    "type":"mysql",   "provider":"data",   "host":"
>>>>>>>>>>>>> apachestratos.org",   "displayName":"MySQL",   "description":"MySQL
>>>>>>>>>>>>> Cartridge",   "version":"5.5",   "multiTenant":"false",   "
>>>>>>>>>>>>> portMapping":[    {    "protocol":"http",   "port":"80",   "
>>>>>>>>>>>>> proxyPort":"8280"   }   ],   "deployment":{       },   "
>>>>>>>>>>>>> iaasProvider":[    {    "type":"openstack",   "imageId":"
>>>>>>>>>>>>> RegionOne/1cd412c1-54ce-405f-9894-ce1387073c6c",   "
>>>>>>>>>>>>> networkInterfaces":[    {    "name":"netOne",   "networkUuid":
>>>>>>>>>>>>> "84d52a6d-a9e5-472a-9935-a0e195fe5b4a",   "fixedIp":"10.0.1.4"
>>>>>>>>>>>>> },   {    "name":"netTwo",   "networkUuid":"
>>>>>>>>>>>>> 512e1f54-1e85-4dac-b2e6-f0b30fc552cf",   "publicNetworkUuids"
>>>>>>>>>>>>> :[   {   "name":"externalOne",   "networkUuid":"
>>>>>>>>>>>>> 8f08a69d-cb46-43c9-9ebe-b89dcc78dacc",   },   {   "name":"
>>>>>>>>>>>>> externalTwo",   "networkUuid":"
>>>>>>>>>>>>> b5504321-e7aa-4500-9e00-7bc1b10cb5e9",   }   ]   },   {    "
>>>>>>>>>>>>> name":"netThree",   "networkUuid":"
>>>>>>>>>>>>> b55f009a-1cc6-4b17-924f-4ae0ee18db5e",   "publicNetworkUuids"
>>>>>>>>>>>>> :[   {   "name":"externalThree",   "networkUuid":"
>>>>>>>>>>>>> 83d52a6d-a9e5-572a-9935-a0e195fe5b4r",   }   ]   }   ],   "
>>>>>>>>>>>>> maxInstanceLimit":"4",   "property":[    {    "name":"
>>>>>>>>>>>>> instanceType",   "value":"RegionOne/4"   },   {    "name":"
>>>>>>>>>>>>> keyPair",   "value":"raj"   },   {    "name":"autoAssignIp",
>>>>>>>>>>>>> "value":"false"   }   ]   }   ],   "loadBalancer":{    "type":
>>>>>>>>>>>>> "lb",   "property":{    "name":"no.load.balancer",   "value":"
>>>>>>>>>>>>> true"   }   }   }
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>  So, I have introduced some additional elements here in
>>>>>>>>>>>>> networks section. publicNetworkUuids will hold one or many external network
>>>>>>>>>>>>> UUIDs from where you want to select one IP and assign it the corresponding
>>>>>>>>>>>>> interface. Let list me three behaviors, as of now, I have identified.
>>>>>>>>>>>>>
>>>>>>>>>>>>>    1. If *autoAssignIp* property is *true*, stratos will not
>>>>>>>>>>>>>    do anything regarding floating IPs when creating instances for this
>>>>>>>>>>>>>    cartridge. But openstack will assign a floating IP to the instance.
>>>>>>>>>>>>>    2. If *autoAssignIp* property is *false*, and you *don't *specify
>>>>>>>>>>>>>    any publicNetworkUuids for any interface, then stratos will assign a
>>>>>>>>>>>>>    floating IP to the 1st interface
>>>>>>>>>>>>>    3. If *autoAssignIp* property is *false*, and you
>>>>>>>>>>>>>    specify publicNetworkUuids, then stratos will assign floating IPs per
>>>>>>>>>>>>>    interfaces for which you specified publicNetworkUuids. If you specify
>>>>>>>>>>>>>    two publicNetworkUuids for an interface, it will assign two floating IPs to
>>>>>>>>>>>>>    that interface and so on.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>  However, I tried to assign two floating IP addresses to an
>>>>>>>>>>>>> interface which resulted in the following error.
>>>>>>>>>>>>>
>>>>>>>>>>>>>  *Error: *409-{u'NeutronError': {u'message': u'Cannot
>>>>>>>>>>>>> associate floating IP 192.168.17.96 (5691eb81-3153-4ee1-b9d0-31fc84516b03)
>>>>>>>>>>>>> with port 7e9416ce-5077-44c4-97db-b4b14c10dfc9 using fixed IP 10.0.0.167,
>>>>>>>>>>>>> as that fixed IP already has a floating IP on external network
>>>>>>>>>>>>> ba667f72-7ba8-4b24-b360-b74a0211c83c.', u'type':
>>>>>>>>>>>>> u'FloatingIPPortAlreadyAssociated', u'detail': u''}}
>>>>>>>>>>>>>
>>>>>>>>>>>>>  I guess we can't assign multiple floating IPs to the same
>>>>>>>>>>>>> interface from same network. We would be able to assign multiple floating
>>>>>>>>>>>>> IPs to the same interface from multiple networks. Since I am having only
>>>>>>>>>>>>> one external network, I couldn't test this. Any idea?
>>>>>>>>>>>>>
>>>>>>>>>>>>>  Feel free to share your thoughts.
>>>>>>>>>>>>>
>>>>>>>>>>>>>  1. https://issues.apache.org/jira/browse/STRATOS-698
>>>>>>>>>>>>>
>>>>>>>>>>>>>  Thanks.
>>>>>>>>>>>>>
>>>>>>>>>>>>>  --
>>>>>>>>>>>>>     Raj
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>   --
>>>>>>>>>>>>
>>>>>>>>>>>> Udara Liyanage
>>>>>>>>>>>> Software Engineer
>>>>>>>>>>>> WSO2, Inc.: http://wso2.com
>>>>>>>>>>>> lean. enterprise. middleware
>>>>>>>>>>>>
>>>>>>>>>>>>  web: http://udaraliyanage.wordpress.com
>>>>>>>>>>>>  phone: +94 71 443 6897
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>  --
>>>>>>>>>>>     Raj
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>  --
>>>>>>>>>>
>>>>>>>>>> Udara Liyanage
>>>>>>>>>> Software Engineer
>>>>>>>>>> WSO2, Inc.: http://wso2.com
>>>>>>>>>> lean. enterprise. middleware
>>>>>>>>>>
>>>>>>>>>>  web: http://udaraliyanage.wordpress.com
>>>>>>>>>>  phone: +94 71 443 6897
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  --
>>>>>>>>>     Raj
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>  --
>>>>>>>>     Raj
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>>     Raj
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>  --
>>>>>>      Rajkumar Rajaratnam
>>>>>>  Committer & PMC Member, Apache Stratos
>>>>>>  Software Engineer, WSO2
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>      Rajkumar Rajaratnam
>>>>>  Committer & PMC Member, Apache Stratos
>>>>>  Software Engineer, WSO2
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Rajkumar Rajaratnam
>>>> Committer & PMC Member, Apache Stratos
>>>> Software Engineer, WSO2
>>>>
>>>
>>>
>>>
>>> --
>>> Rajkumar Rajaratnam
>>> Committer & PMC Member, Apache Stratos
>>> Software Engineer, WSO2
>>>
>>
>>
>>
>> --
>> Rajkumar Rajaratnam
>> Committer & PMC Member, Apache Stratos
>> Software Engineer, WSO2
>>
>
>
>
> --
> Rajkumar Rajaratnam
> Committer & PMC Member, Apache Stratos
> Software Engineer, WSO2
>



-- 
Rajkumar Rajaratnam
Committer & PMC Member, Apache Stratos
Software Engineer, WSO2

Re: Assigning floating IPs to any interfaces of our choice

Posted by Rajkumar Rajaratnam <ra...@wso2.com>.
Multiple network interfaces support[1] now available in master branch.

1. https://issues.apache.org/jira/browse/STRATOS-698

Thanks.

On Thu, Nov 20, 2014 at 11:34 AM, Rajkumar Rajaratnam <ra...@wso2.com>
wrote:

> In the current code base also, we are considering the first private IP of
> the member in LB.
>
> On Thu, Nov 20, 2014 at 11:27 AM, Rajkumar Rajaratnam <ra...@wso2.com>
> wrote:
>
>> Hi Imesh,
>>
>> I am modifying topology to include multiple private/public IPs. So now
>> member object is having a list of private IPs and a list of public IPs.
>> Which public IP LB should use? Can we get the first IP as default for
>> routing?
>>
>> Thanks.
>>
>> On Thu, Nov 20, 2014 at 1:05 AM, Rajkumar Rajaratnam <ra...@wso2.com>
>> wrote:
>>
>>>
>>>
>>> On Thu, Nov 20, 2014 at 12:52 AM, Jeffrey Nguyen (jeffrngu) <
>>> jeffrngu@cisco.com> wrote:
>>>
>>>>
>>>>  I think it's probably less confusing if we use the terms "private IP"
>>>> and "fixed private IP" (or "predefined private IP").
>>>>
>>>
>>> Yes. We will use the words *private IP*, *fixed private IP*, *floating
>>> IP* and *fixed floating IP*.
>>>
>>> Thanks Jeffrey for pointing this out.
>>>
>>> Thanks.
>>>
>>>
>>>>
>>>>  -Jeffrey
>>>>
>>>>   From: Rajkumar Rajaratnam <ra...@wso2.com>
>>>> Date: Wednesday, November 19, 2014 11:58 AM
>>>> To: "dev@stratos.apache.org" <de...@stratos.apache.org>
>>>> Cc: jeffrngu <je...@cisco.com>, "Matt Turner (matttur)" <
>>>> matttur@cisco.com>
>>>> Subject: Re: Assigning floating IPs to any interfaces of our choice
>>>>
>>>>
>>>>
>>>> On Wed, Nov 19, 2014 at 7:01 PM, Rajkumar Rajaratnam <
>>>> rajkumarr@wso2.com> wrote:
>>>>
>>>>>    Hi all,
>>>>>
>>>>>  I have implemented this feature and it is fully functional now. I had
>>>>> to upgrade Jclouds version to 1.8.1 in order to implement it using neutron
>>>>> networking API.
>>>>>
>>>>>  Let me explain how it works now. I will past network interfaces
>>>>> section of cartridge definition and explain each features implemented here.
>>>>>
>>>>>  "networkInterfaces":[
>>>>>     {
>>>>>         "name":"eth0",
>>>>>         "networkUuid":"512e1f54-1e85-4dac-b2e6-f0b30fc552cf",
>>>>>         "floatingNetworks":[
>>>>>             {
>>>>>                 "name":"externalOne",
>>>>>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c"
>>>>>             }
>>>>>         ]
>>>>>     },
>>>>>
>>>>> // eth0 will get a fixed IP and a floating IP from floating network externalOne
>>>>>
>>>>>    Please don't confuse with word "fixed IP" here. It doesn't mean
>>>> "predefined fixed IP". Each port has at least a fixed IP. From port's point
>>>> of view, it is a "fixed IP" of the port. That's why I used the word fixed
>>>> IP.
>>>>
>>>>>        {
>>>>>         "name":"eth1",
>>>>>         "networkUuid":"68aab21d-fc9a-4c2f-8d15-b1e41f6f7bb8"
>>>>>     },
>>>>>
>>>>> // eth1 will get a fixed IP
>>>>>
>>>>>     {
>>>>>         "name":"eth2",
>>>>>         "networkUuid":"b55f009a-1cc6-4b17-924f-4ae0ee18db5e",
>>>>>         "floatingNetworks":[
>>>>>             {
>>>>>                 "name":"externalThree",
>>>>>                 "floatingIP" : "192.168.17.227"
>>>>>             }
>>>>>         ]
>>>>>     },
>>>>>
>>>>> // eth2 will get a fixed IP and a predefined floating IP 192.168.17.227
>>>>>
>>>>> // if predefined IP is not available, an exception will be thrown
>>>>>
>>>>>     {
>>>>>         "name":"eth3",
>>>>>         "networkUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
>>>>>         "floatingNetworks":[
>>>>>             {
>>>>>                 "name":"externalThree",
>>>>>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
>>>>>                 "floatingIP" : "192.168.17.227"
>>>>>             }
>>>>>         ]
>>>>>     },
>>>>>
>>>>> // eth3 will get a fixed IP and a floating IP from the floating network externalThree
>>>>>
>>>>> // point here is that we are giving priority to networkUuid to floatingIP
>>>>>
>>>>>     {
>>>>>         "name":"eth4",
>>>>>         "portUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
>>>>>         "fixedIp":"10.5.62.3",
>>>>>         "floatingNetworks":[
>>>>>             {
>>>>>                 "name":"external",
>>>>>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
>>>>>                 "floatingIP" : "192.168.17.227"
>>>>>             }
>>>>>         ]
>>>>>     },
>>>>>
>>>>> // eth4 will get a predefined private IP 10.5.62.3 and a floating IP from network external
>>>>>
>>>>>     {
>>>>>         "name":"eth5",
>>>>>         "networkUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
>>>>>         "floatingNetworks":[
>>>>>             {
>>>>>                 "name":"externalOne",
>>>>>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
>>>>>                 "floatingIP" : "192.168.17.227"
>>>>>             },
>>>>>             {
>>>>>                 "name":"externalTwo",
>>>>>                 "networkUuid":"sddsdsd-7ba8-4b24-b360-b74a0211c83c",
>>>>>             }
>>>>>         ]
>>>>>     }
>>>>>
>>>>> // eth5 will get a fixed IP and a predefined floating IP 192.168.17.227
>>>>>
>>>>> // and a floating IP from the floating network externalTwo as well
>>>>>
>>>>> // I couldn't test whether it is supported by openstack
>>>>>
>>>>> // if openstack supports this, you can also achieve it in stratos
>>>>>
>>>>> ]
>>>>>
>>>>>
>>>>>  Please have look at the comments given in each network interfaces
>>>>> definition.
>>>>>
>>>>>  And if you define multiple network interfaces and floating networks,
>>>>> if even one IP allocation goes wrong, I am throwing exception and kill the
>>>>> instance.
>>>>>
>>>>>  Having this implemented, now I am in the process of doing changes to
>>>>> some topology events to incorporate multiple private/public IP addresses.
>>>>>
>>>>>  Please feel free to share your concerns.
>>>>>
>>>>>  Thanks.
>>>>>
>>>>> On Fri, Nov 14, 2014 at 7:14 PM, Rajkumar Rajaratnam <
>>>>> rajkumarr@wso2.com> wrote:
>>>>>
>>>>>>  Update;
>>>>>>
>>>>>>
>>>>>> On Fri, Nov 14, 2014 at 3:44 PM, Rajkumar Rajaratnam <
>>>>>> rajkumarr@wso2.com> wrote:
>>>>>>
>>>>>>>  Update;
>>>>>>>
>>>>>>> Currently facing an issue with upstream openstack-neutron-1.8.1.jar.
>>>>>>>
>>>>>>> When I see the MANIFEST.MF file of openstack-neutron-1.8.1.jar, it
>>>>>>> contains ${jclouds.version} in lot of places instead of actual version. Due
>>>>>>> to this carbon feature installation is failing. Because it is processing
>>>>>>> MANIFEST.MF and throwing number format exception.
>>>>>>>
>>>>>>>  I conveyed this in user@jclouds. For workaround, I am going to
>>>>>>> manually put the jar into /repository/components/lib and continue the work
>>>>>>> until it is sorted out in upstream.
>>>>>>>
>>>>>>
>>>>>>  This is a bug. One sent a PR to solve it
>>>>>>
>>>>>>  Thanks.
>>>>>>
>>>>>>>
>>>>>>>  Thanks.
>>>>>>>
>>>>>>> On Wed, Nov 12, 2014 at 4:48 PM, Rajkumar Rajaratnam <
>>>>>>> rajkumarr@wso2.com> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Nov 12, 2014 at 4:37 PM, Udara Liyanage <ud...@wso2.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Hi Raj,
>>>>>>>>>
>>>>>>>>>  No I did not try since there were no multiple public networks
>>>>>>>>> available.
>>>>>>>>>
>>>>>>>>
>>>>>>>>  Okay Udara. I am setting up a second external network now. Will
>>>>>>>> run a test soon.
>>>>>>>>
>>>>>>>>  Thanks.
>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Wed, Nov 12, 2014 at 2:59 PM, Rajkumar Rajaratnam <
>>>>>>>>> rajkumarr@wso2.com> wrote:
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Wed, Nov 12, 2014 at 2:52 PM, Udara Liyanage <ud...@wso2.com>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi Raj,
>>>>>>>>>>>
>>>>>>>>>>>  If I remember correctly, we can't assign folating ip to the
>>>>>>>>>>> same port multiple times even I try with Openstack UI.
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>  Horizon UI doesn't support most of the operations. Yes we can't
>>>>>>>>>> assign multiple floating IPs from the same external network to the same
>>>>>>>>>> port. But I guess, we can assign multiple floating IPs from different
>>>>>>>>>> external network to the same port. Did you try this scenario?
>>>>>>>>>>
>>>>>>>>>>  Thanks.
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Wed, Nov 12, 2014 at 2:47 PM, Rajkumar Rajaratnam <
>>>>>>>>>>> rajkumarr@wso2.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi Devs,
>>>>>>>>>>>>
>>>>>>>>>>>>  I am working on $Subject. Please find the relevant JIRA at [1]
>>>>>>>>>>>>
>>>>>>>>>>>>  Currently Stratos will assign a floating IP to eth0 if
>>>>>>>>>>>> *autoAssignIp* property is set to false in cartridge
>>>>>>>>>>>> definition. AFAIU, stratos is using jclouds API to query the available
>>>>>>>>>>>> floating IPs, choose one and assign it to the instance. Correct me if this
>>>>>>>>>>>> is not the case.
>>>>>>>>>>>>
>>>>>>>>>>>>  In order to support $Subject, I am proposing the cartridge
>>>>>>>>>>>> definition as below;
>>>>>>>>>>>>
>>>>>>>>>>>>    {    "type":"mysql",   "provider":"data",   "host":"
>>>>>>>>>>>> apachestratos.org",   "displayName":"MySQL",   "description":"MySQL
>>>>>>>>>>>> Cartridge",   "version":"5.5",   "multiTenant":"false",   "
>>>>>>>>>>>> portMapping":[    {    "protocol":"http",   "port":"80",   "
>>>>>>>>>>>> proxyPort":"8280"   }   ],   "deployment":{       },   "
>>>>>>>>>>>> iaasProvider":[    {    "type":"openstack",   "imageId":"
>>>>>>>>>>>> RegionOne/1cd412c1-54ce-405f-9894-ce1387073c6c",   "
>>>>>>>>>>>> networkInterfaces":[    {    "name":"netOne",   "networkUuid":"
>>>>>>>>>>>> 84d52a6d-a9e5-472a-9935-a0e195fe5b4a",   "fixedIp":"10.0.1.4"
>>>>>>>>>>>> },   {    "name":"netTwo",   "networkUuid":"
>>>>>>>>>>>> 512e1f54-1e85-4dac-b2e6-f0b30fc552cf",   "publicNetworkUuids":[
>>>>>>>>>>>> {   "name":"externalOne",   "networkUuid":"
>>>>>>>>>>>> 8f08a69d-cb46-43c9-9ebe-b89dcc78dacc",   },   {   "name":"
>>>>>>>>>>>> externalTwo",   "networkUuid":"
>>>>>>>>>>>> b5504321-e7aa-4500-9e00-7bc1b10cb5e9",   }   ]   },   {    "
>>>>>>>>>>>> name":"netThree",   "networkUuid":"
>>>>>>>>>>>> b55f009a-1cc6-4b17-924f-4ae0ee18db5e",   "publicNetworkUuids":[
>>>>>>>>>>>> {   "name":"externalThree",   "networkUuid":"
>>>>>>>>>>>> 83d52a6d-a9e5-572a-9935-a0e195fe5b4r",   }   ]   }   ],   "
>>>>>>>>>>>> maxInstanceLimit":"4",   "property":[    {    "name":"
>>>>>>>>>>>> instanceType",   "value":"RegionOne/4"   },   {    "name":"
>>>>>>>>>>>> keyPair",   "value":"raj"   },   {    "name":"autoAssignIp",
>>>>>>>>>>>> "value":"false"   }   ]   }   ],   "loadBalancer":{    "type":"
>>>>>>>>>>>> lb",   "property":{    "name":"no.load.balancer",   "value":"
>>>>>>>>>>>> true"   }   }   }
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>  So, I have introduced some additional elements here in
>>>>>>>>>>>> networks section. publicNetworkUuids will hold one or many external network
>>>>>>>>>>>> UUIDs from where you want to select one IP and assign it the corresponding
>>>>>>>>>>>> interface. Let list me three behaviors, as of now, I have identified.
>>>>>>>>>>>>
>>>>>>>>>>>>    1. If *autoAssignIp* property is *true*, stratos will not
>>>>>>>>>>>>    do anything regarding floating IPs when creating instances for this
>>>>>>>>>>>>    cartridge. But openstack will assign a floating IP to the instance.
>>>>>>>>>>>>    2. If *autoAssignIp* property is *false*, and you *don't *specify
>>>>>>>>>>>>    any publicNetworkUuids for any interface, then stratos will assign a
>>>>>>>>>>>>    floating IP to the 1st interface
>>>>>>>>>>>>    3. If *autoAssignIp* property is *false*, and you
>>>>>>>>>>>>    specify publicNetworkUuids, then stratos will assign floating IPs per
>>>>>>>>>>>>    interfaces for which you specified publicNetworkUuids. If you specify
>>>>>>>>>>>>    two publicNetworkUuids for an interface, it will assign two floating IPs to
>>>>>>>>>>>>    that interface and so on.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>  However, I tried to assign two floating IP addresses to an
>>>>>>>>>>>> interface which resulted in the following error.
>>>>>>>>>>>>
>>>>>>>>>>>>  *Error: *409-{u'NeutronError': {u'message': u'Cannot
>>>>>>>>>>>> associate floating IP 192.168.17.96 (5691eb81-3153-4ee1-b9d0-31fc84516b03)
>>>>>>>>>>>> with port 7e9416ce-5077-44c4-97db-b4b14c10dfc9 using fixed IP 10.0.0.167,
>>>>>>>>>>>> as that fixed IP already has a floating IP on external network
>>>>>>>>>>>> ba667f72-7ba8-4b24-b360-b74a0211c83c.', u'type':
>>>>>>>>>>>> u'FloatingIPPortAlreadyAssociated', u'detail': u''}}
>>>>>>>>>>>>
>>>>>>>>>>>>  I guess we can't assign multiple floating IPs to the same
>>>>>>>>>>>> interface from same network. We would be able to assign multiple floating
>>>>>>>>>>>> IPs to the same interface from multiple networks. Since I am having only
>>>>>>>>>>>> one external network, I couldn't test this. Any idea?
>>>>>>>>>>>>
>>>>>>>>>>>>  Feel free to share your thoughts.
>>>>>>>>>>>>
>>>>>>>>>>>>  1. https://issues.apache.org/jira/browse/STRATOS-698
>>>>>>>>>>>>
>>>>>>>>>>>>  Thanks.
>>>>>>>>>>>>
>>>>>>>>>>>>  --
>>>>>>>>>>>>     Raj
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>   --
>>>>>>>>>>>
>>>>>>>>>>> Udara Liyanage
>>>>>>>>>>> Software Engineer
>>>>>>>>>>> WSO2, Inc.: http://wso2.com
>>>>>>>>>>> lean. enterprise. middleware
>>>>>>>>>>>
>>>>>>>>>>>  web: http://udaraliyanage.wordpress.com
>>>>>>>>>>>  phone: +94 71 443 6897
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>  --
>>>>>>>>>>     Raj
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  --
>>>>>>>>>
>>>>>>>>> Udara Liyanage
>>>>>>>>> Software Engineer
>>>>>>>>> WSO2, Inc.: http://wso2.com
>>>>>>>>> lean. enterprise. middleware
>>>>>>>>>
>>>>>>>>>  web: http://udaraliyanage.wordpress.com
>>>>>>>>>  phone: +94 71 443 6897
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>  --
>>>>>>>>     Raj
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>  --
>>>>>>>     Raj
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>     Raj
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>>  --
>>>>>      Rajkumar Rajaratnam
>>>>>  Committer & PMC Member, Apache Stratos
>>>>>  Software Engineer, WSO2
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>>      Rajkumar Rajaratnam
>>>>  Committer & PMC Member, Apache Stratos
>>>>  Software Engineer, WSO2
>>>>
>>>
>>>
>>>
>>> --
>>> Rajkumar Rajaratnam
>>> Committer & PMC Member, Apache Stratos
>>> Software Engineer, WSO2
>>>
>>
>>
>>
>> --
>> Rajkumar Rajaratnam
>> Committer & PMC Member, Apache Stratos
>> Software Engineer, WSO2
>>
>
>
>
> --
> Rajkumar Rajaratnam
> Committer & PMC Member, Apache Stratos
> Software Engineer, WSO2
>



-- 
Rajkumar Rajaratnam
Committer & PMC Member, Apache Stratos
Software Engineer, WSO2

Re: Assigning floating IPs to any interfaces of our choice

Posted by Rajkumar Rajaratnam <ra...@wso2.com>.
In the current code base also, we are considering the first private IP of
the member in LB.

On Thu, Nov 20, 2014 at 11:27 AM, Rajkumar Rajaratnam <ra...@wso2.com>
wrote:

> Hi Imesh,
>
> I am modifying topology to include multiple private/public IPs. So now
> member object is having a list of private IPs and a list of public IPs.
> Which public IP LB should use? Can we get the first IP as default for
> routing?
>
> Thanks.
>
> On Thu, Nov 20, 2014 at 1:05 AM, Rajkumar Rajaratnam <ra...@wso2.com>
> wrote:
>
>>
>>
>> On Thu, Nov 20, 2014 at 12:52 AM, Jeffrey Nguyen (jeffrngu) <
>> jeffrngu@cisco.com> wrote:
>>
>>>
>>>  I think it's probably less confusing if we use the terms "private IP"
>>> and "fixed private IP" (or "predefined private IP").
>>>
>>
>> Yes. We will use the words *private IP*, *fixed private IP*, *floating
>> IP* and *fixed floating IP*.
>>
>> Thanks Jeffrey for pointing this out.
>>
>> Thanks.
>>
>>
>>>
>>>  -Jeffrey
>>>
>>>   From: Rajkumar Rajaratnam <ra...@wso2.com>
>>> Date: Wednesday, November 19, 2014 11:58 AM
>>> To: "dev@stratos.apache.org" <de...@stratos.apache.org>
>>> Cc: jeffrngu <je...@cisco.com>, "Matt Turner (matttur)" <
>>> matttur@cisco.com>
>>> Subject: Re: Assigning floating IPs to any interfaces of our choice
>>>
>>>
>>>
>>> On Wed, Nov 19, 2014 at 7:01 PM, Rajkumar Rajaratnam <rajkumarr@wso2.com
>>> > wrote:
>>>
>>>>    Hi all,
>>>>
>>>>  I have implemented this feature and it is fully functional now. I had
>>>> to upgrade Jclouds version to 1.8.1 in order to implement it using neutron
>>>> networking API.
>>>>
>>>>  Let me explain how it works now. I will past network interfaces
>>>> section of cartridge definition and explain each features implemented here.
>>>>
>>>>  "networkInterfaces":[
>>>>     {
>>>>         "name":"eth0",
>>>>         "networkUuid":"512e1f54-1e85-4dac-b2e6-f0b30fc552cf",
>>>>         "floatingNetworks":[
>>>>             {
>>>>                 "name":"externalOne",
>>>>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c"
>>>>             }
>>>>         ]
>>>>     },
>>>>
>>>> // eth0 will get a fixed IP and a floating IP from floating network externalOne
>>>>
>>>>    Please don't confuse with word "fixed IP" here. It doesn't mean
>>> "predefined fixed IP". Each port has at least a fixed IP. From port's point
>>> of view, it is a "fixed IP" of the port. That's why I used the word fixed
>>> IP.
>>>
>>>>        {
>>>>         "name":"eth1",
>>>>         "networkUuid":"68aab21d-fc9a-4c2f-8d15-b1e41f6f7bb8"
>>>>     },
>>>>
>>>> // eth1 will get a fixed IP
>>>>
>>>>     {
>>>>         "name":"eth2",
>>>>         "networkUuid":"b55f009a-1cc6-4b17-924f-4ae0ee18db5e",
>>>>         "floatingNetworks":[
>>>>             {
>>>>                 "name":"externalThree",
>>>>                 "floatingIP" : "192.168.17.227"
>>>>             }
>>>>         ]
>>>>     },
>>>>
>>>> // eth2 will get a fixed IP and a predefined floating IP 192.168.17.227
>>>>
>>>> // if predefined IP is not available, an exception will be thrown
>>>>
>>>>     {
>>>>         "name":"eth3",
>>>>         "networkUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
>>>>         "floatingNetworks":[
>>>>             {
>>>>                 "name":"externalThree",
>>>>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
>>>>                 "floatingIP" : "192.168.17.227"
>>>>             }
>>>>         ]
>>>>     },
>>>>
>>>> // eth3 will get a fixed IP and a floating IP from the floating network externalThree
>>>>
>>>> // point here is that we are giving priority to networkUuid to floatingIP
>>>>
>>>>     {
>>>>         "name":"eth4",
>>>>         "portUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
>>>>         "fixedIp":"10.5.62.3",
>>>>         "floatingNetworks":[
>>>>             {
>>>>                 "name":"external",
>>>>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
>>>>                 "floatingIP" : "192.168.17.227"
>>>>             }
>>>>         ]
>>>>     },
>>>>
>>>> // eth4 will get a predefined private IP 10.5.62.3 and a floating IP from network external
>>>>
>>>>     {
>>>>         "name":"eth5",
>>>>         "networkUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
>>>>         "floatingNetworks":[
>>>>             {
>>>>                 "name":"externalOne",
>>>>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
>>>>                 "floatingIP" : "192.168.17.227"
>>>>             },
>>>>             {
>>>>                 "name":"externalTwo",
>>>>                 "networkUuid":"sddsdsd-7ba8-4b24-b360-b74a0211c83c",
>>>>             }
>>>>         ]
>>>>     }
>>>>
>>>> // eth5 will get a fixed IP and a predefined floating IP 192.168.17.227
>>>>
>>>> // and a floating IP from the floating network externalTwo as well
>>>>
>>>> // I couldn't test whether it is supported by openstack
>>>>
>>>> // if openstack supports this, you can also achieve it in stratos
>>>>
>>>> ]
>>>>
>>>>
>>>>  Please have look at the comments given in each network interfaces
>>>> definition.
>>>>
>>>>  And if you define multiple network interfaces and floating networks,
>>>> if even one IP allocation goes wrong, I am throwing exception and kill the
>>>> instance.
>>>>
>>>>  Having this implemented, now I am in the process of doing changes to
>>>> some topology events to incorporate multiple private/public IP addresses.
>>>>
>>>>  Please feel free to share your concerns.
>>>>
>>>>  Thanks.
>>>>
>>>> On Fri, Nov 14, 2014 at 7:14 PM, Rajkumar Rajaratnam <
>>>> rajkumarr@wso2.com> wrote:
>>>>
>>>>>  Update;
>>>>>
>>>>>
>>>>> On Fri, Nov 14, 2014 at 3:44 PM, Rajkumar Rajaratnam <
>>>>> rajkumarr@wso2.com> wrote:
>>>>>
>>>>>>  Update;
>>>>>>
>>>>>> Currently facing an issue with upstream openstack-neutron-1.8.1.jar.
>>>>>>
>>>>>> When I see the MANIFEST.MF file of openstack-neutron-1.8.1.jar, it
>>>>>> contains ${jclouds.version} in lot of places instead of actual version. Due
>>>>>> to this carbon feature installation is failing. Because it is processing
>>>>>> MANIFEST.MF and throwing number format exception.
>>>>>>
>>>>>>  I conveyed this in user@jclouds. For workaround, I am going to
>>>>>> manually put the jar into /repository/components/lib and continue the work
>>>>>> until it is sorted out in upstream.
>>>>>>
>>>>>
>>>>>  This is a bug. One sent a PR to solve it
>>>>>
>>>>>  Thanks.
>>>>>
>>>>>>
>>>>>>  Thanks.
>>>>>>
>>>>>> On Wed, Nov 12, 2014 at 4:48 PM, Rajkumar Rajaratnam <
>>>>>> rajkumarr@wso2.com> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Nov 12, 2014 at 4:37 PM, Udara Liyanage <ud...@wso2.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi Raj,
>>>>>>>>
>>>>>>>>  No I did not try since there were no multiple public networks
>>>>>>>> available.
>>>>>>>>
>>>>>>>
>>>>>>>  Okay Udara. I am setting up a second external network now. Will
>>>>>>> run a test soon.
>>>>>>>
>>>>>>>  Thanks.
>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Nov 12, 2014 at 2:59 PM, Rajkumar Rajaratnam <
>>>>>>>> rajkumarr@wso2.com> wrote:
>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Wed, Nov 12, 2014 at 2:52 PM, Udara Liyanage <ud...@wso2.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Raj,
>>>>>>>>>>
>>>>>>>>>>  If I remember correctly, we can't assign folating ip to the
>>>>>>>>>> same port multiple times even I try with Openstack UI.
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  Horizon UI doesn't support most of the operations. Yes we can't
>>>>>>>>> assign multiple floating IPs from the same external network to the same
>>>>>>>>> port. But I guess, we can assign multiple floating IPs from different
>>>>>>>>> external network to the same port. Did you try this scenario?
>>>>>>>>>
>>>>>>>>>  Thanks.
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Wed, Nov 12, 2014 at 2:47 PM, Rajkumar Rajaratnam <
>>>>>>>>>> rajkumarr@wso2.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi Devs,
>>>>>>>>>>>
>>>>>>>>>>>  I am working on $Subject. Please find the relevant JIRA at [1]
>>>>>>>>>>>
>>>>>>>>>>>  Currently Stratos will assign a floating IP to eth0 if
>>>>>>>>>>> *autoAssignIp* property is set to false in cartridge
>>>>>>>>>>> definition. AFAIU, stratos is using jclouds API to query the available
>>>>>>>>>>> floating IPs, choose one and assign it to the instance. Correct me if this
>>>>>>>>>>> is not the case.
>>>>>>>>>>>
>>>>>>>>>>>  In order to support $Subject, I am proposing the cartridge
>>>>>>>>>>> definition as below;
>>>>>>>>>>>
>>>>>>>>>>>    {    "type":"mysql",   "provider":"data",   "host":"
>>>>>>>>>>> apachestratos.org",   "displayName":"MySQL",   "description":"MySQL
>>>>>>>>>>> Cartridge",   "version":"5.5",   "multiTenant":"false",   "
>>>>>>>>>>> portMapping":[    {    "protocol":"http",   "port":"80",   "
>>>>>>>>>>> proxyPort":"8280"   }   ],   "deployment":{       },   "
>>>>>>>>>>> iaasProvider":[    {    "type":"openstack",   "imageId":"
>>>>>>>>>>> RegionOne/1cd412c1-54ce-405f-9894-ce1387073c6c",   "
>>>>>>>>>>> networkInterfaces":[    {    "name":"netOne",   "networkUuid":"
>>>>>>>>>>> 84d52a6d-a9e5-472a-9935-a0e195fe5b4a",   "fixedIp":"10.0.1.4"
>>>>>>>>>>> },   {    "name":"netTwo",   "networkUuid":"
>>>>>>>>>>> 512e1f54-1e85-4dac-b2e6-f0b30fc552cf",   "publicNetworkUuids":[
>>>>>>>>>>> {   "name":"externalOne",   "networkUuid":"
>>>>>>>>>>> 8f08a69d-cb46-43c9-9ebe-b89dcc78dacc",   },   {   "name":"
>>>>>>>>>>> externalTwo",   "networkUuid":"
>>>>>>>>>>> b5504321-e7aa-4500-9e00-7bc1b10cb5e9",   }   ]   },   {    "name
>>>>>>>>>>> ":"netThree",   "networkUuid":"
>>>>>>>>>>> b55f009a-1cc6-4b17-924f-4ae0ee18db5e",   "publicNetworkUuids":[
>>>>>>>>>>> {   "name":"externalThree",   "networkUuid":"
>>>>>>>>>>> 83d52a6d-a9e5-572a-9935-a0e195fe5b4r",   }   ]   }   ],   "
>>>>>>>>>>> maxInstanceLimit":"4",   "property":[    {    "name":"
>>>>>>>>>>> instanceType",   "value":"RegionOne/4"   },   {    "name":"
>>>>>>>>>>> keyPair",   "value":"raj"   },   {    "name":"autoAssignIp",   "
>>>>>>>>>>> value":"false"   }   ]   }   ],   "loadBalancer":{    "type":"lb
>>>>>>>>>>> ",   "property":{    "name":"no.load.balancer",   "value":"true"
>>>>>>>>>>> }   }   }
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>  So, I have introduced some additional elements here in
>>>>>>>>>>> networks section. publicNetworkUuids will hold one or many external network
>>>>>>>>>>> UUIDs from where you want to select one IP and assign it the corresponding
>>>>>>>>>>> interface. Let list me three behaviors, as of now, I have identified.
>>>>>>>>>>>
>>>>>>>>>>>    1. If *autoAssignIp* property is *true*, stratos will not do
>>>>>>>>>>>    anything regarding floating IPs when creating instances for this cartridge.
>>>>>>>>>>>    But openstack will assign a floating IP to the instance.
>>>>>>>>>>>    2. If *autoAssignIp* property is *false*, and you *don't *specify
>>>>>>>>>>>    any publicNetworkUuids for any interface, then stratos will assign a
>>>>>>>>>>>    floating IP to the 1st interface
>>>>>>>>>>>    3. If *autoAssignIp* property is *false*, and you
>>>>>>>>>>>    specify publicNetworkUuids, then stratos will assign floating IPs per
>>>>>>>>>>>    interfaces for which you specified publicNetworkUuids. If you specify
>>>>>>>>>>>    two publicNetworkUuids for an interface, it will assign two floating IPs to
>>>>>>>>>>>    that interface and so on.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>  However, I tried to assign two floating IP addresses to an
>>>>>>>>>>> interface which resulted in the following error.
>>>>>>>>>>>
>>>>>>>>>>>  *Error: *409-{u'NeutronError': {u'message': u'Cannot associate
>>>>>>>>>>> floating IP 192.168.17.96 (5691eb81-3153-4ee1-b9d0-31fc84516b03) with port
>>>>>>>>>>> 7e9416ce-5077-44c4-97db-b4b14c10dfc9 using fixed IP 10.0.0.167, as that
>>>>>>>>>>> fixed IP already has a floating IP on external network
>>>>>>>>>>> ba667f72-7ba8-4b24-b360-b74a0211c83c.', u'type':
>>>>>>>>>>> u'FloatingIPPortAlreadyAssociated', u'detail': u''}}
>>>>>>>>>>>
>>>>>>>>>>>  I guess we can't assign multiple floating IPs to the same
>>>>>>>>>>> interface from same network. We would be able to assign multiple floating
>>>>>>>>>>> IPs to the same interface from multiple networks. Since I am having only
>>>>>>>>>>> one external network, I couldn't test this. Any idea?
>>>>>>>>>>>
>>>>>>>>>>>  Feel free to share your thoughts.
>>>>>>>>>>>
>>>>>>>>>>>  1. https://issues.apache.org/jira/browse/STRATOS-698
>>>>>>>>>>>
>>>>>>>>>>>  Thanks.
>>>>>>>>>>>
>>>>>>>>>>>  --
>>>>>>>>>>>     Raj
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>   --
>>>>>>>>>>
>>>>>>>>>> Udara Liyanage
>>>>>>>>>> Software Engineer
>>>>>>>>>> WSO2, Inc.: http://wso2.com
>>>>>>>>>> lean. enterprise. middleware
>>>>>>>>>>
>>>>>>>>>>  web: http://udaraliyanage.wordpress.com
>>>>>>>>>>  phone: +94 71 443 6897
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  --
>>>>>>>>>     Raj
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>  --
>>>>>>>>
>>>>>>>> Udara Liyanage
>>>>>>>> Software Engineer
>>>>>>>> WSO2, Inc.: http://wso2.com
>>>>>>>> lean. enterprise. middleware
>>>>>>>>
>>>>>>>>  web: http://udaraliyanage.wordpress.com
>>>>>>>>  phone: +94 71 443 6897
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>  --
>>>>>>>     Raj
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>  --
>>>>>>     Raj
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>     Raj
>>>>>
>>>>
>>>>
>>>>
>>>>  --
>>>>      Rajkumar Rajaratnam
>>>>  Committer & PMC Member, Apache Stratos
>>>>  Software Engineer, WSO2
>>>>
>>>
>>>
>>>
>>> --
>>>      Rajkumar Rajaratnam
>>>  Committer & PMC Member, Apache Stratos
>>>  Software Engineer, WSO2
>>>
>>
>>
>>
>> --
>> Rajkumar Rajaratnam
>> Committer & PMC Member, Apache Stratos
>> Software Engineer, WSO2
>>
>
>
>
> --
> Rajkumar Rajaratnam
> Committer & PMC Member, Apache Stratos
> Software Engineer, WSO2
>



-- 
Rajkumar Rajaratnam
Committer & PMC Member, Apache Stratos
Software Engineer, WSO2

Re: Assigning floating IPs to any interfaces of our choice

Posted by Rajkumar Rajaratnam <ra...@wso2.com>.
Hi Imesh,

I am modifying topology to include multiple private/public IPs. So now
member object is having a list of private IPs and a list of public IPs.
Which public IP LB should use? Can we get the first IP as default for
routing?

Thanks.

On Thu, Nov 20, 2014 at 1:05 AM, Rajkumar Rajaratnam <ra...@wso2.com>
wrote:

>
>
> On Thu, Nov 20, 2014 at 12:52 AM, Jeffrey Nguyen (jeffrngu) <
> jeffrngu@cisco.com> wrote:
>
>>
>>  I think it's probably less confusing if we use the terms "private IP"
>> and "fixed private IP" (or "predefined private IP").
>>
>
> Yes. We will use the words *private IP*, *fixed private IP*, *floating IP*
> and *fixed floating IP*.
>
> Thanks Jeffrey for pointing this out.
>
> Thanks.
>
>
>>
>>  -Jeffrey
>>
>>   From: Rajkumar Rajaratnam <ra...@wso2.com>
>> Date: Wednesday, November 19, 2014 11:58 AM
>> To: "dev@stratos.apache.org" <de...@stratos.apache.org>
>> Cc: jeffrngu <je...@cisco.com>, "Matt Turner (matttur)" <
>> matttur@cisco.com>
>> Subject: Re: Assigning floating IPs to any interfaces of our choice
>>
>>
>>
>> On Wed, Nov 19, 2014 at 7:01 PM, Rajkumar Rajaratnam <ra...@wso2.com>
>> wrote:
>>
>>>    Hi all,
>>>
>>>  I have implemented this feature and it is fully functional now. I had
>>> to upgrade Jclouds version to 1.8.1 in order to implement it using neutron
>>> networking API.
>>>
>>>  Let me explain how it works now. I will past network interfaces section
>>> of cartridge definition and explain each features implemented here.
>>>
>>>  "networkInterfaces":[
>>>     {
>>>         "name":"eth0",
>>>         "networkUuid":"512e1f54-1e85-4dac-b2e6-f0b30fc552cf",
>>>         "floatingNetworks":[
>>>             {
>>>                 "name":"externalOne",
>>>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c"
>>>             }
>>>         ]
>>>     },
>>>
>>> // eth0 will get a fixed IP and a floating IP from floating network externalOne
>>>
>>>    Please don't confuse with word "fixed IP" here. It doesn't mean
>> "predefined fixed IP". Each port has at least a fixed IP. From port's point
>> of view, it is a "fixed IP" of the port. That's why I used the word fixed
>> IP.
>>
>>>        {
>>>         "name":"eth1",
>>>         "networkUuid":"68aab21d-fc9a-4c2f-8d15-b1e41f6f7bb8"
>>>     },
>>>
>>> // eth1 will get a fixed IP
>>>
>>>     {
>>>         "name":"eth2",
>>>         "networkUuid":"b55f009a-1cc6-4b17-924f-4ae0ee18db5e",
>>>         "floatingNetworks":[
>>>             {
>>>                 "name":"externalThree",
>>>                 "floatingIP" : "192.168.17.227"
>>>             }
>>>         ]
>>>     },
>>>
>>> // eth2 will get a fixed IP and a predefined floating IP 192.168.17.227
>>>
>>> // if predefined IP is not available, an exception will be thrown
>>>
>>>     {
>>>         "name":"eth3",
>>>         "networkUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
>>>         "floatingNetworks":[
>>>             {
>>>                 "name":"externalThree",
>>>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
>>>                 "floatingIP" : "192.168.17.227"
>>>             }
>>>         ]
>>>     },
>>>
>>> // eth3 will get a fixed IP and a floating IP from the floating network externalThree
>>>
>>> // point here is that we are giving priority to networkUuid to floatingIP
>>>
>>>     {
>>>         "name":"eth4",
>>>         "portUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
>>>         "fixedIp":"10.5.62.3",
>>>         "floatingNetworks":[
>>>             {
>>>                 "name":"external",
>>>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
>>>                 "floatingIP" : "192.168.17.227"
>>>             }
>>>         ]
>>>     },
>>>
>>> // eth4 will get a predefined private IP 10.5.62.3 and a floating IP from network external
>>>
>>>     {
>>>         "name":"eth5",
>>>         "networkUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
>>>         "floatingNetworks":[
>>>             {
>>>                 "name":"externalOne",
>>>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
>>>                 "floatingIP" : "192.168.17.227"
>>>             },
>>>             {
>>>                 "name":"externalTwo",
>>>                 "networkUuid":"sddsdsd-7ba8-4b24-b360-b74a0211c83c",
>>>             }
>>>         ]
>>>     }
>>>
>>> // eth5 will get a fixed IP and a predefined floating IP 192.168.17.227
>>>
>>> // and a floating IP from the floating network externalTwo as well
>>>
>>> // I couldn't test whether it is supported by openstack
>>>
>>> // if openstack supports this, you can also achieve it in stratos
>>>
>>> ]
>>>
>>>
>>>  Please have look at the comments given in each network interfaces
>>> definition.
>>>
>>>  And if you define multiple network interfaces and floating networks, if
>>> even one IP allocation goes wrong, I am throwing exception and kill the
>>> instance.
>>>
>>>  Having this implemented, now I am in the process of doing changes to
>>> some topology events to incorporate multiple private/public IP addresses.
>>>
>>>  Please feel free to share your concerns.
>>>
>>>  Thanks.
>>>
>>> On Fri, Nov 14, 2014 at 7:14 PM, Rajkumar Rajaratnam <rajkumarr@wso2.com
>>> > wrote:
>>>
>>>>  Update;
>>>>
>>>>
>>>> On Fri, Nov 14, 2014 at 3:44 PM, Rajkumar Rajaratnam <
>>>> rajkumarr@wso2.com> wrote:
>>>>
>>>>>  Update;
>>>>>
>>>>> Currently facing an issue with upstream openstack-neutron-1.8.1.jar.
>>>>>
>>>>> When I see the MANIFEST.MF file of openstack-neutron-1.8.1.jar, it
>>>>> contains ${jclouds.version} in lot of places instead of actual version. Due
>>>>> to this carbon feature installation is failing. Because it is processing
>>>>> MANIFEST.MF and throwing number format exception.
>>>>>
>>>>>  I conveyed this in user@jclouds. For workaround, I am going to
>>>>> manually put the jar into /repository/components/lib and continue the work
>>>>> until it is sorted out in upstream.
>>>>>
>>>>
>>>>  This is a bug. One sent a PR to solve it
>>>>
>>>>  Thanks.
>>>>
>>>>>
>>>>>  Thanks.
>>>>>
>>>>> On Wed, Nov 12, 2014 at 4:48 PM, Rajkumar Rajaratnam <
>>>>> rajkumarr@wso2.com> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Nov 12, 2014 at 4:37 PM, Udara Liyanage <ud...@wso2.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi Raj,
>>>>>>>
>>>>>>>  No I did not try since there were no multiple public networks
>>>>>>> available.
>>>>>>>
>>>>>>
>>>>>>  Okay Udara. I am setting up a second external network now. Will run
>>>>>> a test soon.
>>>>>>
>>>>>>  Thanks.
>>>>>>
>>>>>>>
>>>>>>> On Wed, Nov 12, 2014 at 2:59 PM, Rajkumar Rajaratnam <
>>>>>>> rajkumarr@wso2.com> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Nov 12, 2014 at 2:52 PM, Udara Liyanage <ud...@wso2.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Hi Raj,
>>>>>>>>>
>>>>>>>>>  If I remember correctly, we can't assign folating ip to the same
>>>>>>>>> port multiple times even I try with Openstack UI.
>>>>>>>>>
>>>>>>>>
>>>>>>>>  Horizon UI doesn't support most of the operations. Yes we can't
>>>>>>>> assign multiple floating IPs from the same external network to the same
>>>>>>>> port. But I guess, we can assign multiple floating IPs from different
>>>>>>>> external network to the same port. Did you try this scenario?
>>>>>>>>
>>>>>>>>  Thanks.
>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Wed, Nov 12, 2014 at 2:47 PM, Rajkumar Rajaratnam <
>>>>>>>>> rajkumarr@wso2.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Devs,
>>>>>>>>>>
>>>>>>>>>>  I am working on $Subject. Please find the relevant JIRA at [1]
>>>>>>>>>>
>>>>>>>>>>  Currently Stratos will assign a floating IP to eth0 if
>>>>>>>>>> *autoAssignIp* property is set to false in cartridge definition.
>>>>>>>>>> AFAIU, stratos is using jclouds API to query the available floating IPs,
>>>>>>>>>> choose one and assign it to the instance. Correct me if this is not the
>>>>>>>>>> case.
>>>>>>>>>>
>>>>>>>>>>  In order to support $Subject, I am proposing the cartridge
>>>>>>>>>> definition as below;
>>>>>>>>>>
>>>>>>>>>>    {    "type":"mysql",   "provider":"data",   "host":"
>>>>>>>>>> apachestratos.org",   "displayName":"MySQL",   "description":"MySQL
>>>>>>>>>> Cartridge",   "version":"5.5",   "multiTenant":"false",   "
>>>>>>>>>> portMapping":[    {    "protocol":"http",   "port":"80",   "
>>>>>>>>>> proxyPort":"8280"   }   ],   "deployment":{       },   "
>>>>>>>>>> iaasProvider":[    {    "type":"openstack",   "imageId":"
>>>>>>>>>> RegionOne/1cd412c1-54ce-405f-9894-ce1387073c6c",   "
>>>>>>>>>> networkInterfaces":[    {    "name":"netOne",   "networkUuid":"
>>>>>>>>>> 84d52a6d-a9e5-472a-9935-a0e195fe5b4a",   "fixedIp":"10.0.1.4"
>>>>>>>>>> },   {    "name":"netTwo",   "networkUuid":"
>>>>>>>>>> 512e1f54-1e85-4dac-b2e6-f0b30fc552cf",   "publicNetworkUuids":[
>>>>>>>>>> {   "name":"externalOne",   "networkUuid":"
>>>>>>>>>> 8f08a69d-cb46-43c9-9ebe-b89dcc78dacc",   },   {   "name":"
>>>>>>>>>> externalTwo",   "networkUuid":"
>>>>>>>>>> b5504321-e7aa-4500-9e00-7bc1b10cb5e9",   }   ]   },   {    "name"
>>>>>>>>>> :"netThree",   "networkUuid":"
>>>>>>>>>> b55f009a-1cc6-4b17-924f-4ae0ee18db5e",   "publicNetworkUuids":[
>>>>>>>>>> {   "name":"externalThree",   "networkUuid":"
>>>>>>>>>> 83d52a6d-a9e5-572a-9935-a0e195fe5b4r",   }   ]   }   ],   "
>>>>>>>>>> maxInstanceLimit":"4",   "property":[    {    "name":"
>>>>>>>>>> instanceType",   "value":"RegionOne/4"   },   {    "name":"
>>>>>>>>>> keyPair",   "value":"raj"   },   {    "name":"autoAssignIp",   "
>>>>>>>>>> value":"false"   }   ]   }   ],   "loadBalancer":{    "type":"lb"
>>>>>>>>>> ,   "property":{    "name":"no.load.balancer",   "value":"true"
>>>>>>>>>> }   }   }
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>  So, I have introduced some additional elements here in networks
>>>>>>>>>> section. publicNetworkUuids will hold one or many external network UUIDs
>>>>>>>>>> from where you want to select one IP and assign it the corresponding
>>>>>>>>>> interface. Let list me three behaviors, as of now, I have identified.
>>>>>>>>>>
>>>>>>>>>>    1. If *autoAssignIp* property is *true*, stratos will not do
>>>>>>>>>>    anything regarding floating IPs when creating instances for this cartridge.
>>>>>>>>>>    But openstack will assign a floating IP to the instance.
>>>>>>>>>>    2. If *autoAssignIp* property is *false*, and you *don't *specify
>>>>>>>>>>    any publicNetworkUuids for any interface, then stratos will assign a
>>>>>>>>>>    floating IP to the 1st interface
>>>>>>>>>>    3. If *autoAssignIp* property is *false*, and you
>>>>>>>>>>    specify publicNetworkUuids, then stratos will assign floating IPs per
>>>>>>>>>>    interfaces for which you specified publicNetworkUuids. If you specify
>>>>>>>>>>    two publicNetworkUuids for an interface, it will assign two floating IPs to
>>>>>>>>>>    that interface and so on.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>  However, I tried to assign two floating IP addresses to an
>>>>>>>>>> interface which resulted in the following error.
>>>>>>>>>>
>>>>>>>>>>  *Error: *409-{u'NeutronError': {u'message': u'Cannot associate
>>>>>>>>>> floating IP 192.168.17.96 (5691eb81-3153-4ee1-b9d0-31fc84516b03) with port
>>>>>>>>>> 7e9416ce-5077-44c4-97db-b4b14c10dfc9 using fixed IP 10.0.0.167, as that
>>>>>>>>>> fixed IP already has a floating IP on external network
>>>>>>>>>> ba667f72-7ba8-4b24-b360-b74a0211c83c.', u'type':
>>>>>>>>>> u'FloatingIPPortAlreadyAssociated', u'detail': u''}}
>>>>>>>>>>
>>>>>>>>>>  I guess we can't assign multiple floating IPs to the same
>>>>>>>>>> interface from same network. We would be able to assign multiple floating
>>>>>>>>>> IPs to the same interface from multiple networks. Since I am having only
>>>>>>>>>> one external network, I couldn't test this. Any idea?
>>>>>>>>>>
>>>>>>>>>>  Feel free to share your thoughts.
>>>>>>>>>>
>>>>>>>>>>  1. https://issues.apache.org/jira/browse/STRATOS-698
>>>>>>>>>>
>>>>>>>>>>  Thanks.
>>>>>>>>>>
>>>>>>>>>>  --
>>>>>>>>>>     Raj
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>   --
>>>>>>>>>
>>>>>>>>> Udara Liyanage
>>>>>>>>> Software Engineer
>>>>>>>>> WSO2, Inc.: http://wso2.com
>>>>>>>>> lean. enterprise. middleware
>>>>>>>>>
>>>>>>>>>  web: http://udaraliyanage.wordpress.com
>>>>>>>>>  phone: +94 71 443 6897
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>  --
>>>>>>>>     Raj
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>  --
>>>>>>>
>>>>>>> Udara Liyanage
>>>>>>> Software Engineer
>>>>>>> WSO2, Inc.: http://wso2.com
>>>>>>> lean. enterprise. middleware
>>>>>>>
>>>>>>>  web: http://udaraliyanage.wordpress.com
>>>>>>>  phone: +94 71 443 6897
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>  --
>>>>>>     Raj
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>>  --
>>>>>     Raj
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>>     Raj
>>>>
>>>
>>>
>>>
>>>  --
>>>      Rajkumar Rajaratnam
>>>  Committer & PMC Member, Apache Stratos
>>>  Software Engineer, WSO2
>>>
>>
>>
>>
>> --
>>      Rajkumar Rajaratnam
>>  Committer & PMC Member, Apache Stratos
>>  Software Engineer, WSO2
>>
>
>
>
> --
> Rajkumar Rajaratnam
> Committer & PMC Member, Apache Stratos
> Software Engineer, WSO2
>



-- 
Rajkumar Rajaratnam
Committer & PMC Member, Apache Stratos
Software Engineer, WSO2

Re: Assigning floating IPs to any interfaces of our choice

Posted by Rajkumar Rajaratnam <ra...@wso2.com>.
On Thu, Nov 20, 2014 at 12:52 AM, Jeffrey Nguyen (jeffrngu) <
jeffrngu@cisco.com> wrote:

>
>  I think it's probably less confusing if we use the terms "private IP"
> and "fixed private IP" (or "predefined private IP").
>

Yes. We will use the words *private IP*, *fixed private IP*, *floating IP*
and *fixed floating IP*.

Thanks Jeffrey for pointing this out.

Thanks.


>
>  -Jeffrey
>
>   From: Rajkumar Rajaratnam <ra...@wso2.com>
> Date: Wednesday, November 19, 2014 11:58 AM
> To: "dev@stratos.apache.org" <de...@stratos.apache.org>
> Cc: jeffrngu <je...@cisco.com>, "Matt Turner (matttur)" <
> matttur@cisco.com>
> Subject: Re: Assigning floating IPs to any interfaces of our choice
>
>
>
> On Wed, Nov 19, 2014 at 7:01 PM, Rajkumar Rajaratnam <ra...@wso2.com>
> wrote:
>
>>    Hi all,
>>
>>  I have implemented this feature and it is fully functional now. I had to
>> upgrade Jclouds version to 1.8.1 in order to implement it using neutron
>> networking API.
>>
>>  Let me explain how it works now. I will past network interfaces section
>> of cartridge definition and explain each features implemented here.
>>
>>  "networkInterfaces":[
>>     {
>>         "name":"eth0",
>>         "networkUuid":"512e1f54-1e85-4dac-b2e6-f0b30fc552cf",
>>         "floatingNetworks":[
>>             {
>>                 "name":"externalOne",
>>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c"
>>             }
>>         ]
>>     },
>>
>> // eth0 will get a fixed IP and a floating IP from floating network externalOne
>>
>>    Please don't confuse with word "fixed IP" here. It doesn't mean
> "predefined fixed IP". Each port has at least a fixed IP. From port's point
> of view, it is a "fixed IP" of the port. That's why I used the word fixed
> IP.
>
>>        {
>>         "name":"eth1",
>>         "networkUuid":"68aab21d-fc9a-4c2f-8d15-b1e41f6f7bb8"
>>     },
>>
>> // eth1 will get a fixed IP
>>
>>     {
>>         "name":"eth2",
>>         "networkUuid":"b55f009a-1cc6-4b17-924f-4ae0ee18db5e",
>>         "floatingNetworks":[
>>             {
>>                 "name":"externalThree",
>>                 "floatingIP" : "192.168.17.227"
>>             }
>>         ]
>>     },
>>
>> // eth2 will get a fixed IP and a predefined floating IP 192.168.17.227
>>
>> // if predefined IP is not available, an exception will be thrown
>>
>>     {
>>         "name":"eth3",
>>         "networkUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
>>         "floatingNetworks":[
>>             {
>>                 "name":"externalThree",
>>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
>>                 "floatingIP" : "192.168.17.227"
>>             }
>>         ]
>>     },
>>
>> // eth3 will get a fixed IP and a floating IP from the floating network externalThree
>>
>> // point here is that we are giving priority to networkUuid to floatingIP
>>
>>     {
>>         "name":"eth4",
>>         "portUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
>>         "fixedIp":"10.5.62.3",
>>         "floatingNetworks":[
>>             {
>>                 "name":"external",
>>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
>>                 "floatingIP" : "192.168.17.227"
>>             }
>>         ]
>>     },
>>
>> // eth4 will get a predefined private IP 10.5.62.3 and a floating IP from network external
>>
>>     {
>>         "name":"eth5",
>>         "networkUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
>>         "floatingNetworks":[
>>             {
>>                 "name":"externalOne",
>>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
>>                 "floatingIP" : "192.168.17.227"
>>             },
>>             {
>>                 "name":"externalTwo",
>>                 "networkUuid":"sddsdsd-7ba8-4b24-b360-b74a0211c83c",
>>             }
>>         ]
>>     }
>>
>> // eth5 will get a fixed IP and a predefined floating IP 192.168.17.227
>>
>> // and a floating IP from the floating network externalTwo as well
>>
>> // I couldn't test whether it is supported by openstack
>>
>> // if openstack supports this, you can also achieve it in stratos
>>
>> ]
>>
>>
>>  Please have look at the comments given in each network interfaces
>> definition.
>>
>>  And if you define multiple network interfaces and floating networks, if
>> even one IP allocation goes wrong, I am throwing exception and kill the
>> instance.
>>
>>  Having this implemented, now I am in the process of doing changes to
>> some topology events to incorporate multiple private/public IP addresses.
>>
>>  Please feel free to share your concerns.
>>
>>  Thanks.
>>
>> On Fri, Nov 14, 2014 at 7:14 PM, Rajkumar Rajaratnam <ra...@wso2.com>
>> wrote:
>>
>>>  Update;
>>>
>>>
>>> On Fri, Nov 14, 2014 at 3:44 PM, Rajkumar Rajaratnam <rajkumarr@wso2.com
>>> > wrote:
>>>
>>>>  Update;
>>>>
>>>> Currently facing an issue with upstream openstack-neutron-1.8.1.jar.
>>>>
>>>> When I see the MANIFEST.MF file of openstack-neutron-1.8.1.jar, it
>>>> contains ${jclouds.version} in lot of places instead of actual version. Due
>>>> to this carbon feature installation is failing. Because it is processing
>>>> MANIFEST.MF and throwing number format exception.
>>>>
>>>>  I conveyed this in user@jclouds. For workaround, I am going to
>>>> manually put the jar into /repository/components/lib and continue the work
>>>> until it is sorted out in upstream.
>>>>
>>>
>>>  This is a bug. One sent a PR to solve it
>>>
>>>  Thanks.
>>>
>>>>
>>>>  Thanks.
>>>>
>>>> On Wed, Nov 12, 2014 at 4:48 PM, Rajkumar Rajaratnam <
>>>> rajkumarr@wso2.com> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Wed, Nov 12, 2014 at 4:37 PM, Udara Liyanage <ud...@wso2.com>
>>>>> wrote:
>>>>>
>>>>>> Hi Raj,
>>>>>>
>>>>>>  No I did not try since there were no multiple public networks
>>>>>> available.
>>>>>>
>>>>>
>>>>>  Okay Udara. I am setting up a second external network now. Will run
>>>>> a test soon.
>>>>>
>>>>>  Thanks.
>>>>>
>>>>>>
>>>>>> On Wed, Nov 12, 2014 at 2:59 PM, Rajkumar Rajaratnam <
>>>>>> rajkumarr@wso2.com> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Nov 12, 2014 at 2:52 PM, Udara Liyanage <ud...@wso2.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi Raj,
>>>>>>>>
>>>>>>>>  If I remember correctly, we can't assign folating ip to the same
>>>>>>>> port multiple times even I try with Openstack UI.
>>>>>>>>
>>>>>>>
>>>>>>>  Horizon UI doesn't support most of the operations. Yes we can't
>>>>>>> assign multiple floating IPs from the same external network to the same
>>>>>>> port. But I guess, we can assign multiple floating IPs from different
>>>>>>> external network to the same port. Did you try this scenario?
>>>>>>>
>>>>>>>  Thanks.
>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Nov 12, 2014 at 2:47 PM, Rajkumar Rajaratnam <
>>>>>>>> rajkumarr@wso2.com> wrote:
>>>>>>>>
>>>>>>>>> Hi Devs,
>>>>>>>>>
>>>>>>>>>  I am working on $Subject. Please find the relevant JIRA at [1]
>>>>>>>>>
>>>>>>>>>  Currently Stratos will assign a floating IP to eth0 if
>>>>>>>>> *autoAssignIp* property is set to false in cartridge definition.
>>>>>>>>> AFAIU, stratos is using jclouds API to query the available floating IPs,
>>>>>>>>> choose one and assign it to the instance. Correct me if this is not the
>>>>>>>>> case.
>>>>>>>>>
>>>>>>>>>  In order to support $Subject, I am proposing the cartridge
>>>>>>>>> definition as below;
>>>>>>>>>
>>>>>>>>>    {    "type":"mysql",   "provider":"data",   "host":"
>>>>>>>>> apachestratos.org",   "displayName":"MySQL",   "description":"MySQL
>>>>>>>>> Cartridge",   "version":"5.5",   "multiTenant":"false",   "
>>>>>>>>> portMapping":[    {    "protocol":"http",   "port":"80",   "
>>>>>>>>> proxyPort":"8280"   }   ],   "deployment":{       },   "
>>>>>>>>> iaasProvider":[    {    "type":"openstack",   "imageId":"
>>>>>>>>> RegionOne/1cd412c1-54ce-405f-9894-ce1387073c6c",   "
>>>>>>>>> networkInterfaces":[    {    "name":"netOne",   "networkUuid":"
>>>>>>>>> 84d52a6d-a9e5-472a-9935-a0e195fe5b4a",   "fixedIp":"10.0.1.4"   },   {
>>>>>>>>>    "name":"netTwo",   "networkUuid":"
>>>>>>>>> 512e1f54-1e85-4dac-b2e6-f0b30fc552cf",   "publicNetworkUuids":[
>>>>>>>>> {   "name":"externalOne",   "networkUuid":"
>>>>>>>>> 8f08a69d-cb46-43c9-9ebe-b89dcc78dacc",   },   {   "name":"
>>>>>>>>> externalTwo",   "networkUuid":"
>>>>>>>>> b5504321-e7aa-4500-9e00-7bc1b10cb5e9",   }   ]   },   {    "name":
>>>>>>>>> "netThree",   "networkUuid":"b55f009a-1cc6-4b17-924f-4ae0ee18db5e"
>>>>>>>>> ,   "publicNetworkUuids":[   {   "name":"externalThree",   "
>>>>>>>>> networkUuid":"83d52a6d-a9e5-572a-9935-a0e195fe5b4r",   }   ]   }
>>>>>>>>> ],   "maxInstanceLimit":"4",   "property":[    {    "name":"
>>>>>>>>> instanceType",   "value":"RegionOne/4"   },   {    "name":"keyPair
>>>>>>>>> ",   "value":"raj"   },   {    "name":"autoAssignIp",   "value":"
>>>>>>>>> false"   }   ]   }   ],   "loadBalancer":{    "type":"lb",   "
>>>>>>>>> property":{    "name":"no.load.balancer",   "value":"true"   }   }
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  So, I have introduced some additional elements here in networks
>>>>>>>>> section. publicNetworkUuids will hold one or many external network UUIDs
>>>>>>>>> from where you want to select one IP and assign it the corresponding
>>>>>>>>> interface. Let list me three behaviors, as of now, I have identified.
>>>>>>>>>
>>>>>>>>>    1. If *autoAssignIp* property is *true*, stratos will not do
>>>>>>>>>    anything regarding floating IPs when creating instances for this cartridge.
>>>>>>>>>    But openstack will assign a floating IP to the instance.
>>>>>>>>>    2. If *autoAssignIp* property is *false*, and you *don't *specify
>>>>>>>>>    any publicNetworkUuids for any interface, then stratos will assign a
>>>>>>>>>    floating IP to the 1st interface
>>>>>>>>>    3. If *autoAssignIp* property is *false*, and you
>>>>>>>>>    specify publicNetworkUuids, then stratos will assign floating IPs per
>>>>>>>>>    interfaces for which you specified publicNetworkUuids. If you specify
>>>>>>>>>    two publicNetworkUuids for an interface, it will assign two floating IPs to
>>>>>>>>>    that interface and so on.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  However, I tried to assign two floating IP addresses to an
>>>>>>>>> interface which resulted in the following error.
>>>>>>>>>
>>>>>>>>>  *Error: *409-{u'NeutronError': {u'message': u'Cannot associate
>>>>>>>>> floating IP 192.168.17.96 (5691eb81-3153-4ee1-b9d0-31fc84516b03) with port
>>>>>>>>> 7e9416ce-5077-44c4-97db-b4b14c10dfc9 using fixed IP 10.0.0.167, as that
>>>>>>>>> fixed IP already has a floating IP on external network
>>>>>>>>> ba667f72-7ba8-4b24-b360-b74a0211c83c.', u'type':
>>>>>>>>> u'FloatingIPPortAlreadyAssociated', u'detail': u''}}
>>>>>>>>>
>>>>>>>>>  I guess we can't assign multiple floating IPs to the same
>>>>>>>>> interface from same network. We would be able to assign multiple floating
>>>>>>>>> IPs to the same interface from multiple networks. Since I am having only
>>>>>>>>> one external network, I couldn't test this. Any idea?
>>>>>>>>>
>>>>>>>>>  Feel free to share your thoughts.
>>>>>>>>>
>>>>>>>>>  1. https://issues.apache.org/jira/browse/STRATOS-698
>>>>>>>>>
>>>>>>>>>  Thanks.
>>>>>>>>>
>>>>>>>>>  --
>>>>>>>>>     Raj
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>   --
>>>>>>>>
>>>>>>>> Udara Liyanage
>>>>>>>> Software Engineer
>>>>>>>> WSO2, Inc.: http://wso2.com
>>>>>>>> lean. enterprise. middleware
>>>>>>>>
>>>>>>>>  web: http://udaraliyanage.wordpress.com
>>>>>>>>  phone: +94 71 443 6897
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>  --
>>>>>>>     Raj
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>  --
>>>>>>
>>>>>> Udara Liyanage
>>>>>> Software Engineer
>>>>>> WSO2, Inc.: http://wso2.com
>>>>>> lean. enterprise. middleware
>>>>>>
>>>>>>  web: http://udaraliyanage.wordpress.com
>>>>>>  phone: +94 71 443 6897
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>>  --
>>>>>     Raj
>>>>>
>>>>
>>>>
>>>>
>>>>  --
>>>>     Raj
>>>>
>>>
>>>
>>>
>>> --
>>>     Raj
>>>
>>
>>
>>
>>  --
>>      Rajkumar Rajaratnam
>>  Committer & PMC Member, Apache Stratos
>>  Software Engineer, WSO2
>>
>
>
>
> --
>      Rajkumar Rajaratnam
>  Committer & PMC Member, Apache Stratos
>  Software Engineer, WSO2
>



-- 
Rajkumar Rajaratnam
Committer & PMC Member, Apache Stratos
Software Engineer, WSO2

Re: Assigning floating IPs to any interfaces of our choice

Posted by "Jeffrey Nguyen (jeffrngu)" <je...@cisco.com>.
I think it's probably less confusing if we use the terms "private IP" and "fixed private IP" (or "predefined private IP").

-Jeffrey

From: Rajkumar Rajaratnam <ra...@wso2.com>>
Date: Wednesday, November 19, 2014 11:58 AM
To: "dev@stratos.apache.org<ma...@stratos.apache.org>" <de...@stratos.apache.org>>
Cc: jeffrngu <je...@cisco.com>>, "Matt Turner (matttur)" <ma...@cisco.com>>
Subject: Re: Assigning floating IPs to any interfaces of our choice



On Wed, Nov 19, 2014 at 7:01 PM, Rajkumar Rajaratnam <ra...@wso2.com>> wrote:
Hi all,

I have implemented this feature and it is fully functional now. I had to upgrade Jclouds version to 1.8.1 in order to implement it using neutron networking API.

Let me explain how it works now. I will past network interfaces section of cartridge definition and explain each features implemented here.


"networkInterfaces":[
    {
        "name":"eth0",
        "networkUuid":"512e1f54-1e85-4dac-b2e6-f0b30fc552cf",
        "floatingNetworks":[
            {
                "name":"externalOne",
                "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c"
            }
        ]
    },

// eth0 will get a fixed IP and a floating IP from floating network externalOne

Please don't confuse with word "fixed IP" here. It doesn't mean "predefined fixed IP". Each port has at least a fixed IP. From port's point of view, it is a "fixed IP" of the port. That's why I used the word fixed IP.

    {
        "name":"eth1",
        "networkUuid":"68aab21d-fc9a-4c2f-8d15-b1e41f6f7bb8"
    },

// eth1 will get a fixed IP

    {
        "name":"eth2",
        "networkUuid":"b55f009a-1cc6-4b17-924f-4ae0ee18db5e",
        "floatingNetworks":[
            {
                "name":"externalThree",
                "floatingIP" : "192.168.17.227"
            }
        ]
    },

// eth2 will get a fixed IP and a predefined floating IP 192.168.17.227

// if predefined IP is not available, an exception will be thrown

    {
        "name":"eth3",
        "networkUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
        "floatingNetworks":[
            {
                "name":"externalThree",
                "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
                "floatingIP" : "192.168.17.227"
            }
        ]
    },

// eth3 will get a fixed IP and a floating IP from the floating network externalThree

// point here is that we are giving priority to networkUuid to floatingIP

    {
        "name":"eth4",
        "portUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
        "fixedIp":"10.5.62.3",
        "floatingNetworks":[
            {
                "name":"external",
                "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
                "floatingIP" : "192.168.17.227"
            }
        ]
    },

// eth4 will get a predefined private IP 10.5.62.3 and a floating IP from network external

    {
        "name":"eth5",
        "networkUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
        "floatingNetworks":[
            {
                "name":"externalOne",
                "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
                "floatingIP" : "192.168.17.227"
            },
            {
                "name":"externalTwo",
                "networkUuid":"sddsdsd-7ba8-4b24-b360-b74a0211c83c",
            }
        ]
    }

// eth5 will get a fixed IP and a predefined floating IP 192.168.17.227

// and a floating IP from the floating network externalTwo as well

// I couldn't test whether it is supported by openstack

// if openstack supports this, you can also achieve it in stratos

]

Please have look at the comments given in each network interfaces definition.

And if you define multiple network interfaces and floating networks, if even one IP allocation goes wrong, I am throwing exception and kill the instance.

Having this implemented, now I am in the process of doing changes to some topology events to incorporate multiple private/public IP addresses.

Please feel free to share your concerns.

Thanks.

On Fri, Nov 14, 2014 at 7:14 PM, Rajkumar Rajaratnam <ra...@wso2.com>> wrote:
Update;


On Fri, Nov 14, 2014 at 3:44 PM, Rajkumar Rajaratnam <ra...@wso2.com>> wrote:
Update;

Currently facing an issue with upstream openstack-neutron-1.8.1.jar.

When I see the MANIFEST.MF file of openstack-neutron-1.8.1.jar, it contains ${jclouds.version} in lot of places instead of actual version. Due to this carbon feature installation is failing. Because it is processing MANIFEST.MF and throwing number format exception.

I conveyed this in user@jclouds. For workaround, I am going to manually put the jar into /repository/components/lib and continue the work until it is sorted out in upstream.

This is a bug. One sent a PR to solve it

Thanks.

Thanks.

On Wed, Nov 12, 2014 at 4:48 PM, Rajkumar Rajaratnam <ra...@wso2.com>> wrote:


On Wed, Nov 12, 2014 at 4:37 PM, Udara Liyanage <ud...@wso2.com>> wrote:
Hi Raj,

No I did not try since there were no multiple public networks available.

Okay Udara. I am setting up a second external network now. Will run a test soon.

Thanks.

On Wed, Nov 12, 2014 at 2:59 PM, Rajkumar Rajaratnam <ra...@wso2.com>> wrote:


On Wed, Nov 12, 2014 at 2:52 PM, Udara Liyanage <ud...@wso2.com>> wrote:
Hi Raj,

If I remember correctly, we can't assign folating ip to the same port multiple times even I try with Openstack UI.

Horizon UI doesn't support most of the operations. Yes we can't assign multiple floating IPs from the same external network to the same port. But I guess, we can assign multiple floating IPs from different external network to the same port. Did you try this scenario?

Thanks.

On Wed, Nov 12, 2014 at 2:47 PM, Rajkumar Rajaratnam <ra...@wso2.com>> wrote:
Hi Devs,

I am working on $Subject. Please find the relevant JIRA at [1]

Currently Stratos will assign a floating IP to eth0 if autoAssignIp property is set to false in cartridge definition. AFAIU, stratos is using jclouds API to query the available floating IPs, choose one and assign it to the instance. Correct me if this is not the case.

In order to support $Subject, I am proposing the cartridge definition as below;

{
        "type":"mysql",
        "provider":"data",
        "host":"apachestratos.org<http://apachestratos.org>",
        "displayName":"MySQL",
        "description":"MySQL Cartridge",
        "version":"5.5",
        "multiTenant":"false",
        "portMapping":[
        {
        "protocol":"http",
        "port":"80",
        "proxyPort":"8280"
        }
        ],
        "deployment":{

        },
        "iaasProvider":[
        {
        "type":"openstack",
        "imageId":"RegionOne/1cd412c1-54ce-405f-9894-ce1387073c6c",
        "networkInterfaces":[
        {
        "name":"netOne",
        "networkUuid":"84d52a6d-a9e5-472a-9935-a0e195fe5b4a",
        "fixedIp":"10.0.1.4"
        },
        {
        "name":"netTwo",
        "networkUuid":"512e1f54-1e85-4dac-b2e6-f0b30fc552cf",
        "publicNetworkUuids":[
        {
        "name":"externalOne",
        "networkUuid":"8f08a69d-cb46-43c9-9ebe-b89dcc78dacc",
        },
        {
        "name":"externalTwo",
        "networkUuid":"b5504321-e7aa-4500-9e00-7bc1b10cb5e9",
        }
        ]
        },
        {
        "name":"netThree",
        "networkUuid":"b55f009a-1cc6-4b17-924f-4ae0ee18db5e",
        "publicNetworkUuids":[
        {
        "name":"externalThree",
        "networkUuid":"83d52a6d-a9e5-572a-9935-a0e195fe5b4r",
        }
        ]
        }
        ],
        "maxInstanceLimit":"4",
        "property":[
        {
        "name":"instanceType",
        "value":"RegionOne/4"
        },
        {
        "name":"keyPair",
        "value":"raj"
        },
        {
        "name":"autoAssignIp",
        "value":"false"
        }
        ]
        }
        ],
        "loadBalancer":{
        "type":"lb",
        "property":{
        "name":"no.load.balancer",
        "value":"true"
        }
        }
        }


So, I have introduced some additional elements here in networks section. publicNetworkUuids will hold one or many external network UUIDs from where you want to select one IP and assign it the corresponding interface. Let list me three behaviors, as of now, I have identified.

  1.  If autoAssignIp property is true, stratos will not do anything regarding floating IPs when creating instances for this cartridge. But openstack will assign a floating IP to the instance.
  2.  If autoAssignIp property is false, and you don't specify any publicNetworkUuids for any interface, then stratos will assign a floating IP to the 1st interface
  3.  If autoAssignIp property is false, and you specify publicNetworkUuids, then stratos will assign floating IPs per interfaces for which you specified publicNetworkUuids. If you specify two publicNetworkUuids for an interface, it will assign two floating IPs to that interface and so on.

However, I tried to assign two floating IP addresses to an interface which resulted in the following error.

Error: 409-{u'NeutronError': {u'message': u'Cannot associate floating IP 192.168.17.96 (5691eb81-3153-4ee1-b9d0-31fc84516b03) with port 7e9416ce-5077-44c4-97db-b4b14c10dfc9 using fixed IP 10.0.0.167, as that fixed IP already has a floating IP on external network ba667f72-7ba8-4b24-b360-b74a0211c83c.', u'type': u'FloatingIPPortAlreadyAssociated', u'detail': u''}}

I guess we can't assign multiple floating IPs to the same interface from same network. We would be able to assign multiple floating IPs to the same interface from multiple networks. Since I am having only one external network, I couldn't test this. Any idea?

Feel free to share your thoughts.

1. https://issues.apache.org/jira/browse/STRATOS-698

Thanks.

--
Raj



--

Udara Liyanage
Software Engineer
WSO2, Inc.: http://wso2.com<http://wso2.com/>
lean. enterprise. middleware

web: http://udaraliyanage.wordpress.com
phone: +94 71 443 6897



--
Raj



--

Udara Liyanage
Software Engineer
WSO2, Inc.: http://wso2.com<http://wso2.com/>
lean. enterprise. middleware

web: http://udaraliyanage.wordpress.com
phone: +94 71 443 6897



--
Raj



--
Raj



--
Raj



--
Rajkumar Rajaratnam
Committer & PMC Member, Apache Stratos
Software Engineer, WSO2



--
Rajkumar Rajaratnam
Committer & PMC Member, Apache Stratos
Software Engineer, WSO2

Re: Assigning floating IPs to any interfaces of our choice

Posted by Rajkumar Rajaratnam <ra...@wso2.com>.
On Wed, Nov 19, 2014 at 7:01 PM, Rajkumar Rajaratnam <ra...@wso2.com>
wrote:

> Hi all,
>
> I have implemented this feature and it is fully functional now. I had to
> upgrade Jclouds version to 1.8.1 in order to implement it using neutron
> networking API.
>
> Let me explain how it works now. I will past network interfaces section of
> cartridge definition and explain each features implemented here.
>
> "networkInterfaces":[
>     {
>         "name":"eth0",
>         "networkUuid":"512e1f54-1e85-4dac-b2e6-f0b30fc552cf",
>         "floatingNetworks":[
>             {
>                 "name":"externalOne",
>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c"
>             }
>         ]
>     },
>
> // eth0 will get a fixed IP and a floating IP from floating network externalOne
>
> Please don't confuse with word "fixed IP" here. It doesn't mean
"predefined fixed IP". Each port has at least a fixed IP. From port's point
of view, it is a "fixed IP" of the port. That's why I used the word fixed
IP.

>     {
>         "name":"eth1",
>         "networkUuid":"68aab21d-fc9a-4c2f-8d15-b1e41f6f7bb8"
>     },
>
> // eth1 will get a fixed IP
>
>     {
>         "name":"eth2",
>         "networkUuid":"b55f009a-1cc6-4b17-924f-4ae0ee18db5e",
>         "floatingNetworks":[
>             {
>                 "name":"externalThree",
>                 "floatingIP" : "192.168.17.227"
>             }
>         ]
>     },
>
> // eth2 will get a fixed IP and a predefined floating IP 192.168.17.227
>
> // if predefined IP is not available, an exception will be thrown
>
>     {
>         "name":"eth3",
>         "networkUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
>         "floatingNetworks":[
>             {
>                 "name":"externalThree",
>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
>                 "floatingIP" : "192.168.17.227"
>             }
>         ]
>     },
>
> // eth3 will get a fixed IP and a floating IP from the floating network externalThree
>
> // point here is that we are giving priority to networkUuid to floatingIP
>
>     {
>         "name":"eth4",
>         "portUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
>         "fixedIp":"10.5.62.3",
>         "floatingNetworks":[
>             {
>                 "name":"external",
>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
>                 "floatingIP" : "192.168.17.227"
>             }
>         ]
>     },
>
> // eth4 will get a predefined private IP 10.5.62.3 and a floating IP from network external
>
>     {
>         "name":"eth5",
>         "networkUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
>         "floatingNetworks":[
>             {
>                 "name":"externalOne",
>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
>                 "floatingIP" : "192.168.17.227"
>             },
>             {
>                 "name":"externalTwo",
>                 "networkUuid":"sddsdsd-7ba8-4b24-b360-b74a0211c83c",
>             }
>         ]
>     }
>
> // eth5 will get a fixed IP and a predefined floating IP 192.168.17.227
>
> // and a floating IP from the floating network externalTwo as well
>
> // I couldn't test whether it is supported by openstack
>
> // if openstack supports this, you can also achieve it in stratos
>
> ]
>
>
> Please have look at the comments given in each network interfaces
> definition.
>
> And if you define multiple network interfaces and floating networks, if
> even one IP allocation goes wrong, I am throwing exception and kill the
> instance.
>
> Having this implemented, now I am in the process of doing changes to some
> topology events to incorporate multiple private/public IP addresses.
>
> Please feel free to share your concerns.
>
> Thanks.
>
> On Fri, Nov 14, 2014 at 7:14 PM, Rajkumar Rajaratnam <ra...@wso2.com>
> wrote:
>
>> Update;
>>
>>
>> On Fri, Nov 14, 2014 at 3:44 PM, Rajkumar Rajaratnam <ra...@wso2.com>
>> wrote:
>>
>>> Update;
>>>
>>> Currently facing an issue with upstream openstack-neutron-1.8.1.jar.
>>>
>>> When I see the MANIFEST.MF file of openstack-neutron-1.8.1.jar, it
>>> contains ${jclouds.version} in lot of places instead of actual version. Due
>>> to this carbon feature installation is failing. Because it is processing
>>> MANIFEST.MF and throwing number format exception.
>>>
>>> I conveyed this in user@jclouds. For workaround, I am going to manually
>>> put the jar into /repository/components/lib and continue the work until it
>>> is sorted out in upstream.
>>>
>>
>> This is a bug. One sent a PR to solve it
>>
>> Thanks.
>>
>>>
>>> Thanks.
>>>
>>> On Wed, Nov 12, 2014 at 4:48 PM, Rajkumar Rajaratnam <rajkumarr@wso2.com
>>> > wrote:
>>>
>>>>
>>>>
>>>> On Wed, Nov 12, 2014 at 4:37 PM, Udara Liyanage <ud...@wso2.com> wrote:
>>>>
>>>>> Hi Raj,
>>>>>
>>>>> No I did not try since there were no multiple public networks
>>>>> available.
>>>>>
>>>>
>>>> Okay Udara. I am setting up a second external network now. Will run a
>>>> test soon.
>>>>
>>>> Thanks.
>>>>
>>>>>
>>>>> On Wed, Nov 12, 2014 at 2:59 PM, Rajkumar Rajaratnam <
>>>>> rajkumarr@wso2.com> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Nov 12, 2014 at 2:52 PM, Udara Liyanage <ud...@wso2.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi Raj,
>>>>>>>
>>>>>>> If I remember correctly, we can't assign folating ip to the same
>>>>>>> port multiple times even I try with Openstack UI.
>>>>>>>
>>>>>>
>>>>>> Horizon UI doesn't support most of the operations. Yes we can't
>>>>>> assign multiple floating IPs from the same external network to the same
>>>>>> port. But I guess, we can assign multiple floating IPs from different
>>>>>> external network to the same port. Did you try this scenario?
>>>>>>
>>>>>> Thanks.
>>>>>>
>>>>>>>
>>>>>>> On Wed, Nov 12, 2014 at 2:47 PM, Rajkumar Rajaratnam <
>>>>>>> rajkumarr@wso2.com> wrote:
>>>>>>>
>>>>>>>> Hi Devs,
>>>>>>>>
>>>>>>>> I am working on $Subject. Please find the relevant JIRA at [1]
>>>>>>>>
>>>>>>>> Currently Stratos will assign a floating IP to eth0 if
>>>>>>>> *autoAssignIp* property is set to false in cartridge definition.
>>>>>>>> AFAIU, stratos is using jclouds API to query the available floating IPs,
>>>>>>>> choose one and assign it to the instance. Correct me if this is not the
>>>>>>>> case.
>>>>>>>>
>>>>>>>> In order to support $Subject, I am proposing the cartridge
>>>>>>>> definition as below;
>>>>>>>>
>>>>>>>> { "type":"mysql", "provider":"data", "host":"apachestratos.org", "
>>>>>>>> displayName":"MySQL", "description":"MySQL Cartridge", "version":"
>>>>>>>> 5.5", "multiTenant":"false", "portMapping":[ { "protocol":"http", "
>>>>>>>> port":"80", "proxyPort":"8280" } ], "deployment":{  }, "
>>>>>>>> iaasProvider":[ { "type":"openstack", "imageId":"
>>>>>>>> RegionOne/1cd412c1-54ce-405f-9894-ce1387073c6c", "networkInterfaces
>>>>>>>> ":[ { "name":"netOne", "networkUuid":"
>>>>>>>> 84d52a6d-a9e5-472a-9935-a0e195fe5b4a", "fixedIp":"10.0.1.4" }, { "
>>>>>>>> name":"netTwo", "networkUuid":"512e1f54-1e85-4dac-b2e6-f0b30fc552cf
>>>>>>>> ", "publicNetworkUuids":[ { "name":"externalOne", "networkUuid":"
>>>>>>>> 8f08a69d-cb46-43c9-9ebe-b89dcc78dacc", }, { "name":"externalTwo", "
>>>>>>>> networkUuid":"b5504321-e7aa-4500-9e00-7bc1b10cb5e9", } ] }, { "name
>>>>>>>> ":"netThree", "networkUuid":"b55f009a-1cc6-4b17-924f-4ae0ee18db5e",
>>>>>>>> "publicNetworkUuids":[ { "name":"externalThree", "networkUuid":"
>>>>>>>> 83d52a6d-a9e5-572a-9935-a0e195fe5b4r", } ] } ], "maxInstanceLimit":
>>>>>>>> "4", "property":[ { "name":"instanceType", "value":"RegionOne/4" },
>>>>>>>> { "name":"keyPair", "value":"raj" }, { "name":"autoAssignIp", "
>>>>>>>> value":"false" } ] } ], "loadBalancer":{ "type":"lb", "property":{
>>>>>>>> "name":"no.load.balancer", "value":"true" } }}
>>>>>>>>
>>>>>>>>
>>>>>>>> So, I have introduced some additional elements here in networks
>>>>>>>> section. publicNetworkUuids will hold one or many external network UUIDs
>>>>>>>> from where you want to select one IP and assign it the corresponding
>>>>>>>> interface. Let list me three behaviors, as of now, I have identified.
>>>>>>>>
>>>>>>>>    1. If *autoAssignIp* property is *true*, stratos will not do
>>>>>>>>    anything regarding floating IPs when creating instances for this cartridge.
>>>>>>>>    But openstack will assign a floating IP to the instance.
>>>>>>>>    2. If *autoAssignIp* property is *false*, and you *don't *specify
>>>>>>>>    any publicNetworkUuids for any interface, then stratos will assign a
>>>>>>>>    floating IP to the 1st interface
>>>>>>>>    3. If *autoAssignIp* property is *false*, and you
>>>>>>>>    specify publicNetworkUuids, then stratos will assign floating IPs per
>>>>>>>>    interfaces for which you specified publicNetworkUuids. If you specify
>>>>>>>>    two publicNetworkUuids for an interface, it will assign two floating IPs to
>>>>>>>>    that interface and so on.
>>>>>>>>
>>>>>>>>
>>>>>>>> However, I tried to assign two floating IP addresses to an
>>>>>>>> interface which resulted in the following error.
>>>>>>>>
>>>>>>>> *Error: *409-{u'NeutronError': {u'message': u'Cannot associate
>>>>>>>> floating IP 192.168.17.96 (5691eb81-3153-4ee1-b9d0-31fc84516b03) with port
>>>>>>>> 7e9416ce-5077-44c4-97db-b4b14c10dfc9 using fixed IP 10.0.0.167, as that
>>>>>>>> fixed IP already has a floating IP on external network
>>>>>>>> ba667f72-7ba8-4b24-b360-b74a0211c83c.', u'type':
>>>>>>>> u'FloatingIPPortAlreadyAssociated', u'detail': u''}}
>>>>>>>>
>>>>>>>> I guess we can't assign multiple floating IPs to the same interface
>>>>>>>> from same network. We would be able to assign multiple floating IPs to the
>>>>>>>> same interface from multiple networks. Since I am having only one external
>>>>>>>> network, I couldn't test this. Any idea?
>>>>>>>>
>>>>>>>> Feel free to share your thoughts.
>>>>>>>>
>>>>>>>> 1. https://issues.apache.org/jira/browse/STRATOS-698
>>>>>>>>
>>>>>>>> Thanks.
>>>>>>>>
>>>>>>>> --
>>>>>>>> Raj
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>>
>>>>>>> Udara Liyanage
>>>>>>> Software Engineer
>>>>>>> WSO2, Inc.: http://wso2.com
>>>>>>> lean. enterprise. middleware
>>>>>>>
>>>>>>> web: http://udaraliyanage.wordpress.com
>>>>>>> phone: +94 71 443 6897
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Raj
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> Udara Liyanage
>>>>> Software Engineer
>>>>> WSO2, Inc.: http://wso2.com
>>>>> lean. enterprise. middleware
>>>>>
>>>>> web: http://udaraliyanage.wordpress.com
>>>>> phone: +94 71 443 6897
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Raj
>>>>
>>>
>>>
>>>
>>> --
>>> Raj
>>>
>>
>>
>>
>> --
>> Raj
>>
>
>
>
> --
> Rajkumar Rajaratnam
> Committer & PMC Member, Apache Stratos
> Software Engineer, WSO2
>



-- 
Rajkumar Rajaratnam
Committer & PMC Member, Apache Stratos
Software Engineer, WSO2

Re: Assigning floating IPs to any interfaces of our choice

Posted by Rajkumar Rajaratnam <ra...@wso2.com>.
Hi Jeffrey,

Please see my comments inline.

On Thu, Nov 20, 2014 at 12:44 AM, Jeffrey Nguyen (jeffrngu) <
jeffrngu@cisco.com> wrote:

>  Hi Rajkumar,
>
>  Looks like you made some very good progress on this enhancement.  I have
> the following comments/questions:
>
>    - Currently Stratos uses the property named "autoAssignIp" in
>    cartridge json to decide whether it needs to allocate floating IP for a
>    given instance.  Is that still valid regardless of whether
>    "openstack.networking.provider" is set to neutron or not?
>
> Yes. This is still valid. You have to set autoAssignIp to false, if you
want stratos to assign floating IPs. The only difference is, you will
specify the predefined floating IP in floating networks section, not in
property section.

>
>    - I don't understand why we need to support more than one floating IP
>    per NIC.   On the Openstack horizon GUI, it looks like you can only
>    associate one floating IP per port/NIC.
>
> I thought we could assign multiple floating IPs from multiple different
floating networks to a specific port. But I am not sure whether it is
supported by openstack. So having this feature is  not a harm right? In
case if openstack supports this, we don't have to change it again. wdyt?

>
>    - It seems to me Stratos doesn't currently support IPv6 in this
>    context.  If it's possible, can we should put in some ground work such as
>    allowing user to indicate whether IP is in IPv4 or IPv6 notation?   Not
>    sure if this is the right context, or should it be in a global level like
>    cloud-controll.xml.
>
> Yes. It would be good to put some effort on this as well. Let me see if I
can do something here.

Thanks.


> Regards,
> -Jeffrey
>
>   From: Rajkumar Rajaratnam <ra...@wso2.com>
> Date: Wednesday, November 19, 2014 7:05 AM
> To: "dev@stratos.apache.org" <de...@stratos.apache.org>
> Cc: jeffrngu <je...@cisco.com>, "Matt Turner (matttur)" <
> matttur@cisco.com>
> Subject: Re: Assigning floating IPs to any interfaces of our choice
>
>    Missed to add some important stuffs.
>
>  This feature is only for openstack with neutron networking environment.
> You need to set a property in cloud-controller xml to specify whether you
> are using neutron network or not.
>                 <iaasProvider type="openstack" name="openstack specific
> details">
>
> <className>org.apache.stratos.cloud.controller.iaases.OpenstackNovaIaas</className>
>                         <provider>openstack-nova</provider>
>                          ------
>                         <property name="openstack.networking.provider"
> value="neutron" />
>
>  If this property is set to neutron, then you will be able use the
> implemented feature. If not, the old solution (using nova API) will work,
> where you can only assign one floating IPs to the 1st interface only.
>
>  So this feature is not breaking any of the existing features. You can
> still use stratos will with old nova networking API for openstack with nova
> networking environment.
>
>  One difference you can notice that we have to define predefined floating
> IPs inside each floating networks. We can't use the floating IP defined in
> property section.
>
>  However, if you are not using openstack with neutron, you can still pass
> the floating IP in property section and get this assigned to the 1st
> interface as earlier.
>
>  Let me know if you need any clarification.
>
>  Thanks.
>
> On Wed, Nov 19, 2014 at 7:01 PM, Rajkumar Rajaratnam <ra...@wso2.com>
> wrote:
>
>>    Hi all,
>>
>>  I have implemented this feature and it is fully functional now. I had to
>> upgrade Jclouds version to 1.8.1 in order to implement it using neutron
>> networking API.
>>
>>  Let me explain how it works now. I will past network interfaces section
>> of cartridge definition and explain each features implemented here.
>>
>>  "networkInterfaces":[
>>     {
>>         "name":"eth0",
>>         "networkUuid":"512e1f54-1e85-4dac-b2e6-f0b30fc552cf",
>>         "floatingNetworks":[
>>             {
>>                 "name":"externalOne",
>>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c"
>>             }
>>         ]
>>     },
>>
>> // eth0 will get a fixed IP and a floating IP from floating network externalOne
>>
>>     {
>>         "name":"eth1",
>>         "networkUuid":"68aab21d-fc9a-4c2f-8d15-b1e41f6f7bb8"
>>     },
>>
>> // eth1 will get a fixed IP
>>
>>     {
>>         "name":"eth2",
>>         "networkUuid":"b55f009a-1cc6-4b17-924f-4ae0ee18db5e",
>>         "floatingNetworks":[
>>             {
>>                 "name":"externalThree",
>>                 "floatingIP" : "192.168.17.227"
>>             }
>>         ]
>>     },
>>
>> // eth2 will get a fixed IP and a predefined floating IP 192.168.17.227
>>
>> // if predefined IP is not available, an exception will be thrown
>>
>>     {
>>         "name":"eth3",
>>         "networkUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
>>         "floatingNetworks":[
>>             {
>>                 "name":"externalThree",
>>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
>>                 "floatingIP" : "192.168.17.227"
>>             }
>>         ]
>>     },
>>
>> // eth3 will get a fixed IP and a floating IP from the floating network externalThree
>>
>> // point here is that we are giving priority to networkUuid to floatingIP
>>
>>     {
>>         "name":"eth4",
>>         "portUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
>>         "fixedIp":"10.5.62.3",
>>         "floatingNetworks":[
>>             {
>>                 "name":"external",
>>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
>>                 "floatingIP" : "192.168.17.227"
>>             }
>>         ]
>>     },
>>
>> // eth4 will get a predefined private IP 10.5.62.3 and a floating IP from network external
>>
>>     {
>>         "name":"eth5",
>>         "networkUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
>>         "floatingNetworks":[
>>             {
>>                 "name":"externalOne",
>>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
>>                 "floatingIP" : "192.168.17.227"
>>             },
>>             {
>>                 "name":"externalTwo",
>>                 "networkUuid":"sddsdsd-7ba8-4b24-b360-b74a0211c83c",
>>             }
>>         ]
>>     }
>>
>> // eth5 will get a fixed IP and a predefined floating IP 192.168.17.227
>>
>> // and a floating IP from the floating network externalTwo as well
>>
>> // I couldn't test whether it is supported by openstack
>>
>> // if openstack supports this, you can also achieve it in stratos
>>
>> ]
>>
>>
>>  Please have look at the comments given in each network interfaces
>> definition.
>>
>>  And if you define multiple network interfaces and floating networks, if
>> even one IP allocation goes wrong, I am throwing exception and kill the
>> instance.
>>
>>  Having this implemented, now I am in the process of doing changes to
>> some topology events to incorporate multiple private/public IP addresses.
>>
>>  Please feel free to share your concerns.
>>
>>  Thanks.
>>
>> On Fri, Nov 14, 2014 at 7:14 PM, Rajkumar Rajaratnam <ra...@wso2.com>
>> wrote:
>>
>>>  Update;
>>>
>>>
>>> On Fri, Nov 14, 2014 at 3:44 PM, Rajkumar Rajaratnam <rajkumarr@wso2.com
>>> > wrote:
>>>
>>>>  Update;
>>>>
>>>> Currently facing an issue with upstream openstack-neutron-1.8.1.jar.
>>>>
>>>> When I see the MANIFEST.MF file of openstack-neutron-1.8.1.jar, it
>>>> contains ${jclouds.version} in lot of places instead of actual version. Due
>>>> to this carbon feature installation is failing. Because it is processing
>>>> MANIFEST.MF and throwing number format exception.
>>>>
>>>>  I conveyed this in user@jclouds. For workaround, I am going to
>>>> manually put the jar into /repository/components/lib and continue the work
>>>> until it is sorted out in upstream.
>>>>
>>>
>>>  This is a bug. One sent a PR to solve it
>>>
>>>  Thanks.
>>>
>>>>
>>>>  Thanks.
>>>>
>>>> On Wed, Nov 12, 2014 at 4:48 PM, Rajkumar Rajaratnam <
>>>> rajkumarr@wso2.com> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Wed, Nov 12, 2014 at 4:37 PM, Udara Liyanage <ud...@wso2.com>
>>>>> wrote:
>>>>>
>>>>>> Hi Raj,
>>>>>>
>>>>>>  No I did not try since there were no multiple public networks
>>>>>> available.
>>>>>>
>>>>>
>>>>>  Okay Udara. I am setting up a second external network now. Will run
>>>>> a test soon.
>>>>>
>>>>>  Thanks.
>>>>>
>>>>>>
>>>>>> On Wed, Nov 12, 2014 at 2:59 PM, Rajkumar Rajaratnam <
>>>>>> rajkumarr@wso2.com> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Nov 12, 2014 at 2:52 PM, Udara Liyanage <ud...@wso2.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi Raj,
>>>>>>>>
>>>>>>>>  If I remember correctly, we can't assign folating ip to the same
>>>>>>>> port multiple times even I try with Openstack UI.
>>>>>>>>
>>>>>>>
>>>>>>>  Horizon UI doesn't support most of the operations. Yes we can't
>>>>>>> assign multiple floating IPs from the same external network to the same
>>>>>>> port. But I guess, we can assign multiple floating IPs from different
>>>>>>> external network to the same port. Did you try this scenario?
>>>>>>>
>>>>>>>  Thanks.
>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Nov 12, 2014 at 2:47 PM, Rajkumar Rajaratnam <
>>>>>>>> rajkumarr@wso2.com> wrote:
>>>>>>>>
>>>>>>>>> Hi Devs,
>>>>>>>>>
>>>>>>>>>  I am working on $Subject. Please find the relevant JIRA at [1]
>>>>>>>>>
>>>>>>>>>  Currently Stratos will assign a floating IP to eth0 if
>>>>>>>>> *autoAssignIp* property is set to false in cartridge definition.
>>>>>>>>> AFAIU, stratos is using jclouds API to query the available floating IPs,
>>>>>>>>> choose one and assign it to the instance. Correct me if this is not the
>>>>>>>>> case.
>>>>>>>>>
>>>>>>>>>  In order to support $Subject, I am proposing the cartridge
>>>>>>>>> definition as below;
>>>>>>>>>
>>>>>>>>>    {    "type":"mysql",   "provider":"data",   "host":"
>>>>>>>>> apachestratos.org",   "displayName":"MySQL",   "description":"MySQL
>>>>>>>>> Cartridge",   "version":"5.5",   "multiTenant":"false",   "
>>>>>>>>> portMapping":[    {    "protocol":"http",   "port":"80",   "
>>>>>>>>> proxyPort":"8280"   }   ],   "deployment":{       },   "
>>>>>>>>> iaasProvider":[    {    "type":"openstack",   "imageId":"
>>>>>>>>> RegionOne/1cd412c1-54ce-405f-9894-ce1387073c6c",   "
>>>>>>>>> networkInterfaces":[    {    "name":"netOne",   "networkUuid":"
>>>>>>>>> 84d52a6d-a9e5-472a-9935-a0e195fe5b4a",   "fixedIp":"10.0.1.4"   },   {
>>>>>>>>>    "name":"netTwo",   "networkUuid":"
>>>>>>>>> 512e1f54-1e85-4dac-b2e6-f0b30fc552cf",   "publicNetworkUuids":[
>>>>>>>>> {   "name":"externalOne",   "networkUuid":"
>>>>>>>>> 8f08a69d-cb46-43c9-9ebe-b89dcc78dacc",   },   {   "name":"
>>>>>>>>> externalTwo",   "networkUuid":"
>>>>>>>>> b5504321-e7aa-4500-9e00-7bc1b10cb5e9",   }   ]   },   {    "name":
>>>>>>>>> "netThree",   "networkUuid":"b55f009a-1cc6-4b17-924f-4ae0ee18db5e"
>>>>>>>>> ,   "publicNetworkUuids":[   {   "name":"externalThree",   "
>>>>>>>>> networkUuid":"83d52a6d-a9e5-572a-9935-a0e195fe5b4r",   }   ]   }
>>>>>>>>> ],   "maxInstanceLimit":"4",   "property":[    {    "name":"
>>>>>>>>> instanceType",   "value":"RegionOne/4"   },   {    "name":"keyPair
>>>>>>>>> ",   "value":"raj"   },   {    "name":"autoAssignIp",   "value":"
>>>>>>>>> false"   }   ]   }   ],   "loadBalancer":{    "type":"lb",   "
>>>>>>>>> property":{    "name":"no.load.balancer",   "value":"true"   }   }
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  So, I have introduced some additional elements here in networks
>>>>>>>>> section. publicNetworkUuids will hold one or many external network UUIDs
>>>>>>>>> from where you want to select one IP and assign it the corresponding
>>>>>>>>> interface. Let list me three behaviors, as of now, I have identified.
>>>>>>>>>
>>>>>>>>>    1. If *autoAssignIp* property is *true*, stratos will not do
>>>>>>>>>    anything regarding floating IPs when creating instances for this cartridge.
>>>>>>>>>    But openstack will assign a floating IP to the instance.
>>>>>>>>>    2. If *autoAssignIp* property is *false*, and you *don't *specify
>>>>>>>>>    any publicNetworkUuids for any interface, then stratos will assign a
>>>>>>>>>    floating IP to the 1st interface
>>>>>>>>>    3. If *autoAssignIp* property is *false*, and you
>>>>>>>>>    specify publicNetworkUuids, then stratos will assign floating IPs per
>>>>>>>>>    interfaces for which you specified publicNetworkUuids. If you specify
>>>>>>>>>    two publicNetworkUuids for an interface, it will assign two floating IPs to
>>>>>>>>>    that interface and so on.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  However, I tried to assign two floating IP addresses to an
>>>>>>>>> interface which resulted in the following error.
>>>>>>>>>
>>>>>>>>>  *Error: *409-{u'NeutronError': {u'message': u'Cannot associate
>>>>>>>>> floating IP 192.168.17.96 (5691eb81-3153-4ee1-b9d0-31fc84516b03) with port
>>>>>>>>> 7e9416ce-5077-44c4-97db-b4b14c10dfc9 using fixed IP 10.0.0.167, as that
>>>>>>>>> fixed IP already has a floating IP on external network
>>>>>>>>> ba667f72-7ba8-4b24-b360-b74a0211c83c.', u'type':
>>>>>>>>> u'FloatingIPPortAlreadyAssociated', u'detail': u''}}
>>>>>>>>>
>>>>>>>>>  I guess we can't assign multiple floating IPs to the same
>>>>>>>>> interface from same network. We would be able to assign multiple floating
>>>>>>>>> IPs to the same interface from multiple networks. Since I am having only
>>>>>>>>> one external network, I couldn't test this. Any idea?
>>>>>>>>>
>>>>>>>>>  Feel free to share your thoughts.
>>>>>>>>>
>>>>>>>>>  1. https://issues.apache.org/jira/browse/STRATOS-698
>>>>>>>>>
>>>>>>>>>  Thanks.
>>>>>>>>>
>>>>>>>>>  --
>>>>>>>>>     Raj
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>   --
>>>>>>>>
>>>>>>>> Udara Liyanage
>>>>>>>> Software Engineer
>>>>>>>> WSO2, Inc.: http://wso2.com
>>>>>>>> lean. enterprise. middleware
>>>>>>>>
>>>>>>>>  web: http://udaraliyanage.wordpress.com
>>>>>>>>  phone: +94 71 443 6897
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>  --
>>>>>>>     Raj
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>  --
>>>>>>
>>>>>> Udara Liyanage
>>>>>> Software Engineer
>>>>>> WSO2, Inc.: http://wso2.com
>>>>>> lean. enterprise. middleware
>>>>>>
>>>>>>  web: http://udaraliyanage.wordpress.com
>>>>>>  phone: +94 71 443 6897
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>>  --
>>>>>     Raj
>>>>>
>>>>
>>>>
>>>>
>>>>  --
>>>>     Raj
>>>>
>>>
>>>
>>>
>>> --
>>>     Raj
>>>
>>
>>
>>
>>  --
>>      Rajkumar Rajaratnam
>>  Committer & PMC Member, Apache Stratos
>>  Software Engineer, WSO2
>>
>
>
>
> --
>      Rajkumar Rajaratnam
>  Committer & PMC Member, Apache Stratos
>  Software Engineer, WSO2
>



-- 
Rajkumar Rajaratnam
Committer & PMC Member, Apache Stratos
Software Engineer, WSO2

Re: Assigning floating IPs to any interfaces of our choice

Posted by "Jeffrey Nguyen (jeffrngu)" <je...@cisco.com>.
Hi Rajkumar,

Looks like you made some very good progress on this enhancement.  I have the following comments/questions:

  *   Currently Stratos uses the property named "autoAssignIp" in cartridge json to decide whether it needs to allocate floating IP for a given instance.  Is that still valid regardless of whether "openstack.networking.provider" is set to neutron or not?
  *   I don't understand why we need to support more than one floating IP per NIC.   On the Openstack horizon GUI, it looks like you can only associate one floating IP per port/NIC.
  *   It seems to me Stratos doesn't currently support IPv6 in this context.  If it's possible, can we should put in some ground work such as allowing user to indicate whether IP is in IPv4 or IPv6 notation?   Not sure if this is the right context, or should it be in a global level like cloud-controll.xml.

Regards,
-Jeffrey

From: Rajkumar Rajaratnam <ra...@wso2.com>>
Date: Wednesday, November 19, 2014 7:05 AM
To: "dev@stratos.apache.org<ma...@stratos.apache.org>" <de...@stratos.apache.org>>
Cc: jeffrngu <je...@cisco.com>>, "Matt Turner (matttur)" <ma...@cisco.com>>
Subject: Re: Assigning floating IPs to any interfaces of our choice

Missed to add some important stuffs.

This feature is only for openstack with neutron networking environment. You need to set a property in cloud-controller xml to specify whether you are using neutron network or not.
                <iaasProvider type="openstack" name="openstack specific details">
                        <className>org.apache.stratos.cloud.controller.iaases.OpenstackNovaIaas</className>
                        <provider>openstack-nova</provider>
                         ------
                        <property name="openstack.networking.provider" value="neutron" />

If this property is set to neutron, then you will be able use the implemented feature. If not, the old solution (using nova API) will work, where you can only assign one floating IPs to the 1st interface only.

So this feature is not breaking any of the existing features. You can still use stratos will with old nova networking API for openstack with nova networking environment.

One difference you can notice that we have to define predefined floating IPs inside each floating networks. We can't use the floating IP defined in property section.

However, if you are not using openstack with neutron, you can still pass the floating IP in property section and get this assigned to the 1st interface as earlier.

Let me know if you need any clarification.

Thanks.

On Wed, Nov 19, 2014 at 7:01 PM, Rajkumar Rajaratnam <ra...@wso2.com>> wrote:
Hi all,

I have implemented this feature and it is fully functional now. I had to upgrade Jclouds version to 1.8.1 in order to implement it using neutron networking API.

Let me explain how it works now. I will past network interfaces section of cartridge definition and explain each features implemented here.


"networkInterfaces":[
    {
        "name":"eth0",
        "networkUuid":"512e1f54-1e85-4dac-b2e6-f0b30fc552cf",
        "floatingNetworks":[
            {
                "name":"externalOne",
                "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c"
            }
        ]
    },

// eth0 will get a fixed IP and a floating IP from floating network externalOne

    {
        "name":"eth1",
        "networkUuid":"68aab21d-fc9a-4c2f-8d15-b1e41f6f7bb8"
    },

// eth1 will get a fixed IP

    {
        "name":"eth2",
        "networkUuid":"b55f009a-1cc6-4b17-924f-4ae0ee18db5e",
        "floatingNetworks":[
            {
                "name":"externalThree",
                "floatingIP" : "192.168.17.227"
            }
        ]
    },

// eth2 will get a fixed IP and a predefined floating IP 192.168.17.227

// if predefined IP is not available, an exception will be thrown

    {
        "name":"eth3",
        "networkUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
        "floatingNetworks":[
            {
                "name":"externalThree",
                "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
                "floatingIP" : "192.168.17.227"
            }
        ]
    },

// eth3 will get a fixed IP and a floating IP from the floating network externalThree

// point here is that we are giving priority to networkUuid to floatingIP

    {
        "name":"eth4",
        "portUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
        "fixedIp":"10.5.62.3",
        "floatingNetworks":[
            {
                "name":"external",
                "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
                "floatingIP" : "192.168.17.227"
            }
        ]
    },

// eth4 will get a predefined private IP 10.5.62.3 and a floating IP from network external

    {
        "name":"eth5",
        "networkUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
        "floatingNetworks":[
            {
                "name":"externalOne",
                "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
                "floatingIP" : "192.168.17.227"
            },
            {
                "name":"externalTwo",
                "networkUuid":"sddsdsd-7ba8-4b24-b360-b74a0211c83c",
            }
        ]
    }

// eth5 will get a fixed IP and a predefined floating IP 192.168.17.227

// and a floating IP from the floating network externalTwo as well

// I couldn't test whether it is supported by openstack

// if openstack supports this, you can also achieve it in stratos

]

Please have look at the comments given in each network interfaces definition.

And if you define multiple network interfaces and floating networks, if even one IP allocation goes wrong, I am throwing exception and kill the instance.

Having this implemented, now I am in the process of doing changes to some topology events to incorporate multiple private/public IP addresses.

Please feel free to share your concerns.

Thanks.

On Fri, Nov 14, 2014 at 7:14 PM, Rajkumar Rajaratnam <ra...@wso2.com>> wrote:
Update;


On Fri, Nov 14, 2014 at 3:44 PM, Rajkumar Rajaratnam <ra...@wso2.com>> wrote:
Update;

Currently facing an issue with upstream openstack-neutron-1.8.1.jar.

When I see the MANIFEST.MF file of openstack-neutron-1.8.1.jar, it contains ${jclouds.version} in lot of places instead of actual version. Due to this carbon feature installation is failing. Because it is processing MANIFEST.MF and throwing number format exception.

I conveyed this in user@jclouds. For workaround, I am going to manually put the jar into /repository/components/lib and continue the work until it is sorted out in upstream.

This is a bug. One sent a PR to solve it

Thanks.

Thanks.

On Wed, Nov 12, 2014 at 4:48 PM, Rajkumar Rajaratnam <ra...@wso2.com>> wrote:


On Wed, Nov 12, 2014 at 4:37 PM, Udara Liyanage <ud...@wso2.com>> wrote:
Hi Raj,

No I did not try since there were no multiple public networks available.

Okay Udara. I am setting up a second external network now. Will run a test soon.

Thanks.

On Wed, Nov 12, 2014 at 2:59 PM, Rajkumar Rajaratnam <ra...@wso2.com>> wrote:


On Wed, Nov 12, 2014 at 2:52 PM, Udara Liyanage <ud...@wso2.com>> wrote:
Hi Raj,

If I remember correctly, we can't assign folating ip to the same port multiple times even I try with Openstack UI.

Horizon UI doesn't support most of the operations. Yes we can't assign multiple floating IPs from the same external network to the same port. But I guess, we can assign multiple floating IPs from different external network to the same port. Did you try this scenario?

Thanks.

On Wed, Nov 12, 2014 at 2:47 PM, Rajkumar Rajaratnam <ra...@wso2.com>> wrote:
Hi Devs,

I am working on $Subject. Please find the relevant JIRA at [1]

Currently Stratos will assign a floating IP to eth0 if autoAssignIp property is set to false in cartridge definition. AFAIU, stratos is using jclouds API to query the available floating IPs, choose one and assign it to the instance. Correct me if this is not the case.

In order to support $Subject, I am proposing the cartridge definition as below;

{
        "type":"mysql",
        "provider":"data",
        "host":"apachestratos.org<http://apachestratos.org>",
        "displayName":"MySQL",
        "description":"MySQL Cartridge",
        "version":"5.5",
        "multiTenant":"false",
        "portMapping":[
        {
        "protocol":"http",
        "port":"80",
        "proxyPort":"8280"
        }
        ],
        "deployment":{

        },
        "iaasProvider":[
        {
        "type":"openstack",
        "imageId":"RegionOne/1cd412c1-54ce-405f-9894-ce1387073c6c",
        "networkInterfaces":[
        {
        "name":"netOne",
        "networkUuid":"84d52a6d-a9e5-472a-9935-a0e195fe5b4a",
        "fixedIp":"10.0.1.4"
        },
        {
        "name":"netTwo",
        "networkUuid":"512e1f54-1e85-4dac-b2e6-f0b30fc552cf",
        "publicNetworkUuids":[
        {
        "name":"externalOne",
        "networkUuid":"8f08a69d-cb46-43c9-9ebe-b89dcc78dacc",
        },
        {
        "name":"externalTwo",
        "networkUuid":"b5504321-e7aa-4500-9e00-7bc1b10cb5e9",
        }
        ]
        },
        {
        "name":"netThree",
        "networkUuid":"b55f009a-1cc6-4b17-924f-4ae0ee18db5e",
        "publicNetworkUuids":[
        {
        "name":"externalThree",
        "networkUuid":"83d52a6d-a9e5-572a-9935-a0e195fe5b4r",
        }
        ]
        }
        ],
        "maxInstanceLimit":"4",
        "property":[
        {
        "name":"instanceType",
        "value":"RegionOne/4"
        },
        {
        "name":"keyPair",
        "value":"raj"
        },
        {
        "name":"autoAssignIp",
        "value":"false"
        }
        ]
        }
        ],
        "loadBalancer":{
        "type":"lb",
        "property":{
        "name":"no.load.balancer",
        "value":"true"
        }
        }
        }


So, I have introduced some additional elements here in networks section. publicNetworkUuids will hold one or many external network UUIDs from where you want to select one IP and assign it the corresponding interface. Let list me three behaviors, as of now, I have identified.

  1.  If autoAssignIp property is true, stratos will not do anything regarding floating IPs when creating instances for this cartridge. But openstack will assign a floating IP to the instance.
  2.  If autoAssignIp property is false, and you don't specify any publicNetworkUuids for any interface, then stratos will assign a floating IP to the 1st interface
  3.  If autoAssignIp property is false, and you specify publicNetworkUuids, then stratos will assign floating IPs per interfaces for which you specified publicNetworkUuids. If you specify two publicNetworkUuids for an interface, it will assign two floating IPs to that interface and so on.

However, I tried to assign two floating IP addresses to an interface which resulted in the following error.

Error: 409-{u'NeutronError': {u'message': u'Cannot associate floating IP 192.168.17.96 (5691eb81-3153-4ee1-b9d0-31fc84516b03) with port 7e9416ce-5077-44c4-97db-b4b14c10dfc9 using fixed IP 10.0.0.167, as that fixed IP already has a floating IP on external network ba667f72-7ba8-4b24-b360-b74a0211c83c.', u'type': u'FloatingIPPortAlreadyAssociated', u'detail': u''}}

I guess we can't assign multiple floating IPs to the same interface from same network. We would be able to assign multiple floating IPs to the same interface from multiple networks. Since I am having only one external network, I couldn't test this. Any idea?

Feel free to share your thoughts.

1. https://issues.apache.org/jira/browse/STRATOS-698

Thanks.

--
Raj



--

Udara Liyanage
Software Engineer
WSO2, Inc.: http://wso2.com<http://wso2.com/>
lean. enterprise. middleware

web: http://udaraliyanage.wordpress.com
phone: +94 71 443 6897



--
Raj



--

Udara Liyanage
Software Engineer
WSO2, Inc.: http://wso2.com<http://wso2.com/>
lean. enterprise. middleware

web: http://udaraliyanage.wordpress.com
phone: +94 71 443 6897



--
Raj



--
Raj



--
Raj



--
Rajkumar Rajaratnam
Committer & PMC Member, Apache Stratos
Software Engineer, WSO2



--
Rajkumar Rajaratnam
Committer & PMC Member, Apache Stratos
Software Engineer, WSO2

Re: Assigning floating IPs to any interfaces of our choice

Posted by Rajkumar Rajaratnam <ra...@wso2.com>.
Missed to add some important stuffs.

This feature is only for openstack with neutron networking environment. You
need to set a property in cloud-controller xml to specify whether you are
using neutron network or not.
                <iaasProvider type="openstack" name="openstack specific
details">

<className>org.apache.stratos.cloud.controller.iaases.OpenstackNovaIaas</className>
                        <provider>openstack-nova</provider>
                         ------
                        <property name="openstack.networking.provider"
value="neutron" />

If this property is set to neutron, then you will be able use the
implemented feature. If not, the old solution (using nova API) will work,
where you can only assign one floating IPs to the 1st interface only.

So this feature is not breaking any of the existing features. You can still
use stratos will with old nova networking API for openstack with nova
networking environment.

One difference you can notice that we have to define predefined floating
IPs inside each floating networks. We can't use the floating IP defined in
property section.

However, if you are not using openstack with neutron, you can still pass
the floating IP in property section and get this assigned to the 1st
interface as earlier.

Let me know if you need any clarification.

Thanks.

On Wed, Nov 19, 2014 at 7:01 PM, Rajkumar Rajaratnam <ra...@wso2.com>
wrote:

> Hi all,
>
> I have implemented this feature and it is fully functional now. I had to
> upgrade Jclouds version to 1.8.1 in order to implement it using neutron
> networking API.
>
> Let me explain how it works now. I will past network interfaces section of
> cartridge definition and explain each features implemented here.
>
> "networkInterfaces":[
>     {
>         "name":"eth0",
>         "networkUuid":"512e1f54-1e85-4dac-b2e6-f0b30fc552cf",
>         "floatingNetworks":[
>             {
>                 "name":"externalOne",
>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c"
>             }
>         ]
>     },
>
> // eth0 will get a fixed IP and a floating IP from floating network externalOne
>
>     {
>         "name":"eth1",
>         "networkUuid":"68aab21d-fc9a-4c2f-8d15-b1e41f6f7bb8"
>     },
>
> // eth1 will get a fixed IP
>
>     {
>         "name":"eth2",
>         "networkUuid":"b55f009a-1cc6-4b17-924f-4ae0ee18db5e",
>         "floatingNetworks":[
>             {
>                 "name":"externalThree",
>                 "floatingIP" : "192.168.17.227"
>             }
>         ]
>     },
>
> // eth2 will get a fixed IP and a predefined floating IP 192.168.17.227
>
> // if predefined IP is not available, an exception will be thrown
>
>     {
>         "name":"eth3",
>         "networkUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
>         "floatingNetworks":[
>             {
>                 "name":"externalThree",
>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
>                 "floatingIP" : "192.168.17.227"
>             }
>         ]
>     },
>
> // eth3 will get a fixed IP and a floating IP from the floating network externalThree
>
> // point here is that we are giving priority to networkUuid to floatingIP
>
>     {
>         "name":"eth4",
>         "portUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
>         "fixedIp":"10.5.62.3",
>         "floatingNetworks":[
>             {
>                 "name":"external",
>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
>                 "floatingIP" : "192.168.17.227"
>             }
>         ]
>     },
>
> // eth4 will get a predefined private IP 10.5.62.3 and a floating IP from network external
>
>     {
>         "name":"eth5",
>         "networkUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
>         "floatingNetworks":[
>             {
>                 "name":"externalOne",
>                 "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
>                 "floatingIP" : "192.168.17.227"
>             },
>             {
>                 "name":"externalTwo",
>                 "networkUuid":"sddsdsd-7ba8-4b24-b360-b74a0211c83c",
>             }
>         ]
>     }
>
> // eth5 will get a fixed IP and a predefined floating IP 192.168.17.227
>
> // and a floating IP from the floating network externalTwo as well
>
> // I couldn't test whether it is supported by openstack
>
> // if openstack supports this, you can also achieve it in stratos
>
> ]
>
>
> Please have look at the comments given in each network interfaces
> definition.
>
> And if you define multiple network interfaces and floating networks, if
> even one IP allocation goes wrong, I am throwing exception and kill the
> instance.
>
> Having this implemented, now I am in the process of doing changes to some
> topology events to incorporate multiple private/public IP addresses.
>
> Please feel free to share your concerns.
>
> Thanks.
>
> On Fri, Nov 14, 2014 at 7:14 PM, Rajkumar Rajaratnam <ra...@wso2.com>
> wrote:
>
>> Update;
>>
>>
>> On Fri, Nov 14, 2014 at 3:44 PM, Rajkumar Rajaratnam <ra...@wso2.com>
>> wrote:
>>
>>> Update;
>>>
>>> Currently facing an issue with upstream openstack-neutron-1.8.1.jar.
>>>
>>> When I see the MANIFEST.MF file of openstack-neutron-1.8.1.jar, it
>>> contains ${jclouds.version} in lot of places instead of actual version. Due
>>> to this carbon feature installation is failing. Because it is processing
>>> MANIFEST.MF and throwing number format exception.
>>>
>>> I conveyed this in user@jclouds. For workaround, I am going to manually
>>> put the jar into /repository/components/lib and continue the work until it
>>> is sorted out in upstream.
>>>
>>
>> This is a bug. One sent a PR to solve it
>>
>> Thanks.
>>
>>>
>>> Thanks.
>>>
>>> On Wed, Nov 12, 2014 at 4:48 PM, Rajkumar Rajaratnam <rajkumarr@wso2.com
>>> > wrote:
>>>
>>>>
>>>>
>>>> On Wed, Nov 12, 2014 at 4:37 PM, Udara Liyanage <ud...@wso2.com> wrote:
>>>>
>>>>> Hi Raj,
>>>>>
>>>>> No I did not try since there were no multiple public networks
>>>>> available.
>>>>>
>>>>
>>>> Okay Udara. I am setting up a second external network now. Will run a
>>>> test soon.
>>>>
>>>> Thanks.
>>>>
>>>>>
>>>>> On Wed, Nov 12, 2014 at 2:59 PM, Rajkumar Rajaratnam <
>>>>> rajkumarr@wso2.com> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Nov 12, 2014 at 2:52 PM, Udara Liyanage <ud...@wso2.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi Raj,
>>>>>>>
>>>>>>> If I remember correctly, we can't assign folating ip to the same
>>>>>>> port multiple times even I try with Openstack UI.
>>>>>>>
>>>>>>
>>>>>> Horizon UI doesn't support most of the operations. Yes we can't
>>>>>> assign multiple floating IPs from the same external network to the same
>>>>>> port. But I guess, we can assign multiple floating IPs from different
>>>>>> external network to the same port. Did you try this scenario?
>>>>>>
>>>>>> Thanks.
>>>>>>
>>>>>>>
>>>>>>> On Wed, Nov 12, 2014 at 2:47 PM, Rajkumar Rajaratnam <
>>>>>>> rajkumarr@wso2.com> wrote:
>>>>>>>
>>>>>>>> Hi Devs,
>>>>>>>>
>>>>>>>> I am working on $Subject. Please find the relevant JIRA at [1]
>>>>>>>>
>>>>>>>> Currently Stratos will assign a floating IP to eth0 if
>>>>>>>> *autoAssignIp* property is set to false in cartridge definition.
>>>>>>>> AFAIU, stratos is using jclouds API to query the available floating IPs,
>>>>>>>> choose one and assign it to the instance. Correct me if this is not the
>>>>>>>> case.
>>>>>>>>
>>>>>>>> In order to support $Subject, I am proposing the cartridge
>>>>>>>> definition as below;
>>>>>>>>
>>>>>>>> { "type":"mysql", "provider":"data", "host":"apachestratos.org", "
>>>>>>>> displayName":"MySQL", "description":"MySQL Cartridge", "version":"
>>>>>>>> 5.5", "multiTenant":"false", "portMapping":[ { "protocol":"http", "
>>>>>>>> port":"80", "proxyPort":"8280" } ], "deployment":{  }, "
>>>>>>>> iaasProvider":[ { "type":"openstack", "imageId":"
>>>>>>>> RegionOne/1cd412c1-54ce-405f-9894-ce1387073c6c", "networkInterfaces
>>>>>>>> ":[ { "name":"netOne", "networkUuid":"
>>>>>>>> 84d52a6d-a9e5-472a-9935-a0e195fe5b4a", "fixedIp":"10.0.1.4" }, { "
>>>>>>>> name":"netTwo", "networkUuid":"512e1f54-1e85-4dac-b2e6-f0b30fc552cf
>>>>>>>> ", "publicNetworkUuids":[ { "name":"externalOne", "networkUuid":"
>>>>>>>> 8f08a69d-cb46-43c9-9ebe-b89dcc78dacc", }, { "name":"externalTwo", "
>>>>>>>> networkUuid":"b5504321-e7aa-4500-9e00-7bc1b10cb5e9", } ] }, { "name
>>>>>>>> ":"netThree", "networkUuid":"b55f009a-1cc6-4b17-924f-4ae0ee18db5e",
>>>>>>>> "publicNetworkUuids":[ { "name":"externalThree", "networkUuid":"
>>>>>>>> 83d52a6d-a9e5-572a-9935-a0e195fe5b4r", } ] } ], "maxInstanceLimit":
>>>>>>>> "4", "property":[ { "name":"instanceType", "value":"RegionOne/4" },
>>>>>>>> { "name":"keyPair", "value":"raj" }, { "name":"autoAssignIp", "
>>>>>>>> value":"false" } ] } ], "loadBalancer":{ "type":"lb", "property":{
>>>>>>>> "name":"no.load.balancer", "value":"true" } }}
>>>>>>>>
>>>>>>>>
>>>>>>>> So, I have introduced some additional elements here in networks
>>>>>>>> section. publicNetworkUuids will hold one or many external network UUIDs
>>>>>>>> from where you want to select one IP and assign it the corresponding
>>>>>>>> interface. Let list me three behaviors, as of now, I have identified.
>>>>>>>>
>>>>>>>>    1. If *autoAssignIp* property is *true*, stratos will not do
>>>>>>>>    anything regarding floating IPs when creating instances for this cartridge.
>>>>>>>>    But openstack will assign a floating IP to the instance.
>>>>>>>>    2. If *autoAssignIp* property is *false*, and you *don't *specify
>>>>>>>>    any publicNetworkUuids for any interface, then stratos will assign a
>>>>>>>>    floating IP to the 1st interface
>>>>>>>>    3. If *autoAssignIp* property is *false*, and you
>>>>>>>>    specify publicNetworkUuids, then stratos will assign floating IPs per
>>>>>>>>    interfaces for which you specified publicNetworkUuids. If you specify
>>>>>>>>    two publicNetworkUuids for an interface, it will assign two floating IPs to
>>>>>>>>    that interface and so on.
>>>>>>>>
>>>>>>>>
>>>>>>>> However, I tried to assign two floating IP addresses to an
>>>>>>>> interface which resulted in the following error.
>>>>>>>>
>>>>>>>> *Error: *409-{u'NeutronError': {u'message': u'Cannot associate
>>>>>>>> floating IP 192.168.17.96 (5691eb81-3153-4ee1-b9d0-31fc84516b03) with port
>>>>>>>> 7e9416ce-5077-44c4-97db-b4b14c10dfc9 using fixed IP 10.0.0.167, as that
>>>>>>>> fixed IP already has a floating IP on external network
>>>>>>>> ba667f72-7ba8-4b24-b360-b74a0211c83c.', u'type':
>>>>>>>> u'FloatingIPPortAlreadyAssociated', u'detail': u''}}
>>>>>>>>
>>>>>>>> I guess we can't assign multiple floating IPs to the same interface
>>>>>>>> from same network. We would be able to assign multiple floating IPs to the
>>>>>>>> same interface from multiple networks. Since I am having only one external
>>>>>>>> network, I couldn't test this. Any idea?
>>>>>>>>
>>>>>>>> Feel free to share your thoughts.
>>>>>>>>
>>>>>>>> 1. https://issues.apache.org/jira/browse/STRATOS-698
>>>>>>>>
>>>>>>>> Thanks.
>>>>>>>>
>>>>>>>> --
>>>>>>>> Raj
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>>
>>>>>>> Udara Liyanage
>>>>>>> Software Engineer
>>>>>>> WSO2, Inc.: http://wso2.com
>>>>>>> lean. enterprise. middleware
>>>>>>>
>>>>>>> web: http://udaraliyanage.wordpress.com
>>>>>>> phone: +94 71 443 6897
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Raj
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> Udara Liyanage
>>>>> Software Engineer
>>>>> WSO2, Inc.: http://wso2.com
>>>>> lean. enterprise. middleware
>>>>>
>>>>> web: http://udaraliyanage.wordpress.com
>>>>> phone: +94 71 443 6897
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Raj
>>>>
>>>
>>>
>>>
>>> --
>>> Raj
>>>
>>
>>
>>
>> --
>> Raj
>>
>
>
>
> --
> Rajkumar Rajaratnam
> Committer & PMC Member, Apache Stratos
> Software Engineer, WSO2
>



-- 
Rajkumar Rajaratnam
Committer & PMC Member, Apache Stratos
Software Engineer, WSO2

Re: Assigning floating IPs to any interfaces of our choice

Posted by Rajkumar Rajaratnam <ra...@wso2.com>.
Hi all,

I have implemented this feature and it is fully functional now. I had to
upgrade Jclouds version to 1.8.1 in order to implement it using neutron
networking API.

Let me explain how it works now. I will past network interfaces section of
cartridge definition and explain each features implemented here.

"networkInterfaces":[
    {
        "name":"eth0",
        "networkUuid":"512e1f54-1e85-4dac-b2e6-f0b30fc552cf",
        "floatingNetworks":[
            {
                "name":"externalOne",
                "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c"
            }
        ]
    },

// eth0 will get a fixed IP and a floating IP from floating network externalOne

    {
        "name":"eth1",
        "networkUuid":"68aab21d-fc9a-4c2f-8d15-b1e41f6f7bb8"
    },

// eth1 will get a fixed IP

    {
        "name":"eth2",
        "networkUuid":"b55f009a-1cc6-4b17-924f-4ae0ee18db5e",
        "floatingNetworks":[
            {
                "name":"externalThree",
                "floatingIP" : "192.168.17.227"
            }
        ]
    },

// eth2 will get a fixed IP and a predefined floating IP 192.168.17.227

// if predefined IP is not available, an exception will be thrown

    {
        "name":"eth3",
        "networkUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
        "floatingNetworks":[
            {
                "name":"externalThree",
                "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
                "floatingIP" : "192.168.17.227"
            }
        ]
    },

// eth3 will get a fixed IP and a floating IP from the floating
network externalThree

// point here is that we are giving priority to networkUuid to floatingIP

    {
        "name":"eth4",
        "portUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
        "fixedIp":"10.5.62.3",
        "floatingNetworks":[
            {
                "name":"external",
                "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
                "floatingIP" : "192.168.17.227"
            }
        ]
    },

// eth4 will get a predefined private IP 10.5.62.3 and a floating IP
from network external

    {
        "name":"eth5",
        "networkUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e",
        "floatingNetworks":[
            {
                "name":"externalOne",
                "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c",
                "floatingIP" : "192.168.17.227"
            },
            {
                "name":"externalTwo",
                "networkUuid":"sddsdsd-7ba8-4b24-b360-b74a0211c83c",
            }
        ]
    }

// eth5 will get a fixed IP and a predefined floating IP 192.168.17.227

// and a floating IP from the floating network externalTwo as well

// I couldn't test whether it is supported by openstack

// if openstack supports this, you can also achieve it in stratos

]


Please have look at the comments given in each network interfaces
definition.

And if you define multiple network interfaces and floating networks, if
even one IP allocation goes wrong, I am throwing exception and kill the
instance.

Having this implemented, now I am in the process of doing changes to some
topology events to incorporate multiple private/public IP addresses.

Please feel free to share your concerns.

Thanks.

On Fri, Nov 14, 2014 at 7:14 PM, Rajkumar Rajaratnam <ra...@wso2.com>
wrote:

> Update;
>
>
> On Fri, Nov 14, 2014 at 3:44 PM, Rajkumar Rajaratnam <ra...@wso2.com>
> wrote:
>
>> Update;
>>
>> Currently facing an issue with upstream openstack-neutron-1.8.1.jar.
>>
>> When I see the MANIFEST.MF file of openstack-neutron-1.8.1.jar, it
>> contains ${jclouds.version} in lot of places instead of actual version. Due
>> to this carbon feature installation is failing. Because it is processing
>> MANIFEST.MF and throwing number format exception.
>>
>> I conveyed this in user@jclouds. For workaround, I am going to manually
>> put the jar into /repository/components/lib and continue the work until it
>> is sorted out in upstream.
>>
>
> This is a bug. One sent a PR to solve it
>
> Thanks.
>
>>
>> Thanks.
>>
>> On Wed, Nov 12, 2014 at 4:48 PM, Rajkumar Rajaratnam <ra...@wso2.com>
>> wrote:
>>
>>>
>>>
>>> On Wed, Nov 12, 2014 at 4:37 PM, Udara Liyanage <ud...@wso2.com> wrote:
>>>
>>>> Hi Raj,
>>>>
>>>> No I did not try since there were no multiple public networks available.
>>>>
>>>
>>> Okay Udara. I am setting up a second external network now. Will run a
>>> test soon.
>>>
>>> Thanks.
>>>
>>>>
>>>> On Wed, Nov 12, 2014 at 2:59 PM, Rajkumar Rajaratnam <
>>>> rajkumarr@wso2.com> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Wed, Nov 12, 2014 at 2:52 PM, Udara Liyanage <ud...@wso2.com>
>>>>> wrote:
>>>>>
>>>>>> Hi Raj,
>>>>>>
>>>>>> If I remember correctly, we can't assign folating ip to the same port
>>>>>> multiple times even I try with Openstack UI.
>>>>>>
>>>>>
>>>>> Horizon UI doesn't support most of the operations. Yes we can't assign
>>>>> multiple floating IPs from the same external network to the same port. But
>>>>> I guess, we can assign multiple floating IPs from different external
>>>>> network to the same port. Did you try this scenario?
>>>>>
>>>>> Thanks.
>>>>>
>>>>>>
>>>>>> On Wed, Nov 12, 2014 at 2:47 PM, Rajkumar Rajaratnam <
>>>>>> rajkumarr@wso2.com> wrote:
>>>>>>
>>>>>>> Hi Devs,
>>>>>>>
>>>>>>> I am working on $Subject. Please find the relevant JIRA at [1]
>>>>>>>
>>>>>>> Currently Stratos will assign a floating IP to eth0 if
>>>>>>> *autoAssignIp* property is set to false in cartridge definition.
>>>>>>> AFAIU, stratos is using jclouds API to query the available floating IPs,
>>>>>>> choose one and assign it to the instance. Correct me if this is not the
>>>>>>> case.
>>>>>>>
>>>>>>> In order to support $Subject, I am proposing the cartridge
>>>>>>> definition as below;
>>>>>>>
>>>>>>> { "type":"mysql", "provider":"data", "host":"apachestratos.org", "
>>>>>>> displayName":"MySQL", "description":"MySQL Cartridge", "version":"
>>>>>>> 5.5", "multiTenant":"false", "portMapping":[ { "protocol":"http", "
>>>>>>> port":"80", "proxyPort":"8280" } ], "deployment":{  }, "iaasProvider
>>>>>>> ":[ { "type":"openstack", "imageId":"
>>>>>>> RegionOne/1cd412c1-54ce-405f-9894-ce1387073c6c", "networkInterfaces":[
>>>>>>> { "name":"netOne", "networkUuid":"
>>>>>>> 84d52a6d-a9e5-472a-9935-a0e195fe5b4a", "fixedIp":"10.0.1.4" }, { "
>>>>>>> name":"netTwo", "networkUuid":"512e1f54-1e85-4dac-b2e6-f0b30fc552cf"
>>>>>>> , "publicNetworkUuids":[ { "name":"externalOne", "networkUuid":"
>>>>>>> 8f08a69d-cb46-43c9-9ebe-b89dcc78dacc", }, { "name":"externalTwo", "
>>>>>>> networkUuid":"b5504321-e7aa-4500-9e00-7bc1b10cb5e9", } ] }, { "name"
>>>>>>> :"netThree", "networkUuid":"b55f009a-1cc6-4b17-924f-4ae0ee18db5e", "
>>>>>>> publicNetworkUuids":[ { "name":"externalThree", "networkUuid":"
>>>>>>> 83d52a6d-a9e5-572a-9935-a0e195fe5b4r", } ] } ], "maxInstanceLimit":"
>>>>>>> 4", "property":[ { "name":"instanceType", "value":"RegionOne/4" },
>>>>>>> { "name":"keyPair", "value":"raj" }, { "name":"autoAssignIp", "value
>>>>>>> ":"false" } ] } ], "loadBalancer":{ "type":"lb", "property":{ "name"
>>>>>>> :"no.load.balancer", "value":"true" } }}
>>>>>>>
>>>>>>>
>>>>>>> So, I have introduced some additional elements here in networks
>>>>>>> section. publicNetworkUuids will hold one or many external network UUIDs
>>>>>>> from where you want to select one IP and assign it the corresponding
>>>>>>> interface. Let list me three behaviors, as of now, I have identified.
>>>>>>>
>>>>>>>    1. If *autoAssignIp* property is *true*, stratos will not do
>>>>>>>    anything regarding floating IPs when creating instances for this cartridge.
>>>>>>>    But openstack will assign a floating IP to the instance.
>>>>>>>    2. If *autoAssignIp* property is *false*, and you *don't *specify
>>>>>>>    any publicNetworkUuids for any interface, then stratos will assign a
>>>>>>>    floating IP to the 1st interface
>>>>>>>    3. If *autoAssignIp* property is *false*, and you
>>>>>>>    specify publicNetworkUuids, then stratos will assign floating IPs per
>>>>>>>    interfaces for which you specified publicNetworkUuids. If you specify
>>>>>>>    two publicNetworkUuids for an interface, it will assign two floating IPs to
>>>>>>>    that interface and so on.
>>>>>>>
>>>>>>>
>>>>>>> However, I tried to assign two floating IP addresses to an interface
>>>>>>> which resulted in the following error.
>>>>>>>
>>>>>>> *Error: *409-{u'NeutronError': {u'message': u'Cannot associate
>>>>>>> floating IP 192.168.17.96 (5691eb81-3153-4ee1-b9d0-31fc84516b03) with port
>>>>>>> 7e9416ce-5077-44c4-97db-b4b14c10dfc9 using fixed IP 10.0.0.167, as that
>>>>>>> fixed IP already has a floating IP on external network
>>>>>>> ba667f72-7ba8-4b24-b360-b74a0211c83c.', u'type':
>>>>>>> u'FloatingIPPortAlreadyAssociated', u'detail': u''}}
>>>>>>>
>>>>>>> I guess we can't assign multiple floating IPs to the same interface
>>>>>>> from same network. We would be able to assign multiple floating IPs to the
>>>>>>> same interface from multiple networks. Since I am having only one external
>>>>>>> network, I couldn't test this. Any idea?
>>>>>>>
>>>>>>> Feel free to share your thoughts.
>>>>>>>
>>>>>>> 1. https://issues.apache.org/jira/browse/STRATOS-698
>>>>>>>
>>>>>>> Thanks.
>>>>>>>
>>>>>>> --
>>>>>>> Raj
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>> Udara Liyanage
>>>>>> Software Engineer
>>>>>> WSO2, Inc.: http://wso2.com
>>>>>> lean. enterprise. middleware
>>>>>>
>>>>>> web: http://udaraliyanage.wordpress.com
>>>>>> phone: +94 71 443 6897
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Raj
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> Udara Liyanage
>>>> Software Engineer
>>>> WSO2, Inc.: http://wso2.com
>>>> lean. enterprise. middleware
>>>>
>>>> web: http://udaraliyanage.wordpress.com
>>>> phone: +94 71 443 6897
>>>>
>>>
>>>
>>>
>>> --
>>> Raj
>>>
>>
>>
>>
>> --
>> Raj
>>
>
>
>
> --
> Raj
>



-- 
Rajkumar Rajaratnam
Committer & PMC Member, Apache Stratos
Software Engineer, WSO2

Re: Assigning floating IPs to any interfaces of our choice

Posted by Rajkumar Rajaratnam <ra...@wso2.com>.
Update;


On Fri, Nov 14, 2014 at 3:44 PM, Rajkumar Rajaratnam <ra...@wso2.com>
wrote:

> Update;
>
> Currently facing an issue with upstream openstack-neutron-1.8.1.jar.
>
> When I see the MANIFEST.MF file of openstack-neutron-1.8.1.jar, it
> contains ${jclouds.version} in lot of places instead of actual version. Due
> to this carbon feature installation is failing. Because it is processing
> MANIFEST.MF and throwing number format exception.
>
> I conveyed this in user@jclouds. For workaround, I am going to manually
> put the jar into /repository/components/lib and continue the work until it
> is sorted out in upstream.
>

This is a bug. One sent a PR to solve it

Thanks.

>
> Thanks.
>
> On Wed, Nov 12, 2014 at 4:48 PM, Rajkumar Rajaratnam <ra...@wso2.com>
> wrote:
>
>>
>>
>> On Wed, Nov 12, 2014 at 4:37 PM, Udara Liyanage <ud...@wso2.com> wrote:
>>
>>> Hi Raj,
>>>
>>> No I did not try since there were no multiple public networks available.
>>>
>>
>> Okay Udara. I am setting up a second external network now. Will run a
>> test soon.
>>
>> Thanks.
>>
>>>
>>> On Wed, Nov 12, 2014 at 2:59 PM, Rajkumar Rajaratnam <rajkumarr@wso2.com
>>> > wrote:
>>>
>>>>
>>>>
>>>> On Wed, Nov 12, 2014 at 2:52 PM, Udara Liyanage <ud...@wso2.com> wrote:
>>>>
>>>>> Hi Raj,
>>>>>
>>>>> If I remember correctly, we can't assign folating ip to the same port
>>>>> multiple times even I try with Openstack UI.
>>>>>
>>>>
>>>> Horizon UI doesn't support most of the operations. Yes we can't assign
>>>> multiple floating IPs from the same external network to the same port. But
>>>> I guess, we can assign multiple floating IPs from different external
>>>> network to the same port. Did you try this scenario?
>>>>
>>>> Thanks.
>>>>
>>>>>
>>>>> On Wed, Nov 12, 2014 at 2:47 PM, Rajkumar Rajaratnam <
>>>>> rajkumarr@wso2.com> wrote:
>>>>>
>>>>>> Hi Devs,
>>>>>>
>>>>>> I am working on $Subject. Please find the relevant JIRA at [1]
>>>>>>
>>>>>> Currently Stratos will assign a floating IP to eth0 if *autoAssignIp*
>>>>>> property is set to false in cartridge definition. AFAIU, stratos is using
>>>>>> jclouds API to query the available floating IPs, choose one and assign it
>>>>>> to the instance. Correct me if this is not the case.
>>>>>>
>>>>>> In order to support $Subject, I am proposing the cartridge definition
>>>>>> as below;
>>>>>>
>>>>>> { "type":"mysql", "provider":"data", "host":"apachestratos.org", "
>>>>>> displayName":"MySQL", "description":"MySQL Cartridge", "version":"5.5
>>>>>> ", "multiTenant":"false", "portMapping":[ { "protocol":"http", "port"
>>>>>> :"80", "proxyPort":"8280" } ], "deployment":{  }, "iaasProvider":[ {
>>>>>> "type":"openstack", "imageId":"
>>>>>> RegionOne/1cd412c1-54ce-405f-9894-ce1387073c6c", "networkInterfaces":[
>>>>>> { "name":"netOne", "networkUuid":"
>>>>>> 84d52a6d-a9e5-472a-9935-a0e195fe5b4a", "fixedIp":"10.0.1.4" }, { "
>>>>>> name":"netTwo", "networkUuid":"512e1f54-1e85-4dac-b2e6-f0b30fc552cf",
>>>>>> "publicNetworkUuids":[ { "name":"externalOne", "networkUuid":"
>>>>>> 8f08a69d-cb46-43c9-9ebe-b89dcc78dacc", }, { "name":"externalTwo", "
>>>>>> networkUuid":"b5504321-e7aa-4500-9e00-7bc1b10cb5e9", } ] }, { "name":
>>>>>> "netThree", "networkUuid":"b55f009a-1cc6-4b17-924f-4ae0ee18db5e", "
>>>>>> publicNetworkUuids":[ { "name":"externalThree", "networkUuid":"
>>>>>> 83d52a6d-a9e5-572a-9935-a0e195fe5b4r", } ] } ], "maxInstanceLimit":"4
>>>>>> ", "property":[ { "name":"instanceType", "value":"RegionOne/4" }, { "
>>>>>> name":"keyPair", "value":"raj" }, { "name":"autoAssignIp", "value":"
>>>>>> false" } ] } ], "loadBalancer":{ "type":"lb", "property":{ "name":"
>>>>>> no.load.balancer", "value":"true" } }}
>>>>>>
>>>>>>
>>>>>> So, I have introduced some additional elements here in networks
>>>>>> section. publicNetworkUuids will hold one or many external network UUIDs
>>>>>> from where you want to select one IP and assign it the corresponding
>>>>>> interface. Let list me three behaviors, as of now, I have identified.
>>>>>>
>>>>>>    1. If *autoAssignIp* property is *true*, stratos will not do
>>>>>>    anything regarding floating IPs when creating instances for this cartridge.
>>>>>>    But openstack will assign a floating IP to the instance.
>>>>>>    2. If *autoAssignIp* property is *false*, and you *don't *specify
>>>>>>    any publicNetworkUuids for any interface, then stratos will assign a
>>>>>>    floating IP to the 1st interface
>>>>>>    3. If *autoAssignIp* property is *false*, and you
>>>>>>    specify publicNetworkUuids, then stratos will assign floating IPs per
>>>>>>    interfaces for which you specified publicNetworkUuids. If you specify
>>>>>>    two publicNetworkUuids for an interface, it will assign two floating IPs to
>>>>>>    that interface and so on.
>>>>>>
>>>>>>
>>>>>> However, I tried to assign two floating IP addresses to an interface
>>>>>> which resulted in the following error.
>>>>>>
>>>>>> *Error: *409-{u'NeutronError': {u'message': u'Cannot associate
>>>>>> floating IP 192.168.17.96 (5691eb81-3153-4ee1-b9d0-31fc84516b03) with port
>>>>>> 7e9416ce-5077-44c4-97db-b4b14c10dfc9 using fixed IP 10.0.0.167, as that
>>>>>> fixed IP already has a floating IP on external network
>>>>>> ba667f72-7ba8-4b24-b360-b74a0211c83c.', u'type':
>>>>>> u'FloatingIPPortAlreadyAssociated', u'detail': u''}}
>>>>>>
>>>>>> I guess we can't assign multiple floating IPs to the same interface
>>>>>> from same network. We would be able to assign multiple floating IPs to the
>>>>>> same interface from multiple networks. Since I am having only one external
>>>>>> network, I couldn't test this. Any idea?
>>>>>>
>>>>>> Feel free to share your thoughts.
>>>>>>
>>>>>> 1. https://issues.apache.org/jira/browse/STRATOS-698
>>>>>>
>>>>>> Thanks.
>>>>>>
>>>>>> --
>>>>>> Raj
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> Udara Liyanage
>>>>> Software Engineer
>>>>> WSO2, Inc.: http://wso2.com
>>>>> lean. enterprise. middleware
>>>>>
>>>>> web: http://udaraliyanage.wordpress.com
>>>>> phone: +94 71 443 6897
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Raj
>>>>
>>>
>>>
>>>
>>> --
>>>
>>> Udara Liyanage
>>> Software Engineer
>>> WSO2, Inc.: http://wso2.com
>>> lean. enterprise. middleware
>>>
>>> web: http://udaraliyanage.wordpress.com
>>> phone: +94 71 443 6897
>>>
>>
>>
>>
>> --
>> Raj
>>
>
>
>
> --
> Raj
>



-- 
Raj

Re: Assigning floating IPs to any interfaces of our choice

Posted by Rajkumar Rajaratnam <ra...@wso2.com>.
Update;

Currently facing an issue with upstream openstack-neutron-1.8.1.jar.

When I see the MANIFEST.MF file of openstack-neutron-1.8.1.jar, it contains
${jclouds.version} in lot of places instead of actual version. Due to this
carbon feature installation is failing. Because it is processing
MANIFEST.MF and throwing number format exception.

I conveyed this in user@jclouds. For workaround, I am going to manually put
the jar into /repository/components/lib and continue the work until it is
sorted out in upstream.

Thanks.

On Wed, Nov 12, 2014 at 4:48 PM, Rajkumar Rajaratnam <ra...@wso2.com>
wrote:

>
>
> On Wed, Nov 12, 2014 at 4:37 PM, Udara Liyanage <ud...@wso2.com> wrote:
>
>> Hi Raj,
>>
>> No I did not try since there were no multiple public networks available.
>>
>
> Okay Udara. I am setting up a second external network now. Will run a test
> soon.
>
> Thanks.
>
>>
>> On Wed, Nov 12, 2014 at 2:59 PM, Rajkumar Rajaratnam <ra...@wso2.com>
>> wrote:
>>
>>>
>>>
>>> On Wed, Nov 12, 2014 at 2:52 PM, Udara Liyanage <ud...@wso2.com> wrote:
>>>
>>>> Hi Raj,
>>>>
>>>> If I remember correctly, we can't assign folating ip to the same port
>>>> multiple times even I try with Openstack UI.
>>>>
>>>
>>> Horizon UI doesn't support most of the operations. Yes we can't assign
>>> multiple floating IPs from the same external network to the same port. But
>>> I guess, we can assign multiple floating IPs from different external
>>> network to the same port. Did you try this scenario?
>>>
>>> Thanks.
>>>
>>>>
>>>> On Wed, Nov 12, 2014 at 2:47 PM, Rajkumar Rajaratnam <
>>>> rajkumarr@wso2.com> wrote:
>>>>
>>>>> Hi Devs,
>>>>>
>>>>> I am working on $Subject. Please find the relevant JIRA at [1]
>>>>>
>>>>> Currently Stratos will assign a floating IP to eth0 if *autoAssignIp*
>>>>> property is set to false in cartridge definition. AFAIU, stratos is using
>>>>> jclouds API to query the available floating IPs, choose one and assign it
>>>>> to the instance. Correct me if this is not the case.
>>>>>
>>>>> In order to support $Subject, I am proposing the cartridge definition
>>>>> as below;
>>>>>
>>>>> { "type":"mysql", "provider":"data", "host":"apachestratos.org", "
>>>>> displayName":"MySQL", "description":"MySQL Cartridge", "version":"5.5"
>>>>> , "multiTenant":"false", "portMapping":[ { "protocol":"http", "port":"
>>>>> 80", "proxyPort":"8280" } ], "deployment":{  }, "iaasProvider":[ { "
>>>>> type":"openstack", "imageId":"
>>>>> RegionOne/1cd412c1-54ce-405f-9894-ce1387073c6c", "networkInterfaces":[
>>>>> { "name":"netOne", "networkUuid":"84d52a6d-a9e5-472a-9935-a0e195fe5b4a
>>>>> ", "fixedIp":"10.0.1.4" }, { "name":"netTwo", "networkUuid":"
>>>>> 512e1f54-1e85-4dac-b2e6-f0b30fc552cf", "publicNetworkUuids":[ { "name"
>>>>> :"externalOne", "networkUuid":"8f08a69d-cb46-43c9-9ebe-b89dcc78dacc",
>>>>> }, { "name":"externalTwo", "networkUuid":"
>>>>> b5504321-e7aa-4500-9e00-7bc1b10cb5e9", } ] }, { "name":"netThree", "
>>>>> networkUuid":"b55f009a-1cc6-4b17-924f-4ae0ee18db5e", "
>>>>> publicNetworkUuids":[ { "name":"externalThree", "networkUuid":"
>>>>> 83d52a6d-a9e5-572a-9935-a0e195fe5b4r", } ] } ], "maxInstanceLimit":"4"
>>>>> , "property":[ { "name":"instanceType", "value":"RegionOne/4" }, { "
>>>>> name":"keyPair", "value":"raj" }, { "name":"autoAssignIp", "value":"
>>>>> false" } ] } ], "loadBalancer":{ "type":"lb", "property":{ "name":"
>>>>> no.load.balancer", "value":"true" } }}
>>>>>
>>>>>
>>>>> So, I have introduced some additional elements here in networks
>>>>> section. publicNetworkUuids will hold one or many external network UUIDs
>>>>> from where you want to select one IP and assign it the corresponding
>>>>> interface. Let list me three behaviors, as of now, I have identified.
>>>>>
>>>>>    1. If *autoAssignIp* property is *true*, stratos will not do
>>>>>    anything regarding floating IPs when creating instances for this cartridge.
>>>>>    But openstack will assign a floating IP to the instance.
>>>>>    2. If *autoAssignIp* property is *false*, and you *don't *specify
>>>>>    any publicNetworkUuids for any interface, then stratos will assign a
>>>>>    floating IP to the 1st interface
>>>>>    3. If *autoAssignIp* property is *false*, and you
>>>>>    specify publicNetworkUuids, then stratos will assign floating IPs per
>>>>>    interfaces for which you specified publicNetworkUuids. If you specify
>>>>>    two publicNetworkUuids for an interface, it will assign two floating IPs to
>>>>>    that interface and so on.
>>>>>
>>>>>
>>>>> However, I tried to assign two floating IP addresses to an interface
>>>>> which resulted in the following error.
>>>>>
>>>>> *Error: *409-{u'NeutronError': {u'message': u'Cannot associate
>>>>> floating IP 192.168.17.96 (5691eb81-3153-4ee1-b9d0-31fc84516b03) with port
>>>>> 7e9416ce-5077-44c4-97db-b4b14c10dfc9 using fixed IP 10.0.0.167, as that
>>>>> fixed IP already has a floating IP on external network
>>>>> ba667f72-7ba8-4b24-b360-b74a0211c83c.', u'type':
>>>>> u'FloatingIPPortAlreadyAssociated', u'detail': u''}}
>>>>>
>>>>> I guess we can't assign multiple floating IPs to the same interface
>>>>> from same network. We would be able to assign multiple floating IPs to the
>>>>> same interface from multiple networks. Since I am having only one external
>>>>> network, I couldn't test this. Any idea?
>>>>>
>>>>> Feel free to share your thoughts.
>>>>>
>>>>> 1. https://issues.apache.org/jira/browse/STRATOS-698
>>>>>
>>>>> Thanks.
>>>>>
>>>>> --
>>>>> Raj
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> Udara Liyanage
>>>> Software Engineer
>>>> WSO2, Inc.: http://wso2.com
>>>> lean. enterprise. middleware
>>>>
>>>> web: http://udaraliyanage.wordpress.com
>>>> phone: +94 71 443 6897
>>>>
>>>
>>>
>>>
>>> --
>>> Raj
>>>
>>
>>
>>
>> --
>>
>> Udara Liyanage
>> Software Engineer
>> WSO2, Inc.: http://wso2.com
>> lean. enterprise. middleware
>>
>> web: http://udaraliyanage.wordpress.com
>> phone: +94 71 443 6897
>>
>
>
>
> --
> Raj
>



-- 
Raj

Re: Assigning floating IPs to any interfaces of our choice

Posted by Rajkumar Rajaratnam <ra...@wso2.com>.
On Wed, Nov 12, 2014 at 4:37 PM, Udara Liyanage <ud...@wso2.com> wrote:

> Hi Raj,
>
> No I did not try since there were no multiple public networks available.
>

Okay Udara. I am setting up a second external network now. Will run a test
soon.

Thanks.

>
> On Wed, Nov 12, 2014 at 2:59 PM, Rajkumar Rajaratnam <ra...@wso2.com>
> wrote:
>
>>
>>
>> On Wed, Nov 12, 2014 at 2:52 PM, Udara Liyanage <ud...@wso2.com> wrote:
>>
>>> Hi Raj,
>>>
>>> If I remember correctly, we can't assign folating ip to the same port
>>> multiple times even I try with Openstack UI.
>>>
>>
>> Horizon UI doesn't support most of the operations. Yes we can't assign
>> multiple floating IPs from the same external network to the same port. But
>> I guess, we can assign multiple floating IPs from different external
>> network to the same port. Did you try this scenario?
>>
>> Thanks.
>>
>>>
>>> On Wed, Nov 12, 2014 at 2:47 PM, Rajkumar Rajaratnam <rajkumarr@wso2.com
>>> > wrote:
>>>
>>>> Hi Devs,
>>>>
>>>> I am working on $Subject. Please find the relevant JIRA at [1]
>>>>
>>>> Currently Stratos will assign a floating IP to eth0 if *autoAssignIp*
>>>> property is set to false in cartridge definition. AFAIU, stratos is using
>>>> jclouds API to query the available floating IPs, choose one and assign it
>>>> to the instance. Correct me if this is not the case.
>>>>
>>>> In order to support $Subject, I am proposing the cartridge definition
>>>> as below;
>>>>
>>>> { "type":"mysql", "provider":"data", "host":"apachestratos.org", "
>>>> displayName":"MySQL", "description":"MySQL Cartridge", "version":"5.5",
>>>> "multiTenant":"false", "portMapping":[ { "protocol":"http", "port":"80"
>>>> , "proxyPort":"8280" } ], "deployment":{  }, "iaasProvider":[ { "type":
>>>> "openstack", "imageId":"RegionOne/1cd412c1-54ce-405f-9894-ce1387073c6c"
>>>> , "networkInterfaces":[ { "name":"netOne", "networkUuid":"
>>>> 84d52a6d-a9e5-472a-9935-a0e195fe5b4a", "fixedIp":"10.0.1.4" }, { "name"
>>>> :"netTwo", "networkUuid":"512e1f54-1e85-4dac-b2e6-f0b30fc552cf", "
>>>> publicNetworkUuids":[ { "name":"externalOne", "networkUuid":"
>>>> 8f08a69d-cb46-43c9-9ebe-b89dcc78dacc", }, { "name":"externalTwo", "
>>>> networkUuid":"b5504321-e7aa-4500-9e00-7bc1b10cb5e9", } ] }, { "name":"
>>>> netThree", "networkUuid":"b55f009a-1cc6-4b17-924f-4ae0ee18db5e", "
>>>> publicNetworkUuids":[ { "name":"externalThree", "networkUuid":"
>>>> 83d52a6d-a9e5-572a-9935-a0e195fe5b4r", } ] } ], "maxInstanceLimit":"4",
>>>> "property":[ { "name":"instanceType", "value":"RegionOne/4" }, { "name"
>>>> :"keyPair", "value":"raj" }, { "name":"autoAssignIp", "value":"false" }
>>>> ] } ], "loadBalancer":{ "type":"lb", "property":{ "name":"
>>>> no.load.balancer", "value":"true" } }}
>>>>
>>>>
>>>> So, I have introduced some additional elements here in networks
>>>> section. publicNetworkUuids will hold one or many external network UUIDs
>>>> from where you want to select one IP and assign it the corresponding
>>>> interface. Let list me three behaviors, as of now, I have identified.
>>>>
>>>>    1. If *autoAssignIp* property is *true*, stratos will not do
>>>>    anything regarding floating IPs when creating instances for this cartridge.
>>>>    But openstack will assign a floating IP to the instance.
>>>>    2. If *autoAssignIp* property is *false*, and you *don't *specify
>>>>    any publicNetworkUuids for any interface, then stratos will assign a
>>>>    floating IP to the 1st interface
>>>>    3. If *autoAssignIp* property is *false*, and you
>>>>    specify publicNetworkUuids, then stratos will assign floating IPs per
>>>>    interfaces for which you specified publicNetworkUuids. If you specify
>>>>    two publicNetworkUuids for an interface, it will assign two floating IPs to
>>>>    that interface and so on.
>>>>
>>>>
>>>> However, I tried to assign two floating IP addresses to an interface
>>>> which resulted in the following error.
>>>>
>>>> *Error: *409-{u'NeutronError': {u'message': u'Cannot associate
>>>> floating IP 192.168.17.96 (5691eb81-3153-4ee1-b9d0-31fc84516b03) with port
>>>> 7e9416ce-5077-44c4-97db-b4b14c10dfc9 using fixed IP 10.0.0.167, as that
>>>> fixed IP already has a floating IP on external network
>>>> ba667f72-7ba8-4b24-b360-b74a0211c83c.', u'type':
>>>> u'FloatingIPPortAlreadyAssociated', u'detail': u''}}
>>>>
>>>> I guess we can't assign multiple floating IPs to the same interface
>>>> from same network. We would be able to assign multiple floating IPs to the
>>>> same interface from multiple networks. Since I am having only one external
>>>> network, I couldn't test this. Any idea?
>>>>
>>>> Feel free to share your thoughts.
>>>>
>>>> 1. https://issues.apache.org/jira/browse/STRATOS-698
>>>>
>>>> Thanks.
>>>>
>>>> --
>>>> Raj
>>>>
>>>
>>>
>>>
>>> --
>>>
>>> Udara Liyanage
>>> Software Engineer
>>> WSO2, Inc.: http://wso2.com
>>> lean. enterprise. middleware
>>>
>>> web: http://udaraliyanage.wordpress.com
>>> phone: +94 71 443 6897
>>>
>>
>>
>>
>> --
>> Raj
>>
>
>
>
> --
>
> Udara Liyanage
> Software Engineer
> WSO2, Inc.: http://wso2.com
> lean. enterprise. middleware
>
> web: http://udaraliyanage.wordpress.com
> phone: +94 71 443 6897
>



-- 
Raj

Re: Assigning floating IPs to any interfaces of our choice

Posted by Udara Liyanage <ud...@wso2.com>.
Hi Raj,

No I did not try since there were no multiple public networks available.

On Wed, Nov 12, 2014 at 2:59 PM, Rajkumar Rajaratnam <ra...@wso2.com>
wrote:

>
>
> On Wed, Nov 12, 2014 at 2:52 PM, Udara Liyanage <ud...@wso2.com> wrote:
>
>> Hi Raj,
>>
>> If I remember correctly, we can't assign folating ip to the same port
>> multiple times even I try with Openstack UI.
>>
>
> Horizon UI doesn't support most of the operations. Yes we can't assign
> multiple floating IPs from the same external network to the same port. But
> I guess, we can assign multiple floating IPs from different external
> network to the same port. Did you try this scenario?
>
> Thanks.
>
>>
>> On Wed, Nov 12, 2014 at 2:47 PM, Rajkumar Rajaratnam <ra...@wso2.com>
>> wrote:
>>
>>> Hi Devs,
>>>
>>> I am working on $Subject. Please find the relevant JIRA at [1]
>>>
>>> Currently Stratos will assign a floating IP to eth0 if *autoAssignIp*
>>> property is set to false in cartridge definition. AFAIU, stratos is using
>>> jclouds API to query the available floating IPs, choose one and assign it
>>> to the instance. Correct me if this is not the case.
>>>
>>> In order to support $Subject, I am proposing the cartridge definition as
>>> below;
>>>
>>> { "type":"mysql", "provider":"data", "host":"apachestratos.org", "
>>> displayName":"MySQL", "description":"MySQL Cartridge", "version":"5.5",
>>> "multiTenant":"false", "portMapping":[ { "protocol":"http", "port":"80",
>>> "proxyPort":"8280" } ], "deployment":{  }, "iaasProvider":[ { "type":"
>>> openstack", "imageId":"RegionOne/1cd412c1-54ce-405f-9894-ce1387073c6c",
>>> "networkInterfaces":[ { "name":"netOne", "networkUuid":"
>>> 84d52a6d-a9e5-472a-9935-a0e195fe5b4a", "fixedIp":"10.0.1.4" }, { "name":
>>> "netTwo", "networkUuid":"512e1f54-1e85-4dac-b2e6-f0b30fc552cf", "
>>> publicNetworkUuids":[ { "name":"externalOne", "networkUuid":"
>>> 8f08a69d-cb46-43c9-9ebe-b89dcc78dacc", }, { "name":"externalTwo", "
>>> networkUuid":"b5504321-e7aa-4500-9e00-7bc1b10cb5e9", } ] }, { "name":"
>>> netThree", "networkUuid":"b55f009a-1cc6-4b17-924f-4ae0ee18db5e", "
>>> publicNetworkUuids":[ { "name":"externalThree", "networkUuid":"
>>> 83d52a6d-a9e5-572a-9935-a0e195fe5b4r", } ] } ], "maxInstanceLimit":"4",
>>> "property":[ { "name":"instanceType", "value":"RegionOne/4" }, { "name":
>>> "keyPair", "value":"raj" }, { "name":"autoAssignIp", "value":"false" } ]
>>> } ], "loadBalancer":{ "type":"lb", "property":{ "name":"no.load.balancer
>>> ", "value":"true" } }}
>>>
>>>
>>> So, I have introduced some additional elements here in networks section.
>>> publicNetworkUuids will hold one or many external network UUIDs from where
>>> you want to select one IP and assign it the corresponding interface. Let
>>> list me three behaviors, as of now, I have identified.
>>>
>>>    1. If *autoAssignIp* property is *true*, stratos will not do
>>>    anything regarding floating IPs when creating instances for this cartridge.
>>>    But openstack will assign a floating IP to the instance.
>>>    2. If *autoAssignIp* property is *false*, and you *don't *specify
>>>    any publicNetworkUuids for any interface, then stratos will assign a
>>>    floating IP to the 1st interface
>>>    3. If *autoAssignIp* property is *false*, and you
>>>    specify publicNetworkUuids, then stratos will assign floating IPs per
>>>    interfaces for which you specified publicNetworkUuids. If you specify
>>>    two publicNetworkUuids for an interface, it will assign two floating IPs to
>>>    that interface and so on.
>>>
>>>
>>> However, I tried to assign two floating IP addresses to an interface
>>> which resulted in the following error.
>>>
>>> *Error: *409-{u'NeutronError': {u'message': u'Cannot associate floating
>>> IP 192.168.17.96 (5691eb81-3153-4ee1-b9d0-31fc84516b03) with port
>>> 7e9416ce-5077-44c4-97db-b4b14c10dfc9 using fixed IP 10.0.0.167, as that
>>> fixed IP already has a floating IP on external network
>>> ba667f72-7ba8-4b24-b360-b74a0211c83c.', u'type':
>>> u'FloatingIPPortAlreadyAssociated', u'detail': u''}}
>>>
>>> I guess we can't assign multiple floating IPs to the same interface from
>>> same network. We would be able to assign multiple floating IPs to the same
>>> interface from multiple networks. Since I am having only one external
>>> network, I couldn't test this. Any idea?
>>>
>>> Feel free to share your thoughts.
>>>
>>> 1. https://issues.apache.org/jira/browse/STRATOS-698
>>>
>>> Thanks.
>>>
>>> --
>>> Raj
>>>
>>
>>
>>
>> --
>>
>> Udara Liyanage
>> Software Engineer
>> WSO2, Inc.: http://wso2.com
>> lean. enterprise. middleware
>>
>> web: http://udaraliyanage.wordpress.com
>> phone: +94 71 443 6897
>>
>
>
>
> --
> Raj
>



-- 

Udara Liyanage
Software Engineer
WSO2, Inc.: http://wso2.com
lean. enterprise. middleware

web: http://udaraliyanage.wordpress.com
phone: +94 71 443 6897

Re: Assigning floating IPs to any interfaces of our choice

Posted by Rajkumar Rajaratnam <ra...@wso2.com>.
On Wed, Nov 12, 2014 at 2:52 PM, Udara Liyanage <ud...@wso2.com> wrote:

> Hi Raj,
>
> If I remember correctly, we can't assign folating ip to the same port
> multiple times even I try with Openstack UI.
>

Horizon UI doesn't support most of the operations. Yes we can't assign
multiple floating IPs from the same external network to the same port. But
I guess, we can assign multiple floating IPs from different external
network to the same port. Did you try this scenario?

Thanks.

>
> On Wed, Nov 12, 2014 at 2:47 PM, Rajkumar Rajaratnam <ra...@wso2.com>
> wrote:
>
>> Hi Devs,
>>
>> I am working on $Subject. Please find the relevant JIRA at [1]
>>
>> Currently Stratos will assign a floating IP to eth0 if *autoAssignIp*
>> property is set to false in cartridge definition. AFAIU, stratos is using
>> jclouds API to query the available floating IPs, choose one and assign it
>> to the instance. Correct me if this is not the case.
>>
>> In order to support $Subject, I am proposing the cartridge definition as
>> below;
>>
>> { "type":"mysql", "provider":"data", "host":"apachestratos.org", "
>> displayName":"MySQL", "description":"MySQL Cartridge", "version":"5.5", "
>> multiTenant":"false", "portMapping":[ { "protocol":"http", "port":"80", "
>> proxyPort":"8280" } ], "deployment":{  }, "iaasProvider":[ { "type":"
>> openstack", "imageId":"RegionOne/1cd412c1-54ce-405f-9894-ce1387073c6c", "
>> networkInterfaces":[ { "name":"netOne", "networkUuid":"
>> 84d52a6d-a9e5-472a-9935-a0e195fe5b4a", "fixedIp":"10.0.1.4" }, { "name":"
>> netTwo", "networkUuid":"512e1f54-1e85-4dac-b2e6-f0b30fc552cf", "
>> publicNetworkUuids":[ { "name":"externalOne", "networkUuid":"
>> 8f08a69d-cb46-43c9-9ebe-b89dcc78dacc", }, { "name":"externalTwo", "
>> networkUuid":"b5504321-e7aa-4500-9e00-7bc1b10cb5e9", } ] }, { "name":"
>> netThree", "networkUuid":"b55f009a-1cc6-4b17-924f-4ae0ee18db5e", "
>> publicNetworkUuids":[ { "name":"externalThree", "networkUuid":"
>> 83d52a6d-a9e5-572a-9935-a0e195fe5b4r", } ] } ], "maxInstanceLimit":"4", "
>> property":[ { "name":"instanceType", "value":"RegionOne/4" }, { "name":"
>> keyPair", "value":"raj" }, { "name":"autoAssignIp", "value":"false" } ] }
>> ], "loadBalancer":{ "type":"lb", "property":{ "name":"no.load.balancer",
>> "value":"true" } }}
>>
>>
>> So, I have introduced some additional elements here in networks section.
>> publicNetworkUuids will hold one or many external network UUIDs from where
>> you want to select one IP and assign it the corresponding interface. Let
>> list me three behaviors, as of now, I have identified.
>>
>>    1. If *autoAssignIp* property is *true*, stratos will not do anything
>>    regarding floating IPs when creating instances for this cartridge. But
>>    openstack will assign a floating IP to the instance.
>>    2. If *autoAssignIp* property is *false*, and you *don't *specify any
>>    publicNetworkUuids for any interface, then stratos will assign a floating
>>    IP to the 1st interface
>>    3. If *autoAssignIp* property is *false*, and you
>>    specify publicNetworkUuids, then stratos will assign floating IPs per
>>    interfaces for which you specified publicNetworkUuids. If you specify
>>    two publicNetworkUuids for an interface, it will assign two floating IPs to
>>    that interface and so on.
>>
>>
>> However, I tried to assign two floating IP addresses to an interface
>> which resulted in the following error.
>>
>> *Error: *409-{u'NeutronError': {u'message': u'Cannot associate floating
>> IP 192.168.17.96 (5691eb81-3153-4ee1-b9d0-31fc84516b03) with port
>> 7e9416ce-5077-44c4-97db-b4b14c10dfc9 using fixed IP 10.0.0.167, as that
>> fixed IP already has a floating IP on external network
>> ba667f72-7ba8-4b24-b360-b74a0211c83c.', u'type':
>> u'FloatingIPPortAlreadyAssociated', u'detail': u''}}
>>
>> I guess we can't assign multiple floating IPs to the same interface from
>> same network. We would be able to assign multiple floating IPs to the same
>> interface from multiple networks. Since I am having only one external
>> network, I couldn't test this. Any idea?
>>
>> Feel free to share your thoughts.
>>
>> 1. https://issues.apache.org/jira/browse/STRATOS-698
>>
>> Thanks.
>>
>> --
>> Raj
>>
>
>
>
> --
>
> Udara Liyanage
> Software Engineer
> WSO2, Inc.: http://wso2.com
> lean. enterprise. middleware
>
> web: http://udaraliyanage.wordpress.com
> phone: +94 71 443 6897
>



-- 
Raj

Re: Assigning floating IPs to any interfaces of our choice

Posted by Udara Liyanage <ud...@wso2.com>.
Hi Raj,

If I remember correctly, we can't assign folating ip to the same port
multiple times even I try with Openstack UI.

On Wed, Nov 12, 2014 at 2:47 PM, Rajkumar Rajaratnam <ra...@wso2.com>
wrote:

> Hi Devs,
>
> I am working on $Subject. Please find the relevant JIRA at [1]
>
> Currently Stratos will assign a floating IP to eth0 if *autoAssignIp*
> property is set to false in cartridge definition. AFAIU, stratos is using
> jclouds API to query the available floating IPs, choose one and assign it
> to the instance. Correct me if this is not the case.
>
> In order to support $Subject, I am proposing the cartridge definition as
> below;
>
> { "type":"mysql", "provider":"data", "host":"apachestratos.org", "
> displayName":"MySQL", "description":"MySQL Cartridge", "version":"5.5", "
> multiTenant":"false", "portMapping":[ { "protocol":"http", "port":"80", "
> proxyPort":"8280" } ], "deployment":{  }, "iaasProvider":[ { "type":"
> openstack", "imageId":"RegionOne/1cd412c1-54ce-405f-9894-ce1387073c6c", "
> networkInterfaces":[ { "name":"netOne", "networkUuid":"
> 84d52a6d-a9e5-472a-9935-a0e195fe5b4a", "fixedIp":"10.0.1.4" }, { "name":"
> netTwo", "networkUuid":"512e1f54-1e85-4dac-b2e6-f0b30fc552cf", "
> publicNetworkUuids":[ { "name":"externalOne", "networkUuid":"
> 8f08a69d-cb46-43c9-9ebe-b89dcc78dacc", }, { "name":"externalTwo", "
> networkUuid":"b5504321-e7aa-4500-9e00-7bc1b10cb5e9", } ] }, { "name":"
> netThree", "networkUuid":"b55f009a-1cc6-4b17-924f-4ae0ee18db5e", "
> publicNetworkUuids":[ { "name":"externalThree", "networkUuid":"
> 83d52a6d-a9e5-572a-9935-a0e195fe5b4r", } ] } ], "maxInstanceLimit":"4", "
> property":[ { "name":"instanceType", "value":"RegionOne/4" }, { "name":"
> keyPair", "value":"raj" }, { "name":"autoAssignIp", "value":"false" } ] }
> ], "loadBalancer":{ "type":"lb", "property":{ "name":"no.load.balancer", "
> value":"true" } }}
>
>
> So, I have introduced some additional elements here in networks section.
> publicNetworkUuids will hold one or many external network UUIDs from where
> you want to select one IP and assign it the corresponding interface. Let
> list me three behaviors, as of now, I have identified.
>
>    1. If *autoAssignIp* property is *true*, stratos will not do anything
>    regarding floating IPs when creating instances for this cartridge. But
>    openstack will assign a floating IP to the instance.
>    2. If *autoAssignIp* property is *false*, and you *don't *specify any
>    publicNetworkUuids for any interface, then stratos will assign a floating
>    IP to the 1st interface
>    3. If *autoAssignIp* property is *false*, and you
>    specify publicNetworkUuids, then stratos will assign floating IPs per
>    interfaces for which you specified publicNetworkUuids. If you specify
>    two publicNetworkUuids for an interface, it will assign two floating IPs to
>    that interface and so on.
>
>
> However, I tried to assign two floating IP addresses to an interface which
> resulted in the following error.
>
> *Error: *409-{u'NeutronError': {u'message': u'Cannot associate floating
> IP 192.168.17.96 (5691eb81-3153-4ee1-b9d0-31fc84516b03) with port
> 7e9416ce-5077-44c4-97db-b4b14c10dfc9 using fixed IP 10.0.0.167, as that
> fixed IP already has a floating IP on external network
> ba667f72-7ba8-4b24-b360-b74a0211c83c.', u'type':
> u'FloatingIPPortAlreadyAssociated', u'detail': u''}}
>
> I guess we can't assign multiple floating IPs to the same interface from
> same network. We would be able to assign multiple floating IPs to the same
> interface from multiple networks. Since I am having only one external
> network, I couldn't test this. Any idea?
>
> Feel free to share your thoughts.
>
> 1. https://issues.apache.org/jira/browse/STRATOS-698
>
> Thanks.
>
> --
> Raj
>



-- 

Udara Liyanage
Software Engineer
WSO2, Inc.: http://wso2.com
lean. enterprise. middleware

web: http://udaraliyanage.wordpress.com
phone: +94 71 443 6897