def undeploy(self, pool_id, user_id): msg = { 'object_type': 'pool', 'action': 'undeploy', 'object_id': pool_id } self.update_state( state='PROGRESS', meta=msg ) pool_obj = facade.get_pool_by_id(pool_id) pool_serializer = serializers.PoolV3Serializer(pool_obj) locks_list = create_lock([pool_id], LOCK_POOL) user = Usuario.objects.get(id=user_id) try: facade_pool_deploy.delete_real_pool([pool_serializer.data], user) except Exception, exception: msg['message'] = 'Pool {} was not undeployed.'.format(pool_obj) msg['reason'] = str(exception) raise Exception(msg)
def undeploy(self, vip_id, user_id): msg = { 'object_type': 'vip-request', 'action': 'redeploy', 'object_id': vip_id } self.update_state( state='PROGRESS', meta=msg ) vip_obj = facade.get_vip_request_by_id(vip_id) vip_serializer = VipRequestV3Serializer( vip_obj, include=('ports__identifier',)) locks_list = create_lock([vip_id], LOCK_VIP) user = Usuario.objects.get(id=user_id) try: facade.delete_real_vip_request([vip_serializer.data], user) except Exception, exception: msg['message'] = 'Vip Request {} was not undeployed.'.format(vip_obj) msg['reason'] = str(exception) raise Exception(msg)
def redeploy(self, pool_dict, user_id): pool_id = pool_dict.get('id') msg = { 'object_type': 'pool', 'action': 'redeploy', 'object_id': pool_id } self.update_state( state='PROGRESS', meta=msg ) pool_obj = facade.get_pool_by_id(pool_id) locks_list = create_lock([pool_id], LOCK_POOL) user = Usuario.objects.get(id=user_id) try: facade_pool_deploy.update_real_pool([pool_dict], user) except Exception, exception: msg['message'] = 'Pool {} was not redeployed.'.format(pool_obj) msg['reason'] = str(exception) raise Exception(msg)
def redeploy(self, vip_dict, user_id): vip_id = vip_dict.get('id') msg = { 'object_type': 'vip-request', 'action': 'redeploy', 'object_id': vip_id } self.update_state( state='PROGRESS', meta=msg ) locks_list = create_lock([vip_id], LOCK_VIP) user = Usuario.objects.get(id=user_id) try: vip_obj = facade.get_vip_request_by_id(vip_id) facade.update_real_vip_request([vip_dict], user) except Exception, exception: msg['message'] = 'Vip Request {} was not redeployed.'.format(vip_obj) msg['reason'] = str(exception) raise Exception(msg)
def delete_vlan(vlan): """Delete vlans by ids.""" locks_list = create_lock([vlan], LOCK_VLAN) try: vlan_obj = get_vlan_by_id(vlan) vlan_obj.delete_v3() except ObjectDoesNotExistException, e: raise ObjectDoesNotExistException(str(e))
def delete_equipment(equipments): """Delete equipment by ids""" locks_list = create_lock(equipments, LOCK_EQUIPMENT) try: for equipment in equipments: equipment_obj = get_equipment_by_id(equipment) equipment_obj.delete_v4() except ObjectDoesNotExistException, e: raise ObjectDoesNotExistException(e.detail)
def delete_equipment(equipments): """Delete equipment by ids""" locks_list = create_lock(equipments, LOCK_EQUIPMENT) try: for equipment in equipments: equipment_obj = get_equipment_by_id(equipment) equipment_obj.delete_v3() except ObjectDoesNotExistException, e: raise ObjectDoesNotExistException(e.detail)
def delete(self, request, *args, **kwargs): """ Deletes list of vlans """ obj_ids = kwargs['obj_ids'].split(';') locks_list = create_lock(obj_ids, LOCK_VLAN) try: facade.delete_vlan(obj_ids) except Exception, exception: log.error(exception) raise api_exceptions.NetworkAPIException(exception)
def delete(self, request, *args, **kwargs): """ Deletes list of equipments """ obj_ids = kwargs['obj_id'].split(';') locks_list = create_lock(obj_ids, LOCK_EQUIPMENT) try: facade.delete_equipment(obj_ids) except Exception, exception: log.error(exception) raise api_exceptions.NetworkAPIException(exception)
def delete(self, request, *args, **kwargs): """ Deletes list of vip request """ vip_request_ids = kwargs['vip_request_ids'].split(';') locks_list = create_lock(vip_request_ids, LOCK_VIP) keepip = request.GET.get('keepip') or '0' try: facade.delete_vip_request(vip_request_ids, keepip) except Exception, exception: log.error(exception) raise api_exceptions.NetworkAPIException(exception)
def update_equipment(equipments, user): """Update equipment.""" locks_list = create_lock(equipments, LOCK_EQUIPMENT) response = list() try: for equipment in equipments: equipment_obj = get_equipment_by_id(equipment.get('id')) equipment_obj.update_v3(equipment) response.append({'id': equipment_obj.id}) except ObjectDoesNotExistException, e: raise ObjectDoesNotExistException(e.detail)
def delete(self, request, *args, **kwargs): """Deletes list of interfaces.""" obj_ids = kwargs.get('obj_ids').split(';') locks_list = create_lock(obj_ids, LOCK_INTERFACE) for obj in obj_ids: try: facade.delete_interface(obj) finally: destroy_lock(locks_list) return Response({}, status=status.HTTP_200_OK)
def update_equipment(equipments, user): """Update equipment.""" locks_list = create_lock(equipments, LOCK_EQUIPMENT) response = list() try: for equipment in equipments: equipment_obj = get_equipment_by_id(equipment.get('id')) equipment_obj.update_v4(equipment) response.append({'id': equipment_obj.id}) except ObjectDoesNotExistException, e: raise ObjectDoesNotExistException(e.detail)
def delete_equipment(equipments, force=None, user=None): """Delete equipment by ids""" locks_list = create_lock(equipments, LOCK_EQUIPMENT) try: for equipment in equipments: equipment_obj = get_equipment_by_id(equipment) if force is not None: equipment_obj.delete_equipment_relationship(user) equipment_obj.delete_v3() except ObjectDoesNotExistException, e: raise ObjectDoesNotExistException(e.detail)
def delete(self, request, *args, **kwargs): """ Deletes list of vip request """ vip_request_ids = kwargs['obj_ids'].split(';') locks_list = create_lock(vip_request_ids, LOCK_VIP) keepip = request.GET.get('keepip', '0') try: facade.delete_vip_request( vip_request_ids, keepip) except Exception, exception: log.error(exception) raise api_exceptions.NetworkAPIException(exception)
def patch(self, request, *args, **kwargs): """ Updates list of vip request in equipments """ vips = request.DATA json_validate(SPECS.get('vip_request_patch')).validate(vips) locks_list = create_lock(vips.get('vips'), LOCK_VIP) try: response = facade.patch_real_vip_request( vips['vips'], request.user) except Exception, exception: log.error(exception) raise api_exceptions.NetworkAPIException(exception)
def delete(self, request, *args, **kwargs): """Remove link between interfaces.""" interface_a = kwargs.get('interface_a') interface_b = kwargs.get('interface_b') locks_list = create_lock([interface_a], LOCK_INTERFACE) try: facade.remove_link([interface_a, interface_b]) finally: destroy_lock(locks_list) return Response({}, status=status.HTTP_200_OK)
def get(self, request, *args, **kwargs): """ Returns a list of pools with updated states of members """ pool_ids = kwargs.get('obj_ids').split(';') checkstatus = request.GET.get('checkstatus') or '0' response = dict() server_pools = models_vips.ServerPool.objects.filter( id__in=pool_ids) if checkstatus == '1': serializer_server_pool = serializers.PoolV3Serializer( server_pools, many=True ) try: locks_list = create_lock( serializer_server_pool.data, LOCK_POOL) mbr_state = facade_pool_deploy.get_poolmember_state( serializer_server_pool.data) for server_pool in server_pools: if mbr_state.get(server_pool.id): query_pools = models_vips.ServerPoolMember.objects.filter( server_pool=server_pool) for pm in query_pools: member_checked_status = mbr_state[ server_pool.id][pm.id] pm.member_status = member_checked_status pm.last_status_update = datetime.now() pm.save(request.user) # get pools updated server_pools = models_vips.ServerPool.objects.filter( id__in=pool_ids) except Exception, exception: log.error(exception) raise rest_exceptions.NetworkAPIException(exception) finally:
def put(self, request, *args, **kwargs): """ Updates pools by list in equipments """ server_pools = request.DATA json_validate(SPECS.get('pool_put')).validate(server_pools) verify_ports(server_pools) locks_list = create_lock(server_pools.get('server_pools'), LOCK_POOL) try: response = facade_pool_deploy.update_real_pool( server_pools.get('server_pools'), request.user) except Exception, exception: log.error(exception) raise rest_exceptions.NetworkAPIException(exception)
def put(self, request, *args, **kwargs): """ Updates pools by list in equipments """ server_pools = request.DATA json_validate(SPECS.get('pool_put')).validate(server_pools) verify_ports(server_pools) locks_list = create_lock(server_pools.get('server_pools'), LOCK_POOL) try: response = facade_pool_deploy.update_real_pool( server_pools, request.user) except Exception, exception: log.error(exception) raise rest_exceptions.NetworkAPIException(exception)
def post(self, request, *args, **kwargs): """ Creates pools by list in equipments """ pool_ids = kwargs['pool_ids'].split(';') pools = facade.get_pool_by_ids(pool_ids) pool_serializer = serializers.PoolV3Serializer(pools, many=True) locks_list = create_lock(pool_serializer.data, LOCK_POOL) try: response = facade_pool_deploy.create_real_pool( pool_serializer.data, request.user) except Exception, exception: log.error(exception) raise rest_exceptions.NetworkAPIException(exception)
def post(self, request, *args, **kwargs): """ Creates pools by list in equipments """ pool_ids = kwargs['obj_ids'].split(';') pools = facade.get_pool_by_ids(pool_ids) pool_serializer = serializers.PoolV3Serializer(pools, many=True) locks_list = create_lock(pool_serializer.data, LOCK_POOL) try: response = facade_pool_deploy.create_real_pool( pool_serializer.data, request.user) except Exception, exception: log.error(exception) raise rest_exceptions.NetworkAPIException(exception)
def get(self, request, *args, **kwargs): """ Returns a list of pools with updated states of members """ pool_ids = kwargs.get('obj_ids').split(';') checkstatus = request.GET.get('checkstatus') or '0' response = dict() server_pools = models_vips.ServerPool.objects.filter( id__in=pool_ids) if checkstatus == '1': serializer_server_pool = serializers.PoolV3Serializer( server_pools, many=True ) try: locks_list = create_lock(serializer_server_pool.data, LOCK_POOL) mbr_state = facade_pool_deploy.get_poolmember_state( serializer_server_pool.data) for server_pool in server_pools: if mbr_state.get(server_pool.id): query_pools = models_vips.ServerPoolMember.objects.filter( server_pool=server_pool) for pm in query_pools: member_checked_status = mbr_state[ server_pool.id][pm.id] pm.member_status = member_checked_status pm.last_status_update = datetime.now() pm.save(request.user) # get pools updated server_pools = models_vips.ServerPool.objects.filter( id__in=pool_ids) except Exception, exception: log.error(exception) raise rest_exceptions.NetworkAPIException(exception) finally:
def put(self, request, *args, **kwargs): """ Updates list of vip request """ data = request.DATA json_validate(SPECS.get('vip_request_put')).validate(data) locks_list = create_lock(data['vips'], LOCK_VIP) try: verify_ports_vip(data) for vip in data['vips']: facade.update_vip_request(vip, request.user) except Exception, exception: log.error(exception) raise api_exceptions.NetworkAPIException(exception)
def put(self, request, *args, **kwargs): """Updates list of interfaces.""" response = list() data = request.DATA json_validate(SPECS.get('interface_put')).validate(data) locks_list = create_lock(data['interfaces'], LOCK_INTERFACE) for interface in data['interfaces']: try: interface = facade.update_interface(interface) response.append({'id': interface.id}) finally: destroy_lock(locks_list) return Response(response, status=status.HTTP_200_OK)
def delete(self, request, *args, **kwargs): """ Deletes pools by list in equipments :url /api/v3/pool/deploy/<pool_ids>/ :param pool_ids=<pool_ids> """ pool_ids = kwargs['obj_ids'].split(';') pools = facade.get_pool_by_ids(pool_ids) pool_serializer = serializers.PoolV3Serializer(pools, many=True) locks_list = create_lock(pool_serializer.data, LOCK_POOL) try: response = facade_pool_deploy.delete_real_pool( pool_serializer.data, request.user) except Exception, exception: log.error(exception) raise rest_exceptions.NetworkAPIException(exception)
def put(self, request, *args, **kwargs): """ Updates list of equipments """ data = request.DATA json_validate(SPECS.get('equipment_put')).validate(data) locks_list = create_lock(data['equipments'], LOCK_EQUIPMENT) try: response = list() for equipment in data['equipments']: eqpt = facade.update_equipment(equipment, request.user) response.append({'id': eqpt.id}) except Exception, exception: log.error(exception) raise api_exceptions.NetworkAPIException(exception)
def put(self, request, *args, **kwargs): """ Updates list of vlans """ data = request.DATA json_validate(SPECS.get('vlan_put')).validate(data) locks_list = create_lock(data['vlans'], LOCK_VLAN) response = list() try: for vlan in data['vlans']: vl = facade.update_vlan(vlan, request.user) response.append({'id': vl.id}) except Exception, exception: log.error(exception) raise api_exceptions.NetworkAPIException(exception)
def delete(self, request, *args, **kwargs): """ Remove the relationship between an interface and environments. :param kwargs: obj_ids :return: 200 OK """ obj_ids = kwargs.get('obj_ids').split(';') locks_list = create_lock(obj_ids, LOCK_INTERFACE) for obj in obj_ids: try: facade.delete_interface_environments(obj) finally: destroy_lock(locks_list) return Response({}, status=status.HTTP_200_OK)
def post(self, request, *args, **kwargs): """ Creates list of vip request in equipments :url /api/v3/vip-request/deploy/<vip_request_ids>/ :param vip_request_ids=<vip_request_ids> """ vip_request_ids = kwargs['obj_ids'].split(';') vips = facade.get_vip_request_by_ids(vip_request_ids) vip_serializer = VipRequestV3Serializer( vips, many=True, include=('ports__identifier',)) locks_list = create_lock(vip_serializer.data, LOCK_VIP) try: response = facade.create_real_vip_request( vip_serializer.data, request.user) except Exception, exception: log.error(exception) raise api_exceptions.NetworkAPIException(exception)
def delete(self, request, *args, **kwargs): """ Deletes pools by list in equipments :url /api/v3/pool/deploy/<pool_ids>/ :param pool_ids=<pool_ids> """ pool_ids = kwargs['obj_ids'].split(';') cleanup = request.GET.get('cleanup') or '0' pools = facade.get_pool_by_ids(pool_ids) pool_serializer = serializers.PoolV3Serializer(pools, many=True) locks_list = create_lock(pool_serializer.data, LOCK_POOL) try: response = facade_pool_deploy.delete_real_pool( pool_serializer.data, request.user, cleanup) except Exception, exception: log.error(exception) raise rest_exceptions.NetworkAPIException(exception)
def redeploy(self, pool_dict, user_id): pool_id = pool_dict.get('id') msg = {'object_type': 'pool', 'action': 'redeploy', 'object_id': pool_id} self.update_state(state='PROGRESS', meta=msg) pool_obj = facade.get_pool_by_id(pool_id) locks_list = create_lock([pool_id], LOCK_POOL) user = Usuario.objects.get(id=user_id) try: facade_pool_deploy.update_real_pool([pool_dict], user) except Exception, exception: msg['message'] = 'Pool {} was not redeployed.'.format(pool_obj) msg['reason'] = str(exception) raise Exception(msg)
def undeploy(self, pool_id, user_id): msg = {'object_type': 'pool', 'action': 'undeploy', 'object_id': pool_id} self.update_state(state='PROGRESS', meta=msg) pool_obj = facade.get_pool_by_id(pool_id) pool_serializer = serializers.PoolV3Serializer(pool_obj) locks_list = create_lock([pool_id], LOCK_POOL) user = Usuario.objects.get(id=user_id) try: facade_pool_deploy.delete_real_pool([pool_serializer.data], user) except Exception, exception: msg['message'] = 'Pool {} was not undeployed.'.format(pool_obj) msg['reason'] = str(exception) raise Exception(msg)
def delete(self, request, *args, **kwargs): """ Deletes list of neighbor in equipments :url /api/v4/neighbor/deploy/<neighbor_ids>/ :param neighbor_ids=<neighbor_ids> """ neighbor_ids = kwargs['obj_ids'].split(';') neighbors = facade.get_neighbor_by_ids(neighbor_ids) neighbor_serializer = serializers.NeighborV4Serializer(neighbors, many=True) locks_list = create_lock(neighbor_serializer.data, LOCK_NEIGHBOR) try: response = facade.undeploy_neighbors(neighbor_serializer.data) except NeighborNotCreated as e: raise ValidationAPIException(str(e)) except Exception, exception: log.error(exception) raise NetworkAPIException(exception)
def redeploy(self, vip_dict, user_id): vip_id = vip_dict.get('id') msg = { 'object_type': 'vip-request', 'action': 'redeploy', 'object_id': vip_id } self.update_state(state='PROGRESS', meta=msg) locks_list = create_lock([vip_id], LOCK_VIP) user = Usuario.objects.get(id=user_id) try: vip_obj = facade.get_vip_request_by_id(vip_id) facade.update_real_vip_request([vip_dict], user) except Exception, exception: msg['message'] = 'Vip Request {} was not redeployed.'.format(vip_obj) msg['reason'] = str(exception) raise Exception(msg)
def undeploy(self, vip_id, user_id): msg = { 'object_type': 'vip-request', 'action': 'redeploy', 'object_id': vip_id } self.update_state(state='PROGRESS', meta=msg) vip_obj = facade.get_vip_request_by_id(vip_id) vip_serializer = VipRequestV3Serializer(vip_obj, include=('ports__identifier', )) locks_list = create_lock([vip_id], LOCK_VIP) user = Usuario.objects.get(id=user_id) try: facade.delete_real_vip_request([vip_serializer.data], user) except Exception, exception: msg['message'] = 'Vip Request {} was not undeployed.'.format(vip_obj) msg['reason'] = str(exception) raise Exception(msg)