def test_alter_valid(self): mock = self.mock_valid_alter() response = self.client_autenticado().postXML( self.URL_ALTER, {self.XML_KEY: mock}) valid_response(response) tpa = EquipamentoAcesso.get_by_pk(self.ID_ALTER_VALID) self.valid_attr(mock, model_to_dict(tpa))
def handle_get(self, request, user, *args, **kwargs): """Handles GET requests to list all equip access by access identifier. URLs: equipamentoacesso/id/<id_acesso>/ """ try: # Commons Validations # 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.') return self.not_authorized() # Business Validations # Valid id access id_access = kwargs.get('id_acesso') if not is_valid_int_greater_zero_param(id_access): self.log.error(u'Parameter id_acesso is invalid. Value: %s.', id_access) raise InvalidValueError(None, 'id_acesso', id_access) # Business Rules access = EquipamentoAcesso.get_by_pk(id_access) equip_access_map = dict() equip_access_map['equipamento_acesso'] = model_to_dict(access) # Return XML return self.response(dumps_networkapi(equip_access_map)) except InvalidValueError, e: return self.response_error(269, e.param, e.value)
def handle_get(self, request, user, *args, **kwargs): """Handles GET requests to list all equip access by access identifier. URLs: equipamentoacesso/id/<id_acesso>/ """ try: # Commons Validations # 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.') return self.not_authorized() # Business Validations # Valid id access id_access = kwargs.get('id_acesso') if not is_valid_int_greater_zero_param(id_access): self.log.error( u'Parameter id_acesso is invalid. Value: %s.', id_access) raise InvalidValueError(None, 'id_acesso', id_access) # Business Rules access = EquipamentoAcesso.get_by_pk(id_access) equip_access_map = dict() equip_access_map['equipamento_acesso'] = model_to_dict(access) # Return XML return self.response(dumps_networkapi(equip_access_map)) except InvalidValueError, e: return self.response_error(269, e.param, e.value)
def handle_post(self, request, auth, *args, **kwargs): """Handles POST requests to update Equipment Access by id. URLs: /equipmentaccess/edit/ """ self.log.info('Update EquipmentAccess by id') try: # Commons Validations # Business Validations # 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: msg = u'There is no value to the networkapi tag of XML request.' self.log.error(msg) return self.response_error(3, msg) equipmentaccess_map = networkapi_map.get('equipamento_acesso') if equipmentaccess_map is None: msg = u'There is no value to the equipamento_acesso tag of XML request.' self.log.error(msg) return self.response_error(3, msg) # Get XML data user = equipmentaccess_map.get('user') password = equipmentaccess_map.get('pass') fqdn = equipmentaccess_map.get('fqdn') enable_pass = equipmentaccess_map.get('enable_pass') type_access = equipmentaccess_map.get('id_tipo_acesso') equip_access = equipmentaccess_map.get('id_equip_acesso') # Password must NOT be none and 20 is the maxsize and 3 is the # minsize if not is_valid_string_maxsize(password, 150) or not is_valid_string_minsize(password, 3): self.log.error(u'Parameter pass is invalid.') raise InvalidValueError(None, 'pass', '****') # Enable Pass must NOT be none and 20 is the maxsize and 3 is the # minsize if not is_valid_string_maxsize(enable_pass, 150) or not is_valid_string_minsize(enable_pass, 3): self.log.error(u'Parameter enable_pass is invalid.') raise InvalidValueError(None, 'enable_pass', '****') # User must NOT be none and 20 is the maxsize and 3 is the minsize if not is_valid_string_maxsize(user, 20) or not is_valid_string_minsize(user, 3): self.log.error(u'Parameter user is invalid. Value: %s.', user) raise InvalidValueError(None, 'user', user) # Host must NOT be none and 100 is the maxsize and 4 is the minsize if not is_valid_string_maxsize(fqdn, 100) or not is_valid_string_minsize(fqdn, 4): self.log.error(u'Parameter fqdn is invalid. Value: %s.', fqdn) raise InvalidValueError(None, 'fqdn', fqdn) # Type Access # Valid type access ID if not is_valid_int_greater_zero_param(type_access): self.log.error( u'Parameter type_access_id is invalid. Value: %s.', type_access) raise InvalidValueError(None, 'type_access_id', type_access) type_access = TipoAcesso.get_by_pk(type_access) # Business Rules equip_access = EquipamentoAcesso.get_by_pk(equip_access) # User permission if not has_perm(auth, AdminPermission.EQUIPMENT_MANAGEMENT, AdminPermission.WRITE_OPERATION, None, equip_access.equipamento.id, AdminPermission.EQUIP_WRITE_OPERATION): self.log.error( u'User does not have permission to perform the operation.') return self.not_authorized() with distributedlock(LOCK_EQUIPMENT_ACCESS % type_access.id): # valid duplicate association if not (int(type_access.id) == int(equip_access.tipo_acesso.id)): if EquipamentoAcesso.objects.filter(equipamento=equip_access.equipamento, tipo_acesso=type_access).count() > 0: raise EquipamentoAccessDuplicatedError( None, u'Já existe esta associação de equipamento e tipo de acesso cadastrada.') equip_access.__dict__.update( fqdn=fqdn, user=user, password=password, enable_pass=enable_pass) equip_access.tipo_acesso = type_access equip_access.save(auth) # update equipmentaccess_map = dict() equipmentaccess_map[ 'equipamento_acesso'] = model_to_dict(equip_access) # Return XML return self.response(dumps_networkapi(equipmentaccess_map)) except InvalidValueError, e: return self.response_error(269, e.param, e.value)
def handle_post(self, request, auth, *args, **kwargs): """Handles POST requests to update Equipment Access by id. URLs: /equipmentaccess/edit/ """ self.log.info('Update EquipmentAccess by id') try: # Commons Validations # Business Validations # 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: msg = u'There is no value to the networkapi tag of XML request.' self.log.error(msg) return self.response_error(3, msg) equipmentaccess_map = networkapi_map.get('equipamento_acesso') if equipmentaccess_map is None: msg = u'There is no value to the equipamento_acesso tag of XML request.' self.log.error(msg) return self.response_error(3, msg) # Get XML data user = equipmentaccess_map.get('user') password = equipmentaccess_map.get('pass') fqdn = equipmentaccess_map.get('fqdn') enable_pass = equipmentaccess_map.get('enable_pass') type_access = equipmentaccess_map.get('id_tipo_acesso') equip_access = equipmentaccess_map.get('id_equip_acesso') # Password must NOT be none and 20 is the maxsize and 3 is the # minsize if not is_valid_string_maxsize( password, 150) or not is_valid_string_minsize(password, 3): self.log.error(u'Parameter pass is invalid.') raise InvalidValueError(None, 'pass', '****') # Enable Pass must NOT be none and 20 is the maxsize and 3 is the # minsize if not is_valid_string_maxsize(enable_pass, 150) or not is_valid_string_minsize( enable_pass, 3): self.log.error(u'Parameter enable_pass is invalid.') raise InvalidValueError(None, 'enable_pass', '****') # User must NOT be none and 20 is the maxsize and 3 is the minsize if not is_valid_string_maxsize( user, 20) or not is_valid_string_minsize(user, 3): self.log.error(u'Parameter user is invalid. Value: %s.', user) raise InvalidValueError(None, 'user', user) # Host must NOT be none and 100 is the maxsize and 4 is the minsize if not is_valid_string_maxsize( fqdn, 100) or not is_valid_string_minsize(fqdn, 4): self.log.error(u'Parameter fqdn is invalid. Value: %s.', fqdn) raise InvalidValueError(None, 'fqdn', fqdn) # Type Access # Valid type access ID if not is_valid_int_greater_zero_param(type_access): self.log.error( u'Parameter type_access_id is invalid. Value: %s.', type_access) raise InvalidValueError(None, 'type_access_id', type_access) type_access = TipoAcesso.get_by_pk(type_access) # Business Rules equip_access = EquipamentoAcesso.get_by_pk(equip_access) # User permission if not has_perm(auth, AdminPermission.EQUIPMENT_MANAGEMENT, AdminPermission.WRITE_OPERATION, None, equip_access.equipamento.id, AdminPermission.EQUIP_WRITE_OPERATION): self.log.error( u'User does not have permission to perform the operation.') return self.not_authorized() with distributedlock(LOCK_EQUIPMENT_ACCESS % type_access.id): # valid duplicate association if not (int(type_access.id) == int( equip_access.tipo_acesso.id)): if EquipamentoAcesso.objects.filter( equipamento=equip_access.equipamento, tipo_acesso=type_access).count() > 0: raise EquipamentoAccessDuplicatedError( None, u'Já existe esta associação de equipamento e tipo de acesso cadastrada.' ) equip_access.__dict__.update(fqdn=fqdn, user=user, password=password, enable_pass=enable_pass) equip_access.tipo_acesso = type_access equip_access.save(auth) # update equipmentaccess_map = dict() equipmentaccess_map['equipamento_acesso'] = model_to_dict( equip_access) # Return XML return self.response(dumps_networkapi(equipmentaccess_map)) except InvalidValueError, e: return self.response_error(269, e.param, e.value)