def parse(self):
        sub_directory = 'alignak.d'
        dir_name = os.path.dirname(self.configuration_file)
        dir_name = os.path.join(dir_name, sub_directory)
        self.cfg_files = [self.configuration_file]
        if os.path.exists(dir_name):
            for root, _, walk_files in os.walk(dir_name, followlinks=True):
                for found_file in walk_files:
                    if not re.search(r"\.ini$", found_file):
                        continue
                    self.cfg_files.append(os.path.join(root, found_file))
        print("Loading configuration files: %s " % self.cfg_files)
        self.config = configparser.ConfigParser()
        try:
            self.config.read(self.cfg_files)
            if self.config._sections == {}:
                print("* bad formatted configuration file: %s " % self.configuration_file)
                if self.embedded:
                    raise ValueError
                sys.exit(2)
            for section in self.config.sections():
                if self.verbose:
                    print("- section: %s" % section)
                for (key, value) in self.config.items(section):
                    inner_property = "%s.%s" % (section, key)
                    setattr(self, inner_property, value)
                    os.environ[inner_property] = value
                    if self.verbose:
                        print("  %s = %s" % (inner_property, value))
                    if self.export:
                        inner_property = re.sub('[^0-9a-zA-Z]+', '_', inner_property)
                        inner_property = inner_property.upper()
                        print("export %s=%s" % (inner_property, cmd_quote(value)))
        except configparser.ParsingError as exp:
            print("* parsing error in config file : %s\n%s"
                  % (self.configuration_file, exp.message))
            if self.embedded:
                return False
            sys.exit(3)
        except configparser.InterpolationMissingOptionError as exp:
            print("* incorrect or missing variable: %s" % str(exp))
            if self.embedded:
                return False
            sys.exit(3)
        if self.verbose:
            print("Configuration file parsed correctly")
        return True