2012年3月31日土曜日

CloudStack API対応iPhoneアプリ作成に挑戦 その2

前回から少し間が空きましたが、やっとアプリらしくなりましたので、githubで公開しました。
https://github.com/snumano/CloudStack-API-iPhone-App

現時点の機能は主に2点。
・CloudStack APIに対応している複数のクラウドサービスに対応
現時点ではTata、Ninefoldの動作確認済。
Datapipeは個人では申込できなさそうなのです。その他は順次確認予定
・コマンドは、VMとVolumeのlist表示に対応
追加/削除ボタンは表示のみで、まだ機能しません。。。

本アプリは、CloudStackの利点である「複数クラウドサービスをシームレスに管理可能」を実感いただくデモ用アプリになればいいなと考えています。

I released iPhone app at github.It helps for a demonstration of CloudStack API.
https://github.com/snumano/CloudStack-API-iPhone-App

Current version has following functions,
*supports multi cloud services which supoprt CloudStack API.
  Tata,Ninefold and more.
*supports a fewcommand
  listvirtualmachines,listvolumes
  It doesn't support deploy and destroy them.

アプリのスクリーンショットをいくつか紹介します。
Followings are some screenshots of the iPhone app.

赤枠のアイコンのアプリを起動させます。
Click the app icon.


起動時の画面です。右下の設定ボタンをクリックし、API Keyの登録を行います。
Home window.At the first,click the setting button.




TataのAPI KEY、SECRET KEYの登録画面です。
各情報は、各サービスのアカウント情報に表示されているので確認してください。
また、API用のURL(BASE URL、API PATH)は事前に設定してあります。

Setting window.Please submit API KEY,SECRET KEY.

URL(BASE URL、API PATH) is pre-configured.



TataのVMのlist表示(listVirtualMachinesの結果)です。1台しか起動していないので、寂しいですが、正常に表示されています。
右上に「+」ボタンが表示されていますが、現時点では追加(deploy)機能は、未対応なのでクリックしても動作しません。同様に当該VMをスワイプすると、「Delete」ボタンが表示されますが、こちらも未対応です。雰囲気だけでもつかんでいただければ。

Please click 'Tata' and 'VM'.You can see the response of listVirtualMachines.
'Add button' and 'Delete button' are not working now,just dsiplayed.



先のVMをクリックして詳細表示したところです。zonenameが「India」と表示され、しみじみします。
VM detail information window.


いかがでしたでしょうか。
iPhoneにアプリをinstallして各国のクラウドをポケットにいれるもよし、開発環境のMac上で各サービスの生responseを確認するもよし、対応コマンドを増やすもよし。いろいろな楽しみ方ができると思います。
プログラム自体きれいに書けていないところがありますので、ご勘弁いただけたらと思います。

まずは「今年の目標」の1つを完了。

-----
2012/4/1
英語対応しました。
このエントリーをはてなブックマークに追加

2012年3月5日月曜日

CloudStack API対応iPhoneアプリ作成に挑戦 その1

最近JavaScriptを勉強の一環でTitanium Mobileを触っています。そしてせっかくなので、何らかのoutputを考えています。
で、CloudStack API対応のiPhoneアプリ作成に挑戦することにしました。

CloudStack API用のPerlライブラリを作成した事がある程度で、それ以外は、ほぼ初心者です。
下記stepでの対応を想定しています。
  1. CloudStack API入門
  2. JavaScript入門
  3. Titanium Mobile入門
  4. iPhoneアプリ作成
    1. JavaScriptでCloudStack APIのURL生成機能を実装
    2. TitaniumのHTTP Client APIにて上記4-1のURLのレスポンスを取得
    3. TitaniumにてGUIの実装 
    4. AppStoreで公開
それでは、すすめていきます。1,2は過去の学習のまとめとなります。
  1. CloudStack API入門
    CloudStack API情報まとめ
    をご参照ください。
    この時のoutputとして、CloudStack API用Perlライブラリを公開しました。
    今回、CloudStack API対応クラウドとしてTata Communicationのクラウドサービスを利用しています。
  2. JavaScript入門
    参考資料はこちらをご参照ください。
  3. Titanium Mobile入門
    Chapter1-5の途中まで読み、Titanium Mobileの使い方、アプリ作成方法の概要を学習しました。必要な機能は主にJavaScriptで実装することになりそうですが、一部機能についてはTitanium Mobileで提供しているものがありました。楽できます。
    <Titanium Mobileで利用した機能>
    • HTTPClient
    • JSON parse
    <JavaScriptで実装>
    • convert Lower case
    • URI encode
    • Base64 encode          #ライブラリを利用
    • HMAC SHA-1 hash     #同上
       
  4.  iPhoneアプリ作成
    現在作成中です。4-1,4-2のURLの作成およびレスポンスの取得までできました。
    現時点の、iOSシミュレータの画面は下記になります。

    Tataのクラウドサービスに対して、listVirtualMachinesのレスポンスです。
    今のところ、jsonで取得したレスポンスをそのまま表示しているだけです。GUIはTitanium Mobileのテンプレートのままですね。
    今後、VM,Volume,NW等主要なコンポーネントのlist系コマンドの実装および、GUIの実装をすすめたいと思います。

今日はここまでです。
GUIの実装ができたらまた紹介したいと思います。
このエントリーをはてなブックマークに追加

2012年3月2日金曜日

海外のクラウドサービスに登録してCloudStack APIを使ってみる

前回に続き、今回は「CloudStack」をキーワードに海外クラウドを申し込んでみます。
そして、以前作成したCloudStack API用ライブラリがIDCFクラウド以外のサービスでも利用できるか確認してみます。

対象のクラウドサービスはこちらを参考に選んでみました。下記3つです。
Tata Communications
KT
logicworks


それでは、登録から始めます。
  • Tata Communications
    サービス名:InstaCompute
    申込方法:上記URL先の上部に「Free Trial」があるので、こちらをクリック。名前などの情報を入力。しばらくすると(私の場合は翌日)、インドから電話がかかり、本人確認をされる。(mailなどいくつかの質問に回答)。その後、mailにてTrialCodeが送付され、登録するとサービス利用可能になる。
    操作画面:下記はlogin後のコンパネ画面。いろいろとタブが並んでいます。

  • KT
    サービス名:uCloud
    申込方法:上記URL先にいくとハングルの画面になりますので、右上の「English」で英語に切り替えます。左側の「Register」からまずは、メンバー登録を行います。メンバー登録はすんなり完了できたのですが、その後、個人情報を入力する際「SocialSecurityNumaber」を求められたので断念しました。ここまで。
  • logicworks
    サービス名:infiniCloud
    申込方法;前回同様に、クレジットカード登録でエラーになったので今回も断念。

結局、ちゃんと登録できたのはTataだけでした。。。

引き続き、TataにてCloudStack APIを試します。手順は下記の通り。
  1. コンパネのAccount Administration > My Accountより、Cloud API KeyとCloud Secretを確認
  2. 次に、Support > Developer APIより、API操作に必要な情報(Base_URLとAPI Path)を確認
    同じような情報は下記でも公開されています。
    http://instacompute.com/service-details/api/

  3. 上記情報を参考にsignatureを作成。
    (手順自体はCloudStack APIと同じ)
  4. 最後にURL全体を構成しAPIサーバにアクセス。
実際に、以前作成したライブラリを用いて、IDCFクラウド用に作成したスクリプトをそのまま利用してURLを生成しました。
(base_url,api_pathのクラウド情報、api key,secret keyのユーザ情報のみ変更。このコマンドでは、第1引数でサービス名を指定することで、対象サービスを切り替えることができるようにしています)
もちろん、他の言語でも作成可能です。

listZonesの場合、下記のようなresponseを得られました。
listVirtualMachinesなども正常にresponseを得ることができましたが、ここでは割愛します。

$ ./cs-api.pl tata listZones
{
   "listzonesresponse" : {
      "zone" : [
         {
            "name" : "India-South-01",
            "id" : "1"
         }
      ]
   }
}

以上より、CloudStack APIを利用して、IDCFクラウド以外の(CloudStackを使用している)クラウドサービスを操作できることを確認できました。
このエントリーをはてなブックマークに追加