VirtualboxAPIが死ぬほど簡単だった 死にそう
— numa (@numa08) 2013, 6月 3
簡単に仮想マシンのリストを取得できてしまった つらい
— numa (@numa08) 2013, 6月 3
正しくないVagrantの使い方をしていたようです
vagrantで仮想マシンの電源オン、オフの自動化を考えていましたが、そもそもVagrantはそんな ことに使うツールではなく、実験用の仮想マシンをお手軽に操作するツールのようでした。
確かに、rootのパスワードがvagrantで固定だったり、vagrantユーザを作る必要があったりと、ちょと考えればわかることですね。(*)
(*)一応、分かってましたよ。ただ、自分の家で使うだけだからいいかなぁ・・・と
Virtualbox SDKを知った
Virtualboxのダウンロードページでは公式SDKが配布されています。
ドキュメントによると
らしいです。
Javaが使えるならScalaも行けるやろ、ってことでやってみました。
Web Serverを立ち上げる
Virtualboxをインストールしたディレクトリ内のVBoxWebSrv.exe
を起動すれば立ち上がります。
標準ではポート18083を利用します。
ポート番号の変更など様々なオプションがあるので
VBoxWebSrv.exe -h
とすると、オプションのヘルプを見ることができます。
SDKをインストールする
さきほどのダウンロードページからSDKのダウンロードを行います。
Javaの場合はsdk\bindings\glue\java
にサンプルコードが、sdk\bindings\webservice\java\jax-ws
にライブラリのjarファイルが入っています。
コードを書く
sbt使ってコードを書きました。とりあえずVirtualboxのバージョンと仮想マシンの一覧の表示を行います。
package net.numa08 import org.virtualbox_4_2.VirtualBoxManager import org.virtualbox_4_2.IMachine import scala.collection.JavaConversions._ object VboxScala extends App { val manager = VirtualBoxManager.createInstance(null) manager.connect("http://localhost:18083","Windows User Name","Windows User Password") val box = manager.getVBox println("Vbox version is " + box.getVersion) val machiens:java.util.List[IMachine] = box.getMachines machiens.foreach( m => println(m.getName)) }
今後のこと
SBTでツール書くよりも、PlayでWEBから操作するツールを書くほうが面白い気がする・・・
— numa (@numa08) 2013, 6月 3
おら、ワクワクしてきたぞ!!
— numa (@numa08) 2013, 6月 3
こんな感じ