Estilo NATIVO
SnapCenter admite lenguajes que no SEAN DE programación PERL o lenguajes de scripting para crear complementos. Esto se conoce como programación DE estilo NATIVO, que puede ser un archivo de secuencia de comandos o LOTE.
Los plugins DE estilo NATIVO deben seguir ciertas convenciones indicadas a continuación:
El plugin debe ser ejecutable
-
Para los sistemas Unix, el usuario que ejecuta el agente debe tener privilegios de ejecución en el plug-in
-
En los sistemas Windows, los complementos de PowerShell deben tener el sufijo .ps1, los demás scripts de Windows deben tener el sufijo .cmd o .bat y el usuario debe ser ejecutable
-
Los complementos deben reaccionar a los argumentos de la línea de comandos, como "-QUIESCE", "-unQUIESCE"
-
Los plug-ins deben devolver código de salida 99 en caso de que no se haya implementado una operación o función
-
Los plugins deben utilizar una sintaxis específica para devolver los resultados al servidor
Manejo general del plug-in
Mensajes de error de registro
Cada operación puede enviar mensajes al servidor, que muestra y almacena el contenido. Un mensaje contiene el nivel de mensaje, una Marca de tiempo y un texto de mensaje. Se admiten mensajes multilínea.
Formato:
SC_MSG#<level>#<timestamp>#<message> SC_MESSAGE#<level>#<timestamp>#<message>
Uso de los espárragos del plug-in
Los complementos de SnapCenter deben implementar espárragos de complemento. Estos son métodos a los que el servidor SnapCenter llama en función de un flujo de trabajo específico.
Muñón de complemento | Opcional/obligatorio | Específico |
---|---|---|
modo de inactividad |
obligatorio |
Este código auxiliar es responsable de realizar una pausa. Sitúa la aplicación en el estado en el que podemos crear una snapshot. Esto se denomina antes de una operación de Snapshot del almacenamiento. |
inactivación |
obligatorio |
Este código auxiliar es responsable de realizar una pausa. Coloca la aplicación en un estado normal. Esto se denomina después de una operación de Snapshot de almacenamiento. |
clone_pre |
opcional |
Este archivo stub es responsable de realizar tareas previas a la clonación. Esto supone que se utiliza la interfaz de clonado de SnapCenter incorporada y que solo se activa mientras se realiza la acción "clone_vol o clone_lun". |
clone_post |
Opcional |
Este archivo stub es responsable de realizar tareas posteriores a la clonación. Esto supone que utiliza la interfaz de clonado de SnapCenter integrada y que solo se activa mientras se realizan operaciones de «clone_vol o clone_lun». |
restaurar_pre |
Opcional |
Este archivo stub es responsable de realizar tareas previas a la restauración. Esto supone que se utiliza la interfaz de restauración de SnapCenter integrada y que solo se activa durante la operación de restauración. |
restaurar |
opcional |
Este código auxiliar es responsable de realizar todas las acciones de restauración. Esto supone que no está utilizando la interfaz de restauración integrada. Se activa durante la operación de restauración. |
Ejemplos
Windows PowerShell
Compruebe si la secuencia de comandos se puede ejecutar en el sistema. Si no puede ejecutar la secuencia de comandos, defina el desvío de Set-ExecutionPolicy para la secuencia de comandos y vuelva a intentar la operación.
if ($args.length -ne 1) { write-warning "You must specify a method"; break; } function log ($level, $message) { $d = get-date echo "SC_MSG#$level#$d#$message" } function quiesce { $app_name = (get-item env:APP_NAME).value log "INFO" "Quiescing application using script $app_name"; log "INFO" "Quiescing application finished successfully" } function unquiesce { $app_name = (get-item env:APP_NAME).value log "INFO" "Unquiescing application using script $app_name"; log "INFO" "Unquiescing application finished successfully" } switch ($args[0]) { "-quiesce" { quiesce; } "-unquiesce" { unquiesce; } default { write-error "Function $args[0] is not implemented"; exit 99; } } exit 0;