def handle_post(self, request, user, *args, **kwargs): """Treat requests POST to add Logical Environment. URL: logicalenvironment/ """ try: self.log.info('Add Logical Environment') # 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.') logical_environment_map = networkapi_map.get('logical_environment') if logical_environment_map is None: return self.response_error(3, u'There is no value to the logical_environment tag of XML request.') # Get XML data name = logical_environment_map.get('name') try: AmbienteLogico.get_by_name(name) raise AmbienteLogicoNameDuplicatedError( None, u'Já existe um Ambiente Lógico com o valor name %s.' % name) except AmbienteLogicoNotFoundError: pass log_env = AmbienteLogico() # set variables log_env.nome = name try: # save Logical Environment log_env.save() except Exception, e: self.log.error(u'Failed to save the Logical Environment.') raise AmbienteError( e, u'Failed to save the Logical Environment.') log_env_map = dict() log_env_map['logical_environment'] = model_to_dict( log_env, exclude=['nome']) return self.response(dumps_networkapi(log_env_map))
def criar_vlan(user, variablestochangecore1, ambientes, active=1): #get environment ambiente = Ambiente() divisaodc = DivisaoDc() divisaodc = divisaodc.get_by_name(ambientes.get('DC')) ambiente_log = AmbienteLogico() ambiente_log = ambiente_log.get_by_name(ambientes.get('LOG')) ambiente = ambiente.search(divisaodc.id, ambiente_log.id) for amb in ambiente: if amb.grupo_l3.nome==ambientes.get('L3'): id_ambiente = amb # set vlan vlan = Vlan() vlan.acl_file_name = None vlan.acl_file_name_v6 = None vlan.num_vlan = variablestochangecore1.get("VLAN_NUM") vlan.nome = variablestochangecore1.get("VLAN_NAME") vlan.descricao = "" vlan.ambiente = id_ambiente vlan.ativada = active vlan.acl_valida = 0 vlan.acl_valida_v6 = 0 vlan.insert_vlan(user) return vlan
def criar_vlan(user, variablestochangecore1, ambientes, active=1): # get environment ambiente = Ambiente() divisaodc = DivisaoDc() divisaodc = divisaodc.get_by_name(ambientes.get('DC')) ambiente_log = AmbienteLogico() ambiente_log = ambiente_log.get_by_name(ambientes.get('LOG')) ambiente = ambiente.search(divisaodc.id, ambiente_log.id) for amb in ambiente: if amb.grupo_l3.nome == ambientes.get('L3'): id_ambiente = amb # set vlan vlan = Vlan() vlan.acl_file_name = None vlan.acl_file_name_v6 = None vlan.num_vlan = variablestochangecore1.get('VLAN_NUM') vlan.nome = variablestochangecore1.get('VLAN_NAME') vlan.descricao = '' vlan.ambiente = id_ambiente vlan.ativada = active vlan.acl_valida = 0 vlan.acl_valida_v6 = 0 vlan.insert_vlan(user) return vlan
def config_ambiente(user, hosts, ambientes): #ip_config ip_config = IPConfig() ip_config.subnet = hosts.get("REDE") ip_config.new_prefix = hosts.get("PREFIX") if hosts.get("VERSION")=="ipv4": ip_config.type = IP_VERSION.IPv4[0] elif hosts.get("VERSION")=="ipv6": ip_config.type = IP_VERSION.IPv6[0] tiporede = TipoRede() tipo = tiporede.get_by_name(hosts.get("TIPO")) ip_config.network_type = tipo ip_config.save() #ambiente config_environment = ConfigEnvironment() amb_log = AmbienteLogico() div = DivisaoDc() amb_log = amb_log.get_by_name(ambientes.get("LOG")) div = div.get_by_name(ambientes.get("DC")) for j in Ambiente().search(div.id, amb_log.id): if j.grupo_l3.nome==ambientes.get("L3"): config_environment.environment = j config_environment.ip_config = ip_config config_environment.save()
def config_ambiente(user, hosts, ambientes): # ip_config ip_config = IPConfig() ip_config.subnet = hosts.get('REDE') ip_config.new_prefix = hosts.get('PREFIX') if hosts.get('VERSION') == 'ipv4': ip_config.type = IP_VERSION.IPv4[0] elif hosts.get('VERSION') == 'ipv6': ip_config.type = IP_VERSION.IPv6[0] tiporede = TipoRede() tipo = tiporede.get_by_name(hosts.get('TIPO')) ip_config.network_type = tipo ip_config.save() # ambiente config_environment = ConfigEnvironment() amb_log = AmbienteLogico() div = DivisaoDc() amb_log = amb_log.get_by_name(ambientes.get('LOG')) div = div.get_by_name(ambientes.get('DC')) for j in Ambiente().search(div.id, amb_log.id): if j.grupo_l3.nome == ambientes.get('L3'): config_environment.environment = j config_environment.ip_config = ip_config config_environment.save()
def config_ambiente(user, hosts, ambientes): #ip_config ip_config = IPConfig() ip_config.subnet = hosts.get("REDE") ip_config.new_prefix = hosts.get("PREFIX") if hosts.get("VERSION") == "ipv4": ip_config.type = IP_VERSION.IPv4[0] elif hosts.get("VERSION") == "ipv6": ip_config.type = IP_VERSION.IPv6[0] tiporede = TipoRede() tipo = tiporede.get_by_name(hosts.get("TIPO")) ip_config.network_type = tipo ip_config.save() #ambiente config_environment = ConfigEnvironment() amb_log = AmbienteLogico() div = DivisaoDc() amb_log = amb_log.get_by_name(ambientes.get("LOG")) div = div.get_by_name(ambientes.get("DC")) for j in Ambiente().search(div.id, amb_log.id): if j.grupo_l3.nome == ambientes.get("L3"): config_environment.environment = j config_environment.ip_config = ip_config config_environment.save()
def handle_put(self, request, user, *args, **kwargs): """Treat requests PUT to edit Logical Environment. URL: logicalenvironment/<id_logicalenvironment>/ """ try: self.log.info("Edit Logical Environment") # 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) id_logicalenvironment = kwargs.get('id_logicalenvironment') # 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.') logical_environment_map = networkapi_map.get('logical_environment') if logical_environment_map is None: return self.response_error(3, u'There is no value to the logical_environment tag of XML request.') # Get XML data name = logical_environment_map.get('name') # Valid ID Logical Environment if not is_valid_int_greater_zero_param(id_logicalenvironment): self.log.error( u'The id_logicalenvironment parameter is not a valid value: %s.', id_logicalenvironment) raise InvalidValueError( None, 'id_logicalenvironment', id_logicalenvironment) # Valid name if not is_valid_string_minsize(name, 2) or not is_valid_string_maxsize(name, 80): self.log.error(u'Parameter name is invalid. Value: %s', name) raise InvalidValueError(None, 'name', name) # Find Logical Environment by ID to check if it exist loc_env = AmbienteLogico.get_by_pk(id_logicalenvironment) with distributedlock(LOCK_LOGICAL_ENVIRONMENT % id_logicalenvironment): try: if loc_env.nome.lower() != name.lower(): AmbienteLogico.get_by_name(name) raise AmbienteLogicoNameDuplicatedError( None, u'Já existe um Ambiente Lógico com o valor name %s.' % name) except AmbienteLogicoNotFoundError: pass # set variables loc_env.nome = name try: # update Logical Environment loc_env.save(user) except Exception, e: self.log.error( u'Failed to update the Logical Environment.') raise AmbienteError( e, u'Failed to update the Logical Environment.') 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 requests POST to add Logical Environment. URL: logicalenvironment/ """ try: self.log.info("Add Logical Environment") # 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.' ) logical_environment_map = networkapi_map.get('logical_environment') if logical_environment_map is None: return self.response_error( 3, u'There is no value to the logical_environment tag of XML request.' ) # Get XML data name = logical_environment_map.get('name') try: AmbienteLogico.get_by_name(name) raise AmbienteLogicoNameDuplicatedError( None, u'Já existe um Ambiente Lógico com o valor name %s.' % name) except AmbienteLogicoNotFoundError: pass log_env = AmbienteLogico() # set variables log_env.nome = name try: # save Logical Environment log_env.save() except Exception, e: self.log.error(u'Failed to save the Logical Environment.') raise AmbienteError( e, u'Failed to save the Logical Environment.') log_env_map = dict() log_env_map['logical_environment'] = model_to_dict( log_env, exclude=["nome"]) return self.response(dumps_networkapi(log_env_map))
def handle_put(self, request, user, *args, **kwargs): """Treat requests PUT to edit Logical Environment. URL: logicalenvironment/<id_logicalenvironment>/ """ try: self.log.info("Edit Logical Environment") # 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) id_logicalenvironment = kwargs.get('id_logicalenvironment') # 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.' ) logical_environment_map = networkapi_map.get('logical_environment') if logical_environment_map is None: return self.response_error( 3, u'There is no value to the logical_environment tag of XML request.' ) # Get XML data name = logical_environment_map.get('name') # Valid ID Logical Environment if not is_valid_int_greater_zero_param(id_logicalenvironment): self.log.error( u'The id_logicalenvironment parameter is not a valid value: %s.', id_logicalenvironment) raise InvalidValueError(None, 'id_logicalenvironment', id_logicalenvironment) # Valid name if not is_valid_string_minsize( name, 2) or not is_valid_string_maxsize(name, 80): self.log.error(u'Parameter name is invalid. Value: %s', name) raise InvalidValueError(None, 'name', name) # Find Logical Environment by ID to check if it exist loc_env = AmbienteLogico.get_by_pk(id_logicalenvironment) with distributedlock(LOCK_LOGICAL_ENVIRONMENT % id_logicalenvironment): try: if loc_env.nome.lower() != name.lower(): AmbienteLogico.get_by_name(name) raise AmbienteLogicoNameDuplicatedError( None, u'Já existe um Ambiente Lógico com o valor name %s.' % name) except AmbienteLogicoNotFoundError: pass # set variables loc_env.nome = name try: # update Logical Environment loc_env.save() except Exception, e: self.log.error( u'Failed to update the Logical Environment.') raise AmbienteError( e, u'Failed to update the Logical Environment.') return self.response(dumps_networkapi({})) except InvalidValueError, e: return self.response_error(269, e.param, e.value)