'Function to return the snat interface port list.
This function will return the snat interface port list
if it exists. If the port does not exist it will create
new ports and then return the list.'

def _create_snat_intf_ports_if_not_exists(self, context, router):

    port_list = self._get_snat_interface_ports_for_router(context, router.id)
    if port_list:
        self._populate_mtu_and_subnets_for_ports(context, port_list)
        return port_list
    port_list = []
    int_ports = (rp.port for rp in router.attached_ports.filter_by(port_type=const.DEVICE_OWNER_DVR_INTERFACE))
    LOG.info(_LI('SNAT    interface    port    list    does    not    exist,    so    create    one:    %s'), port_list)
    for intf in int_ports:
        if intf.fixed_ips:
            snat_port = self._add_csnat_router_interface_port(context, router, intf['network_id'], intf['fixed_ips'][0]['subnet_id'], do_pop=False)
            port_list.append(snat_port)
    if port_list:
        self.l3plugin._populate_mtu_and_subnets_for_ports(context, port_list)
    return port_list
