def create
      @log.debug "Launching new build..."
      @log.trace "Used configuration: #{@config.to_yaml.gsub(/(\S*(key|account|cert|username|host|password)\S*).*:(.*)/, '\1' + ": <REDACTED>")}"

      # Let's load all plugins first
      PluginHelper.new(@config, :log => @log).load_plugins
      read_definition
      validate_definition
      initialize_plugins

      remove_old_builds if @config.force

      execute_plugin_chain

      self
    end
def create
      @log.debug "Launching new build..."
      @log.trace "Used configuration: #{@config.to_yaml.gsub(/(\S*(key|account|cert|username|host|password)\S*).*:(.*)/, '\1' + ": <REDACTED>")}"

      # Let's load all plugins first
      PluginHelper.new(@config, :log => @log).load_plugins
      read_definition
      validate_definition
      initialize_plugins

      remove_old_builds if @config.force

      execute_plugin_chain

      self
    end
This creates the appliance by executing the plugin chain.

 Definition is read and validated. Afterwards a plugin chain is created
 and every plugin in the chain is initialized and validated. The next step
 is the execution of the plugin chain, step by step.

 Below you can find the whole process of bootstrapping a plugin.

   Call            Scope
   ------------------------------------------
   initialize      required, internal
   init            required, internal
   after_init      optional, user implemented
   validate        optional, user implemented
   after_validate  optional, user implemented
   execute         required, user implemented
   after_execute   optional, user implemented