docs: def getConfiguration(configPath = None):
      """
          Reading the configuration file to look for where the different gates are running.
          
          :return: A json containing the information stored in the .cfg file.
      """
      if configPath == None:
          # If a current.cfg has not been found, creating it by copying from default
          configPath = getConfigPath("browser.cfg")
  
      # Checking if the configuration file exists
      if not os.path.exists(configPath):
          try:
              # Copy the data from the default folder
              defaultConfigPath = getConfigPath(os.path.join("default", "browser.cfg"))
       
              with open(configPath, "w") as oF:
                  with open(defaultConfigPath) as iF:
                      cont = iF.read()
                      oF.write(cont)    
                                                  
          except Exception, e:
              errMsg = "ERROR. No configuration file could be found and the default file was not found either. You might need to reset it manually."
              raise Exception( errMsg + " " + str(e))      
  
      try:
          # Reading the configuration file
          config = ConfigParser.ConfigParser()
          config.read(configPath)
  
          info = {}
  
          # Iterating through all the sections, which contain the platforms
          for section in config.sections():
              current = {}
              # Iterating through parametgers
              for (param, value) in config.items(section):
                  current[param] = value
                  
              # Loading the configuration in the info dictionary
              info[section] = current
              
      except Exception, e:
          errMsg = "ERROR. Something happened when processing the Configuration file (some kind of malform?). Check it before running it again."
          raise Exception( errMsg + " " + str(e))      
  
      return info