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