def handle_get(self, request, user, *args, **kwargs): """Treat requests GET to list all the Script. URL: script/all """ try: self.log.info("GET to list all the Script") # User permission if not has_perm(user, AdminPermission.SCRIPT_MANAGEMENT, AdminPermission.READ_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) id_script = kwargs.get('id_script') if id_script is not None: script = Roteiro.get_by_pk(int(id_script)) script = model_to_dict(script) return self.response(dumps_networkapi({'script': script})) script_list = [] for script in Roteiro.objects.all(): script_list.append(model_to_dict(script)) return self.response(dumps_networkapi({'script': script_list})) except UserNotAuthorizedError: return self.not_authorized() except RoteiroError: return self.response_error(1)
def handle_get(self, request, user, *args, **kwargs): """Treat requests GET to list all the Group l3. URL: groupl3/all """ try: self.log.info('GET to list all the Group l3') # User permission if not has_perm(user, AdminPermission.ENVIRONMENT_MANAGEMENT, AdminPermission.READ_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) groupl3_list = [] for group in GrupoL3.objects.all(): groupl3_list.append(model_to_dict(group)) return self.response(dumps_networkapi({'group_l3': groupl3_list})) except UserNotAuthorizedError: return self.not_authorized() except AmbienteError: return self.response_error(1)
def handle_get(self, request, user, *args, **kwargs): """Treat requests GET to get User Ldap by the username. URL: user/get/ldap/<user_name>/ """ try: self.log.info("Get User Ldap by the identifier") # User permission if not has_perm(user, AdminPermission.USER_ADMINISTRATION, AdminPermission.READ_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) user_name = kwargs.get('user_name') # Find User by Username to check if it exist usr = Usuario.get_by_ldap_user(user_name) user_map = dict() user_map['usuario'] = model_to_dict(usr) user_map['usuario']['grupos'] = user_map['usuario'][ 'grupos'] if user_map['usuario']['grupos'] is not None and len( user_map['usuario']['grupos']) > 0 else [None] return self.response(dumps_networkapi(user_map)) except InvalidValueError, e: return self.response_error(269, e.param, e.value)
def handle_delete(self, request, user, *args, **kwargs): """Treat DELETE requests to remove Group User. URL: ugroup/<id_ugroup>/ """ try: self.log.info('Remove Group User') # User permission if not has_perm(user, AdminPermission.USER_ADMINISTRATION, AdminPermission.WRITE_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) id_ugroup = kwargs.get('id_ugroup') # Valid Group User ID if not is_valid_int_greater_zero_param(id_ugroup): self.log.error( u'The id_ugroup parameter is not a valid value: %s.', id_ugroup) raise InvalidValueError(None, 'id_ugroup', id_ugroup) # Find Group User by ID to check if it exist ugroup = UGrupo.get_by_pk(id_ugroup) with distributedlock(LOCK_GROUP_USER % id_ugroup): ugroup.delete() return self.response(dumps_networkapi({})) except InvalidValueError, e: return self.response_error(269, e.param, e.value)
def handle_get(self, request, user, *args, **kwargs): """Treat requests GET to list all Equipment Type. URL: equipmenttype/all """ try: self.log.info("GET to list all Equipment Type") # User permission if not has_perm(user, AdminPermission.EQUIPMENT_MANAGEMENT, AdminPermission.READ_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) map_list = [] for equipment_type in TipoEquipamento.objects.all(): eq_tp = { 'id': equipment_type.id, 'nome': equipment_type.tipo_equipamento } map_list.append(eq_tp) return self.response(dumps_networkapi({'equipment_type': map_list})) except UserNotAuthorizedError: return self.not_authorized() except EquipamentoError: return self.response_error(1)
def handle_get(self, request, user, *args, **kwargs): """Treat requests GET to list all the user groups. URL: ugroup/all """ try: self.log.info("GET to list all the GroupUser") # User permission if not has_perm(user, AdminPermission.USER_ADMINISTRATION, AdminPermission.READ_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) ugroup_list = [] for ugrp in UGrupo.objects.all(): ugroup_list.append(model_to_dict(ugrp)) return self.response(dumps_networkapi({'user_group': ugroup_list})) except UserNotAuthorizedError: return self.not_authorized() except GrupoError: return self.response_error(1)
def handle_get(self, request, user, *args, **kwargs): """Treat requests GET to list all the Script Type. URL: scripttype/all """ try: self.log.info('GET to list all the Script Type') # User permission if not has_perm(user, AdminPermission.SCRIPT_MANAGEMENT, AdminPermission.READ_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) script_type_list = [] for script_type in TipoRoteiro.objects.all(): script_type_list.append(model_to_dict(script_type)) return self.response( dumps_networkapi({'script_type': script_type_list})) except UserNotAuthorizedError: return self.not_authorized() except RoteiroError: return self.response_error(1)
def handle_post(self, request, user, *args, **kwargs): """Treat requests POST to create the configuration file. URL: rack/gerar-arq-config/id_rack """ try: self.log.info('CONFIG') # User permission if not has_perm(user, AdminPermission.SCRIPT_MANAGEMENT, AdminPermission.WRITE_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) rack_id = kwargs.get('id_rack') rack = Rack() rack = rack.get_by_pk(rack_id) var = False # Chama o script para gerar os arquivos de configuracao var = gera_config(rack) rack.__dict__.update(id=rack_id, config=var) rack.save() success_map = dict() success_map['rack_conf'] = var map = dict() map['sucesso'] = success_map return self.response(dumps_networkapi(map)) except RackConfigError, e: return self.response_error(382, e.param, e.value)
def handle_get(self, request, user, *args, **kwargs): """Treat requests GET to get Group Equipment. URL: egroup/<id_egroup>/ """ try: self.log.info('Get Group Equipment by ID') id_egroup = kwargs.get('id_egroup') # User permission if not has_perm(user, AdminPermission.EQUIPMENT_GROUP_MANAGEMENT, AdminPermission.READ_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) # Valid Group Equipment ID if not is_valid_int_greater_zero_param(id_egroup): self.log.error( u'The id_egroup parameter is not a valid value: %s.', id_egroup) raise InvalidValueError(None, 'id_egroup', id_egroup) # Find Group Equipment by ID to check if it exist egroup = EGrupo.get_by_pk(id_egroup) egroup_map = dict() egroup_map['group_equipament'] = model_to_dict(egroup) return self.response(dumps_networkapi(egroup_map)) except InvalidValueError, e: return self.response_error(269, e.param, e.value)
def handle_get(self, request, user, *args, **kwargs): """Treat requests GET to list all the Division Dc. URL: divisiondc/all """ try: self.log.info("GET to list all the Division Dc") # User permission if not has_perm(user, AdminPermission.ENVIRONMENT_MANAGEMENT, AdminPermission.READ_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) division_dc_list = [] for division in DivisaoDc.objects.all(): division_dc_list.append(model_to_dict(division)) return self.response(dumps_networkapi({'division_dc': division_dc_list})) except UserNotAuthorizedError: return self.not_authorized() except AmbienteError: return self.response_error(1)
def handle_delete(self, request, user, *args, **kwargs): """Treat requests DELETE to remove Rule. URL: rule/delete/<id_rule>/ """ try: self.log.info('Delete rule from an environment') # User permission if not has_perm(user, AdminPermission.VIP_VALIDATION, AdminPermission.WRITE_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) id_rule = kwargs.get('id_rule') if not is_valid_int_greater_zero_param(id_rule): self.log.error( u'The id_rule parameter is not a valid value: %s.', id_rule) raise InvalidValueError(None, 'id_rule', id_rule) rule = Rule.objects.get(pk=id_rule) rule.delete() return self.response(dumps_networkapi({})) except InvalidValueError, e: return self.response_error(269, e.param, e.value)
def handle_get(self, request, user, *args, **kwargs): """Treat requests GET to list all the Brand. URL: brand/all """ try: self.log.info("GET to list all the Brand") # User permission if not has_perm(user, AdminPermission.BRAND_MANAGEMENT, AdminPermission.READ_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) brand_list = [] for brand in Marca.objects.all(): brand_list.append(model_to_dict(brand)) return self.response(dumps_networkapi({'brand': brand_list})) except UserNotAuthorizedError: return self.not_authorized() except EquipamentoError: return self.response_error(1)
def handle_get(self, request, user, *args, **kwargs): """Treat requests GET to get Group User. URL: ugroup/get/<id_ugroup>/ """ try: self.log.info("Get Group User by ID") id_ugroup = kwargs.get('id_ugroup') # User permission if not has_perm(user, AdminPermission.USER_ADMINISTRATION, AdminPermission.READ_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) # Valid Group User ID if not is_valid_int_greater_zero_param(id_ugroup): self.log.error( u'The id_ugroup parameter is not a valid value: %s.', id_ugroup) raise InvalidValueError(None, 'id_ugroup', id_ugroup) # Find Group User by ID to check if it exist ugroup = UGrupo.get_by_pk(id_ugroup) ugroup_map = dict() ugroup_map['user_group'] = model_to_dict(ugroup) return self.response(dumps_networkapi(ugroup_map)) except InvalidValueError, e: return self.response_error(269, e.param, e.value)
def handle_get(self, request, user, *args, **kwargs): """GET requests to list all TipoAcesso. URL: /tipoacesso/ """ try: if not has_perm(user, AdminPermission.ACCESS_TYPE_MANAGEMENT, AdminPermission.READ_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) # Efetua a consulta de todos os tipos de acesso map_list = [] for item in TipoAcesso.objects.all(): map_list.append(model_to_dict(item)) # Gera response (XML) com resultados return self.response(dumps_networkapi({'tipo_acesso': map_list})) except UserNotAuthorizedError: return self.not_authorized() except (TipoAcessoError, GrupoError): return self.response_error(1)
def handle_get(self, request, user, *args, **kwargs): """Treat requests GET to list all the Option VIP. URL: optionvip/all' """ try: self.log.info('GET to list all the Option VIP') # User permission if not has_perm(user, AdminPermission.OPTION_VIP, AdminPermission.READ_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) # Find All Option VIP option_vips = OptionVip.get_all() ovips = [] for ov in option_vips: ovips.append(model_to_dict(ov)) return self.response(dumps_networkapi({'option_vip': ovips})) except UserNotAuthorizedError: return self.not_authorized() except OptionVipError: return self.response_error(1)
def handle_get(self, request, user, *args, **kwargs): """Treat requests GET to list all the Administrative Permission. URL: aperms/all """ try: self.log.info('GET to list all the Administrative Permission') # User permission if not has_perm(user, AdminPermission.USER_ADMINISTRATION, AdminPermission.READ_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) perms_list = [] for perm in PermissaoAdministrativa.objects.all(): perms_list.append(model_to_dict(perm)) return self.response(dumps_networkapi({'perms': perms_list})) except UserNotAuthorizedError: return self.not_authorized() except GrupoError: return self.response_error(1)
def insert_ip_equipment(ip_id, equip_id, user): '''Insere o relacionamento entre o IP e o equipamento. @param ip_id: Identificador do IP. @param equip_id: Identificador do equipamento. @param user: Usuário autenticado. @return: O ip_equipamento criado. @raise IpError: Falha ao inserir. @raise EquipamentoNotFoundError: Equipamento não cadastrado. @raise IpNotFoundError: Ip não cadastrado. @raise IpEquipamentoDuplicatedError: IP já cadastrado para o equipamento. @raise EquipamentoError: Falha ao pesquisar o equipamento. @raise UserNotAuthorizedError: Usuário sem autorização para executar a operação. ''' if not has_perm(user, AdminPermission.IPS, AdminPermission.WRITE_OPERATION, None, equip_id, AdminPermission.EQUIP_WRITE_OPERATION): raise UserNotAuthorizedError( None, u'Usuário não tem permissão para executar a operação.') ip_equipment = IpEquipamento() ip_equipment.create(user, ip_id, equip_id) return ip_equipment
def handle_get(self, request, user, *args, **kwargs): try: self.log.info("Get rules in Environment") # User permission if not has_perm(user, AdminPermission.VIP_VALIDATION, AdminPermission.WRITE_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) id_env = kwargs.get('id_env') if not is_valid_int_greater_zero_param(id_env): self.log.error( u'The id_env parameter is not a valid value: %s.', id_env) raise InvalidValueError(None, 'id_env', id_env) Ambiente.objects.get(pk=id_env) rules = Rule.objects.filter(environment=id_env, vip=None) rule_list = [] for rule in rules: rule_list.append(model_to_dict(rule)) return self.response(dumps_networkapi({'rules': rule_list})) except InvalidValueError, e: self.log.error( u'Parameter %s is invalid. Value: %s.', e.param, e.value) return self.response_error(269, e.param, e.value)
def handle_get(self, request, user, *args, **kwargs): """Treat requests GET to list all the VIPs related to Environment VIP. URL: environmentvip/<id_environment_vip>/vip/all' """ try: self.log.info( 'GET to list all the VIPs related to Environment VIP') # User permission if not has_perm(user, AdminPermission.ENVIRONMENT_VIP, AdminPermission.READ_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) # Get data id_environment_vip = kwargs.get('id_environment_vip') # Valid Environment VIP ID if not is_valid_int_greater_zero_param(id_environment_vip): self.log.error( u'The id_environment_vip parameter is not a valid value: %s.', id_environment_vip) raise InvalidValueError(None, 'id_environment_vip', id_environment_vip) # Find Environment VIP by ID to check if it exist environment_vip = EnvironmentVip.get_by_pk(id_environment_vip) # Find Request VIP - IPv4 by ID Environment vips_ipv4 = RequisicaoVips.objects.filter( ip__networkipv4__ambient_vip__id=environment_vip.id) # Find Request VIP - IPv6 by ID Environment vips_ipv6 = RequisicaoVips.objects.filter( ipv6__networkipv6__ambient_vip__id=environment_vip.id) vips = {} for vips_ip in [vips_ipv4, vips_ipv6]: for vip in vips_ip: v = {} v = vip.variables_to_map() v['id'] = vip.id v['validado'] = vip.validado v['vip_criado'] = vip.vip_criado v['id_ip'] = vip.ip_id v['id_ipv6'] = vip.ipv6_id v['id_healthcheck_expect'] = vip.healthcheck_expect_id vips['vip_%s' % (vip.id)] = v return self.response(dumps_networkapi(vips)) except InvalidValueError, e: return self.response_error(269, e.param, e.value)
def save_or_update(self, request, user, update=False): try: # User permission if not has_perm(user, AdminPermission.VIP_VALIDATION, AdminPermission.WRITE_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) # Load XML data xml_map, attrs_map = loads(request.raw_post_data) # XML data format networkapi_map = xml_map.get('networkapi') if networkapi_map is None: return self.response_error( 3, u'There is no value to the networkapi tag of XML request.') map = networkapi_map.get('map') if map is None: return self.response_error( 3, u'There is no value to the map tag of XML request.') environment_id = map['id_env'] if not is_valid_int_greater_zero_param(environment_id): self.log.error( u'The environment_id parameter is not a valid value: %s.', environment_id) raise InvalidValueError(None, 'environment_id', environment_id) environment = Ambiente.get_by_pk(environment_id) if update: for block in environment.blockrules_set.all(): block.delete() else: if environment.blockrules_set.count() > 0: return self.response_error(357) if 'blocks' in map: blocks = map['blocks'] if type(map['blocks']) is list else [ map['blocks'], ] for order, content in enumerate(blocks): block = BlockRules() block.content = content block.order = order block.environment = environment block.save() return self.response(dumps_networkapi({})) except AmbienteNotFoundError, e: self.log.error('Environment not found') return self.response_error(112)
def handle_post(self, request, user, *args, **kwargs): """Handles POST requests to save a new Rule URL: rule/save/ """ try: self.log.info("Save rule to an environment") # User permission if not has_perm(user, AdminPermission.VIP_VALIDATION, AdminPermission.WRITE_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) # Load XML data xml_map, attrs_map = loads(request.raw_post_data) # XML data format networkapi_map = xml_map.get('networkapi') if networkapi_map is None: return self.response_error(3, u'There is no value to the networkapi tag of XML request.') rule_map = networkapi_map.get('map') if rule_map is None: return self.response_error(3, u'There is no value to the environment_vip tag of XML request.') # Get XML data id_env = rule_map['id_env'] name = rule_map['name'] contents = rule_map['contents'] if type( rule_map['contents']) is list else [rule_map['contents'], ] blocks_id = rule_map['blocks_id'] if type( rule_map['blocks_id']) is list else [rule_map['blocks_id'], ] if not is_valid_int_greater_zero_param(id_env): self.log.error( u'The id_env parameter is not a valid value: %s.', id_env) raise InvalidValueError(None, 'id_env', id_env) if not name or len(name) > 80: self.log.error( u'The name parameter is not a valid value: %s.', name) raise InvalidValueError(None, 'name', name) environment = Ambiente.get_by_pk(id_env) new_rule = Rule() new_rule.name = name new_rule.environment = environment new_rule.save() self.__save_rule_contents( contents, blocks_id, environment, new_rule, user) return self.response(dumps_networkapi({})) except AmbienteNotFoundError, e: self.log.error('Environment not found') return self.response_error(112)
def handle_delete(self, request, user, *args, **kwargs): """Treat requests PUT to delete Environment VIP. URL: environmentvip/<id_environment_vip>/ """ try: self.log.info('Delete Environment VIP') id_environment_vip = kwargs.get('id_environment_vip') # User permission if not has_perm(user, AdminPermission.ENVIRONMENT_VIP, AdminPermission.WRITE_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) # Valid Environment VIP ID if not is_valid_int_greater_zero_param(id_environment_vip): self.log.error( u'The id_environment_vip parameter is not a valid value: %s.', id_environment_vip) raise InvalidValueError(None, 'id_environment_vip', id_environment_vip) # Find Environment VIP by ID to check if it exist environment_vip = EnvironmentVip.get_by_pk(id_environment_vip) with distributedlock(LOCK_ENVIRONMENT_VIP % id_environment_vip): # Find networkIPv4 by Environment VIP to check if is greater # than zero if len( NetworkIPv4.objects.filter( ambient_vip=environment_vip.id)) > 0: return self.response_error(284) # Find networkIPv6 by Environment VIP to check if is greater # than zero if len( NetworkIPv6.objects.filter( ambient_vip=environment_vip.id)) > 0: return self.response_error(285) try: # Delete Environment Vip environment_vip.delete() except Exception, e: self.log.error(u'Failed to delete the environment vip.') raise EnvironmentVipError( e, u'Failed to delete the environment vip') return self.response(dumps_networkapi({})) except InvalidValueError, e: return self.response_error(269, e.param, e.value)
def handle_post(self, request, user, *args, **kwargs): """Treat POST requests to add new Access Type. URL: /tipoacesso/ """ try: if not has_perm(user, AdminPermission.ACCESS_TYPE_MANAGEMENT, AdminPermission.WRITE_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) xml_map, attrs_map = loads(request.raw_post_data) networkapi_map = xml_map.get('networkapi') if networkapi_map is None: return self.response_error( 3, u'There is no networkapi tag in request XML.') tipo_acesso_map = networkapi_map.get('tipo_acesso') if tipo_acesso_map is None: return self.response_error( 3, u'There is no tipo_acesso tag in request XML.') # Valid protocol protocol = tipo_acesso_map.get('protocolo') if not is_valid_string_minsize( protocol, 3) or not is_valid_string_maxsize( protocol, 45) or not is_valid_regex( protocol, r'^[- a-zA-Z0-9]+$'): self.log.error(u'Parameter protocol is invalid. Value: %s', protocol) raise InvalidValueError(None, 'protocol', protocol) access_type = TipoAcesso() access_type.protocolo = protocol try: TipoAcesso.objects.get(protocolo__iexact=access_type.protocolo) raise DuplicateProtocolError( None, u'Access Type with protocol %s already exists' % protocol) except TipoAcesso.DoesNotExist: pass try: # save access type access_type.save() except Exception, e: self.log.error(u'Failed to save TipoAcesso.') raise TipoAcessoError(e, u'Failed to save TipoAcesso.') return self.response( dumps_networkapi({'tipo_acesso': { 'id': access_type.id }}))
def handle_delete(self, request, user, *args, **kwargs): """Treat DELETE requests to dissociate User and Group. URL: usergroup/user/<id_user>/ugroup/<id_group>/dissociate/ """ try: self.log.info('Dissociate User and Group.') # User permission if not has_perm(user, AdminPermission.USER_ADMINISTRATION, AdminPermission.WRITE_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) id_user = kwargs.get('id_user') id_group = kwargs.get('id_group') # Valid ID User if not is_valid_int_greater_zero_param(id_user): self.log.error( u'The id_user parameter is not a valid value: %s.', id_user) raise InvalidValueError(None, 'id_user', id_user) # Valid ID Group if not is_valid_int_greater_zero_param(id_group): self.log.error( u'The id_group parameter is not a valid value: %s.', id_group) raise InvalidValueError(None, 'id_group', id_group) # Find User by ID to check if it exist Usuario.get_by_pk(id_user) # Find Group by ID to check if it exist UGrupo.get_by_pk(id_group) # Find UserGroup by ID to check if it exist user_group = UsuarioGrupo.get_by_user_group(id_user, id_group) with distributedlock(LOCK_USER_GROUP % (id_user, id_group)): try: # remove UserGroup user_group.delete() except Exception, e: self.log.error(u'Failed to remove the UserGroup.') raise GrupoError(e, u'Failed to remove the UserGroup.') return self.response(dumps_networkapi({})) except InvalidValueError, e: return self.response_error(269, e.param, e.value)
def handle_get(self, request, user, *args, **kwargs): """Treat requests GET to list all Equipment Script. URL: equipmentscript/all """ try: self.log.info('GET to list all Equipment Script') # User permission if not has_perm(user, AdminPermission.EQUIPMENT_MANAGEMENT, AdminPermission.READ_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) map_list = [] for equipment_script in EquipamentoRoteiro.search( user.grupos.all()): equip_map = dict() equip_map['id'] = equipment_script.equipamento.id equip_map['nome'] = equipment_script.equipamento.nome equip_map[ 'id_tipo_equipamento'] = equipment_script.equipamento.tipo_equipamento.id equip_map[ 'nome_tipo_equipamento'] = equipment_script.equipamento.tipo_equipamento.tipo_equipamento equip_map['id_modelo'] = equipment_script.equipamento.modelo.id equip_map[ 'nome_modelo'] = equipment_script.equipamento.modelo.nome equip_map[ 'id_marca'] = equipment_script.equipamento.modelo.marca.id equip_map[ 'nome_marca'] = equipment_script.equipamento.modelo.marca.nome script_map = dict() script_map['id'] = equipment_script.roteiro.id script_map['nome'] = equipment_script.roteiro.roteiro script_map['descricao'] = equipment_script.roteiro.descricao script_map[ 'id_tipo_roteiro'] = equipment_script.roteiro.tipo_roteiro.id script_map[ 'nome_tipo_roteiro'] = equipment_script.roteiro.tipo_roteiro.tipo script_map[ 'descricao_tipo_roteiro'] = equipment_script.roteiro.tipo_roteiro.descricao equip_script_map = dict() equip_script_map['equipamento'] = equip_map equip_script_map['roteiro'] = script_map if equip_script_map not in map_list: map_list.append(equip_script_map) return self.response( dumps_networkapi({'equipamento_roteiro': map_list})) except UserNotAuthorizedError: return self.not_authorized() except EquipamentoError: return self.response_error(1)
def handle_put(self, request, user, *args, **kwargs): """Treat requests PUT to change Environment VIP. URL: environmentvip/<id_environment_vip>/ """ try: self.log.info("Change Environment VIP") id_environment_vip = kwargs.get('id_environment_vip') # User permission if not has_perm(user, AdminPermission.ENVIRONMENT_VIP, AdminPermission.WRITE_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) # Load XML data xml_map, attrs_map = loads(request.raw_post_data) # XML data format networkapi_map = xml_map.get('networkapi') if networkapi_map is None: return self.response_error(3, u'There is no value to the networkapi tag of XML request.') environmentvip_map = networkapi_map.get('environment_vip') if environmentvip_map is None: return self.response_error(3, u'There is no value to the environment_vip tag of XML request.') # Valid Environment VIP ID if not is_valid_int_greater_zero_param(id_environment_vip): self.log.error( u'The id_environment_vip parameter is not a valid value: %s.', id_environment_vip) raise InvalidValueError( None, 'id_environment_vip', id_environment_vip) # Find Environment VIP by ID to check if it exist environment_vip = EnvironmentVip.get_by_pk(id_environment_vip) with distributedlock(LOCK_ENVIRONMENT_VIP % id_environment_vip): # Valid Environment Vip environment_vip.valid_environment_vip(environmentvip_map) try: # Update Environment Vip environment_vip.save() except Exception, e: self.log.error(u'Failed to update the environment vip.') raise EnvironmentVipError( e, u'Failed to update the environment vip') return self.response(dumps_networkapi({})) except InvalidValueError, e: return self.response_error(269, e.param, e.value)
def handle_get(self, request, user, *args, **kwargs): """Treat requests GET to list all the Environment by Environment Vip. URL: environment/environmentvip/<environment_vip_id>' """ try: self.log.info( "GET to list all the Environment by Environment Vip.") # User permission if not has_perm(user, AdminPermission.ENVIRONMENT_MANAGEMENT, AdminPermission.READ_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) environment_vip_id = kwargs.get('environment_vip_id') # Valid Environment VIP ID if not is_valid_int_greater_zero_param(environment_vip_id): self.log.error( u'The id_environment_vip parameter is not a valid value: %s.', environment_vip_id) raise InvalidValueError(None, 'environment_vip_id', environment_vip_id) # Find Environment VIP by ID to check if it exist environment_vip = EnvironmentVip.get_by_pk(environment_vip_id) environment_related_list = [] for env_env_vip in environment_vip.environmentenvironmentvip_set.all( ): environment_map = {} environment_map['environment_id'] = env_env_vip.environment.id environment_map[ 'environment_vip_id'] = env_env_vip.environment_vip.id environment_map[ 'environment'] = env_env_vip.environment.grupo_l3.nome environment_map[ 'ambiente_logico_name'] = env_env_vip.environment.ambiente_logico.nome environment_map[ 'divisao_dc_name'] = env_env_vip.environment.divisao_dc.nome environment_related_list.append(environment_map) return self.response( dumps_networkapi( {'environment_related_list': environment_related_list})) except UserNotAuthorizedError: return self.not_authorized() except InvalidValueError, e: return self.response_error(269, e.param, e.value)
def handle_get(self, request, user, *args, **kwargs): """Treat requests GET to list all traffic return of the Option VIP by Environment Vip. URL: environment-vip/get/trafficreturn/<id_evip> """ try: self.log.info( "GET to list all the Option VIP by Environment Vip - traffic return." ) # User permission if not has_perm(user, AdminPermission.OPTION_VIP, AdminPermission.READ_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) id_environment_vip = kwargs.get('id_evip') # Valid Environment VIP ID if not is_valid_int_greater_zero_param(id_environment_vip): self.log.error( u'The id_environment_vip parameter is not a valid value: %s.', id_environment_vip) raise InvalidValueError(None, 'id_environment_vip', id_environment_vip) # Find Environment VIP by ID to check if it exist environment_vip = EnvironmentVip.get_by_pk(id_environment_vip) #self.log.info(str(environment_vip)) ovips = OptionVip.get_all_trafficreturn(environment_vip.id) #self.log.info(str(ovips)) ovip_dict = dict() ovip_list = [] for ovip in ovips: ovip_dict['trafficreturn_opt'] = ovip.nome_opcao_txt ovip_list.append(ovip_dict) ovip_dict = dict() self.log.info(str(ovip_list)) return self.response( dumps_networkapi({'trafficreturn_opt': ovip_list})) except UserNotAuthorizedError: return self.not_authorized() except InvalidValueError, e: return self.response_error(269, e.param, e.value)
def handle_post(self, request, user, *args, **kwargs): """Treat requests POST to add Group l3. URL: groupl3/ """ try: self.log.info('Add Group l3') # User permission if not has_perm(user, AdminPermission.ENVIRONMENT_MANAGEMENT, AdminPermission.WRITE_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) # Load XML data xml_map, attrs_map = loads(request.raw_post_data) # XML data format networkapi_map = xml_map.get('networkapi') if networkapi_map is None: return self.response_error(3, u'There is no value to the networkapi tag of XML request.') group_l3_map = networkapi_map.get('group_l3') if group_l3_map is None: return self.response_error(3, u'There is no value to the group_l3 tag of XML request.') # Get XML data name = group_l3_map.get('name') try: GrupoL3.get_by_name(name) raise GrupoL3NameDuplicatedError( None, u'Já existe um grupo l3 com o valor name %s.' % name) except GroupL3NotFoundError: pass l3_group = GrupoL3() # set variables l3_group.nome = name try: # save Group l3 l3_group.save() except Exception, e: self.log.error(u'Failed to save the Group l3.') raise AmbienteError(e, u'Failed to save the Group l3.') l3_group_map = dict() l3_group_map['group_l3'] = model_to_dict( l3_group, exclude=['nome']) return self.response(dumps_networkapi(l3_group_map))
def handle_post(self, request, user, *args, **kwargs): """Treat requests POST to insert Environment VIP. URL: environmentvip/ """ try: self.log.info('Add Environment VIP') # User permission if not has_perm(user, AdminPermission.ENVIRONMENT_VIP, AdminPermission.WRITE_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) # Load XML data xml_map, attrs_map = loads(request.raw_post_data) # XML data format networkapi_map = xml_map.get('networkapi') if networkapi_map is None: return self.response_error( 3, u'There is no value to the networkapi tag of XML request.' ) environmentvip_map = networkapi_map.get('environment_vip') if environmentvip_map is None: return self.response_error( 3, u'There is no value to the environment_vip tag of XML request.' ) # New Environment Vip environment_vip = EnvironmentVip() # Valid Environment Vip environment_vip.valid_environment_vip(environmentvip_map) try: # Save Environment Vip environment_vip.save() except Exception, e: self.log.error(u'Failed to save the environment vip.') raise EnvironmentVipError( e, u'Failed to save the environment vip') environment_map = dict() environment_map['id'] = environment_vip.id return self.response( dumps_networkapi({'environment_vip': environment_map}))