JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle® ZFS Storage Appliance 管理ガイド、Release 2013.1.3.0
Oracle Technology Network
ライブラリ
PDF
印刷ビュー
フィードバック
search filter icon
search icon

ドキュメント情報

Oracle ZFS Storage Appliance の概要

Oracle ZFS Storage Appliance の構成

サービスの操作

Oracle ZFS Storage Appliance の管理

保守ワークフローの操作

ワークフローについて

ワークフローのパラメータについて

制約付きワークフローパラメータ

オプションワークフローのパラメータ

ワークフローのエラー処理

ワークフローの入力の検証

ワークフローの実行の監査およびレポート

ワークフローのバージョン管理について

警告アクションでのワークフローの使用

スケジュールされたワークフローの使用

スケジュールされたワークフローの使用

ワークフロースケジュールのコード化

指定されたドライブタイプに基づくワークシートの作成

BUI を使用したワークフローのアップロード

CLI を使用したワークフローのダウンロード

CLI を使用したワークフローの一覧表示

CLI を使用したワークフローの実行

シェアの操作

アプリケーションと Oracle ZFS Storage Appliance の統合

ワークフローの実行の監査およびレポート

ワークフローは、audit 関数を呼び出すことによって監査レコードを発行できます。audit 関数の唯一の引数は、監査ログに記録される文字列です。

実行にある程度の時間が必要な複雑なワークフローの場合は、そのワークフローを実行しているユーザーに明確な進捗状況を表示すると有益です。ワークフローの実行をこの方法で報告できるようにするには、execute メンバーが手順の配列を返すべきです。各配列要素には、次のメンバーが必要です。

表 4-6  実行のレポートの必須メンバー
必須メンバー
タイプ
説明
step
文字列
実行段階の名前を示す文字列
execute
関数
ワークフローの段階を実行する関数

全体としてのワークフロー上の execute 関数と同様に、各段階の execute メンバーは、そのワークフローへのパラメータを含むオブジェクトを引数として受け取ります。

使用例 4-7  ワークフローの実行のレポート

例として、3 つの手順で新しいプロジェクト、シェア、および監査レコードを作成するワークフローを次に示します。

var steps = [ {
	step: 'Checking for associated project',
	execute: function (params) {
		try {
			run('shares select ' + params.unit);
		} catch (err) {
			if (err.code != EAKSH_ENTITY_BADSELECT)
				throw (err);

			/*
			 * We haven't yet created a project that corresponds to
			 * this business unit; create it now.
			 */
			run('shares project ' + params.unit);
			set('mountpoint', '/export/' + params.unit);
			run('commit');
			run('shares select ' + params.unit);
		}
	}
}, {
	step: 'Creating share',
	execute: function (params) {
		run('filesystem ' + params.name);
		run('commit');
	}
}, {
	step: 'Creating audit record',
	execute: function (params) {
		audit('created "' + params.name + '" in "' + params.unit);
	}
} ];

var workflow = {
	name: 'Create share',
	description: 'Creates a new share in a business unit',
	parameters: {
		name: {
			label: 'Name of new share',
			type: 'String'
		},
		unit: {
			label: 'Business unit',
			type: 'ChooseOne',
			options: [ 'development', 'finance', 'qa', 'sales' ],
			optionlabels: [ 'Development', 'Finance',
			    'Quality Assurance', 'Sales/Administrative' ],
		}
	},
	validate: function (params) {
		try {
			run('shares select ' + params.unit);
			run('select ' + params.name);
		} catch (err) {
			if (err.code == EAKSH_ENTITY_BADSELECT)
				return;
		}

		return ({ name: 'share already exists' });
	},
	execute: function (params) { return (steps); }
};