From 54f5c53a20bebf30b19fc0c723f9f50f29707183 Mon Sep 17 00:00:00 2001 From: Ian Southam Date: Mon, 10 Nov 2014 14:39:31 +0100 Subject: [PATCH] Decided not at this stage to combine VPC and VR code --- .../debian/config/opt/cloud/bin/configure.py | 10 ++++----- .../config/opt/cloud/bin/cs/CsConfig.py | 21 +++++++++++++++++++ 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/systemvm/patches/debian/config/opt/cloud/bin/configure.py b/systemvm/patches/debian/config/opt/cloud/bin/configure.py index 6d3a0887b28..2c74adf3936 100755 --- a/systemvm/patches/debian/config/opt/cloud/bin/configure.py +++ b/systemvm/patches/debian/config/opt/cloud/bin/configure.py @@ -85,20 +85,20 @@ class CsAcl(CsDataBag): def process(self, direction, rule_list): for i in rule_list: - r = self.AclRule(direction, self, i) + r = self.AclRule(direction, self, i, self.config) r.create() class AclRule(): - def __init__(self, direction, acl, rule): + def __init__(self, direction, acl, rule, config): self.table = "" self.device = acl.device self.fw = acl.fw - self.chain = "ACL_INBOUND_%s" % self.device + self.chain = config.get_ingress_chain(self.device, acl.ip) self.dest = "-s %s" % rule['cidr'] if direction == "egress": - self.table = "mangle" - self.chain = "ACL_OUTBOUND_%s" % self.device + self.table = config.get_efress_table() + self.chain = config.get_egress_chain(self.device, ip) self.dest = "-d %s" % rule['cidr'] self.type = "" self.type = rule['type'] diff --git a/systemvm/patches/debian/config/opt/cloud/bin/cs/CsConfig.py b/systemvm/patches/debian/config/opt/cloud/bin/cs/CsConfig.py index 5568eb289c0..c81008954be 100644 --- a/systemvm/patches/debian/config/opt/cloud/bin/cs/CsConfig.py +++ b/systemvm/patches/debian/config/opt/cloud/bin/cs/CsConfig.py @@ -47,5 +47,26 @@ class CsConfig(object): def get_level(self): return self.__LOG_LEVEL + def is_vpc(self): + return self.cl.get_type() == "vpcrouter": + def get_format(self): return self.__LOG_FORMAT + + def get_ingress_chain(self, device, ip): + if self.is_vpc: + return "ACL_INBOUND_%s" % device + else: + return "FIREWALL_" % ip + + def get_egress_chain(self, device, ip): + if self.is_vpc: + return "ACL_OUTBOUND_%s" % device + else: + return "FW_EGRESS_RULES" + + def get_egress_table(self): + if self.is_vpc: + return 'mangle' + else: + return "";