def execute(self):

        # Option sanity check
        self.forbidden(self.options.fsnames, "-f, see -m")
        self.forbidden(self.options.labels, "-l")
        self.forbidden(self.options.indexes, "-i")
        self.forbidden(self.options.failover, "-F")

        rc = RC_OK

        if not self.options.model:
            raise CommandHelpException("Lustre model file path"
                                   "(-m <model_file>) argument required.", self)

        eh = FSGlobalEventHandler(self)

        # Use this Shine.FSUtils convenience function.
        lmf = self.get_lmf_path()
        if lmf:
            print("Using Lustre model file %s" % lmf)
        else:
            raise CommandHelpException("Lustre model file for ``%s'' not found:"
                        " please use filename or full LMF path.\n"
                        "Your default model files directory (lmf_dir) is: %s" %
                        (self.options.model, Globals().get_lmf_dir()), self)

        install_nodes = self.options.nodes
        excluded_nodes = self.options.excludes

        fs_conf, fs = create_lustrefs(self.get_lmf_path(),
                                      event_handler=eh, nodes=install_nodes,
                                      excluded=excluded_nodes)

        # Register the filesystem in backend
        print("Registering FS %s to backend..." % fs.fs_name)
        if self.options.dryrun:
            rc = 0
        else:
            rc = self.register_fs(fs_conf)
        if rc:
            msg = "Error: failed to register FS to backend (rc=%d)" % rc
            print(msg, file=sys.stderr)
        else:
            print("Filesystem %s registered." % fs.fs_name)

        # Helper message.
        # If user specified nodes which were not used, warn him about it.
        actual_nodes = fs.components.managed().servers()
        if not self.check_valid_list(fs_conf.get_fs_name(), \
                actual_nodes, "install"):
            return RC_FAILURE

        # Install file system configuration files; normally, this should
        # not be done by the Shine.Lustre.FileSystem object itself, but as
        # all proxy methods are currently handled by it, it is more
        # convenient this way...
        try:
            fs.install(fs_conf.get_cfg_filename(),
                       dryrun=self.options.dryrun)

            tuning_conf = Globals().get_tuning_file()
            if tuning_conf:
                fs.install(tuning_conf, dryrun=self.options.dryrun)

        except FSRemoteError as error:
            print("WARNING: Due to error, installation skipped on %s"
                  % error.nodes)
            rc = RC_FAILURE

        if not install_nodes and not excluded_nodes:
            # Give pointer to next user step.
            print("Use `shine format -f %s' to initialize the file system." %
                  fs_conf.get_fs_name())

        return rc