Skip to main content
Eine neuere Version dieses Produkts ist erhältlich.
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

PERL-basierte Entwicklung

Beitragende

Bei der Entwicklung des Plug-ins mittels PERL müssen Sie bestimmte Konventionen beachten.

  • Inhalte müssen lesbar sein

  • Obligatorische Operationen setenv, quiesce und unquiesce implementieren müssen

  • Sie müssen eine bestimmte Syntax verwenden, um die Ergebnisse an den Agenten weiterzuleiten

  • Der Inhalt sollte als <PLUGIN_NAME>.pm Datei gespeichert werden

Verfügbare Operationen sind

  • Setenv

  • Version

  • Stilllegen

  • Unquiesce

  • Clone_Pre, Clone_Post

  • Restore_Pre, Restore

  • Bereinigung

Allgemeine Plug-in-Handhabung

Verwenden des Ergebnisobjekts

Jeder benutzerdefinierte Plug-in-Vorgang muss das Ergebnisobjekt definieren. Dieses Objekt sendet Nachrichten, Exit Code, stdout und stderr zurück an den Host-Agent.

Ergebnisobjekt:

my $result = {
      exit_code => 0,
      stdout => "",
      stderr => "",
};

Ergebnisobjekt wird zurückgegeben:

return $result;

Wahrung der Datenkonsistenz

Es ist möglich, Daten zwischen den Operationen (außer Bereinigung) als Teil der gleichen Workflow-Ausführung zu erhalten. Dies erfolgt mit Schlüsselwert-Paaren. Die Daten werden als Teil des Ergebnisobjekts festgelegt und sind in den nachfolgenden Operationen desselben Workflows erhalten und verfügbar.

Im folgenden Codebeispiel werden die zu haltenden Daten festgelegt:

my $result = {
  exit_code => 0,
  stdout => "",
  stderr => "",
};
  $result->{env}->{‘key1’} = ‘value1’;
  $result->{env}->{‘key2’} = ‘value2’;
  ….
  return $result

Der obige Code setzt zwei Schlüssel-Wert-Paare, die als Eingabe in der nachfolgenden Operation zur Verfügung stehen. Auf die beiden Schlüsselwertware kann über folgenden Code zugegriffen werden:

sub setENV {
    my ($self, $config) = @_;
    my $first_value = $config->{‘key1’};
    my $second_value = $config->{‘key2’};
    …
}
 === Logging error messages
Jeder Vorgang kann Nachrichten an den Host-Agent senden, der den Inhalt anzeigt und speichert. Eine Nachricht enthält die Nachrichtenebene, einen Zeitstempel und einen Nachrichtentext. Mehrzeilare Nachrichten werden unterstützt.
Load the SnapCreator::Event Class:
my $msgObj = new SnapCreator::Event();
my @message_a = ();

Verwenden Sie msgObj, um eine Nachricht mithilfe der Erfassungsmethode zu erfassen.

$msgObj->collect(\@message_a, INFO, "My INFO Message");
$msgObj->collect(\@message_a, WARN, "My WARN Message");
$msgObj->collect(\@message_a, ERROR, "My ERROR Message");
$msgObj->collect(\@message_a, DEBUG, "My DEBUG Message");
$msgObj->collect(\@message_a, TRACE, "My TRACE Message");

Meldungen auf das Ergebnisobjekt anwenden:

$result->{message} = \@message_a;

Verwendung von Plug-in-Stiften

Benutzerdefinierte Plug-ins müssen Plug-in-Stiche enthalten. Dies sind Methoden, die der SnapCenter-Server auf Grundlage eines Workflows aufruft.

Steckschraube Optional/Erforderlich Zweck

Setenv

Erforderlich

Dieser Stub legt die Umgebung und das Konfigurationsobjekt fest.

Hier sollte eine Analyse oder Handhabung der Umgebung durchgeführt werden. Jedes Mal, wenn ein Stub genannt wird, wird die setenv stub kurz zuvor aufgerufen. Es ist nur für PERL-Plug-ins erforderlich.

Version

Optional

Diese Stub wird verwendet, um die Anwendungsversion zu erhalten.

Ermitteln

Optional

Mit diesem Stub werden Anwendungsobjekte wie beispielsweise die auf dem Agenten oder Host gehostete Instanz oder Datenbank ermittelt.

Das Plug-in wird voraussichtlich im Rahmen der Antwort erkannte Applikationsobjekte in einem bestimmten Format zurückgeben. Dieser Stub wird nur verwendet, wenn die Anwendung in SnapDrive für Unix integriert ist.

Hinweis Linux-Dateisystem (Linux-Varianten) wird unterstützt. AIX/Solaris (Unix-Varianten) werden nicht unterstützt.

Discovery_complete

Optional

Mit diesem Stub werden Anwendungsobjekte wie beispielsweise die auf dem Agenten oder Host gehostete Instanz oder Datenbank ermittelt.

Das Plug-in wird voraussichtlich im Rahmen der Antwort erkannte Applikationsobjekte in einem bestimmten Format zurückgeben. Dieser Stub wird nur verwendet, wenn die Anwendung in SnapDrive für Unix integriert ist.

Hinweis Linux-Dateisystem (Linux-Varianten) wird unterstützt. AIX und Solaris (Unix-Varianten) werden nicht unterstützt.

Stilllegen

Erforderlich

Diese Stub ist für das Ausführen eines Quiesce zuständig, das bedeutet, die Applikation in einen Zustand zu legen, in dem Sie eine Snapshot Kopie erstellen können. Dies wird vor dem Vorgang der Snapshot Kopie aufgerufen. Die zu behaltenden Metadaten der Applikation sollten im Rahmen der Antwort festgelegt werden, die bei einem nachfolgenden Klon oder bei Wiederherstellungen auf der entsprechenden Storage Snapshot Kopie in Form von Konfigurationsparametern zurückgegeben werden müssen.

Nicht Stilllegen

Erforderlich

Diese Stub ist verantwortlich für die Durchführung eines Unquiesce, das bedeutet, Anwendung in einen normalen Zustand. Dies wird aufgerufen, nachdem Sie eine Snapshot Kopie erstellt haben.

Clone_Pre

Optional

Diese Stub ist für das Durchführen von Preclone-Aufgaben zuständig. Voraussetzung dafür ist, dass Sie die integrierte SnapCenter Server Klonschnittstelle verwenden und beim Ausführen eines Klonvorgangs ausgelöst wird.

Clone_Post

Optional

Diese Stub ist für das Durchführen von Aufgaben nach dem Klonen verantwortlich. Hierbei wird vorausgesetzt, dass Sie die integrierte SnapCenter Server Klonschnittstelle verwenden und nur beim Ausführen eines Klonvorgangs ausgelöst wird.

Wiederherstellen_Pre

Optional

Diese Stub ist für die Durchführung von Vorratstore-Aufgaben zuständig. Hierbei wird vorausgesetzt, dass Sie die integrierte SnapCenter Server Restore-Schnittstelle verwenden und während der Wiederherstellung ausgelöst werden.

Wiederherstellen

Optional

Diese Stub ist für die Durchführung von Aufgaben zur Wiederherstellung von Anwendungen verantwortlich. Hierbei wird vorausgesetzt, dass Sie die integrierte SnapCenter Server-Wiederherstellungsschnittstelle verwenden und nur bei der Durchführung einer Wiederherstellung ausgelöst wird.

Bereinigung

Optional

Diese Stub ist für die Durchführung der Bereinigung nach Backup-, Wiederherstellungs- oder Klonvorgängen verantwortlich. Die Bereinigung kann während der normalen Workflow-Ausführung oder bei einem Workflow-Ausfall erfolgen. Sie können den Workflow-Namen infilern, unter dem die Bereinigung aufgerufen wird, indem Sie auf die Konfiguration Parameter AKTION, die Backup, KlonVolAndLun oder fileOrVolRestore sein kann. Der Konfigurationsparameter ERROR_MESSAGE gibt an, ob beim Ausführen des Workflows Fehler aufgetreten sind. Wenn ERROR_MESSAGE definiert ist und NICHT Null, wird die Bereinigung während der Ausführung des Workflow-Fehlers aufgerufen.

App_Version

Optional

Diese Stub wird von SnapCenter verwendet, um Anwendungsversionsdetails zu erhalten, die vom Plug-in verwaltet werden.

Informationen zum Plug-in-Paket

Jedes Plug-in muss folgende Informationen haben:

package MOCK;
our @ISA = qw(SnapCreator::Mod);
=head1 NAME
MOCK - class which represents a MOCK module.
=cut
=head1 DESCRIPTION
MOCK implements methods which only log requests.
=cut
use strict;
use warnings;
use diagnostics;
use SnapCreator::Util::Generic qw ( trim isEmpty );
use SnapCreator::Util::OS qw ( isWindows isUnix getUid
createTmpFile );
use SnapCreator::Event qw ( INFO ERROR WARN DEBUG COMMENT ASUP
CMD DUMP );
my $msgObj = new SnapCreator::Event();
my %config_h = ();

Betrieb

Sie können verschiedene Vorgänge wie Setenv, Version, Quiesce und Unquiesce codieren, die von den benutzerdefinierten Plug-ins unterstützt werden.

Vorgang setenv

Für Plug-ins, die mit PERL erstellt wurden, ist die setenv-Operation erforderlich. Sie können die ENV einstellen und problemlos auf Plug-in-Parameter zugreifen.

sub setENV {
    my ($self, $obj) = @_;
    %config_h = %{$obj};
    my $result = {
      exit_code => 0,
      stdout => "",
      stderr => "",
    };
    return $result;
}

Versionsbetrieb

Der Versionsvorgang gibt die Versionsinformationen der Anwendung zurück.

sub version {
  my $version_result = {
    major => 1,
    minor => 2,
    patch => 1,
    build => 0
  };
  my @message_a = ();
  $msgObj->collect(\@message_a, INFO, "VOLUMES
$config_h{'VOLUMES'}");
  $msgObj->collect(\@message_a, INFO,
"$config_h{'APP_NAME'}::quiesce");
  $version_result->{message} = \@message_a;
  return $version_result;
}

Betrieb stilllegen

Der Quiesce-Vorgang führt einen Quiesce-Vorgang der Anwendung für Ressourcen durch, die im PARAMETER RESSOURCEN aufgeführt sind.

sub quiesce {
  my $result = {
      exit_code => 0,
      stdout => "",
      stderr => "",
  };
  my @message_a = ();
  $msgObj->collect(\@message_a, INFO, "VOLUMES
$config_h{'VOLUMES'}");
  $msgObj->collect(\@message_a, INFO,
"$config_h{'APP_NAME'}::quiesce");
  $result->{message} = \@message_a;
  return $result;
}

Vorgang nicht stilllegen

Um die Anwendung stillzulegen, muss der Vorgang nicht stillgelegt werden. Die Liste der Ressourcen ist im PARAMETER RESSOURCEN verfügbar.

sub unquiesce {
  my $result = {
      exit_code => 0,
      stdout => "",
      stderr => "",
  };
  my @message_a = ();
  $msgObj->collect(\@message_a, INFO, "VOLUMES
$config_h{'VOLUMES'}");
  $msgObj->collect(\@message_a, INFO,
"$config_h{'APP_NAME'}::unquiesce");
  $result->{message} = \@message_a;
  return $result;
}