表4-3は、コードの各行の分析です。
表4-3 行単位のスクリプト分析
行 | 説明 |
---|---|
1 |
すべてのEM CLI Verbをインポートし、VerbExecutionErrorをインポートします。 |
2 |
Jythonライブラリをインポートします。 |
4-9 |
変数を設定します。
|
10 |
入力引数を定義します。 |
11-15 |
引数が無効であるか見つからないスクリプトを実行する場合にユーザーに表示されるメッセージを定義します。 Usage: promote_discovered_dbs.py [-help][-all] Add all discovered Single Instance DBs[-targets <target1:target2:...] Add only targets listed |
17-41 |
入力変数(行4から9で定義)が有効で存在することを確認するForループを定義し、そうでない場合はスクリプトが終了し、行11-15で定義されたメッセージを表示します。 |
43-50 |
ユーザーがスクリプトの実行時に |
52-58 |
ユーザーがスクリプトの実行時にユーザー名、パスワードおよびEnterprise ManagerのURLを指定していることを確認するIf文を定義します。これらの引数のいずれかが見つからない場合、スクリプトが終了し、行11-15で定義されたメッセージを表示します。 |
60-62 |
すべてのターゲットを取得するために必要なOMSへの接続。OMSに接続する前に、set_client_property()関数を使用してOMS接続の詳細を設定する必要があります。これによりOMS URLがhttps://myoms.com/emにされ、クライアントがすべての証明書を信頼するようになります。 これらの詳細はディスクに格納されないことに注意してください。これらの詳細はメモリーに格納され、スクリプトが1回実行される間のみ存続します。クライアント・プロパティの詳細については、対話型のシェルからhelp('client_properties')と入力してください。 これらをスクリプトで定義しない場合、EMCLI_OMS_URLおよびEMCLI_TRUSTALL変数を環境変数として指定することもできます。証明書をダウンロード済であれば、環境変数EMCLI_CERT_LOCを使用して証明書のディレクトリを指定することもできます。この場合、EMCLI_TRUSTALLは必要ありません。詳細は、「対話モード — Oracle Management Server (OMS)への接続」を参照してください。 |
63 |
OMSへのログインを提供します。自動ログインのEM CLIを設定している場合、これを削除できます。設定および自動ログインの詳細は、「スクリプト・オプションを使用したEM CLIクライアントのダウンロードとデプロイ」、およびVerbのsetupとloginを参照してください。 |
65 |
モニタリング対象ターゲットに必要な資格証明文字列の変数を定義します。 |
67 |
|
68 |
target_paramsの値を設定します |
69 |
get_targets verbのtargets (ターゲットのリストはtargetparamsによって定義されます)、unmanagedおよびpropertiesパラメータを使用して、target_arrayの値を設定します。最初のターゲットに設定される場合、スクリプトが次のターゲットに移動します。 |
70-71 |
get_targets verbのtargets、unmanagedおよびpropertiesパラメータを使用して、スクリプトの実行時に-allオプションが指定される場合にtarget_arrayの値を設定するelse if文を定義します。最初のターゲットに設定される場合、スクリプトが次のターゲットに移動します。 |
72-74 |
スクリプトの実行時に-targetsまたは-allオプションが指定されない場合のelse文を定義します。これが発生した場合、スクリプトが終了し、行11-15で定義されたメッセージを表示します。 |
76-78 |
配列にデータがあるかどうかを確認し、データがある場合にスクリプトが次のようなメッセージを表示します。
|
80-82 |
ホスト情報からホスト名を抽出します |
83-88 |
add_target verbを使用してターゲットを管理リポジトリに追加し、次のメッセージを表示します。 Succeeded スクリプトがターゲットを管理リポジトリに追加できなかった場合、次のメッセージが表示されます。 Failed |
90 |
行76で配列にターゲットがない場合、スクリプトが終了し、ユーザーに次のメッセージを表示します。 INFO: There are no targets to be promoted. Please verify the targets in Enterprise Manager webpages.Logout successful |