Source code for networkapiclient.GrupoVirtual

# -*- coding:utf-8 -*-

'''
Title: Infrastructure NetworkAPI
Author: globo.com / TQI
Copyright: ( c )  2009 globo.com todos os direitos reservados.
'''

from networkapiclient.GenericClient import GenericClient
from networkapiclient.EspecificacaoGrupoVirtual import EspecificacaoGrupoVirtual


[docs]class GrupoVirtual(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( GrupoVirtual, self).__init__( networkapi_url, user, password, user_ldap)
[docs] def provisionar(self, equipamentos, vips): """Realiza a inserção ou alteração de um grupo virtual para o sistema de Orquestração de VM. :param equipamentos: Lista de equipamentos gerada pelo método "add_equipamento" da classe "EspecificacaoGrupoVirtual". :param vips: Lista de VIPs gerada pelo método "add_vip" da classe "EspecificacaoGrupoVirtual". :return: Retorno da operação de inserir ou alterar um grupo virtual: :: {'equipamentos': {'equipamento': [{'id': < id>, 'nome': < nome>, 'ip': {'id': < id>, 'id_vlan': < id_vlan>, 'oct4': < oct4>, 'oct3': < oct3>, 'oct2': < oct2>, 'oct1': < oct1>, 'descricao': < descricao>}, 'vips': {'vip': [{'id': < id>, 'ip': {'id': < id>, 'id_vlan': < id_vlan>, 'oct4': < oct4>, 'oct3': < oct3>, 'oct2': < oct2>, 'oct1': < oct1>, 'descricao': < descricao>}}, ... demais vips ...]}}, ... demais equipamentos...]}, 'vips': {'vip': [{'id': < id>, 'ip': {'id': < id>, 'id_vlan': < id_vlan>, 'oct4': < oct4>, 'oct3': < oct3>, 'oct2': < oct2>, 'oct1': < oct1>, 'descricao': < descricao>}, 'requisicao_vip': {'id': < id>}}, ... demais vips...]}} {'equipamentos': {'equipamento': [{'id': < id>, 'nome': < nome>, 'ip': {'id': < id>, 'id_vlan': < id_vlan>, 'oct4': < oct4>, 'oct3': < oct3>, 'oct2': < oct2>, 'oct1': < oct1>, 'descricao': < descricao>}, 'vips': {'vip': [{'id': < id>, 'ip': {'id': < id>, 'id_vlan': < id_vlan>, 'oct4': < oct4>, 'oct3': < oct3>, 'oct2': < oct2>, 'oct1': < oct1>, 'descricao': < descricao>}}, ... demais vips ...]}}, ... demais equipamentos...]}, 'vips': {'vip': [{'id': < id>, 'requisicao_vip': {'id': < id>}}, ... demais vips...]}} :raise InvalidParameterError: Algum dado obrigatório não foi informado nas listas ou possui um valor inválido. :raise XMLError: Falha na networkapi ao ler o XML de requisição ou gerar o XML de resposta. :raise DataBaseError: Falha na networkapi ao acessar o banco de dados. :raise VlanNaoExisteError: VLAN não cadastrada. :raise EquipamentoNaoExisteError: Equipamento não cadastrado. :raise IPNaoDisponivelError: Não existe IP disponível para a VLAN informada. :raise TipoEquipamentoNaoExisteError: Tipo de equipamento não cadastrado. :raise ModeloEquipamentoNaoExisteError: Modelo do equipamento não cadastrado. :raise GrupoEquipamentoNaoExisteError: Grupo de equipamentos não cadastrado. :raise EquipamentoError: Equipamento com o nome duplicado ou Equipamento do grupo “Equipamentos Orquestração” somente poderá ser criado com tipo igual a “Servidor Virtual". :raise IpNaoExisteError: IP não cadastrado. :raise IpError: IP já está associado ao equipamento. :raise VipNaoExisteError: Requisição de VIP não cadastrada. :raise HealthCheckExpectNaoExisteError: Healthcheck_expect não cadastrado. """ code, map = self.submit( { 'equipamentos': { 'equipamento': equipamentos}, 'vips': { 'vip': vips}}, 'POST', 'grupovirtual/') return self.response(code, map, force_list=['equipamento', 'vip'])
[docs] def remover_provisionamento(self, equipamentos, vips): """Remove o provisionamento de um grupo virtual para o sistema de Orquestração VM. :param equipamentos: Lista de equipamentos gerada pelo método "add_equipamento_remove" da classe "EspecificacaoGrupoVirtual". :param vips: Lista de VIPs gerada pelo método "add_vip_remove" da classe "EspecificacaoGrupoVirtual". :return: None :raise InvalidParameterError: Algum dado obrigatório não foi informado nas listas ou possui um valor inválido. :raise IpNaoExisteError: IP não cadastrado. :raise EquipamentoNaoExisteError: Equipamento não cadastrado. :raise IpError: IP não está associado ao equipamento. :raise DataBaseError: Falha na networkapi ao acessar o banco de dados. :raise XMLError: Falha na networkapi ao ler o XML de requisição ou gerar o XML de resposta. """ code, map = self.submit({'equipamentos': {'equipamento': equipamentos}, 'vips': { 'vip': vips}}, 'DELETE', 'grupovirtual/') return self.response(code, map)