Source code for networkapiclient.EspecificacaoGrupoVirtual

# -*- coding:utf-8 -*-
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


[docs]class EspecificacaoGrupoVirtual(object): """Classe auxiliar para construção dos parâmetros das chamadas para provisionar ou remover grupo virtual.""" def __init__(self): '''Contrutor da classe. Inicializa todas as listas com o valor []. ''' self.lista_equipamentos = [] self.lista_vip = [] self.lista_equipamentos_remove = [] self.lista_vip_remove = []
[docs] def add_equipamento( self, id_tipo_equipamento, id_modelo, prefixo, id_grupo, id_vlan, descricao_vlan): """Adiciona um equipamento na lista de equipamentos para operação de inserir/alterar um grupo virtual. :param id_tipo_equipamento: Identificador do tipo de equipamento. :param id_modelo: Identificador do modelo do equipamento. :param prefixo: Prefixo do nome do equipamento. :param id_grupo: Identificador do grupo do equipamento. :param id_vlan: Identificador da VLAN para criar um IP para o equipamento. :param descricao_vlan: Descrição do IP que será criado. :return: None """ equipamento_map = dict() equipamento_map['id_tipo_equipamento'] = id_tipo_equipamento equipamento_map['id_modelo'] = id_modelo equipamento_map['prefixo'] = prefixo equipamento_map['id_grupo'] = id_grupo equipamento_map['ip'] = { 'id_vlan': id_vlan, 'descricao': descricao_vlan} self.lista_equipamentos.append(equipamento_map)
[docs] def add_equipamento_remove(self, id, id_ip, ids_ips_vips): '''Adiciona um equipamento na lista de equipamentos para operação de remover um grupo virtual. :param id: Identificador do equipamento. :param id_ip: Identificador do IP do equipamento. :param ids_ips_vips: Lista com os identificadores de IPs criados para cada VIP e associados ao equipamento. :return: None ''' equipament_map = dict() equipament_map['id'] = id equipament_map['id_ip'] = id_ip equipament_map['vips'] = {'id_ip_vip': ids_ips_vips} self.lista_equipamentos_remove.append(equipament_map)
[docs] def add_vip( self, id, real_name_sufixo, id_vlan, descricao_vlan, id_vlan_real, descricao_vlan_real, balanceadores, id_healthcheck_expect, finalidade, cliente, ambiente, cache, metodo_bal, persistencia, healthcheck_type, healthcheck, timeout, host, maxcon, dsr, bal_ativo, transbordos, portas, real_maps, id_requisicao_vip, areanegocio='Orquestra', nome_servico='Orquestra', l7_filter=None, reals_prioritys=None, reals_weights=None): """Adiciona um VIP na lista de VIPs para operação de inserir/alterar um grupo virtual. Os parâmetros abaixo somente são necessários para a operação de alteração: - 'real_maps': Deverá conter os reals atualmente criados para a requisição de VIP. - 'id_requisicao_vip': O identificador da requisição que deverá ser alterada. Os parâmetros abaixo somente são necessários para a operação de inserção: - 'id_vlan': Identificador da VLAN para criar o IP do VIP. - 'descricao_vlan': Descrição do IP do VIP. - balanceadores: Lista com os identificadores dos balanceadores que serão associados ao IP do VIP. :param id: Identificador do VIP utilizado pelo sistema de orquestração. :param real_name_sufixo: Sufixo utilizado para criar os reals_names dos equipamentos na requisição de VIP. :param id_vlan: Identificador da VLAN para criar um IP para o VIP. :param descricao_vlan: Descrição do IP que será criado para o VIP. :param id_vlan_real: Identificador da VLAN para criar os IPs dos equipamentos no VIP. :param descricao_vlan_real: Descrição dos IPs que serão criados para os equipamentos no VIP. :param balanceadores: Lista com os identificadores dos balanceadores que serão associados ao IP do VIP. :param id_healthcheck_expect: Identificador do healthcheck_expect para criar a requisição de VIP. :param finalidade: Finalidade da requisição de VIP. :param cliente: Cliente da requisição de VIP. :param ambiente: Ambiente da requisição de VIP. :param cache: Cache da requisição de VIP. :param metodo_bal: Método de balanceamento da requisição de VIP. :param persistencia: Persistência da requisição de VIP. :param healthcheck_type: Healthcheck_type da requisição de VIP. :param healthcheck: Healthcheck da requisição de VIP. :param timeout: Timeout da requisição de VIP. :param host: Host da requisição de VIP. :param maxcon: Máximo número de conexão da requisição de VIP. :param dsr: DSR da requisição de VIP. :param bal_ativo: Balanceador ativo da requisição de VIP. :param transbordos: Lista com os IPs dos transbordos da requisição de VIP. :param portas: Lista com as portas da requisição de VIP. :param real_maps: Lista dos mapas com os dados dos reals da requisição de VIP. Cada mapa deverá ter a estrutura: {'real_name':< real_name>, 'real_ip':< real_ip>} :param id_requisicao_vip: Identificador da requisição de VIP para operação de alterar um grupo virtual. :param areanegocio: Área de negócio para a requisição de VIP (é utilizado 'Orquestra' caso seja None). :param nome_servico: Nome do serviço para a requisição de VIP (é utilizado 'Orquestra' caso seja None). :param l7_filter: Filtro L7 para a requisição de VIP. :param reals_prioritys: Lista dos dados de prioridade dos reals da requisição de VIP (lista de zeros, caso seja None). :param reals_weights: Lista dos dados de pesos dos reals da requisição de VIP (lista de zeros, caso seja None). :return: None """ vip_map = dict() vip_map['id'] = id # Causa erro na hora de validar os nomes de equipamentos (real servers) #vip_map['real_name_sufixo'] = real_name_sufixo vip_map['ip_real'] = { 'id_vlan': id_vlan_real, 'descricao': descricao_vlan_real} vip_map['ip'] = {'id_vlan': id_vlan, 'descricao': descricao_vlan} vip_map['balanceadores'] = {'id_equipamento': balanceadores} vip_map['id_healthcheck_expect'] = id_healthcheck_expect vip_map['finalidade'] = finalidade vip_map['cliente'] = cliente vip_map['ambiente'] = ambiente vip_map['cache'] = cache vip_map['metodo_bal'] = metodo_bal vip_map['persistencia'] = persistencia vip_map['healthcheck_type'] = healthcheck_type vip_map['healthcheck'] = healthcheck vip_map['timeout'] = timeout vip_map['host'] = host vip_map['maxcon'] = maxcon vip_map['dsr'] = dsr # Nao sao mais utilizados (bal_ativo e transbordos) #vip_map['bal_ativo'] = bal_ativo #vip_map['transbordos'] = {'transbordo': transbordos} vip_map['portas_servicos'] = {'porta': portas} vip_map['reals'] = {'real': real_maps} vip_map['areanegocio'] = areanegocio vip_map['nome_servico'] = nome_servico vip_map['l7_filter'] = l7_filter if reals_prioritys is not None: vip_map['reals_prioritys'] = {'reals_priority': reals_prioritys} else: vip_map['reals_prioritys'] = None if metodo_bal.upper() == 'WEIGHTED': if reals_weights is not None: vip_map['reals_weights'] = {'reals_weight': reals_weights} else: vip_map['reals_weights'] = None if id_requisicao_vip is not None: vip_map['requisicao_vip'] = {'id': id_requisicao_vip} self.lista_vip.append(vip_map)
[docs] def add_vip_remove(self, id_ip, id_equipamentos): '''Adiciona um VIP na lista de VIPs para operação de remover um grupo virtual. :param id_ip: Identificador do IP criado para o VIP. :param id_equipamentos: Lista com os identificadores dos balanceadores associados ao IP do VIP. :return: None ''' vip_map = dict() vip_map['id_ip'] = id_ip vip_map['balanceadores'] = {'id_equipamento': id_equipamentos} self.lista_vip_remove.append(vip_map)
[docs] def add_vip_incremento(self, id): """Adiciona um vip à especificação do grupo virtual. :param id: Identificador de referencia do VIP. """ vip_map = dict() vip_map['id'] = id self.lista_vip.append(vip_map)
[docs] def get_equipamentos(self): """Obtem a lista de Equipamentos.""" return self.lista_equipamentos
[docs] def get_vips(self): """Obtem a lista de VIPs.""" return self.lista_vip
[docs] def get_equipamentos_remove(self): """Obtem a lista de equipamentos a serem removidos.""" return self.lista_equipamentos_remove
[docs] def get_vips_remove(self): """Obtem a lista de VIPs a serem removidos.""" return self.lista_vip_remove