veewee 0.2.3 → 0.3.0.alpha1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +3 -0
- data/Gemfile +1 -2
- data/Gemfile.lock +53 -30
- data/License +21 -0
- data/README-LIB.md +2 -0
- data/README.md +35 -62
- data/Rakefile +54 -88
- data/bin/veewee +13 -70
- data/bin/veewee-kvm-old +34 -0
- data/bin/veewee-vagrant +55 -0
- data/bin/veewee-vmfusion +34 -0
- data/lib/fission.rb +41 -0
- data/lib/fission/cli.rb +76 -0
- data/lib/fission/command.rb +15 -0
- data/lib/fission/command/clone.rb +68 -0
- data/lib/fission/command/delete.rb +71 -0
- data/lib/fission/command/snapshot_create.rb +52 -0
- data/lib/fission/command/snapshot_list.rb +45 -0
- data/lib/fission/command/snapshot_revert.rb +54 -0
- data/lib/fission/command/start.rb +69 -0
- data/lib/fission/command/status.rb +31 -0
- data/lib/fission/command/stop.rb +49 -0
- data/lib/fission/command/suspend.rb +67 -0
- data/lib/fission/config.rb +29 -0
- data/lib/fission/core_ext/class.rb +5 -0
- data/lib/fission/core_ext/file.rb +7 -0
- data/lib/fission/core_ext/object.rb +112 -0
- data/lib/fission/error.rb +9 -0
- data/lib/fission/fusion.rb +17 -0
- data/lib/fission/leasesfile.rb +74 -0
- data/lib/fission/metadata.rb +39 -0
- data/lib/fission/response.rb +16 -0
- data/lib/fission/ui.rb +22 -0
- data/lib/fission/version.rb +3 -0
- data/lib/fission/vm.rb +361 -0
- data/lib/net/vnc/vnc.rb +341 -0
- data/lib/vagrant_init.rb +5 -2
- data/lib/veewee.rb +20 -3
- data/lib/veewee/builder/core/box.rb +32 -0
- data/lib/veewee/builder/core/box/vnc.rb +122 -0
- data/lib/veewee/builder/core/builder.rb +90 -0
- data/lib/veewee/builder/core/builder/build.rb +250 -0
- data/lib/veewee/builder/core/builder/iso.rb +120 -0
- data/lib/veewee/builder/core/builder/transaction.rb +25 -0
- data/lib/veewee/builder/core/builder/tunnel.rb +46 -0
- data/lib/veewee/builder/kvm/box.rb +130 -0
- data/lib/veewee/builder/kvm/builder.rb +38 -0
- data/lib/veewee/builder/virtualbox/box.rb +121 -0
- data/lib/veewee/builder/virtualbox/builder.rb +48 -0
- data/lib/veewee/builder/virtualbox/helper/_snapshots.rb +105 -0
- data/lib/veewee/builder/virtualbox/helper/_transaction.rb +135 -0
- data/lib/veewee/builder/virtualbox/helper/console_type.rb +62 -0
- data/lib/veewee/builder/virtualbox/helper/create.rb +210 -0
- data/lib/veewee/builder/virtualbox/helper/destroy.rb +79 -0
- data/lib/veewee/builder/virtualbox/helper/export_vagrant.rb +87 -0
- data/lib/veewee/builder/virtualbox/helper/validate_vagrant.rb +35 -0
- data/lib/veewee/builder/vmfusion/box.rb +137 -0
- data/lib/veewee/builder/vmfusion/builder.rb +78 -0
- data/lib/veewee/builder/vmfusion/helper/create.rb +68 -0
- data/lib/veewee/builder/vmfusion/helper/export_ova.rb +26 -0
- data/lib/veewee/builder/vmfusion/helper/template.rb +39 -0
- data/lib/veewee/builder/vmfusion/helper/template.vmx.erb +81 -0
- data/lib/veewee/builder/vmfusion/helper/validate_vmfusion.rb +37 -0
- data/lib/veewee/builder/vmfusion/info/export_ovf.info +103 -0
- data/lib/veewee/cli.rb +55 -0
- data/lib/veewee/command.rb +10 -20
- data/lib/veewee/command/base.rb +106 -0
- data/lib/veewee/command/group_base.rb +107 -0
- data/lib/veewee/command/helpers.rb +13 -0
- data/lib/veewee/command/kvm.rb +85 -0
- data/lib/veewee/command/named_base.rb +14 -0
- data/lib/veewee/command/vagrant.rb +108 -0
- data/lib/veewee/command/version.rb +13 -0
- data/lib/veewee/command/virtualbox.rb +86 -0
- data/lib/veewee/command/vmfusion.rb +113 -0
- data/lib/veewee/config.rb +89 -3
- data/lib/veewee/config/builders.rb +36 -0
- data/lib/veewee/config/collection.rb +82 -0
- data/lib/veewee/config/component.rb +19 -0
- data/lib/veewee/config/definition.rb +44 -0
- data/lib/veewee/config/ostypes.yml +165 -0
- data/lib/veewee/config/veewee.rb +21 -0
- data/lib/veewee/definition.rb +130 -0
- data/lib/veewee/environment.rb +367 -0
- data/lib/veewee/error.rb +20 -0
- data/lib/veewee/templates/locales/en.yml +30 -0
- data/lib/veewee/ui.rb +83 -0
- data/lib/veewee/util/scancode.rb +112 -0
- data/lib/veewee/util/shell.rb +42 -0
- data/lib/veewee/util/ssh.rb +158 -0
- data/lib/veewee/util/tcp.rb +88 -0
- data/lib/veewee/util/web.rb +63 -0
- data/lib/veewee/vagrant/config.rb +7 -0
- data/lib/veewee/version.rb +6 -1
- data/templates/CentOS-4.8-i386/definition.rb +3 -3
- data/templates/CentOS-4.8-i386/postinstall.sh +2 -2
- data/templates/CentOS-5.5-x86_64-netboot/definition.rb +1 -1
- data/templates/CentOS-5.5-x86_64-netboot/postinstall.sh +1 -1
- data/templates/CentOS-5.6-i386-netboot/definition.rb +3 -3
- data/templates/CentOS-5.6-i386-netboot/ks.cfg +2 -2
- data/templates/CentOS-5.6-i386-netboot/postinstall.sh +2 -2
- data/templates/CentOS-5.6-i386/definition.rb +2 -2
- data/templates/CentOS-5.6-i386/postinstall.sh +2 -2
- data/templates/CentOS-5.6-x86_64-netboot/definition.rb +3 -3
- data/templates/CentOS-5.6-x86_64-netboot/ks.cfg +1 -1
- data/templates/CentOS-5.6-x86_64-netboot/postinstall.sh +1 -1
- data/templates/CentOS-5.7-i386-netboot/postinstall.sh +3 -3
- data/templates/CentOS-5.7-x86_64-netboot/postinstall.sh +1 -1
- data/templates/CentOS-6.0-i386-netboot/definition.rb +2 -2
- data/templates/CentOS-6.0-i386-netboot/postinstall.sh +2 -2
- data/templates/CentOS-6.0-i386/definition.rb +2 -2
- data/templates/CentOS-6.0-i386/postinstall.sh +2 -2
- data/templates/CentOS-6.0-x86_64-minimal/definition.rb +2 -2
- data/templates/CentOS-6.0-x86_64-minimal/postinstall.sh +4 -17
- data/templates/CentOS-6.0-x86_64-netboot/definition.rb +2 -2
- data/templates/CentOS-6.0-x86_64-netboot/postinstall.sh +2 -2
- data/templates/CentOS-6.0-x86_64/definition.rb +2 -2
- data/templates/CentOS-6.0-x86_64/postinstall.sh +2 -2
- data/templates/Debian-5.0.8-amd64-netboot/definition.rb +1 -1
- data/templates/Debian-5.0.8-amd64-netboot/postinstall.sh +1 -1
- data/templates/Debian-5.0.8-i386-netboot/definition.rb +1 -1
- data/templates/Debian-5.0.8-i386-netboot/postinstall.sh +1 -1
- data/templates/{Debian-6.0.3-amd64-netboot → Debian-6.0.2-amd64-netboot}/definition.rb +4 -4
- data/templates/{ubuntu-11.10-server-amd64-ishaya → Debian-6.0.2-amd64-netboot}/postinstall.sh +23 -42
- data/templates/{Debian-6.0.3-amd64-netboot → Debian-6.0.2-amd64-netboot}/preseed.cfg +0 -0
- data/templates/{Debian-6.0.3-i386-netboot → Debian-6.0.2-i386-netboot}/definition.rb +4 -4
- data/templates/{Debian-6.0.3-i386-netboot → Debian-6.0.2-i386-netboot}/postinstall.sh +1 -1
- data/templates/{Debian-6.0.3-i386-netboot → Debian-6.0.2-i386-netboot}/preseed.cfg +0 -0
- data/templates/Fedora-14-amd64-netboot/definition.rb +2 -2
- data/templates/Fedora-14-amd64-netboot/postinstall.sh +2 -2
- data/templates/Fedora-14-amd64/definition.rb +2 -2
- data/templates/Fedora-14-amd64/postinstall.sh +2 -2
- data/templates/Fedora-14-i386-netboot/definition.rb +2 -2
- data/templates/Fedora-14-i386-netboot/postinstall.sh +2 -2
- data/templates/Fedora-14-i386/definition.rb +2 -2
- data/templates/Fedora-14-i386/postinstall.sh +2 -2
- data/templates/Fedora-15-i386-netboot/definition.rb +2 -2
- data/templates/Fedora-15-i386/definition.rb +3 -3
- data/templates/Sysrescuecd-2.0.0-experimental/definition.rb +1 -1
- data/templates/archlinux-i386-netboot/aif.cfg +14 -8
- data/templates/archlinux-i386-netboot/definition.rb +7 -4
- data/templates/archlinux-i386-netboot/postinstall.sh +17 -5
- data/templates/archlinux-i386-netboot/postinstall2.sh +1 -3
- data/templates/archlinux-i386/definition.rb +4 -4
- data/templates/archlinux-i386/postinstall.sh +1 -1
- data/templates/archlinux-x86_64-netboot/aif.cfg +14 -8
- data/templates/archlinux-x86_64-netboot/definition.rb +7 -4
- data/templates/archlinux-x86_64-netboot/postinstall.sh +16 -1
- data/templates/archlinux-x86_64-netboot/postinstall2.sh +1 -3
- data/templates/archlinux-x86_64/definition.rb +2 -2
- data/templates/archlinux-x86_64/postinstall.sh +1 -1
- data/templates/freebsd-8.2-experimental/definition.rb +1 -1
- data/templates/freebsd-8.2-pcbsd-i386-netboot/definition.rb +2 -5
- data/templates/freebsd-8.2-pcbsd-i386-netboot/postinstall.sh +1 -1
- data/templates/freebsd-8.2-pcbsd-i386/definition.rb +3 -4
- data/templates/freebsd-8.2-pcbsd-i386/postinstall.sh +1 -1
- data/templates/gentoo-latest-i386-experimental/definition.rb +7 -7
- data/templates/gentoo-latest-i386-experimental/postinstall.sh +1 -1
- data/templates/openSUSE-11.4-DVD-i586/postinstall.sh +1 -1
- data/templates/openSUSE-11.4-DVD-x86_64/postinstall.sh +1 -1
- data/templates/openSUSE-11.4-NET-i586/postinstall.sh +1 -1
- data/templates/openSUSE-11.4-NET-x86_64/postinstall.sh +1 -1
- data/templates/openindiana-148-ai-x86/definition.rb +3 -3
- data/templates/openindiana-148-ai-x86/postinstall.sh +1 -1
- data/templates/opensuse-11.4-i386-experimental/definition.rb +1 -1
- data/templates/opensuse-11.4-i386-experimental/postinstall.sh +1 -1
- data/templates/solaris-11-express-i386/definition.rb +3 -3
- data/templates/solaris-11-express-i386/postinstall.sh +1 -1
- data/templates/ubuntu-10.04.2-amd64-netboot/definition.rb +1 -1
- data/templates/ubuntu-10.04.2-amd64-netboot/postinstall.sh +1 -1
- data/templates/ubuntu-10.04.2-server-i386-netboot/definition.rb +1 -1
- data/templates/ubuntu-10.04.2-server-i386-netboot/postinstall.sh +1 -1
- data/templates/ubuntu-10.04.3-server-amd64-alt/definition.rb +6 -6
- data/templates/ubuntu-10.04.3-server-amd64-alt/postinstall.sh +1 -1
- data/templates/ubuntu-10.04.3-server-amd64/base.sh +11 -0
- data/templates/ubuntu-10.04.3-server-amd64/chef.sh +2 -0
- data/templates/ubuntu-10.04.3-server-amd64/cleanup.sh +19 -0
- data/templates/ubuntu-10.04.3-server-amd64/definition.rb +19 -11
- data/templates/ubuntu-10.04.3-server-amd64/preseed.cfg +4 -4
- data/templates/ubuntu-10.04.3-server-amd64/puppet.sh +1 -0
- data/templates/ubuntu-10.04.3-server-amd64/ruby.sh +24 -0
- data/templates/ubuntu-10.04.3-server-amd64/vagrant.sh +27 -0
- data/templates/ubuntu-10.04.3-server-amd64/virtualbox.sh +12 -0
- data/templates/ubuntu-10.04.3-server-i386/postinstall.sh +1 -1
- data/templates/ubuntu-10.10-server-amd64-netboot/definition.rb +1 -1
- data/templates/ubuntu-10.10-server-amd64-netboot/postinstall.sh +1 -1
- data/templates/ubuntu-10.10-server-amd64/base.sh +11 -0
- data/templates/ubuntu-10.10-server-amd64/chef.sh +2 -0
- data/templates/ubuntu-10.10-server-amd64/cleanup.sh +19 -0
- data/templates/ubuntu-10.10-server-amd64/definition.rb +20 -8
- data/templates/ubuntu-10.10-server-amd64/postinstall.sh +1 -1
- data/templates/ubuntu-10.10-server-amd64/preseed.cfg +5 -5
- data/templates/ubuntu-10.10-server-amd64/puppet.sh +1 -0
- data/templates/ubuntu-10.10-server-amd64/ruby.sh +24 -0
- data/templates/ubuntu-10.10-server-amd64/vagrant.sh +27 -0
- data/templates/ubuntu-10.10-server-amd64/virtualbox.sh +12 -0
- data/templates/ubuntu-10.10-server-i386-netboot/definition.rb +1 -1
- data/templates/ubuntu-10.10-server-i386-netboot/postinstall.sh +1 -1
- data/templates/ubuntu-10.10-server-i386/definition.rb +1 -1
- data/templates/ubuntu-10.10-server-i386/postinstall.sh +1 -1
- data/templates/ubuntu-11.04-server-amd64/apt-upgrade.sh +4 -0
- data/templates/ubuntu-11.04-server-amd64/chef.sh +1 -0
- data/templates/ubuntu-11.04-server-amd64/definition.rb +32 -9
- data/templates/ubuntu-11.04-server-amd64/network-cleanup.sh +14 -0
- data/templates/ubuntu-11.04-server-amd64/nfs-client.sh +3 -0
- data/templates/ubuntu-11.04-server-amd64/puppet.sh +1 -0
- data/templates/ubuntu-11.04-server-amd64/remove-build-essentials.sh +3 -0
- data/templates/ubuntu-11.04-server-amd64/ruby.sh +29 -0
- data/templates/ubuntu-11.04-server-amd64/ssh-keys.sh +7 -0
- data/templates/ubuntu-11.04-server-amd64/sudo.sh +4 -0
- data/templates/ubuntu-11.04-server-amd64/timestamp.sh +1 -0
- data/templates/ubuntu-11.04-server-amd64/vbox_additions.sh +11 -0
- data/templates/ubuntu-11.04-server-amd64/zero-disk.sh +3 -0
- data/templates/ubuntu-11.04-server-i386/definition.rb +2 -2
- data/templates/ubuntu-11.04-server-i386/postinstall.sh +1 -1
- data/templates/ubuntu-8.04.4-server-amd64/definition.rb +1 -2
- data/templates/ubuntu-8.04.4-server-amd64/postinstall.sh +7 -8
- data/templates/ubuntu-8.04.4-server-amd64/preseed.cfg +1 -0
- data/templates/ubuntu-8.04.4-server-i386/definition.rb +2 -2
- data/templates/ubuntu-8.04.4-server-i386/postinstall.sh +3 -25
- data/templates/windows-2008R2-amd64/cygwin-setup.exe +0 -0
- data/templates/windows-2008R2-amd64/definition.rb +1 -1
- data/templates/windows-2008R2-amd64/install-winrm.bat +0 -2
- data/templates/windows-2008R2-amd64/postinstall.sh +1 -1
- data/templates/windows-2008R2-amd64/win7/Autounattend.xml +180 -0
- data/test/build_test.rb +50 -0
- data/test/definition_test.rb +11 -0
- data/test/definitions/test_definition/_test_me.sh +1 -0
- data/test/definitions/test_definition/autorun0 +3 -0
- data/test/definitions/test_definition/definition.rb +27 -0
- data/test/environment_test.rb +67 -0
- data/validation/features/steps/ssh_steps.rb +52 -52
- data/validation/vagrant.feature +64 -48
- data/veewee.gemspec +14 -9
- metadata +243 -213
- data/lib/veewee/command/basebox.rb +0 -63
- data/lib/veewee/command/basebox_build.rb +0 -32
- data/lib/veewee/command/basebox_define.rb +0 -28
- data/lib/veewee/command/basebox_destroy.rb +0 -22
- data/lib/veewee/command/basebox_export.rb +0 -22
- data/lib/veewee/command/basebox_list.rb +0 -23
- data/lib/veewee/command/basebox_ostypes.rb +0 -23
- data/lib/veewee/command/basebox_templates.rb +0 -23
- data/lib/veewee/command/basebox_undefine.rb +0 -22
- data/lib/veewee/command/basebox_validate.rb +0 -26
- data/lib/veewee/export.rb +0 -81
- data/lib/veewee/scancode.rb +0 -151
- data/lib/veewee/session.rb +0 -907
- data/lib/veewee/shell.rb +0 -54
- data/lib/veewee/ssh.rb +0 -193
- data/lib/veewee/transaction.rb +0 -122
- data/lib/veewee/utils.rb +0 -26
- data/lib/veewee/web.rb +0 -48
- data/templates/CentOS-6.1-x86_64-minimal/definition.rb +0 -15
- data/templates/CentOS-6.1-x86_64-minimal/ks.cfg +0 -37
- data/templates/CentOS-6.1-x86_64-minimal/postinstall.sh +0 -50
- data/templates/CentOS-6.2-x86_64-minimal/definition.rb +0 -15
- data/templates/CentOS-6.2-x86_64-minimal/ks.cfg +0 -37
- data/templates/CentOS-6.2-x86_64-minimal/postinstall.sh +0 -50
- data/templates/Debian-6.0.3-amd64-netboot/postinstall.sh +0 -80
- data/templates/Fedora-15-x86_64-netboot/definition.rb +0 -29
- data/templates/Fedora-15-x86_64-netboot/ks.cfg +0 -64
- data/templates/Fedora-15-x86_64-netboot/postinstall.sh +0 -33
- data/templates/Fedora-16-i386/definition.rb +0 -17
- data/templates/Fedora-16-i386/ks.cfg +0 -72
- data/templates/Fedora-16-i386/postinstall.sh +0 -35
- data/templates/Fedora-16-x86_64/definition.rb +0 -17
- data/templates/Fedora-16-x86_64/ks.cfg +0 -72
- data/templates/Fedora-16-x86_64/postinstall.sh +0 -35
- data/templates/SLES-11-SP1-DVD-i586-GM/autoinst_de.xml +0 -1127
- data/templates/SLES-11-SP1-DVD-i586-GM/autoinst_en.xml +0 -1127
- data/templates/SLES-11-SP1-DVD-i586-GM/definition.rb +0 -37
- data/templates/SLES-11-SP1-DVD-i586-GM/postinstall.sh +0 -43
- data/templates/SLES-11-SP1-DVD-x86_64-GM/autoinst_de.xml +0 -1171
- data/templates/SLES-11-SP1-DVD-x86_64-GM/autoinst_en.xml +0 -1171
- data/templates/SLES-11-SP1-DVD-x86_64-GM/definition.rb +0 -37
- data/templates/SLES-11-SP1-DVD-x86_64-GM/postinstall.sh +0 -43
- data/templates/funtoo-latest-generic_64-stable/definition.rb +0 -34
- data/templates/funtoo-latest-generic_64-stable/postinstall.sh +0 -177
- data/templates/funtoo-latest-generic_64-stable/postinstall2.sh +0 -83
- data/templates/gentoo-latest-x86_64-experimental/definition.rb +0 -34
- data/templates/gentoo-latest-x86_64-experimental/postinstall.sh +0 -214
- data/templates/openSUSE-12.1-DVD+NET-i586/autoinst_de.xml +0 -1483
- data/templates/openSUSE-12.1-DVD+NET-i586/autoinst_en.xml +0 -1483
- data/templates/openSUSE-12.1-DVD+NET-i586/definition.rb +0 -44
- data/templates/openSUSE-12.1-DVD+NET-i586/postinstall.sh +0 -43
- data/templates/openSUSE-12.1-DVD+NET-x86_64/autoinst_de.xml +0 -1727
- data/templates/openSUSE-12.1-DVD+NET-x86_64/autoinst_en.xml +0 -1727
- data/templates/openSUSE-12.1-DVD+NET-x86_64/definition.rb +0 -44
- data/templates/openSUSE-12.1-DVD+NET-x86_64/postinstall.sh +0 -43
- data/templates/openbsd50_amd64/README +0 -28
- data/templates/openbsd50_amd64/definition.rb +0 -84
- data/templates/openbsd50_amd64/postinstall.sh +0 -81
- data/templates/openbsd50_i386/.definition.rb.swp +0 -0
- data/templates/openbsd50_i386/README +0 -28
- data/templates/openbsd50_i386/definition.rb +0 -84
- data/templates/openbsd50_i386/postinstall.sh +0 -80
- data/templates/scientificlinux-6.1-i386-netboot/definition.rb +0 -16
- data/templates/scientificlinux-6.1-i386-netboot/ks.cfg +0 -53
- data/templates/scientificlinux-6.1-i386-netboot/postinstall.sh +0 -30
- data/templates/scientificlinux-6.1-x86_64-netboot/definition.rb +0 -16
- data/templates/scientificlinux-6.1-x86_64-netboot/ks.cfg +0 -53
- data/templates/scientificlinux-6.1-x86_64-netboot/postinstall.sh +0 -30
- data/templates/ubuntu-10.04.3-server-amd64/postinstall.sh +0 -90
- data/templates/ubuntu-11.04-server-amd64/postinstall.sh +0 -96
- data/templates/ubuntu-11.10-server-amd64-ishaya/definition.rb +0 -24
- data/templates/ubuntu-11.10-server-amd64-ishaya/preseed.cfg +0 -87
- data/templates/ubuntu-11.10-server-amd64-ruby192/definition.rb +0 -24
- data/templates/ubuntu-11.10-server-amd64-ruby192/postinstall.sh +0 -90
- data/templates/ubuntu-11.10-server-amd64-ruby192/preseed.cfg +0 -87
- data/templates/ubuntu-11.10-server-amd64/definition.rb +0 -35
- data/templates/ubuntu-11.10-server-amd64/postinstall.sh +0 -88
- data/templates/ubuntu-11.10-server-amd64/preseed.cfg +0 -87
- data/templates/ubuntu-11.10-server-i386/definition.rb +0 -35
- data/templates/ubuntu-11.10-server-i386/postinstall.sh +0 -88
- data/templates/ubuntu-11.10-server-i386/preseed.cfg +0 -87
- data/templates/windows-2008R1-serverstandard-amd64/Autounattend.xml +0 -146
- data/templates/windows-2008R1-serverstandard-amd64/README.md +0 -134
- data/templates/windows-2008R1-serverstandard-amd64/cygwin-setup.exe +0 -0
- data/templates/windows-2008R1-serverstandard-amd64/definition.rb +0 -114
- data/templates/windows-2008R1-serverstandard-amd64/install-cygwin-sshd.bat +0 -40
- data/templates/windows-2008R1-serverstandard-amd64/install-guest-additions.bat +0 -5
- data/templates/windows-2008R1-serverstandard-amd64/install-winrm.bat +0 -14
- data/templates/windows-2008R1-serverstandard-amd64/oracle-cert.cer +0 -0
- data/templates/windows-2008R1-serverstandard-amd64/postinstall.sh +0 -74
- data/templates/windows-2008R1-serverstandard-amd64/sudo +0 -2
- data/templates/windows-2008R1-serverstandard-amd64/winrm.rb +0 -8
- data/templates/windows-2008R2-serverstandard-amd64/Autounattend.xml +0 -147
- data/templates/windows-2008R2-serverstandard-amd64/README.md +0 -142
- data/templates/windows-2008R2-serverstandard-amd64/definition.rb +0 -44
- data/templates/windows-2008R2-serverstandard-amd64/install-cygwin-sshd.bat +0 -41
- data/templates/windows-2008R2-serverstandard-amd64/install-winrm.bat +0 -11
- data/templates/windows-2008R2-serverstandard-amd64/oracle-cert.cer +0 -0
- data/templates/windows-2008R2-serverstandard-amd64/postinstall.sh +0 -74
- data/templates/windows-7-enterprise-amd64/Autounattend.xml +0 -149
- data/templates/windows-7-enterprise-amd64/README.md +0 -52
- data/templates/windows-7-enterprise-amd64/definition.rb +0 -39
- data/templates/windows-7-enterprise-amd64/install-cygwin-sshd.bat +0 -40
- data/templates/windows-7-enterprise-amd64/install-winrm.bat +0 -14
- data/templates/windows-7-enterprise-amd64/oracle-cert.cer +0 -0
- data/templates/windows-7-enterprise-amd64/postinstall.sh +0 -74
- data/templates/windows-7-enterprise-i386/Autounattend.xml +0 -151
- data/templates/windows-7-enterprise-i386/README.md +0 -169
- data/templates/windows-7-enterprise-i386/definition.rb +0 -40
- data/templates/windows-7-enterprise-i386/install-cygwin-sshd.bat +0 -40
- data/templates/windows-7-enterprise-i386/install-winrm.bat +0 -14
- data/templates/windows-7-enterprise-i386/oracle-cert.cer +0 -0
- data/templates/windows-7-enterprise-i386/postinstall.sh +0 -74
- data/templates/windows-7-premium-amd64/Autounattend.xml +0 -152
- data/templates/windows-7-premium-amd64/README.md +0 -171
- data/templates/windows-7-premium-amd64/definition.rb +0 -38
- data/templates/windows-7-premium-amd64/install-chefclient.bat +0 -44
- data/templates/windows-7-premium-amd64/install-winrm.bat +0 -11
- data/templates/windows-7-premium-amd64/oracle-cert.cer +0 -0
- data/templates/windows-7-premium-amd64/postinstall.sh +0 -124
- data/templates/windows-7-premium-amd64/winrm.rb +0 -8
- data/templates/windows-7-professional-amd64/Autounattend.xml +0 -152
- data/templates/windows-7-professional-amd64/README.md +0 -171
- data/templates/windows-7-professional-amd64/definition.rb +0 -41
- data/templates/windows-7-professional-amd64/install-cygwin-sshd.bat +0 -40
- data/templates/windows-7-professional-amd64/install-winrm.bat +0 -14
- data/templates/windows-7-professional-amd64/oracle-cert.cer +0 -0
- data/templates/windows-7-professional-amd64/postinstall.sh +0 -74
- data/templates/windows-7-ultimate-amd64/Autounattend.xml +0 -152
- data/templates/windows-7-ultimate-amd64/README.md +0 -89
- data/templates/windows-7-ultimate-amd64/definition.rb +0 -41
- data/templates/windows-7-ultimate-amd64/install-cygwin-sshd.bat +0 -40
- data/templates/windows-7-ultimate-amd64/install-winrm.bat +0 -14
- data/templates/windows-7-ultimate-amd64/oracle-cert.cer +0 -0
- data/templates/windows-7-ultimate-amd64/postinstall.sh +0 -74
- data/templates/windows-7sp1-ultimate-amd64/Autounattend.xml +0 -152
- data/templates/windows-7sp1-ultimate-amd64/README.md +0 -89
- data/templates/windows-7sp1-ultimate-amd64/definition.rb +0 -42
- data/templates/windows-7sp1-ultimate-amd64/install-cygwin-sshd.bat +0 -40
- data/templates/windows-7sp1-ultimate-amd64/install-winrm.bat +0 -14
- data/templates/windows-7sp1-ultimate-amd64/oracle-cert.cer +0 -0
- data/templates/windows-7sp1-ultimate-amd64/postinstall.sh +0 -74
- data/templates/windows-8-preview-dev-amd64/Autounattend.xml +0 -140
- data/templates/windows-8-preview-dev-amd64/README.md +0 -134
- data/templates/windows-8-preview-dev-amd64/cygwin-setup.exe +0 -0
- data/templates/windows-8-preview-dev-amd64/definition.rb +0 -114
- data/templates/windows-8-preview-dev-amd64/install-cygwin-sshd.bat +0 -38
- data/templates/windows-8-preview-dev-amd64/install-winrm.bat +0 -11
- data/templates/windows-8-preview-dev-amd64/oracle-cert.cer +0 -0
- data/templates/windows-8-preview-dev-amd64/postinstall.sh +0 -122
- data/templates/windows-8-preview-dev-amd64/winrm.rb +0 -8
- data/trials/docu-vbox.txt +0 -83
- data/trials/f.rb +0 -29
- data/trials/t.rb +0 -15
@@ -0,0 +1,87 @@
|
|
1
|
+
require 'pathname'
|
2
|
+
module Veewee
|
3
|
+
module Builder
|
4
|
+
module Virtualbox
|
5
|
+
module BuilderHelper
|
6
|
+
|
7
|
+
# Shellutil.execute("vagrant package --base #{vmname} --include /tmp/Vagrantfile --output /tmp/#{vmname}.box", {:progress => "on"})
|
8
|
+
|
9
|
+
def export_vagrant(box_name,options)
|
10
|
+
definition=env.get_definition(box_name)
|
11
|
+
box=get_box(box_name)
|
12
|
+
|
13
|
+
#Check if box already exists
|
14
|
+
unless box.exists?
|
15
|
+
env.ui.info "#{name} is not found, maybe you need to build it first?"
|
16
|
+
exit
|
17
|
+
end
|
18
|
+
#We need to shutdown first
|
19
|
+
if box.raw.state==:running
|
20
|
+
env.ui.info "Vagrant requires the box to be shutdown, before it can export"
|
21
|
+
env.ui.info "Sudo also needs to work for user #{definition.ssh_user}"
|
22
|
+
env.ui.info "Performing a clean shutdown now."
|
23
|
+
|
24
|
+
ssh_exec("localhost","sudo #{definition.shutdown_cmd}",ssh_options(definition))
|
25
|
+
|
26
|
+
#Wait for state poweroff
|
27
|
+
while (box.raw.state==:running) do
|
28
|
+
env.ui.info ".",{:new_line => false}
|
29
|
+
sleep 1
|
30
|
+
end
|
31
|
+
env.ui.info
|
32
|
+
env.ui.info "Machine #{name} is powered off cleanly"
|
33
|
+
end
|
34
|
+
|
35
|
+
#Vagrant requires a relative path for output of boxes
|
36
|
+
|
37
|
+
#4.0.x. not using boxes as a subdir
|
38
|
+
boxdir=Pathname.new(Dir.pwd)
|
39
|
+
|
40
|
+
full_path=File.join(boxdir,box.name+".box")
|
41
|
+
path1=Pathname.new(full_path)
|
42
|
+
path2=Pathname.new(Dir.pwd)
|
43
|
+
box_path=path1.relative_path_from(path2).to_s
|
44
|
+
|
45
|
+
if File.exists?("#{box_path}")
|
46
|
+
env.ui.info "box #{name}.box already exists"
|
47
|
+
exit
|
48
|
+
end
|
49
|
+
|
50
|
+
env.ui.info "Excuting vagrant voodoo:"
|
51
|
+
export_command="vagrant package --base '#{box_name}' --output '#{box_path}'"
|
52
|
+
env.ui.info "#{export_command}"
|
53
|
+
shell_exec("#{export_command}") #hmm, needs to get the gem_home set?
|
54
|
+
env.ui.info ""
|
55
|
+
|
56
|
+
#add_ssh_nat_mapping back!!!!
|
57
|
+
#vagrant removes the mapping
|
58
|
+
#we need to restore it in order to be able to login again
|
59
|
+
box.add_ssh_nat_mapping(definition)
|
60
|
+
|
61
|
+
env.ui.info "To import it into vagrant type:"
|
62
|
+
env.ui.info "vagrant box add '#{box_name}' '#{box_path}'"
|
63
|
+
env.ui.info ""
|
64
|
+
env.ui.info "To use it:"
|
65
|
+
env.ui.info "vagrant init '#{box_name}'"
|
66
|
+
env.ui.info "vagrant up"
|
67
|
+
env.ui.info "vagrant ssh"
|
68
|
+
end
|
69
|
+
|
70
|
+
end #Module
|
71
|
+
end #Module
|
72
|
+
end #Module
|
73
|
+
end #Module
|
74
|
+
|
75
|
+
|
76
|
+
# #currently vagrant has a problem with the machine up, it calculates the wrong port to ssh to poweroff the system
|
77
|
+
# thebox.execute("shutdown -h now")
|
78
|
+
# thebox.wait_for_state("poweroff")
|
79
|
+
|
80
|
+
# Shellutil.execute("echo 'Vagrant::Config.run do |config|' > /tmp/Vagrantfile")
|
81
|
+
# Shellutil.execute("echo ' config.ssh.forwarded_port_key = \"ssh\"' >> /tmp/Vagrantfile")
|
82
|
+
# Shellutil.execute("echo ' config.raw.forward_port(\"ssh\",22,#{host_port})' >> /tmp/Vagrantfile")
|
83
|
+
# Shellutil.execute("echo 'end' >> /tmp/Vagrantfile")
|
84
|
+
|
85
|
+
|
86
|
+
#vagrant export disables the machine
|
87
|
+
# thebox.ssh_enable_vmachine({:hostport => host_port , :guestport => 22} )
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Veewee
|
2
|
+
module Builder
|
3
|
+
module Virtualbox
|
4
|
+
module BuilderHelper
|
5
|
+
|
6
|
+
def validate_vagrant(box_name,options)
|
7
|
+
require 'cucumber'
|
8
|
+
|
9
|
+
require 'cucumber/rspec/disable_option_parser'
|
10
|
+
require 'cucumber/cli/main'
|
11
|
+
|
12
|
+
ENV['veewee_user']=options[:user]
|
13
|
+
feature_path=File.join(File.dirname(__FILE__),"..","..","..","..","..","validation","vagrant.feature")
|
14
|
+
|
15
|
+
features=Array.new
|
16
|
+
features[0]=feature_path
|
17
|
+
|
18
|
+
begin
|
19
|
+
# The dup is to keep ARGV intact, so that tools like ruby-debug can respawn.
|
20
|
+
failure = Cucumber::Cli::Main.execute(features.dup)
|
21
|
+
Kernel.exit(failure ? 1 : 0)
|
22
|
+
rescue SystemExit => e
|
23
|
+
Kernel.exit(e.status)
|
24
|
+
rescue Exception => e
|
25
|
+
env.ui.error("#{e.message} (#{e.class})")
|
26
|
+
env.ui.error(e.backtrace.join("\n"))
|
27
|
+
Kernel.exit(1)
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end #Module
|
32
|
+
|
33
|
+
end #Module
|
34
|
+
end #Module
|
35
|
+
end #Module
|
@@ -0,0 +1,137 @@
|
|
1
|
+
require 'veewee/builder/core/box'
|
2
|
+
require 'veewee/builder/core/box/vnc'
|
3
|
+
|
4
|
+
require 'veewee/builder/vmfusion/helper/template'
|
5
|
+
require 'veewee/builder/vmfusion/helper/create'
|
6
|
+
require 'veewee/builder/vmfusion/helper/export_ova'
|
7
|
+
require 'veewee/util/tcp'
|
8
|
+
|
9
|
+
|
10
|
+
module Veewee
|
11
|
+
module Builder
|
12
|
+
module Vmfusion
|
13
|
+
class Box < Veewee::Builder::Core::Box
|
14
|
+
|
15
|
+
include ::Veewee::Builder::Vmfusion::BoxHelper
|
16
|
+
include ::Veewee::Builder::Core::BoxCommand
|
17
|
+
|
18
|
+
attr_reader :vnc_port
|
19
|
+
|
20
|
+
def initialize(name,env)
|
21
|
+
|
22
|
+
require 'fission'
|
23
|
+
|
24
|
+
super(name,env)
|
25
|
+
end
|
26
|
+
|
27
|
+
# When we create a new box
|
28
|
+
# We assume the box is not running
|
29
|
+
def create(definition)
|
30
|
+
|
31
|
+
@vnc_port=guess_vnc_port
|
32
|
+
create_vm(definition)
|
33
|
+
create_disk(definition)
|
34
|
+
end
|
35
|
+
|
36
|
+
def start(gui_enabled=true)
|
37
|
+
if gui_enabled
|
38
|
+
raw.start unless raw.nil?
|
39
|
+
else
|
40
|
+
raw.start({:headless => true}) unless raw.nil?
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
def stop
|
46
|
+
raw.stop unless raw.nil?
|
47
|
+
end
|
48
|
+
|
49
|
+
def halt
|
50
|
+
raw.halt unless raw.nil?
|
51
|
+
end
|
52
|
+
|
53
|
+
def shutdown
|
54
|
+
# Should be clean shutdown
|
55
|
+
raw.stop unless raw.nil?
|
56
|
+
end
|
57
|
+
|
58
|
+
def destroy
|
59
|
+
unless raw.exists?
|
60
|
+
env.ui.error "Error:: You tried to destroy a non-existing box '#{name}'"
|
61
|
+
exit -1
|
62
|
+
end
|
63
|
+
|
64
|
+
raw.halt if raw.state=="running"
|
65
|
+
::Fission::VM.delete(name)
|
66
|
+
# remove it from memory
|
67
|
+
@raw=nil
|
68
|
+
end
|
69
|
+
|
70
|
+
# Check if box is running
|
71
|
+
def ready?
|
72
|
+
return false if raw.nil?
|
73
|
+
return raw.running?
|
74
|
+
end
|
75
|
+
|
76
|
+
# Check if the box already exists
|
77
|
+
def exists?
|
78
|
+
return raw.exists?
|
79
|
+
end
|
80
|
+
|
81
|
+
# Get the IP address of the box
|
82
|
+
def ip_address
|
83
|
+
return raw.ip_address
|
84
|
+
end
|
85
|
+
|
86
|
+
# Type on the console
|
87
|
+
def console_type(sequence,type_options={})
|
88
|
+
vnc_type(sequence,"localhost",vnc_display_port)
|
89
|
+
|
90
|
+
# Once this is over, we can remove the vnc port from the config file
|
91
|
+
remove_vnc_port
|
92
|
+
end
|
93
|
+
|
94
|
+
# This tries to guess a port for the VNC Display
|
95
|
+
def guess_vnc_port
|
96
|
+
min_port=5920
|
97
|
+
max_port=6000
|
98
|
+
guessed_port=nil
|
99
|
+
|
100
|
+
for port in (min_port..max_port)
|
101
|
+
unless is_tcp_port_open?("127.0.0.1", port)
|
102
|
+
guessed_port=port
|
103
|
+
break
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
if guessed_port.nil?
|
108
|
+
env.ui.info "No free VNC port available: tried #{min_port}..#{max_port}"
|
109
|
+
exit -1
|
110
|
+
else
|
111
|
+
env.ui.info "Found VNC port #{guessed_port} available"
|
112
|
+
end
|
113
|
+
|
114
|
+
return guessed_port
|
115
|
+
end
|
116
|
+
|
117
|
+
def vnc_display_port
|
118
|
+
vnc_port - 5900
|
119
|
+
end
|
120
|
+
|
121
|
+
def remove_vnc_port
|
122
|
+
env.ui.info "Removing vnc_port from #{raw.vmx_path}"
|
123
|
+
lines=File.readlines(raw.vmx_path).reject{|l| l =~ /^RemoteDisplay.vnc/}
|
124
|
+
File.open(raw.vmx_path, 'w') do |f|
|
125
|
+
f.puts lines
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
private
|
130
|
+
def raw
|
131
|
+
@raw=::Fission::VM.new(name)
|
132
|
+
end
|
133
|
+
|
134
|
+
end # End Class
|
135
|
+
end # End Module
|
136
|
+
end # End Module
|
137
|
+
end # End Module
|
@@ -0,0 +1,78 @@
|
|
1
|
+
require 'veewee/builder/core/builder'
|
2
|
+
require 'veewee/builder/vmfusion/helper/validate_vmfusion'
|
3
|
+
|
4
|
+
|
5
|
+
module Veewee
|
6
|
+
module Builder
|
7
|
+
module Vmfusion
|
8
|
+
class Builder < Veewee::Builder::Core::Builder
|
9
|
+
|
10
|
+
include ::Veewee::Builder::Vmfusion::BuilderHelper
|
11
|
+
|
12
|
+
|
13
|
+
def check_requirements
|
14
|
+
#unless gem_available?("fission")
|
15
|
+
#raise ::Veewee::Error, "The Vmfusion Builder requires the gem 'fission' to be installed\n"+ "gem install fission"
|
16
|
+
#end
|
17
|
+
end
|
18
|
+
|
19
|
+
def build_info
|
20
|
+
info=super
|
21
|
+
command="/Library/Application Support/VMware Fusion/vmrun"
|
22
|
+
output=IO.popen("#{command.shellescape}").readlines
|
23
|
+
info << {:filename => ".vmfusion_version",:content => output[1].split(/ /)[2..3].join.strip}
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
# Translate the definition ssh options to ssh options that can be passed to Net::Ssh calls
|
28
|
+
def ssh_options(definition)
|
29
|
+
ssh_options={
|
30
|
+
:user => definition.ssh_user,
|
31
|
+
:port => 22,
|
32
|
+
:password => definition.ssh_password,
|
33
|
+
:timeout => definition.ssh_login_timeout.to_i
|
34
|
+
}
|
35
|
+
return ssh_options
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
#
|
40
|
+
|
41
|
+
# Transfer information provide by the builder to the box
|
42
|
+
#
|
43
|
+
#
|
44
|
+
def transfer_buildinfo(box,definition)
|
45
|
+
super(box,definition)
|
46
|
+
|
47
|
+
# When we get here, ssh is available and no postinstall scripts have been executed yet
|
48
|
+
# So we begin by transferring the ISO file of the vmware tools
|
49
|
+
|
50
|
+
iso_image="/Library/Application Support/VMware Fusion/isoimages/linux.iso"
|
51
|
+
iso_image="/Library/Application Support/VMware Fusion/isoimages/darwin.iso" if definition.os_type_id=~/^Darwin/
|
52
|
+
iso_image="/Library/Application Support/VMware Fusion/isoimages/freebsd.iso" if definition.os_type_id=~/^Free/
|
53
|
+
iso_image="/Library/Application Support/VMware Fusion/isoimages/windows.iso" if definition.os_type_id=~/^Win/
|
54
|
+
|
55
|
+
begin
|
56
|
+
when_ssh_login_works(box.ip_address,ssh_options(definition).merge({:timeout => definition.postinstall_timeout.to_i})) do
|
57
|
+
begin
|
58
|
+
env.logger.info "About to transfer vmware tools iso buildinfo to the box #{box.name} - #{box.ip_address} - #{ssh_options(definition)}"
|
59
|
+
ssh_transfer_file(box.ip_address,iso_image,File.basename(iso_image),ssh_options(definition))
|
60
|
+
rescue RuntimeError => ex
|
61
|
+
env.ui.error "Error transfering vmware tools iso , possible not enough permissions to write? #{ex}"
|
62
|
+
exit -1
|
63
|
+
end
|
64
|
+
end
|
65
|
+
rescue Net::SSH::AuthenticationFailed
|
66
|
+
env.ui.error "Authentication failure"
|
67
|
+
exit -1
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
end #End Class
|
76
|
+
end # End Module
|
77
|
+
end # End Module
|
78
|
+
end # End Module
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require 'erb'
|
2
|
+
|
3
|
+
module Veewee
|
4
|
+
module Builder
|
5
|
+
module Vmfusion
|
6
|
+
module BoxHelper
|
7
|
+
def create_disk(definition)
|
8
|
+
#Disk types:
|
9
|
+
# 0 : single growable virtual disk
|
10
|
+
# 1 : growable virtual disk split in 2GB files
|
11
|
+
# 2 : preallocated virtual disk
|
12
|
+
# 3 : preallocated virtual disk split in 2GB files
|
13
|
+
# 4 : preallocated ESX-type virtual disk
|
14
|
+
# 5 : compressed disk optimized for streaming
|
15
|
+
# 6 : thin provisioned virtual disk - ESX 3.x and above
|
16
|
+
disk_type=1
|
17
|
+
current_dir=FileUtils.pwd
|
18
|
+
FileUtils.chdir(vm_path)
|
19
|
+
env.ui.info "Creating disk"
|
20
|
+
command="#{fusion_path.shellescape}/vmware-vdiskmanager -c -s #{definition.disk_size}M -a lsilogic -t #{disk_type} #{name}.vmdk"
|
21
|
+
shell_results=shell_exec("#{command}",{:mute => true})
|
22
|
+
FileUtils.chdir(current_dir)
|
23
|
+
end
|
24
|
+
|
25
|
+
def fusion_os_type(type_id)
|
26
|
+
env.logger.info "Translating #{type_id} into fusion type"
|
27
|
+
fusiontype=env.config.ostypes[type_id][:fusion]
|
28
|
+
env.logger.info "Found fusion type #{fusiontype}"
|
29
|
+
return fusiontype
|
30
|
+
end
|
31
|
+
|
32
|
+
def create_vm(definition)
|
33
|
+
fusion_definition=definition.dup
|
34
|
+
|
35
|
+
fusion_definition.os_type_id=fusion_os_type(definition.os_type_id)
|
36
|
+
|
37
|
+
FileUtils.mkdir_p(vm_path)
|
38
|
+
current_dir=FileUtils.pwd
|
39
|
+
FileUtils.chdir(vm_path)
|
40
|
+
aFile = File.new(vmx_file_path, "w")
|
41
|
+
aFile.write(vmx_template(fusion_definition))
|
42
|
+
aFile.close
|
43
|
+
FileUtils.chdir(current_dir)
|
44
|
+
end
|
45
|
+
|
46
|
+
def determine_vmrun_cmd
|
47
|
+
return "#{fusion_path}/vmrun"
|
48
|
+
end
|
49
|
+
|
50
|
+
def vm_path
|
51
|
+
home=ENV['HOME']
|
52
|
+
dir="#{home}/Documents/Virtual Machines.localized/#{name}.vmwarevm"
|
53
|
+
return dir
|
54
|
+
end
|
55
|
+
|
56
|
+
def fusion_path
|
57
|
+
dir="/Library/Application Support/VMware Fusion/"
|
58
|
+
return dir
|
59
|
+
end
|
60
|
+
|
61
|
+
def vmx_file_path
|
62
|
+
return "#{vm_path}/#{name}.vmx"
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'tempfile'
|
2
|
+
|
3
|
+
module Veewee
|
4
|
+
module Builder
|
5
|
+
module Vmfusion
|
6
|
+
module BoxHelper
|
7
|
+
# This function 'exports' the box based on the definition
|
8
|
+
def export_ova(options)
|
9
|
+
debug="--X:logToConsole=true --X:logLevel=\"verbose\""
|
10
|
+
debug=""
|
11
|
+
flags="--compress=9"
|
12
|
+
|
13
|
+
# Need to check binary first
|
14
|
+
if ready?
|
15
|
+
shutdown
|
16
|
+
end
|
17
|
+
|
18
|
+
# before exporting the system needs to be shut down
|
19
|
+
|
20
|
+
# otherwise the debug log will show - The specified virtual disk needs repair
|
21
|
+
shell_exec("#{fusion_path.shellescape}/ovftool/ovftool.bin #{debug} #{flags} #{vmx_file_path.shellescape} #{name}.ova")
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'erb'
|
2
|
+
|
3
|
+
module Veewee
|
4
|
+
module Builder
|
5
|
+
module Vmfusion
|
6
|
+
|
7
|
+
module BoxHelper
|
8
|
+
class ErbBinding < OpenStruct
|
9
|
+
def get_binding
|
10
|
+
return binding()
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def vmx_template(definition)
|
15
|
+
# We only want specific variables for ERB
|
16
|
+
|
17
|
+
data = {
|
18
|
+
:cpu_count => definition.cpu_count, :memory_size => definition.memory_size,
|
19
|
+
:controller_type => "lsilogic",
|
20
|
+
:fusion_os_type => definition.os_type_id,
|
21
|
+
:mac_addres => "auto generated",
|
22
|
+
:iso_file => "#{File.join(env.config.veewee.iso_dir,definition.iso_file)}",
|
23
|
+
:box_name => name,
|
24
|
+
:vnc_port => vnc_port
|
25
|
+
}
|
26
|
+
|
27
|
+
vars = ErbBinding.new(data)
|
28
|
+
template_path=File.join(File.dirname(__FILE__),"template.vmx.erb")
|
29
|
+
template=File.open(template_path).readlines.join
|
30
|
+
erb = ERB.new(template)
|
31
|
+
vars_binding = vars.send(:get_binding)
|
32
|
+
result=erb.result(vars_binding)
|
33
|
+
return result
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|