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
@@ -0,0 +1,112 @@
1
+ module Veewee
2
+ module Util
3
+ class Scancode
4
+
5
+ def self.string_to_keycode(thestring)
6
+
7
+ #http://www.win.tue.nl/~aeb/linux/kbd/scancodes-1.html
8
+
9
+ k=Hash.new
10
+ k['1'] = '02 82' ; k['2'] = '03 83' ; k['3'] = '04 84'; k['4']= '05 85' ;
11
+ k['5']='06 86'; k['6'] = '07 87' ; k['7'] = '08 88'; k['8'] = '09 89'; k['9']= '0a 8a';
12
+ k['0']='0b 8b'; k['-'] = '0c 8c'; k['='] = '0d 8d' ;
13
+ k['Tab'] = '0f 8f';
14
+ k['q'] = '10 90' ; k['w'] = '11 91' ; k['e'] = '12 92';
15
+ k['r'] = '13 93' ; k['t'] = '14 94' ; k['y'] = '15 95';
16
+ k['u']= '16 96' ; k['i']='17 97'; k['o'] = '18 98' ; k['p'] = '19 99' ;
17
+
18
+ k['Q'] = '2a 10 aa' ; k['W'] = '2a 11 aa' ; k['E'] = '2a 12 aa'; k['R'] = '2a 13 aa' ; k['T'] = '2a 14 aa' ; k['Y'] = '2a 15 aa'; k['U']= '2a 16 aa' ; k['I']='2a 17 aa'; k['O'] = '2a 18 aa' ; k['P'] = '2a 19 aa' ;
19
+
20
+ k['a'] = '1e 9e'; k['s'] = '1f 9f' ; k['d'] = '20 a0' ; k['f'] = '21 a1'; k['g'] = '22 a2' ; k['h'] = '23 a3' ; k['j'] = '24 a4';
21
+ k['k']= '25 a5' ; k['l']='26 a6';
22
+ k['A'] = '2a 1e aa 9e'; k['S'] = '2a 1f aa 9f' ; k['D'] = '2a 20 aa a0' ; k['F'] = '2a 21 aa a1';
23
+ k['G'] = '2a 22 aa a2' ; k['H'] = '2a 23 aa a3' ; k['J'] = '2a 24 aa a4'; k['K']= '2a 25 aa a5' ; k['L']='2a 26 aa a6';
24
+
25
+ k[';'] = '27 a7' ;k['"']='2a 28 aa a8';k['\'']='28 a8';
26
+
27
+ k['\\'] = '2b ab'; k['|'] = '2a 2b aa 8b';
28
+
29
+ k['[']='1a 9a'; k[']']='1b 9b';
30
+ k['<']='2a 33 aa b3'; k['>']='2a 34 aa b4';
31
+ k['$']='2a 05 aa 85';
32
+ k['+']='2a 0d aa 8d';
33
+
34
+ k['?']='2a 35 aa b5';
35
+ k['z'] = '2c ac'; k['x'] = '2d ad' ; k['c'] = '2e ae' ; k['v'] = '2f af'; k['b'] = '30 b0' ; k['n'] = '31 b1' ;
36
+ k['m'] = '32 b2';
37
+ k['Z'] = '2a 2c aa ac'; k['X'] = '2a 2d aa ad' ; k['C'] = '2a 2e aa ae' ; k['V'] = '2a 2f aa af';
38
+ k['B'] = '2a 30 aa b0' ; k['N'] = '2a 31 aa b1' ; k['M'] = '2a 32 aa b2';
39
+
40
+ k[',']= '33 b3' ; k['.']='34 b4'; k['/'] = '35 b5' ;k[':'] = '2a 27 aa a7';
41
+ k['%'] = '2a 06 aa 86'; k['_'] = '2a 0c aa 8c';
42
+ k['&'] = '2a 08 aa 88';
43
+ k['('] = '2a 0a aa 8a';
44
+ k[')'] = '2a 0b aa 8b';
45
+
46
+
47
+ special=Hash.new;
48
+ special['<Enter>'] = '1c 9c';
49
+ special['<Backspace>'] = '0e 8e';
50
+ special['<Spacebar>'] = '39 b9';
51
+ special['<Return>'] = '1c 9c'
52
+ special['<Esc>'] = '01 81';
53
+ special['<Tab>'] = '0f 8f';
54
+ special['<KillX>'] = '1d 38 0e';
55
+ special['<Wait>'] = 'wait';
56
+
57
+ special['<Up>'] = '48 c8';
58
+ special['<Down>'] = '50 d0';
59
+ special['<PageUp>'] = '49 c9';
60
+ special['<PageDown>'] = '51 d1';
61
+ special['<End>'] = '4f cf';
62
+ special['<Insert>'] = '52 d2';
63
+ special['<Delete>'] = '53 d3';
64
+ special['<Left>'] = '4b cb';
65
+ special['<Right>'] = '4d cd';
66
+ special['<Home>'] = '47 c7';
67
+
68
+ special['<F1>'] = '3b';
69
+ special['<F2>'] = '3c';
70
+ special['<F3>'] = '3d';
71
+ special['<F4>'] = '3e';
72
+ special['<F5>'] = '3f';
73
+ special['<F6>'] = '40';
74
+ special['<F7>'] = '41';
75
+ special['<F8>'] = '42';
76
+ special['<F9>'] = '43';
77
+ special['<F10>'] = '44';
78
+
79
+ keycodes=''
80
+ thestring.gsub!(/ /,"<Spacebar>")
81
+
82
+ until thestring.length == 0
83
+ nospecial=true;
84
+ special.keys.each { |key|
85
+ if thestring.start_with?(key)
86
+ #take thestring
87
+ #check if it starts with a special key + pop special string
88
+ keycodes=keycodes+special[key]+' ';
89
+ thestring=thestring.slice(key.length,thestring.length-key.length)
90
+ nospecial=false;
91
+ break;
92
+ end
93
+ }
94
+ if nospecial
95
+ code=k[thestring.slice(0,1)]
96
+ if !code.nil?
97
+ keycodes=keycodes+code+' '
98
+ else
99
+ env.ui.info "no scan code for #{thestring.slice(0,1)}"
100
+ end
101
+ #pop one
102
+ thestring=thestring.slice(1,thestring.length-1)
103
+ end
104
+ end
105
+
106
+ return keycodes
107
+ end
108
+ end #Class
109
+ end #Module
110
+ end #Module
111
+
112
+
@@ -0,0 +1,42 @@
1
+ module Veewee
2
+ module Util
3
+
4
+ class ShellResult
5
+ attr_accessor :stdout
6
+ attr_accessor :stderr
7
+ attr_accessor :status
8
+
9
+ def initialize(stdout,stderr,status)
10
+ @stdout=stdout
11
+ @stderr=stderr
12
+ @status=status
13
+ end
14
+ end
15
+
16
+ module Shell
17
+
18
+ # http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/185404
19
+ # This should work on windows too now
20
+ # This will result in a ShellResult structure with stdout, stderr and status
21
+ def shell_exec(command,options = {})
22
+ result=ShellResult.new("","",-1)
23
+ env.ui.info "Executing #{command}" unless options[:mute]
24
+ escaped_command=command
25
+ # env.ui.info "#{escaped_command}"
26
+ IO.popen("#{escaped_command}"+ " 2>&1") { |p|
27
+ p.each_line{ |l|
28
+ result.stdout+=l
29
+ env.ui.info(l,{:new_line => false}) unless options[:mute]
30
+ }
31
+ result.status=Process.waitpid2(p.pid)[1].exitstatus
32
+ if result.status!=0
33
+ env.ui.error "Exit status was not 0 but #{result.status}" unless options[:mute]
34
+ end
35
+ }
36
+ return result
37
+ end
38
+
39
+
40
+ end #Module
41
+ end #Module
42
+ end #Module
@@ -0,0 +1,158 @@
1
+ module Veewee
2
+ module Util
3
+
4
+ class SshResult
5
+ attr_accessor :stdout
6
+ attr_accessor :stderr
7
+ attr_accessor :status
8
+
9
+ def initialize(stdout,stderr,status)
10
+ @stdout=stdout
11
+ @stderr=stderr
12
+ @status=status
13
+ end
14
+ end
15
+
16
+ module Ssh
17
+
18
+ require 'net/ssh'
19
+ require 'net/scp'
20
+
21
+ def when_ssh_login_works(ip="localhost", options = { } , &block)
22
+
23
+ defaults={ :port => '22', :timeout => 20000 , :user => 'vagrant', :password => 'vagrant'}
24
+
25
+ options=defaults.merge(options)
26
+
27
+ env.ui.info "Waiting for ssh login on #{ip} with user #{options[:user]} to sshd on port => #{options[:port]} to work, timeout=#{options[:timeout]} sec"
28
+
29
+ begin
30
+ Timeout::timeout(options[:timeout]) do
31
+ connected=false
32
+ while !connected do
33
+ begin
34
+ env.ui.info ".",{:new_line => false}
35
+ Net::SSH.start(ip, options[:user], { :port => options[:port] , :password => options[:password], :paranoid => false , :timeout => options[:timeout] }) do |ssh|
36
+ env.ui.info "\n"
37
+
38
+ block.call(ip);
39
+ env.ui.info ""
40
+ return true
41
+ end
42
+ rescue Net::SSH::Disconnect,Errno::ECONNREFUSED, Errno::EHOSTUNREACH, Errno::ECONNABORTED, Errno::ECONNRESET, Errno::ENETUNREACH,Errno::ETIMEDOUT, Errno::ENETUNREACH
43
+ sleep 5
44
+ end
45
+ end
46
+ end
47
+ rescue Timeout::Error
48
+ env.ui.error "Ssh timeout #{options[:timeout]} min has been reached."
49
+ exit -1
50
+ end
51
+ env.ui.info ""
52
+ return false
53
+ end
54
+
55
+
56
+ def ssh_transfer_file(host,filename,destination = '.' , options = {})
57
+
58
+ defaults={ :paranoid => false }
59
+ options=defaults.merge(options)
60
+
61
+ Net::SSH.start( host,options[:user],options ) do |ssh|
62
+ env.ui.info "Transferring #{filename} to #{destination} "
63
+ ssh.scp.upload!( filename, destination ) do |ch, name, sent, total|
64
+ # print "\r#{destination}: #{(sent.to_f * 100 / total.to_f).to_i}%"
65
+ env.ui.info ".",{:new_line => false}
66
+
67
+ end
68
+ end
69
+ env.ui.info ""
70
+ end
71
+
72
+
73
+ def ssh_exec(host,command, options = { :progress => "on"} )
74
+ defaults= { :port => "22", :exitcode => "0", :user => "root"}
75
+ options=defaults.merge(options)
76
+ pid=""
77
+ stdin=command
78
+ stdout=""
79
+ stderr=""
80
+ status=-99999
81
+
82
+ env.ui.info "Executing command: #{command}"
83
+
84
+ Net::SSH.start(host, options[:user], { :port => options[:port], :password => options[:password], :paranoid => false }) do |ssh|
85
+
86
+ # open a new channel and configure a minimal set of callbacks, then run
87
+ # the event loop until the channel finishes (closes)
88
+ channel = ssh.open_channel do |ch|
89
+
90
+ #request pty for sudo stuff and so
91
+ ch.request_pty do |ch, success|
92
+ raise "Error requesting pty" unless success
93
+ end
94
+
95
+ ch.exec "#{command}" do |ch, success|
96
+ raise "could not execute command" unless success
97
+
98
+
99
+ # "on_data" is called when the process writes something to stdout
100
+ ch.on_data do |c, data|
101
+ stdout+=data
102
+
103
+ env.ui.info data,{:new_line => false}
104
+
105
+ end
106
+
107
+ # "on_extended_data" is called when the process writes something to stderr
108
+ ch.on_extended_data do |c, type, data|
109
+ stderr+=data
110
+
111
+ env.ui.info data,{:new_line => false}
112
+
113
+ end
114
+
115
+ #exit code
116
+ #http://groups.google.com/group/comp.lang.ruby/browse_thread/thread/a806b0f5dae4e1e2
117
+ channel.on_request("exit-status") do |ch, data|
118
+ exit_code = data.read_long
119
+ status=exit_code
120
+ if exit_code > 0
121
+ env.ui.info "ERROR: exit code #{exit_code}"
122
+ else
123
+ #env.ui.info "Successfully executed"
124
+ end
125
+ end
126
+
127
+ channel.on_request("exit-signal") do |ch, data|
128
+ env.ui.info "SIGNAL: #{data.read_long}"
129
+ end
130
+
131
+ ch.on_close {
132
+ #env.ui.info "done!"
133
+ }
134
+ #status=ch.exec "echo $?"
135
+ end
136
+ end
137
+ channel.wait
138
+ end
139
+
140
+
141
+ if (status.to_s != options[:exitcode] )
142
+ if (options[:exitcode]=="*")
143
+ #its a test so we don't need to worry
144
+ else
145
+ raise "Exitcode was not what we expected"
146
+ end
147
+
148
+ end
149
+
150
+ return Veewee::Util::SshResult.new(stdout,stderr,status)
151
+
152
+ end
153
+
154
+
155
+
156
+ end #Class
157
+ end #Module
158
+ end #Module
@@ -0,0 +1,88 @@
1
+ require 'socket'
2
+ require 'timeout'
3
+
4
+ module Veewee
5
+ module Util
6
+ module Tcp
7
+
8
+ def is_tcp_port_open?(ip, port)
9
+ begin
10
+ Timeout::timeout(1) do
11
+ begin
12
+ s = TCPSocket.new(ip, port)
13
+ s.close
14
+ return true
15
+ rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH
16
+ return false
17
+ end
18
+ end
19
+ rescue Timeout::Error
20
+ end
21
+
22
+ return false
23
+ end
24
+
25
+ # This tries to guess a local free tcp port
26
+ def guess_free_port(min_port,max_port)
27
+ env.ui.info "Received port hint - #{min_port}"
28
+
29
+ guessed_port=nil
30
+
31
+ for port in (min_port..max_port)
32
+ unless is_tcp_port_open?(get_local_ip, port)
33
+ guessed_port=port
34
+ break
35
+ end
36
+ end
37
+
38
+ if guessed_port.nil?
39
+ env.ui.info "No free port available: tried #{min_port}..#{max_port}"
40
+ exit -1
41
+ else
42
+ env.ui.info "Found port #{guessed_port} available"
43
+ end
44
+
45
+ return guessed_port
46
+ end
47
+
48
+ def execute_when_tcp_available(ip="localhost", options = { } , &block)
49
+
50
+ defaults={ :port => 22, :timeout => 2 , :pollrate => 5}
51
+
52
+ options=defaults.merge(options)
53
+
54
+ begin
55
+ Timeout::timeout(options[:timeout]) do
56
+ connected=false
57
+ while !connected do
58
+ begin
59
+ env.ui.info "trying connection"
60
+ s = TCPSocket.new(ip, options[:port])
61
+ s.close
62
+ block.call(ip);
63
+ return true
64
+ rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH
65
+ sleep options[:pollrate]
66
+ end
67
+ end
68
+ end
69
+ rescue Timeout::Error
70
+ raise 'timeout connecting to port'
71
+ end
72
+
73
+ return false
74
+ end
75
+
76
+ def get_local_ip
77
+ orig, Socket.do_not_reverse_lookup = Socket.do_not_reverse_lookup, true # turn off reverse DNS resolution temporarily
78
+
79
+ UDPSocket.open do |s|
80
+ s.connect '64.233.187.99', 1
81
+ s.addr.last
82
+ end
83
+ ensure
84
+ Socket.do_not_reverse_lookup = orig
85
+ end
86
+ end #Module
87
+ end #Module
88
+ end #Module
@@ -0,0 +1,63 @@
1
+ module Veewee
2
+ module Util
3
+ require 'webrick'
4
+ include WEBrick
5
+ module Servlet
6
+
7
+
8
+ class FileServlet < WEBrick::HTTPServlet::AbstractServlet
9
+
10
+ attr_reader :env
11
+
12
+ def initialize(server,localfile,env)
13
+ super(server)
14
+ @server=server
15
+ @localfile=localfile
16
+ @env=env
17
+ end
18
+
19
+ def do_GET(request,response)
20
+ response['Content-Type']='text/plain'
21
+ response.status = 200
22
+ env.ui.info "Serving file #{@localfile}"
23
+ displayfile=File.open(@localfile,'r')
24
+ content=displayfile.read()
25
+ response.body=content
26
+ #If we shut too fast it might not get the complete file
27
+ sleep 2
28
+ @server.shutdown
29
+ end
30
+ end
31
+
32
+ end
33
+ module Web
34
+
35
+ def wait_for_http_request(filename,options={:timeout => 10, :web_dir => "", :port => 7125})
36
+
37
+
38
+ # Calculate the OS equivalent of /dev/null , on windows this is NUL:
39
+ # http://www.ruby-forum.com/topic/115472
40
+ fn = test(?e, '/dev/null') ? '/dev/null' : 'NUL:'
41
+
42
+ webrick_logger=WEBrick::Log.new(fn, WEBrick::Log::INFO)
43
+
44
+ web_dir=options[:web_dir]
45
+ filename=filename
46
+ s= ::WEBrick::HTTPServer.new(
47
+ :Port => options[:port],
48
+ :Logger => webrick_logger,
49
+ :AccessLog => webrick_logger
50
+ )
51
+ env.logger.debug ("mounting file /#{filename}")
52
+ s.mount("/#{filename}", Veewee::Util::Servlet::FileServlet,File.join(web_dir,filename),env)
53
+ trap("INT"){
54
+ s.shutdown
55
+ env.ui.info "Stopping webserver"
56
+ exit
57
+ }
58
+ s.start
59
+ end
60
+
61
+ end #Class
62
+ end #Module
63
+ end #Module