Source code for networkapiclient.EquipamentoAcesso

# -*- 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.utils import get_list_map, is_valid_int_param
from networkapiclient.exception import InvalidParameterError


[docs]class EquipamentoAcesso(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( EquipamentoAcesso, self).__init__( networkapi_url, user, password, user_ldap)
[docs] def get_access(self, id_access): """Get Equipment Access by id. :return: Dictionary with following: :: {'equipamento_acesso': {'id_equipamento': < id_equipamento >, 'fqdn': < fqdn >, 'user': < user >, 'pass': < pass >, 'id_tipo_acesso': < id_tipo_acesso >, 'enable_pass': < enable_pass >}} """ if not is_valid_int_param(id_access): raise InvalidParameterError(u'Equipment Access ID is invalid.') url = 'equipamentoacesso/id/' + str(id_access) + '/' code, xml = self.submit(None, 'GET', url) return self.response(code, xml)
[docs] def listar(self): """List Equipment Access relationships. Return only the relationships from equipments the user have write permissions in one of the equipment groups :return: Dictionary with the following: :: {'equipamento_acesso': [{'id_equipamento': < id_equipamento >, 'fqdn': < fqdn >, 'user': < user >, 'pass': < pass >, 'id_tipo_acesso': < id_tipo_acesso >, 'enable_pass': < enable_pass >, 'protocolo_tipo_acesso': < protocol_tipo_acesso >}, ... other equipment_access ....]} :raise DataBaseError: Networkapi failed to access the database. :raise XMLError: Networkapi failed to generate the XML response. """ code, map = self.submit(None, 'GET', 'equipamentoacesso/') key = 'equipamento_acesso' return get_list_map(self.response(code, map, [key]), key)
[docs] def list_by_equip(self, name): """ List all equipment access by equipment name :return: Dictionary with the following structure: :: {‘equipamento_acesso’:[ {'id': <id_equiptos_access>, 'equipamento': <id_equip>, 'fqdn': <fqdn>, 'user': <user>, 'password': <pass> 'tipo_acesso': <id_tipo_acesso>, 'enable_pass': <enable_pass> }]} :raise InvalidValueError: Invalid parameter. :raise EquipamentoNotFoundError: Equipment name not found in database. :raise DataBaseError: Networkapi failed to access the database. :raise XMLError: Networkapi failed to generate the XML response. """ equip_access_map = dict() equip_access_map['name'] = name code, xml = self.submit( {"equipamento_acesso": equip_access_map}, 'POST', 'equipamentoacesso/name/') key = 'equipamento_acesso' return get_list_map(self.response(code, xml, [key]), key)
[docs] def inserir( self, id_equipamento, fqdn, user, password, id_tipo_acesso, enable_pass): """Add new relationship between equipment and access type and returns its id. :param id_equipamento: Equipment identifier. :param fqdn: Equipment FQDN. :param user: User. :param password: Password. :param id_tipo_acesso: Access Type identifier. :param enable_pass: Enable access. :return: Dictionary with the following: {‘equipamento_acesso’: {‘id’: < id >}} :raise EquipamentoNaoExisteError: Equipment doesn't exist. :raise TipoAcessoNaoExisteError: Access Type doesn't exist. :raise EquipamentoAcessoError: Equipment and access type already associated. :raise InvalidParameterError: The parameters equipment id, fqdn, user, password or access type id are invalid or none. :raise DataBaseError: Networkapi failed to access the database. :raise XMLError: Networkapi failed to generate the XML response. """ equipamento_acesso_map = dict() equipamento_acesso_map['id_equipamento'] = id_equipamento equipamento_acesso_map['fqdn'] = fqdn equipamento_acesso_map['user'] = user equipamento_acesso_map['pass'] = password equipamento_acesso_map['id_tipo_acesso'] = id_tipo_acesso equipamento_acesso_map['enable_pass'] = enable_pass code, xml = self.submit( {'equipamento_acesso': equipamento_acesso_map}, 'POST', 'equipamentoacesso/') return self.response(code, xml)
[docs] def edit_by_id( self, id_equip_acesso, id_tipo_acesso, fqdn, user, password, enable_pass): """Edit access type, fqdn, user, password and enable_pass of the relationship of equipment and access type. :param id_tipo_acesso: Access type identifier. :param id_equip_acesso: Equipment identifier. :param fqdn: Equipment FQDN. :param user: User. :param password: Password. :param enable_pass: Enable access. :return: None :raise InvalidParameterError: The parameters fqdn, user, password or access type id are invalid or none. :raise EquipamentoAcessoNaoExisteError: Equipment access type relationship doesn't exist. :raise DataBaseError: Networkapi failed to access the database. :raise XMLError: Networkapi failed to generate the XML response. """ if not is_valid_int_param(id_tipo_acesso): raise InvalidParameterError( u'Access type id is invalid or not informed.') equipamento_acesso_map = dict() equipamento_acesso_map['fqdn'] = fqdn equipamento_acesso_map['user'] = user equipamento_acesso_map['pass'] = password equipamento_acesso_map['enable_pass'] = enable_pass equipamento_acesso_map['id_tipo_acesso'] = id_tipo_acesso equipamento_acesso_map['id_equip_acesso'] = id_equip_acesso url = 'equipamentoacesso/edit/' code, xml = self.submit( {'equipamento_acesso': equipamento_acesso_map}, 'POST', url) return self.response(code, xml)
[docs] def remover(self, id_tipo_acesso, id_equipamento): """Removes relationship between equipment and access type. :param id_equipamento: Equipment identifier. :param id_tipo_acesso: Access type identifier. :return: None :raise EquipamentoNaoExisteError: Equipment doesn't exist. :raise EquipamentoAcessoNaoExisteError: Relationship between equipment and access type doesn't exist. :raise InvalidParameterError: Equipment and/or access type id is/are 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_tipo_acesso): raise InvalidParameterError(u'Access type id is invalid.') if not is_valid_int_param(id_equipamento): raise InvalidParameterError(u'Equipment id is invalid.') url = 'equipamentoacesso/' + \ str(id_equipamento) + '/' + str(id_tipo_acesso) + '/' code, xml = self.submit(None, 'DELETE', url) return self.response(code, xml)