| 136 | """ For type Virtual Router """ |
| 137 | |
| 138 | def __init__(self, obj, fw): |
| 139 | self.fw = fw.get_fw() |
| 140 | self.direction = 'egress' |
| 141 | if obj['traffic_type'] == 'Ingress': |
| 142 | self.direction = 'ingress' |
| 143 | self.device = '' |
| 144 | self.ip = obj['src_ip'] |
| 145 | self.rule = obj |
| 146 | self.rule['type'] = obj['protocol'] |
| 147 | # src_port_range |
| 148 | if 'src_port_range' in obj: |
| 149 | self.rule['first_port'] = obj['src_port_range'][0] |
| 150 | self.rule['last_port'] = obj['src_port_range'][1] |
| 151 | |
| 152 | self.rule['allowed'] = True |
| 153 | self.rule['action'] = "ACCEPT" |
| 154 | |
| 155 | if self.rule['type'] == 'all' and not obj['source_cidr_list']: |
| 156 | self.rule['cidr'] = [] |
| 157 | else: |
| 158 | self.rule['cidr'] = obj['source_cidr_list'] |
| 159 | |
| 160 | if self.direction == 'egress': |
| 161 | try: |
| 162 | if not obj['dest_cidr_list']: |
| 163 | self.rule['dcidr'] = [] |
| 164 | else: |
| 165 | self.rule['dcidr'] = obj['dest_cidr_list'] |
| 166 | except Exception: |
| 167 | self.rule['dcidr'] = [] |
| 168 | |
| 169 | logging.debug("AclIP created for rule ==> %s", self.rule) |
| 170 | |
| 171 | def create(self): |
| 172 | self.add_rule() |