One of the many  things on “to fix” list but thanks, we do not want to go 
forward with stupid stuff in there, the idea is to make things better!

—
Cheers
Ian

On 04 Feb 2015, at 22:53, John Kinsella <j...@stratosec.co> wrote:

> Would be nice if we weren’t setting a static VRRP password...
> 
> John
> 
>> On Feb 4, 2015, at 12:28 PM, d...@apache.org wrote:
>> 
>> Fix router priuority using the same logic as the one for the state
>> Fix the router state. do not show UNKNOW, but MASTER or BACKUP depending on 
>> the type of router
>> Implement the virtual_router_id to be passed as a boot parameter to the 
>> router
>> - it is needed for the keepalived configuration
>> 
>> 
>> Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
>> Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/5303d2a8
>> Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/5303d2a8
>> Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/5303d2a8
>> 
>> Branch: refs/heads/feature/systemvm-persistent-config
>> Commit: 5303d2a8e4ccd34d518c7e529d3ebd95e2933808
>> Parents: cc384ee
>> Author: wilderrodrigues <wrodrig...@schubergphilis.com>
>> Authored: Tue Jan 27 14:05:38 2015 +0100
>> Committer: wilderrodrigues <wrodrig...@schubergphilis.com>
>> Committed: Wed Feb 4 18:47:09 2015 +0100
>> 
>> ----------------------------------------------------------------------
>> .../VirtualNetworkApplianceManagerImpl.java     | 22 +++++++++++++-------
>> .../debian/config/opt/cloud/bin/cs/CsDatabag.py |  7 ++++++-
>> .../config/opt/cloud/bin/cs/CsRedundant.py      |  3 ++-
>> .../opt/cloud/templates/keepalived.conf.templ   |  4 ++--
>> 4 files changed, 24 insertions(+), 12 deletions(-)
>> ----------------------------------------------------------------------
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5303d2a8/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
>> ----------------------------------------------------------------------
>> diff --git 
>> a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
>>  
>> b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
>> index f0730f5..1c32c7e 100644
>> --- 
>> a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
>> +++ 
>> b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
>> @@ -1302,23 +1302,24 @@ Configurable, StateListener<State, 
>> VirtualMachine.Event, VirtualMachine> {
>>        }
>>    }
>> 
>> -    protected int getUpdatedPriority(final Network network, final 
>> List<DomainRouterVO> routers, final DomainRouterVO exclude)
>> +    protected int getUpdatedPriority(final Network network, final 
>> List<DomainRouterVO> routers, final DomainRouterVO masterRouter)
>>            throws InsufficientVirtualNetworkCapacityException {
>>        int priority;
>>        if (routers.size() == 0) {
>>            priority = DEFAULT_PRIORITY;
>>        } else {
>>            int maxPriority = 0;
>> -            for (final DomainRouterVO r : routers) {
>> -                if (!r.getIsRedundantRouter()) {
>> +
>> +            final DomainRouterVO router0 = routers.get(0);
>> +            if (router0.getId() == masterRouter.getId()) {
>> +                if (!router0.getIsRedundantRouter()) {
>>                    throw new CloudRuntimeException("Redundant router is 
>> mixed with single router in one network!");
>>                }
>> -                // FIXME Assume the maxPriority one should be running or 
>> just
>> -                // created.
>> -                if (r.getId() != exclude.getId() && 
>> _nwHelper.getRealPriority(r) > maxPriority) {
>> -                    maxPriority = _nwHelper.getRealPriority(r);
>> -                }
>> +                maxPriority = _nwHelper.getRealPriority(router0);
>> +            } else {
>> +                maxPriority = DEFAULT_PRIORITY;
>>            }
>> +
>>            if (maxPriority == 0) {
>>                return DEFAULT_PRIORITY;
>>            }
>> @@ -1330,6 +1331,7 @@ Configurable, StateListener<State, 
>> VirtualMachine.Event, VirtualMachine> {
>>                throw new InsufficientVirtualNetworkCapacityException("Too 
>> many times fail-over happened! Current maximum priority is too high as " + 
>> maxPriority + "!",
>>                        network.getId());
>>            }
>> +
>>            priority = maxPriority - DEFAULT_DELTA + 1;
>>        }
>>        return priority;
>> @@ -1589,6 +1591,7 @@ Configurable, StateListener<State, 
>> VirtualMachine.Event, VirtualMachine> {
>>        final boolean isRedundant = router.getIsRedundantRouter();
>>        if (isRedundant) {
>>            buf.append(" redundant_router=1");
>> +            buf.append(" router_id=").append(router.getId());
>> 
>>            final Long vpcId = router.getVpcId();
>>            final List<DomainRouterVO> routers;
>> @@ -1599,13 +1602,16 @@ Configurable, StateListener<State, 
>> VirtualMachine.Event, VirtualMachine> {
>>            }
>> 
>>            String redundantState = RedundantState.BACKUP.toString();
>> +            router.setRedundantState(RedundantState.BACKUP);
>>            if (routers.size() == 0) {
>>                redundantState = RedundantState.MASTER.toString();
>> +                router.setRedundantState(RedundantState.MASTER);
>>            } else {
>>                final DomainRouterVO router0 = routers.get(0);
>> 
>>                if (router.getId() == router0.getId()) {
>>                    redundantState = RedundantState.MASTER.toString();
>> +                    router.setRedundantState(RedundantState.MASTER);
>>                }
>>            }
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5303d2a8/systemvm/patches/debian/config/opt/cloud/bin/cs/CsDatabag.py
>> ----------------------------------------------------------------------
>> diff --git a/systemvm/patches/debian/config/opt/cloud/bin/cs/CsDatabag.py 
>> b/systemvm/patches/debian/config/opt/cloud/bin/cs/CsDatabag.py
>> index d1d899b..187a0cb 100644
>> --- a/systemvm/patches/debian/config/opt/cloud/bin/cs/CsDatabag.py
>> +++ b/systemvm/patches/debian/config/opt/cloud/bin/cs/CsDatabag.py
>> @@ -129,4 +129,9 @@ class CsCmdLine(CsDataBag):
>>    def get_state(self):
>>        if "redundant_state" in self.idata():
>>            return self.idata()['redundant_state']
>> -        return "MASTER"
>> \ No newline at end of file
>> +        return "MASTER"
>> +    
>> +    def get_router_id(self):
>> +        if "router_id" in self.idata():
>> +            return self.idata()['router_id']
>> +        return 1
>> \ No newline at end of file
>> 
>> http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5303d2a8/systemvm/patches/debian/config/opt/cloud/bin/cs/CsRedundant.py
>> ----------------------------------------------------------------------
>> diff --git a/systemvm/patches/debian/config/opt/cloud/bin/cs/CsRedundant.py 
>> b/systemvm/patches/debian/config/opt/cloud/bin/cs/CsRedundant.py
>> index 267cc1c..9569f08 100644
>> --- a/systemvm/patches/debian/config/opt/cloud/bin/cs/CsRedundant.py
>> +++ b/systemvm/patches/debian/config/opt/cloud/bin/cs/CsRedundant.py
>> @@ -102,6 +102,7 @@ class CsRedundant(object):
>>        file.search(" priority ", "    priority %s" % self.cl.get_priority())
>>        file.search(" weight ", "    weight %s" % 2)
>>        file.search(" state ", "    state %s" % self.cl.get_state())
>> +        file.search(" virtual_router_id ", "    virtual_router_id %s" % 
>> self.cl.get_router_id())
>>        file.greplace("[RROUTER_BIN_PATH]", self.CS_ROUTER_DIR)
>>        file.section("virtual_ipaddress {", "}", self._collect_ips())
>>        file.commit()
>> @@ -122,7 +123,7 @@ class CsRedundant(object):
>>        if connt.is_changed():
>>            CsHelper.service("conntrackd", "restart")
>> 
>> -        if file.is_changed() and self.cl.get_state() == 'MASTER':
>> +        if file.is_changed():
>>            CsHelper.service("keepalived", "restart")
>> 
>>        # FIXME
>> 
>> http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5303d2a8/systemvm/patches/debian/config/opt/cloud/templates/keepalived.conf.templ
>> ----------------------------------------------------------------------
>> diff --git 
>> a/systemvm/patches/debian/config/opt/cloud/templates/keepalived.conf.templ 
>> b/systemvm/patches/debian/config/opt/cloud/templates/keepalived.conf.templ
>> index 9f3c24b..ef27617 100644
>> --- 
>> a/systemvm/patches/debian/config/opt/cloud/templates/keepalived.conf.templ
>> +++ 
>> b/systemvm/patches/debian/config/opt/cloud/templates/keepalived.conf.templ
>> @@ -38,8 +38,8 @@ vrrp_instance inside_network {
>> 
>>    advert_int 1
>>    authentication {
>> -        auth_type PASS
>> -        auth_pass WORD
>> +        auth_type AH
>> +        auth_pass k33p@live
>>    }
>> 
>>    virtual_ipaddress {
>> 
> 

Reply via email to