本文整理汇总了Python中networkapi.ip.models.Ip.save_ipv4方法的典型用法代码示例。如果您正苦于以下问题:Python Ip.save_ipv4方法的具体用法?Python Ip.save_ipv4怎么用?Python Ip.save_ipv4使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类networkapi.ip.models.Ip
的用法示例。
在下文中一共展示了Ip.save_ipv4方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: inserir_equip
# 需要导入模块: from networkapi.ip.models import Ip [as 别名]
# 或者: from networkapi.ip.models.Ip import save_ipv4 [as 别名]
def inserir_equip(user, variablestochangecore, rede_id):
ip = Ip()
ip.descricao = None
ip.oct1, ip.oct2, ip.oct3, ip.oct4 = str(variablestochangecore["IPCORE"]).split('.')
equip = Equipamento.get_by_name(variablestochangecore["EQUIP_NAME"])
rede = NetworkIPv4.get_by_pk(rede_id)
ip.save_ipv4(equip.id, user, rede)
if ip.id is None:
raise RackAplError (None, None, "Erro ao inserir os equipamentos")
# Delete vlan's cache
destroy_cache_function([rede.vlan_id])
list_id_equip = []
list_id_equip.append(equip.id)
destroy_cache_function(list_id_equip, True)
return 0
示例2: handle_post
# 需要导入模块: from networkapi.ip.models import Ip [as 别名]
# 或者: from networkapi.ip.models.Ip import save_ipv4 [as 别名]
def handle_post(self, request, user, *args, **kwargs):
'''Handles GET requests get an IP4 available for vip_request by evip_id.
URL: ip/availableip6/vip/id_evip/
'''
self.log.info('Get an IP4 available for vip_request')
try:
# User permission
if not has_perm(user, AdminPermission.IPS, AdminPermission.WRITE_OPERATION):
self.log.error(
u'User does not have permission to perform the operation.')
return self.not_authorized()
# Load XML data
xml_map, attrs_map = loads(request.raw_post_data)
# XML data format
networkapi_map = xml_map.get('networkapi')
ip_map = networkapi_map.get('ip_map')
# Get XML data
id_evip = ip_map.get('id_evip')
name = ip_map.get('name')
if not is_valid_int_greater_zero_param(id_evip):
self.log.error(
u'Parameter id_evip is invalid. Value: %s.', id_evip)
raise InvalidValueError(None, 'id_evip', id_evip)
# Business Rules
evip = EnvironmentVip.get_by_pk(id_evip)
ipv4 = Ip()
len_network = len(evip.networkipv4_set.all())
raise_not_found_balanceamento = False
if (len_network <= 0):
raise NetworkNotInEvip(
None, 'Não há rede no ambiente vip fornecido')
cont_network = 0
cont_balanceador_not_found = 0
for net in evip.networkipv4_set.all():
balanceador_found_flag = False
cont_network = cont_network + 1
list_ips_equips = list()
try:
ip_available = ipv4.get_available_ip(net.id)
ip_new = Ip()
ip_available = ip_available.exploded
ip_available = ip_available.split(".")
ip_new.oct1 = ip_available[0]
ip_new.oct2 = ip_available[1]
ip_new.oct3 = ip_available[2]
ip_new.oct4 = ip_available[3]
ip_new.descricao = name
for env_equipment in net.vlan.ambiente.equipamentoambiente_set.all():
equipment = env_equipment.equipamento
if equipment.tipo_equipamento == TipoEquipamento.get_tipo_balanceador():
if equipment.id not in list_ips_equips:
list_ips_equips.append(equipment.id)
if ip_new.id is None:
ip_new.save_ipv4(equipment.id, user, net)
else:
new_ip_equip = IpEquipamento()
new_ip_equip.ip = ip_new
new_ip_equip.equipamento = equipment
new_ip_equip.save(user)
balanceador_found_flag = True
if not balanceador_found_flag:
cont_balanceador_not_found = cont_balanceador_not_found + \
1
else:
break
if cont_balanceador_not_found == len_network:
raise_not_found_balanceamento = True
raise IpNotAvailableError(None, "Não há ipv4 disponivel para as redes associdas com o Ambiente Vip: %s - %s - %s, pois não existe equipamentos do Tipo Balanceador nessas redes." % (
evip.finalidade_txt, evip.cliente_txt, evip.ambiente_p44_txt))
except (IpNotAvailableError, IpRangeAlreadyAssociation), e:
cont_balanceador_not_found = cont_balanceador_not_found + 1
if raise_not_found_balanceamento:
raise IpNotAvailableError(None, e.message)
elif len_network == cont_network:
raise IpNotAvailableError(None, "Não há ipv4 disponivel para as redes associdas com o Ambiente Vip: %s - %s - %s" % (
#.........这里部分代码省略.........
示例3: handle_post
# 需要导入模块: from networkapi.ip.models import Ip [as 别名]
# 或者: from networkapi.ip.models.Ip import save_ipv4 [as 别名]
#.........这里部分代码省略.........
ip.oct2 = ip4[1]
ip.oct3 = ip4[2]
ip.oct4 = ip4[3]
equip = Equipamento.get_by_pk(equip_id)
listaVlansDoEquip = []
for ipequip in equip.ipequipamento_set.all():
vlan = ipequip.ip.networkipv4.vlan
if vlan not in listaVlansDoEquip:
listaVlansDoEquip.append(vlan)
for ipequip in equip.ipv6equipament_set.all():
vlan = ipequip.ip.networkipv6.vlan
if vlan not in listaVlansDoEquip:
listaVlansDoEquip.append(vlan)
vlan_atual = net.vlan
vlan_aux = None
ambiente_aux = None
for vlan in listaVlansDoEquip:
if vlan.num_vlan == vlan_atual.num_vlan:
if vlan.id != vlan_atual.id:
# Filter case 3 - Vlans with same number cannot
# share equipments ##
flag_vlan_error = False
# Filter testing
if vlan.ambiente.filter is None or vlan_atual.ambiente.filter is None:
flag_vlan_error = True
else:
# Test both environment's filters
tp_equip_list_one = list()
for fet in FilterEquipType.objects.filter(filter=vlan_atual.ambiente.filter.id):
tp_equip_list_one.append(fet.equiptype)
tp_equip_list_two = list()
for fet in FilterEquipType.objects.filter(filter=vlan.ambiente.filter.id):
tp_equip_list_two.append(fet.equiptype)
if equip.tipo_equipamento not in tp_equip_list_one or equip.tipo_equipamento not in tp_equip_list_two:
flag_vlan_error = True
## Filter case 3 - end ##
if flag_vlan_error:
ambiente_aux = vlan.ambiente
vlan_aux = vlan
nome_ambiente = "%s - %s - %s" % (
vlan.ambiente.divisao_dc.nome, vlan.ambiente.ambiente_logico.nome, vlan.ambiente.grupo_l3.nome)
raise VlanNumberNotAvailableError(None,
'''O ip informado não pode ser cadastrado, pois o equipamento %s, faz parte do ambiente %s (id %s),
que possui a Vlan de id %s, que também possui o número %s, e não é permitido que vlans que compartilhem o mesmo ambiente
por meio de equipamentos, possuam o mesmo número, edite o número de uma das Vlans ou adicione um filtro no ambiente para efetuar o cadastro desse IP no Equipamento Informado.
''' % (equip.nome, nome_ambiente, ambiente_aux.id, vlan_aux.id, vlan_atual.num_vlan))
# Persist
ip.save_ipv4(equip_id, user, net)
list_ip = []
lequips = []
if ip.id is None:
ip = Ip.get_by_octs_and_net(
ip.oct1, ip.oct2, ip.oct3, ip.oct4, net.id)
equips = IpEquipamento.list_by_ip(ip.id)
ip_maps = dict()
ip_maps['id'] = ip.id
ip_maps['oct1'] = ip.oct1
ip_maps['oct2'] = ip.oct2
ip_maps['oct3'] = ip.oct3
ip_maps['oct4'] = ip.oct4
ip_maps['descricao'] = ip.descricao
list_id_equip = []
for equip in equips:
list_id_equip.append(equip.equipamento.id)
equip = Equipamento.get_by_pk(equip.equipamento.id)
lequips.append(model_to_dict(equip))
ip_maps['equipamento'] = lequips
list_ip.append(ip_maps)
network_map = dict()
network_map['ip'] = list_ip
# Delete vlan's cache
destroy_cache_function([net.vlan_id])
# Delete equipment's cache
destroy_cache_function(list_id_equip, True)
return self.response(dumps_networkapi(network_map))
except IpRangeAlreadyAssociation, e:
return self.response_error(347)