JavaScript is required to for searching.
Omitir Vínculos de navegación
Salir de la Vista de impresión
Guía de administración de Oracle® ZFS Storage Appliance
Red de tecnología de Oracle
Biblioteca
PDF
Vista de impresión
Comentarios
search filter icon
search icon

Información del documento

Uso de esta documentación

Capítulo 1 Descripción general de Oracle ZFS Storage Appliance

Capítulo 2 Estado

Capítulo 3 Configuración inicial

Capítulo 4 Configuración de red

Capítulo 5 Configuración del almacenamiento

Capítulo 6 Configuración de red de área de almacenamiento

Capítulo 7 Configuración de usuario

Capítulo 8 Configuración de preferencias de dispositivos ZFSSA

Capítulo 9 Configuración de alertas

Capítulo 10 Configuración de cluster

Capítulo 11 Servicios del dispositivo ZFSSA

Capítulo 12 Recursos compartidos, proyectos y esquemas

Capítulo 13 Replicación

Capítulo 14 Migración shadow

Capítulo 15 Secuencias de comandos de la CLI

Capítulo 16 Flujos de trabajo de mantenimiento

Uso de los flujos de trabajo

Contexto de ejecución de flujos de trabajo

Parámetros de flujos de trabajo

Parámetros restringidos

Parámetros opcionales

Manejo de errores de flujo de trabajo

Validación de entradas de flujo de trabajo

Auditoría de ejecución de flujos de trabajo

Generación de informes de ejecución de flujos de trabajo

Control de versiones

Control de versiones de dispositivo

Control de versiones de flujos de trabajo

Flujos de trabajo como acciones de alerta

Contexto de ejecución de las acciones de alerta

Auditoría de acciones de alerta

Uso de flujos de trabajo programados

Uso de la CLI

Codificación del programa

Ejemplo: selección de tipo de dispositivo

BUI

CLI

Descarga de flujos de trabajo

Visualización de flujos de trabajo

Ejecución de flujos de trabajo

Capítulo 17 Integración

Índice

Generación de informes de ejecución de flujos de trabajo

Para los flujos de trabajo complicados cuya ejecución requiere bastante tiempo, puede ser útil proporcionar información clara acerca del progreso para el usuario que ejecuta el flujo de trabajo. Para permitir que se genere un informe sobre la ejecución de un flujo de trabajo de esta manera, el miembro execute debe devolver una matriz de pasos. Cada elemento de la matriz debe contener los siguientes miembros:

Tabla 16-6  Miembros requeridos para la generación de informes de ejecución
Miembro obligatorio
Tipo
Descripción
step
String
Cadena que denota el nombre del paso de ejecución.
execute
Function
Función que ejecuta el paso del flujo de trabajo.

Al igual que con la función execute para el flujo de trabajo como un todo, el miembro execute de cada paso toma como argumento un objeto que contiene los parámetros del flujo de trabajo. Como ejemplo, en el siguiente flujo de trabajo, se crea un nuevo proyecto, recurso compartido y registro de auditoría en tres pasos:

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); }
};