Xen/KVM Virtualization Management Application
  • 日本語
  • English

Karesansui Wiki


内部のシステム構成

app.py

起動処理が行われます。初期化処理の追加時に利用してください。

詳細

  • コネクションプール
  • コマンドオプション(prep.py)
  • ログ
  • URLマッピング初期化(urls.py)
  • 内部サーバー(開発用)
  • readline(ipython)
  • pysilhouette初期化


rest.py

Karesansuiが独自に作成した、薄いWebフレームワークの基盤です。Webフレームワークで一般的に存在する処理がすべて記述されています。

詳細

  • URL別のgadget振り分け
  • テンプレートファイルの振り分けと出力
  • HTTPレスポンスのメディアタイプ振り分け
  • GET/POST/DELETE/PUT の振り分け
  • 国際化
  • オーバーライドPOST
  • 認証基盤

※ karesansui/lib/rest.py


gadget

MVCのControllerにあたるクラスです。gadgetのファイル名は、テンプレート名(View)で命名規則利用されます。

詳細

  • GET/POST/DELETE/PUTの各処理
  • 認証判断

※ karesansui/gadget


static

静的ファイルを配置します。

lighttpd経由の場合はWebフレームワークを経由しません。
内部サーバー(開発)の場合はWebフレームワークを経由します。

詳細

  • js, css, 画像データが配置されています。
  • js, cssを動的に出力させたい場合は、templages/{テーマ名}/data/xxx に配置します。

※ karesansui/static


templates

動的に出力される、テンプレートが配置されています。

※テーマ機能を備えており、設定ファイルを利用することで簡単にテーマ変更をすることができます。
/etc/opt/karesansui/application.conf -> application.template.theme
デフォルトは「default」になっています。

※ karesansui/templates/テーマ名/テンプレートフォルダ名/テンプレート名.拡張子

詳細

  • テンプレートフォルダ名は、gadgetで作成したファイル名と同じものにしてください。
  • テンプレート名は、gadgetで作成したファイル名と同じものにしてください。
  • URLの拡張子は現在html, part, json, inputを自動判別します。 * html : htmlファイル形式を記述します。 * part : html形式で記述します。主に部分的な更新Ajaxを行う場合に利用します。 * json : jsonフォーマットを記述します。gadgetでsimplejsonという外部ライブラリを利用することで簡単に実装することができます。 * input : htmlやpartで更新ページを出力する場合に利用されます。GETパラメータにmode=inputを指定することで自動判別されます。

テンプレートフォルダ名、テンプレート名、拡張子のカスタマイズ方法

gadgetで以下の設定を行います。

self.__template__.dir = "テンプレートフォルダ名を指定します" 
self.__template__.file = "テンプレート名を指定します"
self.__template__.media = "拡張子を指定します"


db

データベース制御、操作を行います。

※Pysilhouetteについては外部ライブラリとして透過利用しています。

※ karesansui/db

詳細

  • modelフォルダ : O/Rマッピング用のモデルクラスを定義します。※SQLAlchemyを直接利用しています。
  • accessフォルダ : データアクセス操作用の処理を行います。


pysilhouette

高い権限が必要な処理はすべてジョブマネージャ(Pysilhouette)で処理されます。操作はすべてデータベース経由になります。


lib

仮想化ライブラリ、各種ロジック、ファイル操作などライブラリとして切り出せるすべてが配置されています。

※ karesansui/lib

詳細

  • 仮想化操作ライブラリは、karesansui/lib/virtにまとめられています。
  • KaresansuiVirtConnection(uri)を利用することで簡単にlibvirt(オープンソースの仮想化ライブラリ)にアクセスできます。


utils

一般的なものから、仮想化特有、環境特有のユーティリティなど様々提供します

※ karesansui/lib/utils
※ こまったらまずこのファイルを参照してください。たいていのものがあるはずです。


checker

Webフレームワークにアクセスする入力チェックライブラリです。
static配下のchecker.js(Javascript)と完全に同じ記述で入力チェックを実装することができます。これにより、言語差による学習コストを低減しています。

※ karesansui/lib/checker.py
※ こまったらまずこのファイルを参照してください。たいていのものがあるはずです。


最後に

KaresansuiのWebフレームワークは薄いラッパーです。各OSSのライブラリへの直接アクセスを妨げません。ですがより簡単にシンプルに操作するためのライブラリは積極的に実装されています。

ライブラリへのリンク
web.py docs
mako docs
SQLAlchemy docs

内部システム構成図.png (30.9 KB) funagayama kei, 11/07/2010 01:06 AM

Also available in: HTML TXT