Source code for networkapi.api_route_map.v4.facade

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

from django.core.exceptions import FieldError

from networkapi.api_rest.exceptions import NetworkAPIException
from networkapi.api_rest.exceptions import ObjectDoesNotExistException
from networkapi.api_rest.exceptions import ValidationAPIException
from networkapi.api_route_map.models import RouteMap
from networkapi.api_route_map.models import RouteMapEntry
from networkapi.api_route_map.v4.exceptions import RouteMapAssociatedToPeerGroupException
from networkapi.api_route_map.v4.exceptions import RouteMapAssociatedToRouteMapEntryException
from networkapi.api_route_map.v4.exceptions import RouteMapDoesNotExistException
from networkapi.api_route_map.v4.exceptions import RouteMapEntryDoesNotExistException
from networkapi.api_route_map.v4.exceptions import \
    RouteMapEntryDuplicatedException
from networkapi.api_route_map.v4.exceptions import RouteMapEntryError
from networkapi.api_route_map.v4.exceptions import RouteMapEntryNotFoundError
from networkapi.api_route_map.v4.exceptions import RouteMapEntryWithDeployedRouteMapException
from networkapi.api_route_map.v4.exceptions import RouteMapError
from networkapi.api_route_map.v4.exceptions import RouteMapIsDeployedException
from networkapi.api_route_map.v4.exceptions import RouteMapNotFoundError
from networkapi.infrastructure.datatable import build_query_to_datatable_v3

log = logging.getLogger(__name__)





[docs]def get_route_map_by_id(obj_id): """Return an RouteMap by id. Args: obj_id: Id of RouteMap """ try: obj = RouteMap.get_by_pk(id=obj_id) except RouteMapNotFoundError as e: raise RouteMapDoesNotExistException(str(e)) return obj
[docs]def get_route_map_by_ids(obj_ids): """Return RouteMap list by ids. Args: obj_ids: List of Ids of RouteMap's. """ ids = list() for obj_id in obj_ids: try: obj = get_route_map_by_id(obj_id).id ids.append(obj) except RouteMapDoesNotExistException as e: raise ObjectDoesNotExistException(str(e)) except Exception as e: raise NetworkAPIException(str(e)) return RouteMap.objects.filter(id__in=ids)
[docs]def update_route_map(obj): """Update RouteMap.""" try: obj_to_update = get_route_map_by_id(obj.get('id')) obj_to_update.update_v4(obj) except RouteMapError as e: raise ValidationAPIException(str(e)) except RouteMapIsDeployedException as e: raise ValidationAPIException(str(e)) except ValidationAPIException as e: raise ValidationAPIException(str(e)) except RouteMapDoesNotExistException as e: raise ObjectDoesNotExistException(str(e)) except Exception as e: raise NetworkAPIException(str(e)) return obj_to_update
[docs]def create_route_map(obj): """Create RouteMap.""" try: obj_to_create = RouteMap() obj_to_create.create_v4(obj) except RouteMapError as e: raise ValidationAPIException(str(e)) except ValidationAPIException as e: raise ValidationAPIException(str(e)) except Exception as e: raise NetworkAPIException(str(e)) return obj_to_create
[docs]def delete_route_map(obj_ids): """Delete RouteMap.""" for obj_id in obj_ids: try: obj_to_delete = get_route_map_by_id(obj_id) obj_to_delete.delete_v4() except RouteMapDoesNotExistException as e: raise ObjectDoesNotExistException(str(e)) except RouteMapIsDeployedException as e: raise ValidationAPIException(str(e)) except RouteMapAssociatedToRouteMapEntryException as e: raise ValidationAPIException(str(e)) except RouteMapAssociatedToPeerGroupException as e: raise ValidationAPIException(str(e)) except RouteMapError as e: raise NetworkAPIException(str(e)) except Exception as e: raise NetworkAPIException(str(e))
[docs]def get_route_map_entry_by_search(search=dict()): """Return a list of RouteMapEntry's by dict.""" try: objects = RouteMapEntry.objects.filter() object_map = build_query_to_datatable_v3(objects, search) except FieldError as e: raise ValidationAPIException(str(e)) except Exception as e: raise NetworkAPIException(str(e)) else: return object_map
[docs]def get_route_map_entry_by_id(obj_id): """Return an RouteMapEntry by id. Args: obj_id: Id of RouteMapEntry """ try: obj = RouteMapEntry.get_by_pk(id=obj_id) except RouteMapEntryNotFoundError as e: raise RouteMapEntryDoesNotExistException(str(e)) return obj
[docs]def get_route_map_entry_by_ids(obj_ids): """Return RouteMapEntry list by ids. Args: obj_ids: List of Ids of RouteMapEntry's. """ ids = list() for obj_id in obj_ids: try: obj = get_route_map_entry_by_id(obj_id).id ids.append(obj) except RouteMapEntryDoesNotExistException as e: raise ObjectDoesNotExistException(str(e)) except Exception as e: raise NetworkAPIException(str(e)) return RouteMapEntry.objects.filter(id__in=ids)
[docs]def update_route_map_entry(obj): """Update RouteMapEntry.""" try: obj_to_update = get_route_map_entry_by_id(obj.get('id')) obj_to_update.update_v4(obj) except RouteMapEntryError as e: raise ValidationAPIException(str(e)) except RouteMapEntryDuplicatedException as e: raise ValidationAPIException(str(e)) except RouteMapEntryWithDeployedRouteMapException as e: raise ValidationAPIException(str(e)) except ValidationAPIException as e: raise ValidationAPIException(str(e)) except RouteMapEntryDoesNotExistException as e: raise ObjectDoesNotExistException(str(e)) except Exception as e: raise NetworkAPIException(str(e)) return obj_to_update
[docs]def create_route_map_entry(obj): """Create RouteMapEntry.""" try: obj_to_create = RouteMapEntry() obj_to_create.create_v4(obj) except RouteMapEntryError as e: raise ValidationAPIException(str(e)) except RouteMapEntryDuplicatedException as e: raise ValidationAPIException(str(e)) except RouteMapEntryWithDeployedRouteMapException as e: raise ValidationAPIException(str(e)) except ValidationAPIException as e: raise ValidationAPIException(str(e)) except Exception as e: raise NetworkAPIException(str(e)) return obj_to_create
[docs]def delete_route_map_entry(obj_ids): """Delete RouteMapEntry.""" for obj_id in obj_ids: try: obj_to_delete = get_route_map_entry_by_id(obj_id) obj_to_delete.delete_v4() except RouteMapEntryDoesNotExistException as e: raise ObjectDoesNotExistException(str(e)) except RouteMapEntryWithDeployedRouteMapException as e: raise ValidationAPIException(str(e)) except RouteMapEntryError as e: raise NetworkAPIException(str(e)) except Exception as e: raise NetworkAPIException(str(e))