Skip to main content
Hay disponible una nueva versión de este producto.
Se proporciona el idioma español mediante traducción automática para su comodidad. En caso de alguna inconsistencia, el inglés precede al español.

Estilo NATIVO

Colaboradores

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;