lib/veewee/command/vmfusion.rb in veewee-0.3.0.alpha4 vs lib/veewee/command/vmfusion.rb in veewee-0.3.0.alpha5

- old
+ new

@@ -1,45 +1,66 @@ module Veewee module Command class Vmfusion< Veewee::Command::GroupBase register "fusion", "Subcommand for Vmware fusion" - desc "build [TEMPLATE_NAME] [BOX_NAME]", "Build box" + desc "build [BOX_NAME]", "Build box" method_option :force,:type => :boolean , :default => false, :aliases => "-f", :desc => "force the build" method_option :debug,:type => :boolean , :default => false, :aliases => "-d", :desc => "enable debugging" method_option :nogui,:type => :boolean , :default => false, :aliases => "-n", :desc => "no gui" method_option :auto,:type => :boolean , :default => false, :aliases => "-a", :desc => "auto answers" - method_option :postinstall_include, :type => :array, :default => [], :aliases => "-i", :desc => "patterns of postinstall filenames to additionally include" - method_option :postinstall_exclude, :type => :array, :default => [], :aliases => "-e", :desc => "patterns of postinstall filenames to exclude" + method_option :postinstall_include, :type => :array, :default => [], :aliases => "-i", :desc => "ruby regexp of postinstall filenames to additionally include" + method_option :postinstall_exclude, :type => :array, :default => [], :aliases => "-e", :desc => "ruby regexp of postinstall filenames to exclude" + def build(box_name) + venv=Veewee::Environment.new(options) + venv.ui=env.ui + venv.providers["vmfusion"].get_box(box_name).build(options) + end - def build(definition_name,box_name=nil) + method_option :force,:type => :boolean , :default => false, :aliases => "-f", :desc => "force the destroy" + method_option :debug,:type => :boolean , :default => false, :aliases => "-d", :desc => "enable debugging" + method_option :nogui,:type => :boolean , :default => false, :aliases => "-n", :desc => "no gui" + desc "destroy [BOXNAME]", "Destroys the virtualmachine that was built" + def destroy(box_name) venv=Veewee::Environment.new(options) venv.ui=env.ui - venv.config.builders["vmfusion"].build(definition_name,box_name,options) + venv.providers["vmfusion"].get_box(box_name).destroy(options) + end - # venv.ui.info "#{box_name} was build succesfully. " - # venv.ui.info "" - # venv.ui.info "Now you can: " - # venv.ui.info "- verify your box by running : veewee fusion validate #{definition_name}" - # venv.ui.info "- export your vm to a .box fileby running : veewee fusion export #{definition_name}" + method_option :debug,:type => :boolean , :default => false, :aliases => "-d", :desc => "enable debugging" + method_option :force,:type => :boolean , :default => false, :aliases => "-f", :desc => "force the shutdown" + desc "halt [BOXNAME]", "Activates a shutdown the virtualmachine" + def halt(box_name) + venv=Veewee::Environment.new(options) + venv.ui=env.ui + venv.providers["vmfusion"].get_box(box_name).halt(options) + end + method_option :debug,:type => :boolean , :default => false, :aliases => "-d", :desc => "enable debugging" + method_option :nogui,:type => :boolean , :default => false, :aliases => "-n", :desc => "no gui" + desc "up [BOXNAME]", "Starts a Box" + def up(box_name) + venv=Veewee::Environment.new(options) + venv.ui=env.ui + venv.providers["vmfusion"].get_box(box_name).up(options) end - desc "destroy [BOXNAME]", "Destroys the virtualmachine that was build" - def destroy(box_name) + desc "ssh [BOXNAME] [COMMAND]", "SSH to box" + method_option :debug,:type => :boolean , :default => false, :aliases => "-d", :desc => "enable debugging" + def ssh(box_name,command=nil) venv=Veewee::Environment.new(options) venv.ui=env.ui - venv.config.builders["vmfusion"].get_box(box_name).destroy + venv.providers["vmfusion"].get_box(box_name).issh(command) end desc "define [BOXNAME] [TEMPLATE]", "Define a new basebox starting from a template" method_option :force,:type => :boolean , :default => false, :aliases => "-f", :desc => "overwrite the definition" method_option :debug,:type => :boolean , :default => false, :aliases => "-d", :desc => "enable debugging" def define(definition_name, template_name) venv=Veewee::Environment.new(options) venv.ui=env.ui - venv.define(definition_name,template_name,options) + venv.definitions.define(definition_name,template_name,options) env.ui.info "The basebox '#{definition_name}' has been succesfully created from the template '#{template_name}'" env.ui.info "You can now edit the definition files stored in definitions/#{definition_name} or build the box with:" env.ui.info "veewee fusion build '#{definition_name}'" end @@ -48,11 +69,11 @@ def undefine(definition_name) env.ui.info "Removing definition #{definition_name}" , :prefix => false begin venv=Veewee::Environment.new(options) venv.ui=env.ui - venv.undefine(definition_name,options) + venv.definitions.undefine(definition_name,options) env.ui.info "Definition #{definition_name} succesfully removed",:prefix => false rescue Error => ex env.ui.error "#{ex}" , :prefix => false exit -1 end @@ -61,48 +82,50 @@ desc "validate [NAME]", "Validates a box against vmfusion compliancy rules" method_option :debug,:type => :boolean , :default => false, :aliases => "-d", :desc => "enable debugging" def validate(box_name) venv=Veewee::Environment.new(options) venv.ui=env.ui - venv.config.builders["vmfusion"].validate_vmfusion(box_name,options) + venv.providers["vmfusion"].get_box(box_name).validate_vmfusion(options) end - desc "ostypes", "List the available Operating System types" method_option :debug,:type => :boolean , :default => false, :aliases => "-d", :desc => "enable debugging" def ostypes venv=Veewee::Environment.new(options) venv.ui=env.ui - venv.list_ostypes + venv.ostypes.each do |name| + env.ui.info "- #{name}" + end end desc "export [NAME]", "Exports the basebox to the ova format" method_option :debug,:type => :boolean , :default => false, :aliases => "-d", :desc => "enable debugging" + method_option :force,:type => :boolean , :default => false, :aliases => "-f", :desc => "overwrite existing file" def export(box_name) venv=Veewee::Environment.new(options) venv.ui=env.ui - venv.config.builders["vmfusion"].get_box(box_name).export_ova(options) + venv.providers["vmfusion"].get_box(box_name).export_ova(options) end desc "templates", "List the currently available templates" method_option :debug,:type => :boolean , :default => false, :aliases => "-d", :desc => "enable debugging" def templates env.ui.info "The following templates are available:",:prefix => false venv=Veewee::Environment.new(options) venv.ui=env.ui - venv.get_template_paths.keys.each do |name| + venv.templates.each do |name,template| env.ui.info "veewee fusion define '<box_name>' '#{name}'",:prefix => false end end desc "list", "Lists all defined boxes" method_option :debug,:type => :boolean , :default => false, :aliases => "-d", :desc => "enable debugging" def list env.ui.info "The following local definitions are available:",:prefix => false venv=Veewee::Environment.new(options) venv.ui=env.ui - venv.get_definition_paths.keys.each do |name| + venv.definitions.each do |name,definition| env.ui.info "- #{name}" end end