Source code for networkapi.api_vrf.facade

# -*- coding: utf-8 -*-
import logging

from django.core.exceptions import FieldError
from django.core.exceptions import ObjectDoesNotExist

from networkapi.api_rest.exceptions import NetworkAPIException
from networkapi.api_rest.exceptions import ValidationAPIException
from networkapi.api_vrf import exceptions
from networkapi.api_vrf.models import Vrf
from networkapi.infrastructure.datatable import build_query_to_datatable_v3


log = logging.getLogger(__name__)





[docs]def get_vrf_by_id(vrf_id): """ Return a vrf by id :param vrf_id: id of vrf """ try: vrf = Vrf.objects.get(id=vrf_id) except ObjectDoesNotExist: raise exceptions.VrfNotFoundError() return vrf
[docs]def get_vrfs_by_ids(vrf_ids): """ Return vrf list by ids :param vrf_ids: ids list """ vrf_ids = [get_vrf_by_id(vrf_id).id for vrf_id in vrf_ids] return Vrf.objects.filter(id__in=vrf_ids)
[docs]def create_vrf(vrf): """ Create vrf :param env: dict """ vrf_obj = Vrf() vrf_obj.vrf = vrf.get('vrf') vrf_obj.internal_name = vrf.get('internal_name') vrf_obj.create(None) return vrf_obj
[docs]def update_vrf(vrf): """ Update vrf :param vrf: dict """ vrf_obj = get_vrf_by_id(vrf.get('id')) Vrf.update( None, vrf_obj.id, vrf=vrf.get('vrf'), internal_name=vrf.get('internal_name'), ) return vrf_obj
[docs]def delete_vrf(vrf_id): """ Delete vrf :param vrf_id: int """ Vrf.remove(vrf_id)