連載
» 2013年04月25日 18時00分 公開

CloudStackによるプライベートクラウド構築術(11):Apache CloudStackの開発プロセスを知ろう (2/3)

[クリエーションライン株式会社,@IT]

実際のバグフィックスの流れを理解しよう

前準備:Apache CloudStackのBTS「JIRA」

 Apache CloudStackでは、ASFがホストするJIRAベースのチケット管理システムを使っています。全ての不具合や機能追加リクエストでもこちらのJIRAでチケットを作成して物事が進みます。アカウント登録は簡単に行えますのでぜひ登録しておきましょう。

 Apache CloudStackでは、不具合はJIRAベースのチケット管理システムに登録されますので、チケット管理システムを眺めて、すでに修正されている簡単な不具合を見つけて、どのようにチケットの作成からコミットまで処理されるか確認してみましょう。

1)JIRAでステータスが完了となっている不具合を探す

 JIRAにアクセスし、Project: CloudStack, Resolution: Fixed, Status: Resolvedでフィルタをしてみます。下記リンクでも同じ検索結果を表示します。

2)チケットのサンプルを眺めてみよう

 例えば、CLOUDSTACK-284を見てみましょう。

 開発者であれ、テスターであれ、ユーザーであれ、不具合を見つければ、すでに登録されていないことを確認し、その不具合をチケット管理システムに登録してください。この例では報告者はSimon Waterhouseです。CLOUDSTACK-284は、listVirtualMachinesをzoneidパラメータを付けて呼び出すと、破棄したVMがリストされないという不具合が発生していたことが分かります。

3)チケット登録後の流れ

 チケット管理システムに登録した後は、jira@apache.orgから、dev@cloudstack.apache.org 宛に、自動的にCLOUDSTACK-284が作成されたことが通知されます*


* ここではSPAMなどを回避するために@を全角で表示しています。



4)パッチ作成時の流れ

 パッチを作成した人は、パッチをコミッタにレビューしてもらうために、Review Boardにパッチの情報を送ります

5)開発者へのパッチ投稿の通知

 Review Boardにパッチを登録した後、自動的に、dev@cloudstack.apache.org宛に通知メールが送信されます。

6)パッチのレビューとコミット

 コミッタがレビューして問題がなければ、Review Boardでステータスがアップデートされ、コミットされます。この例ではコミッタはPrasanna Santhanamです。

7)パッチのコミットをコミッタ全員に通知

 コミットされた後は、コミット通知が自動的に、commits@cloudstack.apache.org宛に送られていることを確認します。

8)gitコマンドでコミット状況を確認する

 実際にコミットされているか、コミット時のハッシュを基に確認してみます。

$ git show 0ba355fbc20411890b74f7b6f33edc057c493259
commit 0ba355fbc20411890b74f7b6f33edc057c493259
Author: Simon Waterhouse <simon.waterhouse@citrix.com>
Date:   Tue Nov 13 11:59:08 2012 +0000
    CLOUDSTACK-284: listVirtualMachines when zoneid passed
    When zoneid is passed an no state is specified listVIrtualMachines does
    not return the destroyed vms. This patch fixes the issue.
    Signed-off-by: Prasanna Santhanam <tsp@apache.org>
diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java
index 02d630f..cb0531c 100755
--- a/server/src/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/com/cloud/vm/UserVmManagerImpl.java
@@ -3161,10 +3161,6 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
         if (zone != null) {
             sc.setParameters("dataCenterId", zone);
-
-            if (state == null) {
-                sc.setParameters("stateNEQ", "Destroyed");
-            }

 これで、不具合が発見されてから実際に修正がコミットされるまでの流れが理解できたかと思います。ドキュメントバグに対しても、ビルドスクリプトに対しても同じ手順で不具合が修正されます。

Copyright © ITmedia, Inc. All Rights Reserved.

編集部からのお知らせ

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。