<ph type="x-smartling-placeholder"></ph>
現在、Apigee Edge のドキュメントが表示されています。
Apigee X のドキュメント。 詳細
概要
Edge Appliance CLI を使用すると、Edge Scanner インスタンスのすべての側面を制御および管理できます。
証明書の管理
cert コマンドを使用すると、クライアントが Edge AppSheet を介して安全な呼び出しを行うために使用する署名なしトークンに署名するために使用される公開鍵/秘密鍵のペアをインストールして管理できます。鍵は Apigee Edge の Secure Vault に保存されます。Edge Appliance は、公開鍵を使用して署名付き署名なしトークンを検証します。これらの鍵は、Edge API の設定と構成で説明されているように、edgemicro 構成コマンドを実行すると生成されます。ここで説明する cert コマンドを使用して、必要に応じて鍵の再生成と管理を行うことができます。
証明書をインストールする
Apigee Edge セキュアストア サービスを使用して Vault に鍵をインストールし、出力として公開鍵を返します。鍵ペアのスコープは、指定された組織に設定されます。
使用目的
edgemicro cert install -o [organization] -e [environment] -u [username] -p [password] --force
パラメータ
| パラメータ | 説明 |
|---|---|
-o, --org |
Edge Appliance を構成した Apigee 組織。 |
-e, --env |
Edge Appliance を構成した環境。 |
-u, --username |
Apigee のユーザー名。指定した組織の組織管理者である必要があります。 |
-p, --password |
(省略可)パスワード。コマンドラインでこのパラメータを指定しない場合、メッセージが表示されます。 |
-f, --force |
(省略可)鍵がすでに Vault に保存されている場合は、強制的に置き換える。 |
-h, --help |
使用方法に関する情報を出力します。 |
例
edgemicro cert install -o docs -e test -u jdoe@example.com -f
出力
current nodejs version is v6.1.0 current edgemicro version is 2.2.4-beta password: deleting vault creating vault adding private_key adding public_key installed cert
証明書を削除する
組織の鍵ペアを削除します。
使用目的
edgemicro cert delete -o [organization] -e [environment] -u [username] -p [password]
パラメータ
| パラメータ | 説明 |
|---|---|
-o, --org |
Edge Appliance を構成した Apigee 組織。 |
-e, --env |
Edge Appliance を構成した環境。 |
-u, --username |
Apigee のユーザー名。指定した組織の組織管理者である必要があります。 |
-p, --password |
(省略可)パスワード。コマンドラインでこのパラメータを指定しない場合、メッセージが表示されます。 |
-h, --help |
使用方法に関する情報を出力します。 |
例
edgemicro cert delete -o docs -e test -u jdoe@example.com
出力
deleting vault Vault deleted!
証明書を確認する
組織に証明書がインストールされていることを確認します。
使用目的
edgemicro cert check -o [organization] -e [environment] -u [username] -p [password]
パラメータ
| パラメータ | 説明 |
|---|---|
-o, --org |
Edge Appliance を構成した Apigee 組織。 |
-e, --env |
Edge Appliance を構成した環境。 |
-u, --username |
Apigee のユーザー名。指定した組織の組織管理者である必要があります。 |
-p, --password |
(省略可)パスワード。コマンドラインでこのパラメータを指定しない場合、メッセージが表示されます。 |
-h, --help |
使用方法に関する情報を出力します。 |
例
edgemicro cert check -o docs -e test -u jdoe@example.com
出力 (成功)
checked cert successfully
出力 (失敗)
証明書が存在しない場合は、エラーが返されます。
公開鍵を取得する
指定した組織の公開鍵を返します。認証は必要ありません。
使用目的
edgemicro cert public-key -o [organization] -e [environment]
パラメータ
| パラメータ | 説明 |
|---|---|
-o, --org |
Edge Appliance を構成した Apigee 組織。 |
-e, --env |
Edge Appliance を構成した環境。 |
-h, --help |
使用方法に関する情報を出力します。 |
例
edgemicro cert public-key -o docs -e test
出力 (サンプル)
-----BEGIN CERTIFICATE----- MIICpDCCAYwCCQCKpXWGum9uTjANBgkq9w0BAQsFADAUMRIwEAYDVQQDEwls b2NhbGhvc3cNMTYxMTAyMjAxNTA2WhcNMTYxMTAzMjAxNTA2WjAUMRIwEAYD VQQDEwlsb2Nvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDD ETr/ne/gP47+9LgjLvBJjpbFVdaeUabZZ3wbA7sSIVnnNXWt3yPklrWSfIh+ L2+dq4k+YunsQE2+dwPdXA2x8DPGvqGcCdWPxnpZ7ix5Akbs8i/J+Ue0pXT4 jkpWbaDDftGL2tcxwP45yI+slpDYvmWRps07TFXkAPjGEHYPvCT9/v/35GkL 0h4v0S+XfpcjS5c47o7CIWlkgEM5GBosQUb17kuVR48392vGFPsnCP34iNe7 zguhiCXYg2zkOcj/N3AE4xKIhCz0QcewULy08GltWMmyjJ/30zs8P41JqoA4 RwfeEZ8RenN3rJQim1ppAAEwDQYJKoZIhvcNAQELBQADggEBAHcORIfc+ySe 2FMmqicNe6Wt5V/5zOaBMLsGQdqGOHB5cQc79sMBrk680KVhrwHXZ2nBIkVe UEL+2qLY1VLfswBNAvcNwV9U4TwHq4eIANiD751oJK1tHmM/ujThQkwNf96o 6I7Ws+wfpGO3ppJCttRbtnATIxrwsCHN4i5lbW/tJSL7t/Zf6T1B+YSJU9AF xuvLq22cCqyYJQdmKq2vVS55WRZdllm+mRtJrv7MLM9gfDPRxVlwrBz/eQHy Fv+dwzxcvQjkz03RNhZUodzuD34DPJoYeK++rItsddwQ26KTahH80yYTAFzY x9gfPf1/+qo=? -----END CERTIFICATE-----
Apigee Edge Cloud 用の Edge Appliance の構成
Edge Gateway が Apigee Edge Cloud インスタンスと連携できるようにします。必要な認証プロキシを Edge にデプロイし、認証トークンを生成し、構成ファイルを更新するための一連のコマンドをラップして実行します。完全な動作例については、Edge Appliance の設定と構成をご覧ください。
使用目的
edgemicro configure -o [organization] -e [environment] -u [username] -p [password]
パラメータ
| パラメータ | 説明 |
|---|---|
-o, --org |
Edge Appliance を構成した Apigee 組織。 |
-e, --env |
Edge Appliance を構成した環境。 |
-u, --username |
Apigee のユーザー名。指定した組織の組織管理者である必要があります。 |
-p, --password |
(省略可)パスワード。コマンドラインでこのパラメータを指定しない場合、メッセージが表示されます。 |
-r, --url |
(省略可)organization:environment の仮想ホスト エイリアスを指定します。仮想ホストについては、Edge のドキュメントをご覧ください。デフォルト: org-env.apigee.net |
-v, --virtualHosts |
(省略可)デフォルトの仮想ホスト「default,secure」をオーバーライドします。このオプションは、Edge の組織:環境に、これらのデフォルト以外の仮想ホストが指定されている場合に使用します。仮想ホストについては、Edge のドキュメントをご覧ください。 |
-d, --debug |
(省略可)デバッグ情報を提供します。 |
-h, --help |
使用方法に関する情報を出力します。 |
使用上の注意
このコマンドは、構成情報を ~/.edgemicro/org-env-config.yaml に保存します。
例
edgemicro configure -o docs -e test -u jdoe@example.com
出力
成功すると、このコマンドは Edge Appliance の起動時に使用する必要がある一連の鍵を返します。
... The following credentials are required to start edge micro key: d2f0a246ad52b5d2a8b04ba65b43c76348aba586691cf6185cd7bb9fb78fe9f secret: 59813bc1db4a7ada182705ae40893c28a6fae680c3deb42aefbf1a4db42e372 edgemicro configuration complete!
キーの生成
genkeys コマンドは、分析データを Apigee Edge に非同期的に送信するときに、Edge AppSheet が自己認証に使用する鍵とシークレットのペアを生成します。
使用目的
edgemicro genkeys -o [organization] -e [environment] -u [username] -p [password]
パラメータ
| パラメータ | 説明 |
|---|---|
-o, --org |
Edge Appliance を構成した Apigee 組織。 |
-e, --env |
Edge Appliance を構成した環境。 |
-u, --username |
Apigee のユーザー名。指定した組織の組織管理者である必要があります。 |
-p, --password |
(省略可)パスワード。コマンドラインでこのパラメータを指定しない場合、メッセージが表示されます。 |
-h, --help |
使用方法に関する情報を出力します。 |
使用上の注意
成功すると、このコマンドは 3 つのアイテムを返します。1 つ目は、構成ファイルに配置する必要がある URL です。他の 2 つは、Edge Apigee インスタンスの起動時に必要な鍵ペアです。
- ブートストラップ URL: この URL は、Edge API インスタンスが Apigee Edge に分析データを送信できるようにする Apigee Edge サービスを指します。その URL を Edge AppSheet 構成ファイル(~
/.edgemicro/org-env-config.yaml)にコピーする必要があります。 - key: 鍵。この鍵とシークレットは、Edge AppSheet のインスタンスを起動する CLI コマンドへの入力として必要になります。
- secret: シークレット。
例
edgemicro genkeys -o docs -e test -u jdoe@example.com
出力 (サンプル)
成功すると、このコマンドは、Edge AppSheet の起動時に使用する必要がある一連の鍵を返します。
configuring host edgemicroservices-us-east-1.apigee.net for region us-east-1 Please copy the following property to the edge micro agent config bootstrap: https://edgemicroservices-us-east-1.apigee.net/edgemicro/bootstrap/organization/jdoe/environment/test The following credentials are required to start edge micro key: db39324077989c75eac34c13d285772ea8e3b982b957b3f52916f3048511443f secret: 5bf8da39de0056f88fdd5f25a8602d22f312c1c8c870580a5fef55ac6637b7ae finished
Apigee Edge Private Cloud 用の Edge Appliance の構成
Apigee Edge Private Cloud インストールと連携するように Edge Appliance を構成します。
使用目的
edgemicro private configure -o [organization] -e [environment] -u [username] -p [password]
パラメータ
| パラメータ | 説明 |
|---|---|
-o, --org |
Edge Appliance を構成した Apigee 組織。 |
-e, --env |
Edge Appliance を構成した環境。 |
-u, --username |
Apigee のユーザー名。指定した組織の組織管理者である必要があります。 |
-p, --password |
(省略可)パスワード。コマンドラインでこのパラメータを指定しない場合、メッセージが表示されます。 |
-r, --runtime-url |
プライベート クラウド インスタンスのランタイム URL を指定します。 |
-m, --mgmt-url |
プライベート クラウド インスタンスの管理サーバーの URL。 |
-v, --virtualHosts |
組織:環境の仮想ホストのカンマ区切りのリスト。デフォルトは「default,secure」です。 |
-d, --debug |
(省略可)デバッグ情報を提供します。 |
-h, --help |
使用方法に関する情報を出力します。 |
使用上の注意
このコマンドは、構成情報を ~/.edgemicro/org-env-config.yaml に保存します。
例
edgemicro private configure -o docs -e test -u jdoe@example.com -r http://192.162.55.100:9002 -m http://192.162.55.100:8080
出力
成功すると、このコマンドは、Edge AppSheet の起動時に使用する必要がある一連の鍵を返します。
... The following credentials are required to start edge micro key: d2f0a246ad52b5d2a8b04ba65b43c76348aba586691cf6185cd7bb9fb78fe9f secret: 59813bc1db4a7ada182705ae40893c28a6fae680c3deb42aefbf1a4db42e372 edgemicro configuration complete!
Edge Appliance の起動
Edge Appliance を起動する前に、まず edgemicro configure(パブリック クラウド)または edgemicro private Configure(プライベート クラウド)を実行する必要があります。config コマンドは、Edge AppSheet の起動に必要な鍵とシークレットの値を返します。
使用目的
edgemicro start -o [organization] -e [environment] -k [public-key] -s [secret-key]
パラメータ
| パラメータ | 説明 |
|---|---|
-o, --org |
Edge Appliance を構成した Apigee 組織。 |
-e, --env |
Edge Appliance を構成した環境。 |
-k, --key |
「edgemicro configure」の実行時に返される Key-Value使用できます。 |
-s, --secret |
「edgemicro configure」の実行時に返されるシークレットの値使用できます。 |
-p, --processes |
(省略可)開始するプロセスの数。デフォルト: システム上のコア数。 |
-d, --pluginDir |
(省略可)プラグイン ディレクトリの絶対パス。 |
-r, --port |
(省略可)~/.edgemicro/org-env-config.yaml ファイルで指定されたポート番号をオーバーライドします。デフォルト: 8000 |
-c, --cluster |
(省略可)Edge AppSheet をクラスタモードで起動します。 注: v2.3.1 から、このオプションは削除されました。v2.3.1 以降のバージョンでは、Edge Micro は常にクラスタモードで起動します。 |
-c --config |
(省略可)default config.yaml ファイルの場所を指定します。デフォルトでは、このファイルは ./config/config.yaml にあります。 |
-d, --debug |
(省略可)デバッグ情報を提供します。 |
-h, --help |
使用方法に関する情報を出力します。 |
ポートの設定
start コマンドを使用すると、ポート番号を指定して、構成ファイルで指定したポートをオーバーライドできます。PORT 環境変数を使用してポート番号を指定することもできます。例:
edgemicro start -o docs -e test -k abc123 -s xyz456 -p 2 --port 8002
または
export PORT=8002 edgemicro start -o org -e test -k key -s secret -p 2
ポートが使用中の場合、Edge Gateway はエラーを返します。
クラスタリングについて
Edge Appliance では、Node.js クラスタ モジュールを使用してクラスタリングを有効にします。クラスタリングを使用すると、Edge Appliance でマルチコア システムを利用できます。詳しくは、こちらの Node.js ドキュメントをご覧ください。
例
edgemicro start -o docs -e test -k abc123 -s xyz456
出力例:
... PROCESS PID : 54709 installed plugin from analytics installed plugin from analytics installed plugin from oauth installed plugin from oauth installed plugin from analytics installed plugin from oauth 5a86b570-a142-11e6-aa1f-6730e9065d6c edge micro listening on port 8000 5a86dc80-a142-11e6-962c-43d9cc723190 edge micro listening on port 8000 5a8751b0-a142-11e6-8241-cf1c517c91eb edge micro listening on port 8000 installed plugin from analytics installed plugin from oauth 5a924e30-a142-11e6-8740-2944162ce275 edge micro listening on port 8000
トークンの管理
token コマンドを使用すると、署名付き OAuth2 アクセス トークンを取得、デコード、検証できます。OAuth2 アクセス トークンを使用した API 呼び出しの保護もご覧ください。
トークンをデコードする
署名付きのエンコードされた署名なしトークンを、書式なしテキストの JSON JWT(Java Web Token)表現にデコードします。トークンは、アプリケーション名、client_id、製品リストなど、トークンの作成に使用されたキーを提供した Apigee Edge デベロッパー アプリに関する情報を伝えるものです。
使用目的
edgemicro token decode -f [filename]
パラメータ
| パラメータ | 説明 |
|---|---|
-f, --file |
デコードする JWT トークンを含むファイルの名前。 |
-h, --help |
使用方法に関する情報を出力します。 |
例
edgemicro token decode -f token.jwt
出力(サンプル)
{ header: { typ: 'JWT', alg: 'RS256' }, payload: { application_name: 'b43342ef-86f6-4666-a121-b9ac2025d217', client_id: 'O9ZQRZKnn1rdgcKQgsABSMdOsKS', scopes: [], api_product_list: [ 'MicroTest' ], iat: 1436280566, exp: 1436282365 }, signature: '' }
トークンを生成する
署名付きの署名なしトークンを生成します。このトークンにより、クライアント アプリは Edge AppSheet に対して認証済みの API 呼び出しを行うことができます。このトークンは、OAuth 2.0 準拠の JSON Web Token(JWT)です。これには、Apigee Edge に登録されたデベロッパー アプリからコンシューマ キー(クライアント ID)とコンシューマ シークレット(クライアント シークレット)の値を入力する必要があります。OAuth2 アクセス トークンを使用した API 呼び出しの保護もご覧ください。
使用目的
edgemicro token get -o [org] -e [env] -i [client_id] -s [client_secret]
パラメータ
| パラメータ | 説明 |
|---|---|
-o, --org |
Edge Appliance を構成した Apigee 組織。 |
-e, --env |
Edge Appliance を構成した環境。 |
-1, --key |
Dataproc 対応プロキシに関連付けられているデベロッパー アプリのクライアント ID。 |
-s, --secret |
Dataproc 対応プロキシに関連付けられているデベロッパー アプリのクライアント シークレット。 |
-h, --help |
使用方法に関する情報を出力します。 |
例
edgemicro token get -o docs -e test -i 5UzOwAXGoOeo60aew94PPG5MAZE3aJp -s 6vahKFGS9a3qMLwz
出力(サンプル)
{ token: 'eyJ0eXAiOiJKV1JhbGciOiJSUzI1NiJ9Glvbl9uYW1lIjoiNWNiMGY0NTV6TV3
EtOWMzOC00YmJjLWIzNzEtZGMxZTQzOGMxIiwiY2xpZW50X2lkIjoiNVV6T3dBWEdvSU9lbz
YwYWV3OTRQN0c1TUFaRTNhSnAiLCJzY2MiOltdLCJhcGlfcHJvZHVjdF9saXN0IjpbIkVkZ2
VNaWNyb1Rlc3RQcm9kdWN0Il0sImlhdCI3ODEyMzQ2MSwiZXhwIjoxNDc4MTI1MjYwfQ.Dx5
f5U7PXm8koNGmFX4N6VrxKMJnpndKgoJ5zWSJvBZ6Ccvhlpd85ipIIA5S2A5nx4obYWp_rpY
RJpIGYwyxP6Oq2j0rxnVjdCC4qyYMgthZjhKgEBVBe3s1ndP72GP2vV6PsSA9RQ2-yzsy9r0
TzhAZ3NJTxT1tS0XKqKngE-OhR3fJHVLAzdMDT0AmS9H0Z2NAJtQOuK6RTpCjG9B6Bc48AEM
sj7QSM-1LWiQ8LdY8k_BoC06qsTI7bCQGWwTuqL-ismbcx2bxovUxSemZIaoROfuF-dCZHG3
2aTP75WxBvvNgBBvPvQtPzbeSOtEaww' }トークンを取得するための HTTP リクエストの実行
未加工の HTTP リクエストを作成してトークンを取得することもできます。curl の例を次に示します。URL の組織名と環境名を置き換え、client_id パラメータと client_secret パラメータにコンシューマ ID とコンシューマ シークレットの値を挿入します。
curl -i -X POST "http://<org>-<test>.apigee.net/edgemicro-auth/token" -d '{"grant_type": "client_credentials", "client_id": "4t8X137pOUUtMR7wag3M1yZTcRxeK", "client_secret": "RAcOFVOvO0jns"}' -H "Content-Type: application/json"
トークンを検証する
指定された組織と環境の Apigee Edge に格納されている公開鍵に対して、署名なしトークンを検証します。
使用目的
edgemicro token verify -o [org] -e [env] -f [filename]
パラメータ
| パラメータ | 説明 |
|---|---|
-o, --org |
Edge Appliance を構成した Apigee 組織。 |
-e, --env |
Edge Appliance を構成した環境。 |
-f, --file |
検証する JWT を含むファイルの名前。 |
-h, --help |
使用方法に関する情報を出力します。 |
例
edgemicro token get -o docs -e test -f token.jwt
有効なトークンの出力例
{ application_name: 'b43342ef-86f6-4666-a121-b9ac2025d217',
client_id: 'O9ZQRZKnn1rdgcKQsAZUBkQSMdOsKS',
scopes: [],
api_product_list: [ 'MicroTest' ],
iat: 1436396155,
exp: 1436397954 }無効なトークンの出力例
{ [JsonWebTokenError: invalid token] name: 'JsonWebTokenError', message: 'invalid token' }期限切れのトークンの出力例
{ [TokenExpiredError: jwt expired]
name: 'TokenExpiredError',
message: 'jwt expired',
expiredAt: Tue Jul 07 2015 09:19:25 GMT-0600 (MDT) }署名なしトークンの直接取得
Apigee Edge 上のトークン エンドポイントに HTTP リクエストを送信して、署名なしトークンを直接取得することもできます。実際のトークン エンドポイントは、CLI コマンド deploy-edge-service でデプロイされるプロキシに実装されます。
curl の例を次に示します。URL の組織名と環境名を実際の値に置き換え、client_id パラメータと client_secret パラメータを Apigee Edge のデベロッパー アプリから取得したコンシューマ ID とコンシューマ シークレットの値に置き換えます。
curl -i -X POST "http://<org>-<test>.apigee.net/edgemicro-auth/token" -d '{"grant_type": "client_credentials", "client_id": "4t8X137pOUUtMR7wag3M1yZTcRxeK", "client_secret": "RAcOFVOvO0jns"}' -H "Content-Type: application/json"
出力例:
HTTP/1.1 200 OK X-Powered-By: Express Cache-Control: no-store Pragma: no-cache Content-Type: application/json; charset=utf-8 Content-Length: 640 ETag: W/"280-ze/g/k+c9taqp110vjYQ" Date: Fri, 17 07 2015 15:49:24 GMT Connection: keep-alive "<long string of numbers and letters>"
新しい Edge Scanner 構成を初期化する
このコマンドを 1 回実行してから、Edge API を最初にインストールしてください。新しいデフォルト構成ファイル(~/.edgemicro/default.yaml)を作成します。
使用目的
edgemicro init
パラメータ
| パラメータ | 説明 |
|---|---|
-h, --help |
使用方法に関する情報を出力します。 |
例
edgemicro init
出力 (成功)
config initialized to /MyHome/.edgemicro/default.yaml
Edge Appliance の構成の確認
Edge AppSheet が正しく構成されていることを確認します。
使用目的
edgemicro verify -o [organization] -e [environment] -k [public-key] -s [secret-key]
パラメータ
| パラメータ | 説明 |
|---|---|
-o, --org |
Edge Appliance を構成した Apigee 組織。 |
-e, --env |
Edge Appliance を構成した環境。 |
-k, --key |
「edgemicro configure」の実行時に返される Key-Value使用できます。 |
-s, --secret |
「edgemicro configure」の実行時に返されるシークレットの値使用できます。 |
-h, --help |
使用方法に関する情報を出力します。 |
例
edgemicro verify -o docs -e test -k abc123 -s xyz456
出力 (成功)
logging to /var/tmp/edgemicro-My-Machine.local-a0c48610-a148-11e6-8466-93f081b05988 installed plugin from analytics installed plugin from oauth a0c48610-a148-11e6-8466-93f081b05988 edge micro listening on port 8000 verifying analytics negative case: OK verifying bootstrap url availability:OK verifying jwt_public_key availability: OK verifying products availability: OK verifying quota with configured products: OK verifying analytics with payload: OK verification complete
マイクロサービス クラスタのステータスを確認する
追加: v2.2.4-beta
デフォルトでは、Edge Gateway はクラスタモードで起動します。このコマンドを使用して、クラスタのステータスを確認できます。
使用目的
edgemicro status
パラメータ
| パラメータ | 説明 |
|---|---|
-h, --help |
使用方法に関する情報を出力します。 |
例
edgemicro status
出力 (成功)
current nodejs version is v6.1.0 current edgemicro version is 2.2.4-beta edgemicro is running with 4 workers
Apigee クラスタを停止する
追加: v2.2.4-beta
Edge Scanner クラスタを停止します。
使用目的
edgemicro stop
パラメータ
| パラメータ | 説明 |
|---|---|
-h, --help |
使用方法に関する情報を出力します。 |
例
edgemicro stop
出力 (成功)
current nodejs version is v6.1.0 current edgemicro version is 2.2.4-beta Stop Completed Successfully
Microgateway クラスタの再読み込み
追加: v2.2.4-beta
構成の変更後にダウンタイムなしで再起動できます。新しい構成を pull して Edge Appliance を再読み込みします。
使用目的
edgemicro reload -o [organization] -e [environment] -k [public-key] -s [secret-key]
パラメータ
>| パラメータ | 説明 |
|---|---|
-o, --org |
Edge Appliance を構成した Apigee 組織。 |
-e, --env |
Edge Appliance を構成した環境。 |
-k, --key |
「edgemicro configure」の実行時に返される Key-Value使用できます。 |
-s, --secret |
「edgemicro configure」の実行時に返されるシークレットの値使用できます。 |
-h, --help |
使用方法に関する情報を出力します。 |
例
edgemicro reload -o docs -e test -k abc123 -s xyz456
出力 (成功)
... Reload Completed Successfully