CLI における中心的な原則は、コマンドが実行されているコンテキストです。このコンテキストによって、システムのどの要素を管理できるか、およびどのコマンドを使用できるかが規定されます。コンテキストには、各コンテキスト自体に入れ子のコンテキストが含まれている可能性のあるツリー構造があり、一般には、この構造によって BUI 内のビューの構造がミラー化されています。
ログイン時の初期コンテキストはルートコンテキストであり、すべてのコンテキストの親または上位コンポーネントとして機能します。コンテキストに移動するには、そのコンテキストの名前をコマンドとして実行します。たとえば、ブラウザ内の Chapter 4, ネットワーク構成ビューで使用可能な機能は、CLI の configuration コンテキストで使用できます。次のように、ルートコンテキストから直接入力してこのコンテキストにアクセスできます。
dory:> configuration dory:configuration>
プロンプト内のコロンと大なり記号の間にコンテキストが表示されており、プロンプトがコンテキストを反映して変更されることに注意してください。
show コマンドは子コンテキストを表示します。たとえば、configuration コンテキストから実行すると、次のようになります。
dory:configuration> show Children: net => Configure networking services => Configure services version => Display system version users => Configure administrative users roles => Configure administrative roles preferences => Configure user preferences alerts => Configure alerts storage => Configure Storage
これらの子コンテキストは、Chapter 4, ネットワーク構成、Chapter 11, ZFSSA サービスおよび Chapter 7, ユーザー構成、設定Chapter 8, ZFSSA の設定などの、ブラウザ内の Chapter 6, Storage Area Network の構成ビューの下で使用可能なビューに対応しています。これらの子コンテキストのいずれかを選択するには、その名前を入力します。
dory:configuration> preferences dory:configuration preferences>
中間のコンテキストを空白で区切って指定することによって、上位コンテキストから直接下位コンテキストに移動できます。たとえば、ルートコンテキストから直接 configuration preferences に移動するには、単に次のように入力します。
dory:> configuration preferences dory:configuration preferences>
一部の子コンテキストは、ブラウザ内の固定されたビューにではなく、ユーザーまたはシステムのどちらかによって作成された動的なエンティティーに対応しているという点で動的です。これらのコンテキストに移動するには、select コマンドを使用し、そのあとに動的コンテキストの名前を指定します。特定のコンテキスト内に含まれている動的コンテキストの名前は、list コマンドを使用して表示されます。たとえば、users コンテキストは静的コンテキストですが、各ユーザーは独自の動的コンテキストです。
dory:> configuration users dory:configuration users> list NAME USERNAME UID TYPE John Doe bmc 12345 Dir Super-User root 0 Loc
bmc という名前のユーザーを選択するには、コマンド select bmc を発行します。
dory:configuration users> select bmc dory:configuration users bmc>
一部のコンテキストでは select と destroy を交互に使用すると、プロパティーに基づいてエンティティーを選択できます。たとえば、次のコマンドを発行することによって、maintenance logs system コンテキストで reboot モジュールによって発行されたログエントリを選択できます。
dory:maintenance logs system> select module=reboot dory:maintenance logs system entry-034> show Properties: timestamp = 2010-8-14 06:24:41 module = reboot priority = crit text = initiated by root on /dev/console syslogd: going down on signal 15
ほかのコマンドと同様に、select をコンテキスト変更コマンドに追加することもできます。たとえば、ルートコンテキストから bmc という名前のユーザーを選択するには、次のコマンドを実行します。
dory:> configuration users select bmc dory:configuration users bmc>
last コマンドを使用すると、前に選択または作成したコンテキストに移動できます。このコマンドは現時点では、レプリケーションアクションのコンテキストにのみ実装されています。
次の例ではレプリケーションアクションを作成し、last および get id コマンドを使用してレプリケーションアクション ID を取得します。そのあと別のアクションを選択し、last および get id コマンドを使用して、最後に実行したレプリケーションアクションの ID を取得します。
dory:shares p1/share replication> list TARGET STATUS NEXT action-000 oakmeal idle Sync now action-001 dory idle Sync now dory:shares p1/share replication> create dory:shares p1/share action (uncommitted)> set target=dory target = dory (uncommitted) dory:shares p1/share action (uncommitted)> set pool=p0 pool = p0 (uncommitted) dory:shares p1/share action (uncommitted)> commit dory:shares p1/share replication> last dory:shares p1/share action-002> get id id = 7034367a-d4d8-e26f-fa93-c3b454e3b595 dory:shares p1/share action-002> done dory:shares p1/share replication> select action-000 dory:shares p1/share action-000> get id id = 9895d9f4-7b23-ebe1-faf2-d85a581e3dff dory:shares p1/share action-000> done dory:shares p1/share replication> last get id id = 9895d9f4-7b23-ebe1-faf2-d85a581e3dff dory:shares p1/share replication>