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.
Files changed (389) hide show
  1. data/.gitignore +3 -0
  2. data/Gemfile +1 -2
  3. data/Gemfile.lock +53 -30
  4. data/License +21 -0
  5. data/README-LIB.md +2 -0
  6. data/README.md +35 -62
  7. data/Rakefile +54 -88
  8. data/bin/veewee +13 -70
  9. data/bin/veewee-kvm-old +34 -0
  10. data/bin/veewee-vagrant +55 -0
  11. data/bin/veewee-vmfusion +34 -0
  12. data/lib/fission.rb +41 -0
  13. data/lib/fission/cli.rb +76 -0
  14. data/lib/fission/command.rb +15 -0
  15. data/lib/fission/command/clone.rb +68 -0
  16. data/lib/fission/command/delete.rb +71 -0
  17. data/lib/fission/command/snapshot_create.rb +52 -0
  18. data/lib/fission/command/snapshot_list.rb +45 -0
  19. data/lib/fission/command/snapshot_revert.rb +54 -0
  20. data/lib/fission/command/start.rb +69 -0
  21. data/lib/fission/command/status.rb +31 -0
  22. data/lib/fission/command/stop.rb +49 -0
  23. data/lib/fission/command/suspend.rb +67 -0
  24. data/lib/fission/config.rb +29 -0
  25. data/lib/fission/core_ext/class.rb +5 -0
  26. data/lib/fission/core_ext/file.rb +7 -0
  27. data/lib/fission/core_ext/object.rb +112 -0
  28. data/lib/fission/error.rb +9 -0
  29. data/lib/fission/fusion.rb +17 -0
  30. data/lib/fission/leasesfile.rb +74 -0
  31. data/lib/fission/metadata.rb +39 -0
  32. data/lib/fission/response.rb +16 -0
  33. data/lib/fission/ui.rb +22 -0
  34. data/lib/fission/version.rb +3 -0
  35. data/lib/fission/vm.rb +361 -0
  36. data/lib/net/vnc/vnc.rb +341 -0
  37. data/lib/vagrant_init.rb +5 -2
  38. data/lib/veewee.rb +20 -3
  39. data/lib/veewee/builder/core/box.rb +32 -0
  40. data/lib/veewee/builder/core/box/vnc.rb +122 -0
  41. data/lib/veewee/builder/core/builder.rb +90 -0
  42. data/lib/veewee/builder/core/builder/build.rb +250 -0
  43. data/lib/veewee/builder/core/builder/iso.rb +120 -0
  44. data/lib/veewee/builder/core/builder/transaction.rb +25 -0
  45. data/lib/veewee/builder/core/builder/tunnel.rb +46 -0
  46. data/lib/veewee/builder/kvm/box.rb +130 -0
  47. data/lib/veewee/builder/kvm/builder.rb +38 -0
  48. data/lib/veewee/builder/virtualbox/box.rb +121 -0
  49. data/lib/veewee/builder/virtualbox/builder.rb +48 -0
  50. data/lib/veewee/builder/virtualbox/helper/_snapshots.rb +105 -0
  51. data/lib/veewee/builder/virtualbox/helper/_transaction.rb +135 -0
  52. data/lib/veewee/builder/virtualbox/helper/console_type.rb +62 -0
  53. data/lib/veewee/builder/virtualbox/helper/create.rb +210 -0
  54. data/lib/veewee/builder/virtualbox/helper/destroy.rb +79 -0
  55. data/lib/veewee/builder/virtualbox/helper/export_vagrant.rb +87 -0
  56. data/lib/veewee/builder/virtualbox/helper/validate_vagrant.rb +35 -0
  57. data/lib/veewee/builder/vmfusion/box.rb +137 -0
  58. data/lib/veewee/builder/vmfusion/builder.rb +78 -0
  59. data/lib/veewee/builder/vmfusion/helper/create.rb +68 -0
  60. data/lib/veewee/builder/vmfusion/helper/export_ova.rb +26 -0
  61. data/lib/veewee/builder/vmfusion/helper/template.rb +39 -0
  62. data/lib/veewee/builder/vmfusion/helper/template.vmx.erb +81 -0
  63. data/lib/veewee/builder/vmfusion/helper/validate_vmfusion.rb +37 -0
  64. data/lib/veewee/builder/vmfusion/info/export_ovf.info +103 -0
  65. data/lib/veewee/cli.rb +55 -0
  66. data/lib/veewee/command.rb +10 -20
  67. data/lib/veewee/command/base.rb +106 -0
  68. data/lib/veewee/command/group_base.rb +107 -0
  69. data/lib/veewee/command/helpers.rb +13 -0
  70. data/lib/veewee/command/kvm.rb +85 -0
  71. data/lib/veewee/command/named_base.rb +14 -0
  72. data/lib/veewee/command/vagrant.rb +108 -0
  73. data/lib/veewee/command/version.rb +13 -0
  74. data/lib/veewee/command/virtualbox.rb +86 -0
  75. data/lib/veewee/command/vmfusion.rb +113 -0
  76. data/lib/veewee/config.rb +89 -3
  77. data/lib/veewee/config/builders.rb +36 -0
  78. data/lib/veewee/config/collection.rb +82 -0
  79. data/lib/veewee/config/component.rb +19 -0
  80. data/lib/veewee/config/definition.rb +44 -0
  81. data/lib/veewee/config/ostypes.yml +165 -0
  82. data/lib/veewee/config/veewee.rb +21 -0
  83. data/lib/veewee/definition.rb +130 -0
  84. data/lib/veewee/environment.rb +367 -0
  85. data/lib/veewee/error.rb +20 -0
  86. data/lib/veewee/templates/locales/en.yml +30 -0
  87. data/lib/veewee/ui.rb +83 -0
  88. data/lib/veewee/util/scancode.rb +112 -0
  89. data/lib/veewee/util/shell.rb +42 -0
  90. data/lib/veewee/util/ssh.rb +158 -0
  91. data/lib/veewee/util/tcp.rb +88 -0
  92. data/lib/veewee/util/web.rb +63 -0
  93. data/lib/veewee/vagrant/config.rb +7 -0
  94. data/lib/veewee/version.rb +6 -1
  95. data/templates/CentOS-4.8-i386/definition.rb +3 -3
  96. data/templates/CentOS-4.8-i386/postinstall.sh +2 -2
  97. data/templates/CentOS-5.5-x86_64-netboot/definition.rb +1 -1
  98. data/templates/CentOS-5.5-x86_64-netboot/postinstall.sh +1 -1
  99. data/templates/CentOS-5.6-i386-netboot/definition.rb +3 -3
  100. data/templates/CentOS-5.6-i386-netboot/ks.cfg +2 -2
  101. data/templates/CentOS-5.6-i386-netboot/postinstall.sh +2 -2
  102. data/templates/CentOS-5.6-i386/definition.rb +2 -2
  103. data/templates/CentOS-5.6-i386/postinstall.sh +2 -2
  104. data/templates/CentOS-5.6-x86_64-netboot/definition.rb +3 -3
  105. data/templates/CentOS-5.6-x86_64-netboot/ks.cfg +1 -1
  106. data/templates/CentOS-5.6-x86_64-netboot/postinstall.sh +1 -1
  107. data/templates/CentOS-5.7-i386-netboot/postinstall.sh +3 -3
  108. data/templates/CentOS-5.7-x86_64-netboot/postinstall.sh +1 -1
  109. data/templates/CentOS-6.0-i386-netboot/definition.rb +2 -2
  110. data/templates/CentOS-6.0-i386-netboot/postinstall.sh +2 -2
  111. data/templates/CentOS-6.0-i386/definition.rb +2 -2
  112. data/templates/CentOS-6.0-i386/postinstall.sh +2 -2
  113. data/templates/CentOS-6.0-x86_64-minimal/definition.rb +2 -2
  114. data/templates/CentOS-6.0-x86_64-minimal/postinstall.sh +4 -17
  115. data/templates/CentOS-6.0-x86_64-netboot/definition.rb +2 -2
  116. data/templates/CentOS-6.0-x86_64-netboot/postinstall.sh +2 -2
  117. data/templates/CentOS-6.0-x86_64/definition.rb +2 -2
  118. data/templates/CentOS-6.0-x86_64/postinstall.sh +2 -2
  119. data/templates/Debian-5.0.8-amd64-netboot/definition.rb +1 -1
  120. data/templates/Debian-5.0.8-amd64-netboot/postinstall.sh +1 -1
  121. data/templates/Debian-5.0.8-i386-netboot/definition.rb +1 -1
  122. data/templates/Debian-5.0.8-i386-netboot/postinstall.sh +1 -1
  123. data/templates/{Debian-6.0.3-amd64-netboot → Debian-6.0.2-amd64-netboot}/definition.rb +4 -4
  124. data/templates/{ubuntu-11.10-server-amd64-ishaya → Debian-6.0.2-amd64-netboot}/postinstall.sh +23 -42
  125. data/templates/{Debian-6.0.3-amd64-netboot → Debian-6.0.2-amd64-netboot}/preseed.cfg +0 -0
  126. data/templates/{Debian-6.0.3-i386-netboot → Debian-6.0.2-i386-netboot}/definition.rb +4 -4
  127. data/templates/{Debian-6.0.3-i386-netboot → Debian-6.0.2-i386-netboot}/postinstall.sh +1 -1
  128. data/templates/{Debian-6.0.3-i386-netboot → Debian-6.0.2-i386-netboot}/preseed.cfg +0 -0
  129. data/templates/Fedora-14-amd64-netboot/definition.rb +2 -2
  130. data/templates/Fedora-14-amd64-netboot/postinstall.sh +2 -2
  131. data/templates/Fedora-14-amd64/definition.rb +2 -2
  132. data/templates/Fedora-14-amd64/postinstall.sh +2 -2
  133. data/templates/Fedora-14-i386-netboot/definition.rb +2 -2
  134. data/templates/Fedora-14-i386-netboot/postinstall.sh +2 -2
  135. data/templates/Fedora-14-i386/definition.rb +2 -2
  136. data/templates/Fedora-14-i386/postinstall.sh +2 -2
  137. data/templates/Fedora-15-i386-netboot/definition.rb +2 -2
  138. data/templates/Fedora-15-i386/definition.rb +3 -3
  139. data/templates/Sysrescuecd-2.0.0-experimental/definition.rb +1 -1
  140. data/templates/archlinux-i386-netboot/aif.cfg +14 -8
  141. data/templates/archlinux-i386-netboot/definition.rb +7 -4
  142. data/templates/archlinux-i386-netboot/postinstall.sh +17 -5
  143. data/templates/archlinux-i386-netboot/postinstall2.sh +1 -3
  144. data/templates/archlinux-i386/definition.rb +4 -4
  145. data/templates/archlinux-i386/postinstall.sh +1 -1
  146. data/templates/archlinux-x86_64-netboot/aif.cfg +14 -8
  147. data/templates/archlinux-x86_64-netboot/definition.rb +7 -4
  148. data/templates/archlinux-x86_64-netboot/postinstall.sh +16 -1
  149. data/templates/archlinux-x86_64-netboot/postinstall2.sh +1 -3
  150. data/templates/archlinux-x86_64/definition.rb +2 -2
  151. data/templates/archlinux-x86_64/postinstall.sh +1 -1
  152. data/templates/freebsd-8.2-experimental/definition.rb +1 -1
  153. data/templates/freebsd-8.2-pcbsd-i386-netboot/definition.rb +2 -5
  154. data/templates/freebsd-8.2-pcbsd-i386-netboot/postinstall.sh +1 -1
  155. data/templates/freebsd-8.2-pcbsd-i386/definition.rb +3 -4
  156. data/templates/freebsd-8.2-pcbsd-i386/postinstall.sh +1 -1
  157. data/templates/gentoo-latest-i386-experimental/definition.rb +7 -7
  158. data/templates/gentoo-latest-i386-experimental/postinstall.sh +1 -1
  159. data/templates/openSUSE-11.4-DVD-i586/postinstall.sh +1 -1
  160. data/templates/openSUSE-11.4-DVD-x86_64/postinstall.sh +1 -1
  161. data/templates/openSUSE-11.4-NET-i586/postinstall.sh +1 -1
  162. data/templates/openSUSE-11.4-NET-x86_64/postinstall.sh +1 -1
  163. data/templates/openindiana-148-ai-x86/definition.rb +3 -3
  164. data/templates/openindiana-148-ai-x86/postinstall.sh +1 -1
  165. data/templates/opensuse-11.4-i386-experimental/definition.rb +1 -1
  166. data/templates/opensuse-11.4-i386-experimental/postinstall.sh +1 -1
  167. data/templates/solaris-11-express-i386/definition.rb +3 -3
  168. data/templates/solaris-11-express-i386/postinstall.sh +1 -1
  169. data/templates/ubuntu-10.04.2-amd64-netboot/definition.rb +1 -1
  170. data/templates/ubuntu-10.04.2-amd64-netboot/postinstall.sh +1 -1
  171. data/templates/ubuntu-10.04.2-server-i386-netboot/definition.rb +1 -1
  172. data/templates/ubuntu-10.04.2-server-i386-netboot/postinstall.sh +1 -1
  173. data/templates/ubuntu-10.04.3-server-amd64-alt/definition.rb +6 -6
  174. data/templates/ubuntu-10.04.3-server-amd64-alt/postinstall.sh +1 -1
  175. data/templates/ubuntu-10.04.3-server-amd64/base.sh +11 -0
  176. data/templates/ubuntu-10.04.3-server-amd64/chef.sh +2 -0
  177. data/templates/ubuntu-10.04.3-server-amd64/cleanup.sh +19 -0
  178. data/templates/ubuntu-10.04.3-server-amd64/definition.rb +19 -11
  179. data/templates/ubuntu-10.04.3-server-amd64/preseed.cfg +4 -4
  180. data/templates/ubuntu-10.04.3-server-amd64/puppet.sh +1 -0
  181. data/templates/ubuntu-10.04.3-server-amd64/ruby.sh +24 -0
  182. data/templates/ubuntu-10.04.3-server-amd64/vagrant.sh +27 -0
  183. data/templates/ubuntu-10.04.3-server-amd64/virtualbox.sh +12 -0
  184. data/templates/ubuntu-10.04.3-server-i386/postinstall.sh +1 -1
  185. data/templates/ubuntu-10.10-server-amd64-netboot/definition.rb +1 -1
  186. data/templates/ubuntu-10.10-server-amd64-netboot/postinstall.sh +1 -1
  187. data/templates/ubuntu-10.10-server-amd64/base.sh +11 -0
  188. data/templates/ubuntu-10.10-server-amd64/chef.sh +2 -0
  189. data/templates/ubuntu-10.10-server-amd64/cleanup.sh +19 -0
  190. data/templates/ubuntu-10.10-server-amd64/definition.rb +20 -8
  191. data/templates/ubuntu-10.10-server-amd64/postinstall.sh +1 -1
  192. data/templates/ubuntu-10.10-server-amd64/preseed.cfg +5 -5
  193. data/templates/ubuntu-10.10-server-amd64/puppet.sh +1 -0
  194. data/templates/ubuntu-10.10-server-amd64/ruby.sh +24 -0
  195. data/templates/ubuntu-10.10-server-amd64/vagrant.sh +27 -0
  196. data/templates/ubuntu-10.10-server-amd64/virtualbox.sh +12 -0
  197. data/templates/ubuntu-10.10-server-i386-netboot/definition.rb +1 -1
  198. data/templates/ubuntu-10.10-server-i386-netboot/postinstall.sh +1 -1
  199. data/templates/ubuntu-10.10-server-i386/definition.rb +1 -1
  200. data/templates/ubuntu-10.10-server-i386/postinstall.sh +1 -1
  201. data/templates/ubuntu-11.04-server-amd64/apt-upgrade.sh +4 -0
  202. data/templates/ubuntu-11.04-server-amd64/chef.sh +1 -0
  203. data/templates/ubuntu-11.04-server-amd64/definition.rb +32 -9
  204. data/templates/ubuntu-11.04-server-amd64/network-cleanup.sh +14 -0
  205. data/templates/ubuntu-11.04-server-amd64/nfs-client.sh +3 -0
  206. data/templates/ubuntu-11.04-server-amd64/puppet.sh +1 -0
  207. data/templates/ubuntu-11.04-server-amd64/remove-build-essentials.sh +3 -0
  208. data/templates/ubuntu-11.04-server-amd64/ruby.sh +29 -0
  209. data/templates/ubuntu-11.04-server-amd64/ssh-keys.sh +7 -0
  210. data/templates/ubuntu-11.04-server-amd64/sudo.sh +4 -0
  211. data/templates/ubuntu-11.04-server-amd64/timestamp.sh +1 -0
  212. data/templates/ubuntu-11.04-server-amd64/vbox_additions.sh +11 -0
  213. data/templates/ubuntu-11.04-server-amd64/zero-disk.sh +3 -0
  214. data/templates/ubuntu-11.04-server-i386/definition.rb +2 -2
  215. data/templates/ubuntu-11.04-server-i386/postinstall.sh +1 -1
  216. data/templates/ubuntu-8.04.4-server-amd64/definition.rb +1 -2
  217. data/templates/ubuntu-8.04.4-server-amd64/postinstall.sh +7 -8
  218. data/templates/ubuntu-8.04.4-server-amd64/preseed.cfg +1 -0
  219. data/templates/ubuntu-8.04.4-server-i386/definition.rb +2 -2
  220. data/templates/ubuntu-8.04.4-server-i386/postinstall.sh +3 -25
  221. data/templates/windows-2008R2-amd64/cygwin-setup.exe +0 -0
  222. data/templates/windows-2008R2-amd64/definition.rb +1 -1
  223. data/templates/windows-2008R2-amd64/install-winrm.bat +0 -2
  224. data/templates/windows-2008R2-amd64/postinstall.sh +1 -1
  225. data/templates/windows-2008R2-amd64/win7/Autounattend.xml +180 -0
  226. data/test/build_test.rb +50 -0
  227. data/test/definition_test.rb +11 -0
  228. data/test/definitions/test_definition/_test_me.sh +1 -0
  229. data/test/definitions/test_definition/autorun0 +3 -0
  230. data/test/definitions/test_definition/definition.rb +27 -0
  231. data/test/environment_test.rb +67 -0
  232. data/validation/features/steps/ssh_steps.rb +52 -52
  233. data/validation/vagrant.feature +64 -48
  234. data/veewee.gemspec +14 -9
  235. metadata +243 -213
  236. data/lib/veewee/command/basebox.rb +0 -63
  237. data/lib/veewee/command/basebox_build.rb +0 -32
  238. data/lib/veewee/command/basebox_define.rb +0 -28
  239. data/lib/veewee/command/basebox_destroy.rb +0 -22
  240. data/lib/veewee/command/basebox_export.rb +0 -22
  241. data/lib/veewee/command/basebox_list.rb +0 -23
  242. data/lib/veewee/command/basebox_ostypes.rb +0 -23
  243. data/lib/veewee/command/basebox_templates.rb +0 -23
  244. data/lib/veewee/command/basebox_undefine.rb +0 -22
  245. data/lib/veewee/command/basebox_validate.rb +0 -26
  246. data/lib/veewee/export.rb +0 -81
  247. data/lib/veewee/scancode.rb +0 -151
  248. data/lib/veewee/session.rb +0 -907
  249. data/lib/veewee/shell.rb +0 -54
  250. data/lib/veewee/ssh.rb +0 -193
  251. data/lib/veewee/transaction.rb +0 -122
  252. data/lib/veewee/utils.rb +0 -26
  253. data/lib/veewee/web.rb +0 -48
  254. data/templates/CentOS-6.1-x86_64-minimal/definition.rb +0 -15
  255. data/templates/CentOS-6.1-x86_64-minimal/ks.cfg +0 -37
  256. data/templates/CentOS-6.1-x86_64-minimal/postinstall.sh +0 -50
  257. data/templates/CentOS-6.2-x86_64-minimal/definition.rb +0 -15
  258. data/templates/CentOS-6.2-x86_64-minimal/ks.cfg +0 -37
  259. data/templates/CentOS-6.2-x86_64-minimal/postinstall.sh +0 -50
  260. data/templates/Debian-6.0.3-amd64-netboot/postinstall.sh +0 -80
  261. data/templates/Fedora-15-x86_64-netboot/definition.rb +0 -29
  262. data/templates/Fedora-15-x86_64-netboot/ks.cfg +0 -64
  263. data/templates/Fedora-15-x86_64-netboot/postinstall.sh +0 -33
  264. data/templates/Fedora-16-i386/definition.rb +0 -17
  265. data/templates/Fedora-16-i386/ks.cfg +0 -72
  266. data/templates/Fedora-16-i386/postinstall.sh +0 -35
  267. data/templates/Fedora-16-x86_64/definition.rb +0 -17
  268. data/templates/Fedora-16-x86_64/ks.cfg +0 -72
  269. data/templates/Fedora-16-x86_64/postinstall.sh +0 -35
  270. data/templates/SLES-11-SP1-DVD-i586-GM/autoinst_de.xml +0 -1127
  271. data/templates/SLES-11-SP1-DVD-i586-GM/autoinst_en.xml +0 -1127
  272. data/templates/SLES-11-SP1-DVD-i586-GM/definition.rb +0 -37
  273. data/templates/SLES-11-SP1-DVD-i586-GM/postinstall.sh +0 -43
  274. data/templates/SLES-11-SP1-DVD-x86_64-GM/autoinst_de.xml +0 -1171
  275. data/templates/SLES-11-SP1-DVD-x86_64-GM/autoinst_en.xml +0 -1171
  276. data/templates/SLES-11-SP1-DVD-x86_64-GM/definition.rb +0 -37
  277. data/templates/SLES-11-SP1-DVD-x86_64-GM/postinstall.sh +0 -43
  278. data/templates/funtoo-latest-generic_64-stable/definition.rb +0 -34
  279. data/templates/funtoo-latest-generic_64-stable/postinstall.sh +0 -177
  280. data/templates/funtoo-latest-generic_64-stable/postinstall2.sh +0 -83
  281. data/templates/gentoo-latest-x86_64-experimental/definition.rb +0 -34
  282. data/templates/gentoo-latest-x86_64-experimental/postinstall.sh +0 -214
  283. data/templates/openSUSE-12.1-DVD+NET-i586/autoinst_de.xml +0 -1483
  284. data/templates/openSUSE-12.1-DVD+NET-i586/autoinst_en.xml +0 -1483
  285. data/templates/openSUSE-12.1-DVD+NET-i586/definition.rb +0 -44
  286. data/templates/openSUSE-12.1-DVD+NET-i586/postinstall.sh +0 -43
  287. data/templates/openSUSE-12.1-DVD+NET-x86_64/autoinst_de.xml +0 -1727
  288. data/templates/openSUSE-12.1-DVD+NET-x86_64/autoinst_en.xml +0 -1727
  289. data/templates/openSUSE-12.1-DVD+NET-x86_64/definition.rb +0 -44
  290. data/templates/openSUSE-12.1-DVD+NET-x86_64/postinstall.sh +0 -43
  291. data/templates/openbsd50_amd64/README +0 -28
  292. data/templates/openbsd50_amd64/definition.rb +0 -84
  293. data/templates/openbsd50_amd64/postinstall.sh +0 -81
  294. data/templates/openbsd50_i386/.definition.rb.swp +0 -0
  295. data/templates/openbsd50_i386/README +0 -28
  296. data/templates/openbsd50_i386/definition.rb +0 -84
  297. data/templates/openbsd50_i386/postinstall.sh +0 -80
  298. data/templates/scientificlinux-6.1-i386-netboot/definition.rb +0 -16
  299. data/templates/scientificlinux-6.1-i386-netboot/ks.cfg +0 -53
  300. data/templates/scientificlinux-6.1-i386-netboot/postinstall.sh +0 -30
  301. data/templates/scientificlinux-6.1-x86_64-netboot/definition.rb +0 -16
  302. data/templates/scientificlinux-6.1-x86_64-netboot/ks.cfg +0 -53
  303. data/templates/scientificlinux-6.1-x86_64-netboot/postinstall.sh +0 -30
  304. data/templates/ubuntu-10.04.3-server-amd64/postinstall.sh +0 -90
  305. data/templates/ubuntu-11.04-server-amd64/postinstall.sh +0 -96
  306. data/templates/ubuntu-11.10-server-amd64-ishaya/definition.rb +0 -24
  307. data/templates/ubuntu-11.10-server-amd64-ishaya/preseed.cfg +0 -87
  308. data/templates/ubuntu-11.10-server-amd64-ruby192/definition.rb +0 -24
  309. data/templates/ubuntu-11.10-server-amd64-ruby192/postinstall.sh +0 -90
  310. data/templates/ubuntu-11.10-server-amd64-ruby192/preseed.cfg +0 -87
  311. data/templates/ubuntu-11.10-server-amd64/definition.rb +0 -35
  312. data/templates/ubuntu-11.10-server-amd64/postinstall.sh +0 -88
  313. data/templates/ubuntu-11.10-server-amd64/preseed.cfg +0 -87
  314. data/templates/ubuntu-11.10-server-i386/definition.rb +0 -35
  315. data/templates/ubuntu-11.10-server-i386/postinstall.sh +0 -88
  316. data/templates/ubuntu-11.10-server-i386/preseed.cfg +0 -87
  317. data/templates/windows-2008R1-serverstandard-amd64/Autounattend.xml +0 -146
  318. data/templates/windows-2008R1-serverstandard-amd64/README.md +0 -134
  319. data/templates/windows-2008R1-serverstandard-amd64/cygwin-setup.exe +0 -0
  320. data/templates/windows-2008R1-serverstandard-amd64/definition.rb +0 -114
  321. data/templates/windows-2008R1-serverstandard-amd64/install-cygwin-sshd.bat +0 -40
  322. data/templates/windows-2008R1-serverstandard-amd64/install-guest-additions.bat +0 -5
  323. data/templates/windows-2008R1-serverstandard-amd64/install-winrm.bat +0 -14
  324. data/templates/windows-2008R1-serverstandard-amd64/oracle-cert.cer +0 -0
  325. data/templates/windows-2008R1-serverstandard-amd64/postinstall.sh +0 -74
  326. data/templates/windows-2008R1-serverstandard-amd64/sudo +0 -2
  327. data/templates/windows-2008R1-serverstandard-amd64/winrm.rb +0 -8
  328. data/templates/windows-2008R2-serverstandard-amd64/Autounattend.xml +0 -147
  329. data/templates/windows-2008R2-serverstandard-amd64/README.md +0 -142
  330. data/templates/windows-2008R2-serverstandard-amd64/definition.rb +0 -44
  331. data/templates/windows-2008R2-serverstandard-amd64/install-cygwin-sshd.bat +0 -41
  332. data/templates/windows-2008R2-serverstandard-amd64/install-winrm.bat +0 -11
  333. data/templates/windows-2008R2-serverstandard-amd64/oracle-cert.cer +0 -0
  334. data/templates/windows-2008R2-serverstandard-amd64/postinstall.sh +0 -74
  335. data/templates/windows-7-enterprise-amd64/Autounattend.xml +0 -149
  336. data/templates/windows-7-enterprise-amd64/README.md +0 -52
  337. data/templates/windows-7-enterprise-amd64/definition.rb +0 -39
  338. data/templates/windows-7-enterprise-amd64/install-cygwin-sshd.bat +0 -40
  339. data/templates/windows-7-enterprise-amd64/install-winrm.bat +0 -14
  340. data/templates/windows-7-enterprise-amd64/oracle-cert.cer +0 -0
  341. data/templates/windows-7-enterprise-amd64/postinstall.sh +0 -74
  342. data/templates/windows-7-enterprise-i386/Autounattend.xml +0 -151
  343. data/templates/windows-7-enterprise-i386/README.md +0 -169
  344. data/templates/windows-7-enterprise-i386/definition.rb +0 -40
  345. data/templates/windows-7-enterprise-i386/install-cygwin-sshd.bat +0 -40
  346. data/templates/windows-7-enterprise-i386/install-winrm.bat +0 -14
  347. data/templates/windows-7-enterprise-i386/oracle-cert.cer +0 -0
  348. data/templates/windows-7-enterprise-i386/postinstall.sh +0 -74
  349. data/templates/windows-7-premium-amd64/Autounattend.xml +0 -152
  350. data/templates/windows-7-premium-amd64/README.md +0 -171
  351. data/templates/windows-7-premium-amd64/definition.rb +0 -38
  352. data/templates/windows-7-premium-amd64/install-chefclient.bat +0 -44
  353. data/templates/windows-7-premium-amd64/install-winrm.bat +0 -11
  354. data/templates/windows-7-premium-amd64/oracle-cert.cer +0 -0
  355. data/templates/windows-7-premium-amd64/postinstall.sh +0 -124
  356. data/templates/windows-7-premium-amd64/winrm.rb +0 -8
  357. data/templates/windows-7-professional-amd64/Autounattend.xml +0 -152
  358. data/templates/windows-7-professional-amd64/README.md +0 -171
  359. data/templates/windows-7-professional-amd64/definition.rb +0 -41
  360. data/templates/windows-7-professional-amd64/install-cygwin-sshd.bat +0 -40
  361. data/templates/windows-7-professional-amd64/install-winrm.bat +0 -14
  362. data/templates/windows-7-professional-amd64/oracle-cert.cer +0 -0
  363. data/templates/windows-7-professional-amd64/postinstall.sh +0 -74
  364. data/templates/windows-7-ultimate-amd64/Autounattend.xml +0 -152
  365. data/templates/windows-7-ultimate-amd64/README.md +0 -89
  366. data/templates/windows-7-ultimate-amd64/definition.rb +0 -41
  367. data/templates/windows-7-ultimate-amd64/install-cygwin-sshd.bat +0 -40
  368. data/templates/windows-7-ultimate-amd64/install-winrm.bat +0 -14
  369. data/templates/windows-7-ultimate-amd64/oracle-cert.cer +0 -0
  370. data/templates/windows-7-ultimate-amd64/postinstall.sh +0 -74
  371. data/templates/windows-7sp1-ultimate-amd64/Autounattend.xml +0 -152
  372. data/templates/windows-7sp1-ultimate-amd64/README.md +0 -89
  373. data/templates/windows-7sp1-ultimate-amd64/definition.rb +0 -42
  374. data/templates/windows-7sp1-ultimate-amd64/install-cygwin-sshd.bat +0 -40
  375. data/templates/windows-7sp1-ultimate-amd64/install-winrm.bat +0 -14
  376. data/templates/windows-7sp1-ultimate-amd64/oracle-cert.cer +0 -0
  377. data/templates/windows-7sp1-ultimate-amd64/postinstall.sh +0 -74
  378. data/templates/windows-8-preview-dev-amd64/Autounattend.xml +0 -140
  379. data/templates/windows-8-preview-dev-amd64/README.md +0 -134
  380. data/templates/windows-8-preview-dev-amd64/cygwin-setup.exe +0 -0
  381. data/templates/windows-8-preview-dev-amd64/definition.rb +0 -114
  382. data/templates/windows-8-preview-dev-amd64/install-cygwin-sshd.bat +0 -38
  383. data/templates/windows-8-preview-dev-amd64/install-winrm.bat +0 -11
  384. data/templates/windows-8-preview-dev-amd64/oracle-cert.cer +0 -0
  385. data/templates/windows-8-preview-dev-amd64/postinstall.sh +0 -122
  386. data/templates/windows-8-preview-dev-amd64/winrm.rb +0 -8
  387. data/trials/docu-vbox.txt +0 -83
  388. data/trials/f.rb +0 -29
  389. data/trials/t.rb +0 -15
@@ -1,54 +0,0 @@
1
- #require 'open4'
2
-
3
- module Veewee
4
- class Shell
5
-
6
- def self.execute2(command,options = {})
7
-
8
- IO.popen("#{command}") { |f| print f }
9
- end
10
-
11
- #pty allows you to gradually see the output of a local command
12
- #http://www.shanison.com/?p=415
13
- def self.execute(command, options = {} )
14
- require "pty"
15
- begin
16
- PTY.spawn( command ) do |r, w, pid|
17
- begin
18
- r.each { }
19
- #r.each { |line| print line;}
20
-
21
- rescue Errno::EIO
22
- end
23
- end
24
- rescue PTY::ChildExited => e
25
- puts "The child process exited!"
26
- end
27
- end
28
-
29
- #occassinally fails with 'no child processes
30
- def self.execute3(command, options = {} )
31
- defaults= { :port => "22", :exitcode => "0", :user => "root"}
32
- options=defaults.merge(options)
33
-
34
- status = POpen4::popen4(command) do |stdout,stderr,stdin|
35
- stdout.each do |line|
36
- puts line
37
- end
38
- end
39
-
40
- @status=status.to_i
41
-
42
- if (@status.to_s != options[:exitcode] )
43
- if (options[:exitcode]=="*")
44
- #its a test so we don't need to worry
45
- else
46
- raise "Exitcode was not what we expected"
47
- end
48
-
49
- end
50
-
51
- end
52
-
53
- end #Class
54
- end #Module
@@ -1,193 +0,0 @@
1
- module Veewee
2
- class Ssh
3
-
4
- def self.when_ssh_login_works(ip="localhost", options = { } , &block)
5
-
6
- defaults={ :port => '22', :timeout => 200 , :user => 'vagrant', :password => 'vagrant'}
7
-
8
- options=defaults.merge(options)
9
-
10
- puts
11
- puts "Waiting for ssh login with user #{options[:user]} to sshd on port => #{options[:port]} to work"
12
-
13
- begin
14
- Timeout::timeout(options[:timeout]) do
15
- connected=false
16
- @key_auth_tried = false
17
- ssh_options = { :port => options[:port] , :password => options[:password], :paranoid => false, :timeout => options[:timeout] }
18
- while !connected do
19
- begin
20
- print "."
21
- Net::SSH.start(ip, options[:user], ssh_options) do |ssh|
22
- block.call(ip);
23
- puts ""
24
- return true
25
- end
26
- rescue Net::SSH::AuthenticationFailed
27
- options[:keys] = File.join(File.dirname(__FILE__),'./../../validation/vagrant')
28
- options.delete(:password)
29
- ssh_options = options
30
- if @key_auth_tried
31
- raise
32
- else
33
- @key_auth_tried = true
34
- retry
35
- end
36
- rescue Net::SSH::Disconnect,Errno::ECONNREFUSED, Errno::EHOSTUNREACH, Errno::ECONNABORTED, Errno::ECONNRESET, Errno::ENETUNREACH
37
- sleep 5
38
- end
39
- end
40
- end
41
- rescue Timeout::Error
42
- raise 'ssh timeout'
43
- end
44
- puts ""
45
- return false
46
- end
47
-
48
-
49
- def self.transfer_file(host,filename,destination = '.' , options = {})
50
-
51
- Net::SSH.start( host,options[:user],options ) do |ssh|
52
- puts "Transferring #{filename} to #{destination} "
53
- ssh.scp.upload!( filename, destination ) do |ch, name, sent, total|
54
- # print "\r#{destination}: #{(sent.to_f * 100 / total.to_f).to_i}%"
55
- print "."
56
-
57
- end
58
- end
59
- puts
60
- end
61
-
62
-
63
- #we need to try the actual login because vbox gives us a connect
64
- #after the machine boots
65
- def self.execute_when_tcp_available(ip="localhost", options = { } , &block)
66
-
67
- defaults={ :port => 22, :timeout => 2 , :pollrate => 5}
68
-
69
- options=defaults.merge(options)
70
-
71
- begin
72
- Timeout::timeout(options[:timeout]) do
73
- connected=false
74
- while !connected do
75
- begin
76
- puts "trying connection"
77
- s = TCPSocket.new(ip, options[:port])
78
- s.close
79
- block.call(ip);
80
- return true
81
- rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH
82
- sleep options[:pollrate]
83
- end
84
- end
85
- end
86
- rescue Timeout::Error
87
- raise 'timeout connecting to port'
88
- end
89
-
90
- return false
91
- end
92
-
93
- def self.execute(host,command, options = { :progress => "on"} )
94
- defaults= { :port => "22", :exitcode => "0", :user => "root"}
95
- options=defaults.merge(options)
96
- @pid=""
97
- @stdin=command
98
- @stdout=""
99
- @stderr=""
100
- @status=-99999
101
-
102
- puts "Executing command: #{command}"
103
-
104
- @key_auth_tried = false
105
- ssh_options = { :port => options[:port], :password => options[:password], :paranoid => false}
106
- # ssh_options[:verbose] => :debug
107
- begin
108
- Net::SSH.start(host, options[:user], ssh_options) do |ssh|
109
-
110
- # open a new channel and configure a minimal set of callbacks, then run
111
- # the event loop until the channel finishes (closes)
112
- channel = ssh.open_channel do |ch|
113
-
114
- #request pty for sudo stuff and so
115
- ch.request_pty do |ch, success|
116
- raise "Error requesting pty" unless success
117
- end
118
-
119
-
120
- ch.exec "#{command}" do |ch, success|
121
- raise "could not execute command" unless success
122
-
123
-
124
-
125
- # "on_data" is called when the process writes something to stdout
126
- ch.on_data do |c, data|
127
- @stdout+=data
128
-
129
- print data
130
-
131
- end
132
-
133
- # "on_extended_data" is called when the process writes something to stderr
134
- ch.on_extended_data do |c, type, data|
135
- @stderr+=data
136
-
137
- print data
138
-
139
- end
140
-
141
- #exit code
142
- #http://groups.google.com/group/comp.lang.ruby/browse_thread/thread/a806b0f5dae4e1e2
143
- channel.on_request("exit-status") do |ch, data|
144
- exit_code = data.read_long
145
- @status=exit_code
146
- if exit_code > 0
147
- puts "ERROR: exit code #{exit_code}"
148
- else
149
- #puts "Successfully executed"
150
- end
151
- end
152
-
153
- channel.on_request("exit-signal") do |ch, data|
154
- puts "SIGNAL: #{data.read_long}"
155
- end
156
-
157
- ch.on_close {
158
- #puts "done!"
159
- }
160
- #status=ch.exec "echo $?"
161
- end
162
- end
163
- channel.wait
164
- end
165
- rescue Net::SSH::AuthenticationFailed
166
- ssh_options[:keys] = Array.new([File.join(File.dirname(__FILE__),'./../../validation/vagrant')])
167
- ssh_options.delete(:password)
168
- ssh_options[:auth_methods] = ['publickey']
169
- if @key_auth_tried
170
- raise
171
- else
172
- @key_auth_tried = true
173
- retry
174
- end
175
- rescue Net::SSH::Disconnect, Errno::ECONNREFUSED, Errno::EHOSTUNREACH, Errno::ECONNABORTED, Errno::ECONNRESET, Errno::ENETUNREACH
176
- sleep 1
177
- end
178
-
179
- if (@status.to_s != options[:exitcode] )
180
- if (options[:exitcode]=="*")
181
- #its a test so we don't need to worry
182
- else
183
- raise "Exitcode was not what we expected"
184
- end
185
-
186
- end
187
-
188
- end
189
-
190
-
191
-
192
- end #Class
193
- end #Module
@@ -1,122 +0,0 @@
1
- module Veewee
2
- class Transaction
3
-
4
- def transaction(name,params, &block)
5
- end
6
-
7
- def transaction2(name,options= { :checksum => "nochecksum"}, &block)
8
- if snapshot_exists(@vmname,name+"-"+options[:checksum])
9
- load_snapshot_vmachine(@vmname,name+"-"+options[:checksum])
10
- else
11
- if snapshot_version_exists(@vmname,name)
12
- rollback_snapshot(@vmname,name)
13
- #rollback to snapshot prior to this one
14
- end
15
- yield
16
- create_snapshot_vmachine(@vmname,name+"-"+options[:checksum])
17
- end
18
- #end
19
- end
20
-
21
- def self.remove_snapshot_vmachine(vmname,snapname)
22
- @vboxcmd=Veewee::Session.determine_vboxcmd
23
-
24
- Veewee::Shell.execute("#{@vboxcmd} snapshot '#{vmname}' delete '#{snapname}'")
25
- end
26
-
27
- def self.create_snapshot_vmachine(vmname,snapname)
28
- @vboxcmd=Veewee::Session.determine_vboxcmd
29
-
30
- Veewee::Shell.execute("#{@vboxcmd} snapshot '#{vmname}' take '#{snapname}'")
31
- end
32
-
33
- def self.load_snapshot_vmachine(vmname,snapname)
34
- @vboxcmd=Veewee::Session.determine_vboxcmd
35
-
36
- #if it running , shutdown first
37
- if (state_vmachine(vmname)=="running")
38
- stop_vmachine(vmname)
39
- end
40
-
41
- Veewee::Shell.execute("#{@vboxcmd} snapshot '#{vmname}' restore '#{snapname}'")
42
- #sometimes it takes some time to shutdown
43
- sleep 2
44
- Veewee::Shell.execute("#{@vboxcmd} startvm '#{vmname}'")
45
- end
46
-
47
- def self.snapshot_exists(vmname,snapname)
48
- list_snapshots(vmname).each { |name|
49
- if (name==snapname) then
50
- return true
51
- end
52
- }
53
- return false
54
- end
55
-
56
- def self.snapshot_version_exists(vmname,snapname)
57
- list_snapshots(vmname).each { |name|
58
- if name.match(/^#{snapname}-/) then
59
- return true
60
- end
61
- }
62
- return false
63
- end
64
-
65
- def self.rollback_snapshot(vmname,snapname)
66
- delete_flag=false
67
- @vboxcmd=Veewee::Session.determine_vboxcmd
68
-
69
- savestate_recover=false
70
- if (state_vmachine(vmname)=="running")
71
- Veewee::Shell.execute("#{@vboxcmd} controlvm '#{vmname}' savestate")
72
- savestate_recover=true
73
- end
74
-
75
- list_snapshots(vmname).each { |name|
76
- if name.match(/^#{snapname}-/) then
77
- delete_flag=true
78
- end
79
- if (delete_flag) then
80
- remove_snapshot_vmachine(vmname,name)
81
- sleep 1
82
- end
83
- }
84
-
85
-
86
- sleep 2
87
-
88
- Veewee::Shell.execute("#{@vboxcmd} startvm '#{vmname}'")
89
-
90
- if (savestate_recover)
91
- #Recovering from savestate nukes the network! This trick seem to work
92
- #Also within the vm /etc/init.d/networking restart , but that is OS specific
93
- #http://www.virtualbox.org/ticket/5666
94
- #http://www.virtualbox.org/ticket/5654
95
- #This is supposed to be fixed: http://www.virtualbox.org/changeset/25205 but alas
96
- Veewee::Shell.execute("#{@vboxcmd} controlvm '#{vmname}' nic1 nat")
97
- Veewee::Shell.execute("#{@vboxcmd} controlvm '#{vmname}' setlinkstate1 off")
98
- Veewee::Shell.execute("#{@vboxcmd} controlvm '#{vmname}' setlinkstate1 on")
99
- sleep 2
100
-
101
- #hmmm, virtualbox => when recovering from a restore , it looses the nat settings!!! So we need to do this again!!
102
- #thebox.ssh_enable_vmachine({:hostport => host_port , :guestport => 22} )
103
- #http://www.virtualbox.org/changeset/25402
104
- #[25402]: NAT: re-establish port-forwarding after savestate / restore state
105
-
106
- end
107
-
108
- end
109
-
110
-
111
- def self.list_snapshots(vmname)
112
- @vboxcmd=Veewee::Session.determine_vboxcmd
113
-
114
- snapshotresult=Veewee::Shell.execute("#{@vboxcmd} showvminfo --machinereadable '#{vmname}' |grep ^SnapshotName| cut -d '=' -f 2").stdout
115
- snapshotlist=snapshotresult.gsub(/\"/,'').split(/\n/)
116
- return snapshotlist
117
- end
118
-
119
- end
120
- end
121
-
122
-
@@ -1,26 +0,0 @@
1
- require 'socket'
2
- require 'timeout'
3
-
4
- module Veewee
5
- class Utils
6
-
7
- def self.is_port_open?(ip, port)
8
- begin
9
- Timeout::timeout(1) do
10
- begin
11
- s = TCPSocket.new(ip, port)
12
- s.close
13
- return true
14
- rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH
15
- return false
16
- end
17
- end
18
- rescue Timeout::Error
19
- end
20
-
21
- return false
22
- end
23
-
24
-
25
- end #Class
26
- end #Module
@@ -1,48 +0,0 @@
1
- module Veewee
2
- class Web
3
-
4
- require 'webrick'
5
- include WEBrick
6
-
7
- class FileServlet < WEBrick::HTTPServlet::AbstractServlet
8
-
9
- def initialize(server,localfile)
10
- super(server)
11
- @server=server
12
- @localfile=localfile
13
- end
14
- def do_GET(request,response)
15
- response['Content-Type']='text/plain'
16
- response.status = 200
17
- puts "Serving file #{@localfile}"
18
- displayfile=File.open(@localfile,'r')
19
- content=displayfile.read()
20
- response.body=content
21
- #If we shut too fast it might not get the complete file
22
- sleep 2
23
- @server.shutdown
24
- end
25
- end
26
-
27
- def self.wait_for_request(filename,options={:timeout => 10, :web_dir => "", :port => 7125})
28
-
29
- webrick_logger=WEBrick::Log.new("/dev/null", WEBrick::Log::INFO)
30
-
31
- web_dir=options[:web_dir]
32
- filename=filename
33
- s= HTTPServer.new(
34
- :Port => options[:port],
35
- :Logger => webrick_logger,
36
- :AccessLog => webrick_logger
37
- )
38
- s.mount("/#{filename}", FileServlet,File.join(web_dir,filename))
39
- trap("INT"){
40
- s.shutdown
41
- puts "Stopping webserver"
42
- exit
43
- }
44
- s.start
45
- end
46
-
47
- end
48
- end
@@ -1,15 +0,0 @@
1
- Veewee::Session.declare({
2
- :cpu_count => '1', :memory_size=> '512',
3
- :disk_size => '10140', :disk_format => 'VDI', :hostiocache => 'off',
4
- :os_type_id => 'RedHat_64',
5
- :iso_file => "CentOS-6.1-x86_64-minimal.iso", :iso_src => "http://mirror.internode.on.net/pub/centos/6.1/isos/x86_64/CentOS-6.1-x86_64-minimal.iso", :iso_md5 => "03177dfefb4ebfeb03f457c29f00b0a1", :iso_download_timeout => 1000,
6
- :boot_wait => "10", :boot_cmd_sequence => [
7
- '<Tab> text ks=http://%IP%:%PORT%/ks.cfg<Enter>'
8
- ],
9
- :kickstart_port => "7122", :kickstart_timeout => 10000, :kickstart_file => "ks.cfg",
10
- :ssh_login_timeout => "100", :ssh_user => "vagrant", :ssh_password => "vagrant", :ssh_key => "",
11
- :ssh_host_port => "7222", :ssh_guest_port => "22",
12
- :sudo_cmd => "echo '%p'|sudo -S sh '%f'",
13
- :shutdown_cmd => "/sbin/halt -h -p",
14
- :postinstall_files => [ "postinstall.sh"], :postinstall_timeout => 10000
15
- })