Source code for networkapiclient.OptionVIP

# -*- 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.

from networkapiclient.GenericClient import GenericClient
from networkapiclient.exception import InvalidParameterError
from networkapiclient.utils import is_valid_int_param


[docs]class OptionVIP(GenericClient): def __init__(self, networkapi_url, user, password, user_ldap=None): """Class constructor receives parameters to connect to the networkAPI. :param networkapi_url: URL to access the network API. :param user: User for authentication. :param password: Password for authentication. """ super( OptionVIP, self).__init__( networkapi_url, user, password, user_ldap)
[docs] def add(self, tipo_opcao, nome_opcao_txt): """Inserts a new Option VIP and returns its identifier. :param tipo_opcao: Type. String with a maximum of 50 characters and respect [a-zA-Z\_-] :param nome_opcao_txt: Name Option. String with a maximum of 50 characters and respect [a-zA-Z\_-] :return: Following dictionary: :: {'option_vip': {'id': < id >}} :raise InvalidParameterError: The value of tipo_opcao or nome_opcao_txt is invalid. :raise DataBaseError: Networkapi failed to access the database. :raise XMLError: Networkapi failed to generate the XML response. """ optionvip_map = dict() optionvip_map['tipo_opcao'] = tipo_opcao optionvip_map['nome_opcao_txt'] = nome_opcao_txt code, xml = self.submit( {'option_vip': optionvip_map}, 'POST', 'optionvip/') return self.response(code, xml)
[docs] def alter(self, id_option_vip, tipo_opcao, nome_opcao_txt): """Change Option VIP from by the identifier. :param id_option_vip: Identifier of the Option VIP. Integer value and greater than zero. :param tipo_opcao: Type. String with a maximum of 50 characters and respect [a-zA-Z\_-] :param nome_opcao_txt: Name Option. String with a maximum of 50 characters and respect [a-zA-Z\_-] :return: None :raise InvalidParameterError: Option VIP identifier is null and invalid. :raise InvalidParameterError: The value of tipo_opcao or nome_opcao_txt is invalid. :raise OptionVipNotFoundError: Option VIP not registered. :raise DataBaseError: Networkapi failed to access the database. :raise XMLError: Networkapi failed to generate the XML response. """ if not is_valid_int_param(id_option_vip): raise InvalidParameterError( u'The identifier of Option VIP is invalid or was not informed.') optionvip_map = dict() optionvip_map['tipo_opcao'] = tipo_opcao optionvip_map['nome_opcao_txt'] = nome_opcao_txt url = 'optionvip/' + str(id_option_vip) + '/' code, xml = self.submit({'option_vip': optionvip_map}, 'PUT', url) return self.response(code, xml)
[docs] def remove(self, id_option_vip): """Remove Option VIP from by the identifier. :param id_option_vip: Identifier of the Option VIP. Integer value and greater than zero. :return: None :raise InvalidParameterError: Option VIP identifier is null and invalid. :raise OptionVipNotFoundError: Option VIP not registered. :raise OptionVipError: Option VIP associated with environment vip. :raise DataBaseError: Networkapi failed to access the database. :raise XMLError: Networkapi failed to generate the XML response. """ if not is_valid_int_param(id_option_vip): raise InvalidParameterError( u'The identifier of Option VIP is invalid or was not informed.') url = 'optionvip/' + str(id_option_vip) + '/' code, xml = self.submit(None, 'DELETE', url) return self.response(code, xml)
[docs] def search(self, id_option_vip): """Search Option VIP from by the identifier. :param id_option_vip: Identifier of the Option VIP. Integer value and greater than zero. :return: Following dictionary: :: {‘option_vip’: {‘id’: < id_option_vip >, ‘tipo_opcao’: < tipo_opcao >, ‘nome_opcao_txt’: < nome_opcao_txt >} } :raise InvalidParameterError: Option VIP identifier is null and invalid. :raise OptionVipNotFoundError: Option VIP not registered. :raise DataBaseError: Networkapi failed to access the database. :raise XMLError: Networkapi failed to generate the XML response. """ if not is_valid_int_param(id_option_vip): raise InvalidParameterError( u'The identifier of Option VIP is invalid or was not informed.') url = 'optionvip/' + str(id_option_vip) + '/' code, xml = self.submit(None, 'GET', url) return self.response(code, xml)
[docs] def get_all(self): """Get all Option VIP. :return: Dictionary with the following structure: :: {‘option_vip’: [{‘id’: < id >, ‘tipo_opcao’: < tipo_opcao >, ‘nome_opcao_txt’: < nome_opcao_txt >}, ... other option vips ...] } :raise OptionVipNotFoundError: Option VIP not registered. :raise DataBaseError: Can't connect to networkapi database. :raise XMLError: Failed to generate the XML response. """ url = 'optionvip/all/' code, xml = self.submit(None, 'GET', url) return self.response(code, xml)
[docs] def get_option_vip(self, id_environment_vip): """Get all Option VIP by Environment Vip. :return: Dictionary with the following structure: :: {‘option_vip’: [{‘id’: < id >, ‘tipo_opcao’: < tipo_opcao >, ‘nome_opcao_txt’: < nome_opcao_txt >}, ... too option vips ...] } :raise EnvironmentVipNotFoundError: Environment VIP not registered. :raise DataBaseError: Can't connect to networkapi database. :raise XMLError: Failed to generate the XML response. """ url = 'optionvip/environmentvip/' + str(id_environment_vip) + '/' code, xml = self.submit(None, 'GET', url) return self.response(code, xml, ['option_vip'])
[docs] def associate(self, id_option_vip, id_environment_vip): """Create a relationship of OptionVip with EnvironmentVip. :param id_option_vip: Identifier of the Option VIP. Integer value and greater than zero. :param id_environment_vip: Identifier of the Environment VIP. Integer value and greater than zero. :return: Following dictionary :: {'opcoesvip_ambiente_xref': {'id': < id_opcoesvip_ambiente_xref >} } :raise InvalidParameterError: Option VIP/Environment VIP identifier is null and/or invalid. :raise OptionVipNotFoundError: Option VIP not registered. :raise EnvironmentVipNotFoundError: Environment VIP not registered. :raise OptionVipError: Option vip is already associated with the environment vip. :raise UserNotAuthorizedError: User does not have authorization to make this association. :raise DataBaseError: Networkapi failed to access the database. :raise XMLError: Networkapi failed to generate the XML response. """ if not is_valid_int_param(id_option_vip): raise InvalidParameterError( u'The identifier of Option VIP is invalid or was not informed.') if not is_valid_int_param(id_environment_vip): raise InvalidParameterError( u'The identifier of Environment VIP is invalid or was not informed.') url = 'optionvip/' + \ str(id_option_vip) + '/environmentvip/' + str(id_environment_vip) + '/' code, xml = self.submit(None, 'PUT', url) return self.response(code, xml)
[docs] def disassociate(self, id_option_vip, id_environment_vip): """Remove a relationship of OptionVip with EnvironmentVip. :param id_option_vip: Identifier of the Option VIP. Integer value and greater than zero. :param id_environment_vip: Identifier of the Environment VIP. Integer value and greater than zero. :return: Nothing :raise InvalidParameterError: Option VIP/Environment VIP identifier is null and/or invalid. :raise OptionVipNotFoundError: Option VIP not registered. :raise EnvironmentVipNotFoundError: Environment VIP not registered. :raise OptionVipError: Option vip is not associated with the environment vip :raise UserNotAuthorizedError: User does not have authorization to make this association. :raise DataBaseError: Networkapi failed to access the database. :raise XMLError: Networkapi failed to generate the XML response. """ if not is_valid_int_param(id_option_vip): raise InvalidParameterError( u'The identifier of Option VIP is invalid or was not informed.') if not is_valid_int_param(id_environment_vip): raise InvalidParameterError( u'The identifier of Environment VIP is invalid or was not informed.') url = 'optionvip/' + \ str(id_option_vip) + '/environmentvip/' + str(id_environment_vip) + '/' code, xml = self.submit(None, 'DELETE', url) return self.response(code, xml)
[docs] def buscar_timeout_opcvip(self, id_ambiente_vip): """Buscar nome_opcao_txt das Opcoes VIp quando tipo_opcao = 'Timeout' pelo environmentvip_id :return: Dictionary with the following structure: :: {‘timeout_opt’: ‘timeout_opt’: <'nome_opcao_txt'>} :raise InvalidParameterError: Environment VIP identifier is null and invalid. :raise EnvironmentVipNotFoundError: Environment VIP not registered. :raise InvalidParameterError: finalidade_txt and cliente_txt is null and invalid. :raise DataBaseError: Networkapi failed to access the database. :raise XMLError: Networkapi failed to generate the XML response. """ if not is_valid_int_param(id_ambiente_vip): raise InvalidParameterError( u'The identifier of environment-vip is invalid or was not informed.') url = 'environment-vip/get/timeout/' + str(id_ambiente_vip) + '/' code, xml = self.submit(None, 'GET', url) return self.response(code, xml)
[docs] def buscar_grupo_cache_opcvip(self, id_ambiente_vip): """Search nome_opcao_txt of Option VIP when tipo_opcao = 'Grupo de Caches' ​​by environmentvip_id :return: Dictionary with the following structure: :: {‘grupocache_opt’: ‘grupocache_opt’: <'nome_opcao_txt'>} :raise EnvironmentVipNotFoundError: Ambiente VIP não encontrado :raise OptionVipError: Falha na requisição. :raise EnvironmentVipError: Falha na requisição. :raise InvalidParameterError: O identificador da requisição de VIP é inválido ou nulo. :raise ScriptError: Falha ao executar o script. :raise DataBaseError: Falha na networkapi ao acessar o banco de dados. :raise XMLError: Falha na networkapi ao gerar o XML de resposta. """ if not is_valid_int_param(id_ambiente_vip): raise InvalidParameterError( u'The identifier of environment-vip is invalid or was not informed.') url = 'environment-vip/get/grupo-cache/' + str(id_ambiente_vip) + '/' code, xml = self.submit(None, 'GET', url) return self.response(code, xml)
[docs] def buscar_balanceamento_opcvip(self, id_ambiente_vip): """Search nome_opcao_txt of Option VIP when tipo_opcao = 'Balanceamento' ​​by environmentvip_id :return: Dictionary with the following structure: :: {‘balanceamento_opt’: ‘balanceamento_opt’: <'nome_opcao_txt'>} :raise InvalidParameterError: Environment VIP identifier is null and invalid. :raise EnvironmentVipNotFoundError: Environment VIP not registered. :raise InvalidParameterError: finalidade_txt and cliente_txt is null and invalid. :raise DataBaseError: Networkapi failed to access the database. :raise XMLError: Networkapi failed to generate the XML response. """ if not is_valid_int_param(id_ambiente_vip): raise InvalidParameterError( u'The identifier of environment-vip is invalid or was not informed.') url = 'environment-vip/get/balanceamento/' + str(id_ambiente_vip) + '/' code, xml = self.submit(None, 'GET', url) return self.response(code, xml)
[docs] def buscar_persistencia_opcvip(self, id_ambiente_vip): """Search nome_opcao_txt of Option VIP when tipo_opcao = 'Persistencia' ​​by environmentvip_id :return: Dictionary with the following structure: :: {‘persistencia_opt’: ‘persistencia_opt’: <'nome_opcao_txt'>} :raise InvalidParameterError: Environment VIP identifier is null and invalid. :raise EnvironmentVipNotFoundError: Environment VIP not registered. :raise InvalidParameterError: finalidade_txt and cliente_txt is null and invalid. :raise DataBaseError: Networkapi failed to access the database. :raise XMLError: Networkapi failed to generate the XML response. """ if not is_valid_int_param(id_ambiente_vip): raise InvalidParameterError( u'The identifier of environment-vip is invalid or was not informed.') url = 'environment-vip/get/persistencia/' + str(id_ambiente_vip) + '/' code, xml = self.submit(None, 'GET', url) return self.response(code, xml)
[docs] def buscar_rules(self, id_ambiente_vip, id_vip=''): """Search rules ​by environmentvip_id :return: Dictionary with the following structure: :: {'name_rule_opt': [{'name_rule_opt': <name>, 'id': <id>}, ...]} :raise InvalidParameterError: Environment VIP identifier is null and invalid. :raise EnvironmentVipNotFoundError: Environment VIP not registered. :raise InvalidParameterError: finalidade_txt and cliente_txt is null and invalid. :raise DataBaseError: Networkapi failed to access the database. :raise XMLError: Networkapi failed to generate the XML response. """ url = 'environment-vip/get/rules/' + \ str(id_ambiente_vip) + '/' + str(id_vip) code, xml = self.submit(None, 'GET', url) return self.response(code, xml)
[docs] def buscar_healthchecks(self, id_ambiente_vip): """Search healthcheck ​by environmentvip_id :return: Dictionary with the following structure: :: {'healthcheck_opt': [{'name': <name>, 'id': <id>},...]} :raise InvalidParameterError: Environment VIP identifier is null and invalid. :raise EnvironmentVipNotFoundError: Environment VIP not registered. :raise InvalidParameterError: id_ambiente_vip is null and invalid. :raise DataBaseError: Networkapi failed to access the database. :raise XMLError: Networkapi failed to generate the XML response. """ url = 'environment-vip/get/healthcheck/' + str(id_ambiente_vip) code, xml = self.submit(None, 'GET', url) return self.response(code, xml, ['healthcheck_opt'])
[docs] def buscar_trafficreturn_opcvip(self, id_ambiente_vip): """Search nome_opcao_txt of Option VIP when tipo_opcao = 'Persistencia' ​​by environmentvip_id :return: Dictionary with the following structure: :: {‘persistencia_opt’: ‘persistencia_opt’: <'nome_opcao_txt'>} :raise InvalidParameterError: Environment VIP identifier is null and invalid. :raise EnvironmentVipNotFoundError: Environment VIP not registered. :raise InvalidParameterError: finalidade_txt and cliente_txt is null and invalid. :raise DataBaseError: Networkapi failed to access the database. :raise XMLError: Networkapi failed to generate the XML response. """ if not is_valid_int_param(id_ambiente_vip): raise InvalidParameterError( u'The identifier of environment-vip is invalid or was not informed.') url = 'environment-vip/get/trafficreturn/' + str(id_ambiente_vip) + '/' code, xml = self.submit(None, 'GET', url) return self.response(code, xml)
[docs] def buscar_idtrafficreturn_opcvip(self, nome_opcao_txt): """Search id of Option VIP when tipo_opcao = 'Retorno de trafego' ​​ :return: Dictionary with the following structure: :: {‘trafficreturn_opt’: ‘trafficreturn_opt’: <'id'>} :raise InvalidParameterError: Environment VIP identifier is null and invalid. :raise EnvironmentVipNotFoundError: Environment VIP not registered. :raise InvalidParameterError: finalidade_txt and cliente_txt is null and invalid. :raise DataBaseError: Networkapi failed to access the database. :raise XMLError: Networkapi failed to generate the XML response. """ trafficreturn_map = dict() trafficreturn_map['trafficreturn'] = nome_opcao_txt url = 'optionvip/trafficreturn/search/' code, xml = self.submit({'trafficreturn_opt':trafficreturn_map }, 'POST', url) return self.response(code, xml)