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
-
Para los sistemas Windows, los plugins de PowerShell deben tener el sufijo .ps1, otras ventanas las secuencias de comandos deben tener el sufijo .cmd o .bat y deben ser ejecutables por el usuario
-
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. Coloca el Aplicación a un estado en el que podemos crear una copia Snapshot. Esto se denomina antes de la operación de copia de Snapshot de almacenamiento. |
inactivación |
obligatorio |
Este código auxiliar es responsable de realizar una pausa. En lugar la aplicación en un estado normal. Esto se denomina después del almacenamiento Operación de copia de Snapshot. |
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. Este asume que no está utilizando la interfaz de restauración incorporada. 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;