自分メモ
Rails て AR のデータソースは Web API のレスポンスでも良いのか。
Fog と上手に組み合わせることができたら無敵な気がしてるんですが、これはやはり UI の勉強をしなさい、という事なのかどうか。
どこまでムダかは分からんが
今の方法ではなくて WebAPI なデータソースの AR なサブクラス、って作れたら面白げ。でっち上げてみて rails c で云々してみるか。
追記
手を動かしつつ諸々を控えてみることに。
とりあえず単純に model を追加してみることにします。属性ナシ、で作るとどうなるのかな。
$ rails g model VirtualMachine invoke active_record create db/migrate/20130914063000_create_virtual_machines.rb create app/models/virtual_machine.rb invoke rspec create spec/models/virtual_machine_spec.rb invoke factory_girl create spec/factories/virtual_machines.rb
属性指定スルーでも migration は作られるのかw
試験とかどうすりゃ良いか微妙ですが、深く考えずに進めてみます。と、その前に Conn な model も属性追加するんだった。rails generate migration か。
rails generate migration add_provider_to_conn invoke active_record create db/migrate/20130914064108_add_provider_to_conn.rb
以下にして
class AddProviderToConn < ActiveRecord::Migration def change add_column :conns, :provider, :string end end
以下を実行しとくのか。
$ bundle exec rake db:migrate $ bundle exec rake db:test:prepare
ええと、scaffold で作成された model をこうして更新した場合、追従は手作業になるのかな。とりあえず development.sqlite3 に反映されているのは確認しました。
model には反映されていないので手動で修正を盛り込み。
つーことは app/views/conns 配下も同様なのか。つうかよくよく考えるに spec 配下完全スルーだよな。とりあえず諸々確認用のプロジェクトってことでユルくいきます。
とりあえず既存のデータに追加しとかなきゃね、ってことでローカルで確認。しかしこれ、テキストでも良いのだけれど、入力はテキストボックスじゃ駄目だな。つー事は別途もひとつ model の追加が必要になるのか。
とりあえず
データてきには何とかなりそげなので動かしてみたら何か動いた。ちょっとレスポンスがアレ。つうかこれ的なソレって redis で Hash で持つのが良いのか model にした方が良いのかな判断基準てきに微妙ですね。
つうかやっぱこれって cache すべき。
def self.find_by_conn(conn) virtual_machines = Hash::new uri = URI.parse(conn.end_point) compute = Fog::Compute.new(:provider => conn.provider, :cloudstack_api_key => conn.access_key, :cloudstack_secret_access_key => conn.secret_access_key, :cloudstack_host => uri.host, :cloudstack_port => uri.port, :cloudstack_path => uri.path, :cloudstack_scheme => uri.scheme, ) virtual_machines[:conn] = conn virtual_machines[:virtual_machines] = compute.list_virtual_machines virtual_machines end
あと、cloudstack 限定だしorz
このあたりの抽象化は別途で考えないとアレ。
- compute な接続情報を属性として持っておいて云々
- virtual_machines も属性にしときゃ良いのかどうか
- できれば private なナニ
- Ruby のクラスの private member な定義の方法忘れたorz
そろそろ
メシ製造に着手するので離脱します。のでエントリ投入。