Hi, I have commented out IP releasing code segment and unsubscribed from a cartridge. Floating IPs allocated to that instance were released(deleted). So I guess, Jclouds' BasicComputeService#destroyNode(String id) is releasing the floating IPs too.
So predefined floating IPs will also be removed. The flow we are having is to destroy the node first and release the IPs then. Please refer the code @ [1]. We can remove/disassociate the predefined floating IPs before calling destroying the node. It will ensure that predefined floating IPs will not be released, rather these will be detached from the instance. Or I guess we should be able to set a property to prevent releasing IPs when terminating instances. I sent a mail to jclouds user list. 1. https://github.com/apache/stratos/blob/master/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java#L986-996 wdyt? Thanks. On Fri, Nov 21, 2014 at 12:21 PM, Rajkumar Rajaratnam <rajkum...@wso2.com> wrote: > Hi Nirmal, > > Please have a look at associateAddress(NodeMetadata node) @ [1]. > > This method either allocate an IP or using an available IP. So what we > setting to allocatedIPAddress can be either an allocated one or an > available one right? Am I missing something here? > > 1. > https://github.com/apache/stratos/blob/master/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java#L219-298 > > Thanks. > > On Fri, Nov 21, 2014 at 12:14 PM, Nirmal Fernando <nirmal070...@gmail.com> > wrote: > >> We shouldn't be releasing the non-allocated IPs. Since you are claiming >> that we are doing so, I had a look at the code, but I see only >> https://github.com/apache/stratos/blob/master/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java#L842 >> where we set allocated IP to member context. So, only that IP should have >> been released. Isn't it the case? Please point to code segments. >> >> On Fri, Nov 21, 2014 at 7:34 AM, Rajkumar Rajaratnam <rajkum...@wso2.com> >> wrote: >> >>> Hi Nirmal, >>> >>> On Fri, Nov 21, 2014 at 11:46 AM, Nirmal Fernando < >>> nirmal070...@gmail.com> wrote: >>> >>>> >>>> >>>> On Fri, Nov 21, 2014 at 6:24 AM, Rajkumar Rajaratnam < >>>> rajkum...@wso2.com> wrote: >>>> >>>>> Hi devs, >>>>> >>>>> We have the following fields in Member Context; >>>>> >>>>> // private ip private String privateIpAddress; // public ip private >>>>> String publicIpAddress; // manually allocated ip private String >>>>> allocatedIpAddress; >>>>> I hope that the reason for having allocatedIpAddress is to release it >>>>> when terminating the instance. We are not releasing(deleting) all the >>>>> public IPs. >>>>> >>>>> Predefined IPs should not released when terminating the instances >>>>> right? Is this happening now? My predefined IP got released when I >>>>> unsubscribed to the cartridge. >>>>> >>>> >>>> AFAIK we have to release an IP, only if we allocate manually. >>>> >>> >>> We are not exactly doing it. So when we associate an floating IP to an >>> instance, we are retrieving all the available floating IPs, shuffle them >>> and associate the last floating IP to the instance. If there are no >>> available floating IPs, we are allocating one and associate to the >>> instance. These two scenario is considered as allocated IPs in stratos. >>> What I meant here is that, we are putting IPs from these two scenario into >>> allocatedIpAddress. So when terminate the instance, we are releasing these. >>> It means we are sometimes releasing IPs even though we didn't allocate >>> them. But that is not a harm. That is another problem. >>> >>> My concern is that are we releasing predefined floating IPs too? If so, >>> the user will not able to unsubscribe and subscribe it to this cartridge >>> again. Since the IP is not there, stratos will raise an error. Then he has >>> to manually allocate a floating IP in openstack and then use that IP in >>> cartridge json. I feel this is not good . >>> >>> What I wanted to know is, are we releasing or not releasing the >>> predefined floating IPs? >>> >>> Thanks. >>> >>>> >>>>> Jclouds API doc; >>>>> /** >>>>> * destroy the node, given its id. If it is the only node in a tag >>>>> set, the dependent resources >>>>> * will also be destroyed. >>>>> */ >>>>> void destroyNode(String id); >>>>> >>>>> So I guess all the floating IPs associated with the ports of this node >>>>> will also be released right? >>>>> >>>>> Or can we set any property to prevent Jclouds from releasing floating >>>>> IPs? >>>>> >>>> >>>> Please raise this in Jclouds user list and get clarified. >>>> >>>>> >>>>> Thanks. >>>>> >>>>> -- >>>>> Rajkumar Rajaratnam >>>>> Committer & PMC Member, Apache Stratos >>>>> Software Engineer, WSO2 >>>>> >>>> >>>> >>>> >>>> -- >>>> Best Regards, >>>> Nirmal >>>> >>>> Nirmal Fernando. >>>> PPMC Member & Committer of Apache Stratos, >>>> Senior Software Engineer, WSO2 Inc. >>>> >>>> Blog: http://nirmalfdo.blogspot.com/ >>>> >>> >>> >>> >>> -- >>> Rajkumar Rajaratnam >>> Committer & PMC Member, Apache Stratos >>> Software Engineer, WSO2 >>> >> >> >> >> -- >> Best Regards, >> Nirmal >> >> Nirmal Fernando. >> PPMC Member & Committer of Apache Stratos, >> Senior Software Engineer, WSO2 Inc. >> >> Blog: http://nirmalfdo.blogspot.com/ >> > > > > -- > Rajkumar Rajaratnam > Committer & PMC Member, Apache Stratos > Software Engineer, WSO2 > -- Rajkumar Rajaratnam Committer & PMC Member, Apache Stratos Software Engineer, WSO2