def checkDeprecatedAttributes(ad, path):

  deprecatedWarning = ""
  attributeSeparator = ""
  
  # Show all the warnings for each deprecated attributes
  for deprecatedAttribute in deprecatedAttributes:
  
    # Check if the current deprecated attributes is present outside JDL Default Attributes section
    if(ad.hasKey(deprecatedAttribute)):
      # Add the current attribute to the list of deprecated attributes
      deprecatedWarning += attributeSeparator + deprecatedAttribute;
      
      # Set Comma as attribute separator
      attributeSeparator = ", "
  
  # Show a warning message if deprecated attributes have been found and if it's in debug mode
  if(deprecatedWarning and wmsui_utils.info.debug):

    # Build the debug message
    deprecatedMsg = "Configuration file: " + path + " - " + deprecatedWarning + " attribute(s) no more supported outside JDL Default Attributes section \"JdlDefaultAttributes\""

    #Print message
    wmsui_utils.print_message(False, wmsui_utils.info.logFile, deprecatedMsg)
def checkConf(conf, virtualOrg, logPath):

  override = 1

  voName = UnspecifiedVO

  vomsrc = ""
  
  src = VO_SOURCE_NONE;

  configFile = ""
  cfDefault = ""
  
  sys_exit = 0

  # Trace 
  if(conf and virtualOrg):
  
	wmsui_utils.errMsg("The following options cannot be specified together:\n" + \
		 conf + "\n" + \
		 virtualOrg + "\n\n", wmsui_utils.info.logFile)
        wmsui_utils.exit(1)
  
  # Read the GLITE_WMS_COMMANDS_CONFIG environment variable
  try:
    # Set the WMS Commands Config file
    envCommandsConfig = os.environ['GLITE_WMS_COMMANDS_CONFIG']
  except:
    # Set a empty value due to missing environment variable    
    envCommandsConfig = ""

  # Read the X509_USER_PROXY environment variable
  try:
    # Set the User Proxy filename from the environment variable
    proxy_file_name = os.environ['X509_USER_PROXY']
  except:
    # Set the default User Proxy filename 
    proxy_file_name = os.sep + "tmp" + os.sep + "x509up_u"+ repr(os.getuid())

  # Read the Proxy file if it exists		  
  if os.path.isfile(proxy_file_name):

    #Try to look for the default Vo inside the user proxy
    printERRORS=1
    err, voName = checkVomsExtension(proxy_file_name, printERRORS)
    
    # Check for errors
    if err:
	wmsui_utils.errMsg(err, wmsui_utils.info.logFile)
        wmsui_utils.exit(1)

    if voName:
      # Set the source of the voName
      src = VO_SOURCE_CERT_EXTENSION
      vomsrc = "proxy certificate extension"
      
  """
  Options Parsing
  """
  if(virtualOrg and src != VO_SOURCE_NONE):
  
    # VO name forcing ignored
    wmsui_utils.print_message (False, wmsui_utils.info.logFile, "Warning - --vo option ignored" )
    
  elif(virtualOrg):
  
    # SCR is definitely NONE
    voName = virtualOrg
    
    src = VO_SOURCE_VO_OPT
    vomsrc = "--vo option"

    # Print a debug message    
    if wmsui_utils.info.debug:
      debugMsg = "#### "+ time.ctime() + " Debug Message ####\n" + \
	         "VO Read from --vo option\n\n#### End Debug ####\n"
   
      #Print message
      wmsui_utils.print_message(False, wmsui_utils.info.logFile, debugMsg)
    
      # Set the config file
      configFile = wmsui_utils.info.prefix + os.sep + "etc" + os.sep + virtualOrg.lower() + os.sep + DEFAULT_UI_CLIENTCONFILE
    
  elif(conf):
  
    if (src == VO_SOURCE_NONE and wmsui_utils.info.debug):
      debugMsg = "#### "+ time.ctime() + " Debug Message ####\n" + \
	         "VO Read from --config option\n\n#### End Debug ####\n"
   
      #Print message
      wmsui_utils.print_message(False, wmsui_utils.info.logFile, debugMsg)
    
    # Set the config file
    configFile = conf
	
    src = VO_SOURCE_CONFIG_OPT
    vomsrc = "--config option"
    
  elif envCommandsConfig:

    if (src == VO_SOURCE_NONE and wmsui_utils.info.debug):
      debugMsg = "#### "+ time.ctime() + " Debug Message ####\n" + \
	         "VO Read from ENV option\n\n#### End Debug ####\n"
   
      #Print message
      wmsui_utils.print_message(False, wmsui_utils.info.logFile, msg)

    src = VO_SOURCE_CONFIG_VAR;
    vomsrc = "GLITE_WMSUI_CONFIG_VO env variable"
   
    # Set the GLITE_WMS_COMMANDS_CONFIG environment variable content as configuration file
    configFile = envCommandsConfig

  elif(src == VO_SOURCE_NONE):	
  
    print "checkConf\nEmpty value: Unable to find any both VirtualOrganisation and any configuration file"
    sys.exit(1)
  
  err, voName, info.confAdVo, configFile = parseVo(src, configFile, voName, "Error", override)
  
  if err == 0 and not info.confAdVo:
  	configFile = ""
  
  if wmsui_utils.info.debug and voName:
    # Print Info
    msg =  "VirtualOrganisation value :" + voName
    wmsui_utils.print_message(False, wmsui_utils.info.logFile, msg)

  # Build the default config file it a VO name has been found
  if(voName):	  
	  
    # Build the default config file 
    cfDefault = wmsui_utils.info.prefix + os.sep + "etc" + os.sep + voName.lower() + os.sep + DEFAULT_UI_CLIENTCONFILE

    # Check if the file exists
    if not os.path.isfile (cfDefault):
      # Remove the path
      cfDefault = ""

  # Load the configuration
  loadConfiguration(configFile, cfDefault, voName)
  
  if wmsui_utils.info.debug:
	  # Successfully Update needed Info
	  msg = "Selected Virtual Organisation name (from "+ vomsrc + "): " + voName

	  msg = "#### "+ time.ctime() + " Debug Message ####\n" + msg +"\nVOMS configuration file successfully loaded:\n" \
	  + configFile + info.confAdVo.toLines() +  "\n#### End Debug ####\n"

	  #Print VOMS message
	  wmsui_utils.print_message(False, wmsui_utils.info.logFile, msg)

  # Check if the log path has been set
  if logPath:
  
    # Create the log filename
    logFile = os.path.abspath (logPath)

    # Remove the log file if it exists	
    if os.path.isfile ( logFile):
      try:
        # Remove the log file
        os.remove(logFile)
      except:
        errMsg ( "Warning" , "UI_RM_FILE", logFile )
  else :
    # Create a new log file
    logFile = wmsui_utils.create_err_log ( info.prgname )

  # Rename the old logFile with the new value (if needed)
  if info.logFile:
   if info.logFile != logFile:
     try:
       shutil.copyfile( info.logFile, logFile  )
     except:
       errMsg('Error','UI_WRITE_FILE' , logFile   )
       wmsui_utils.exit(1)
     try:
       os.remove(info.logFile)
     except:
       errMsg("Warning",'UI_RM_FILE' , info.logFile   )
     info.logFile = logFile

  # Return the Virtual Organisation name
  return voName