Indem Sie sich beim Entwickeln der verschiedenen Komponenten für Ihre Orchestrator-Plug-Ins an bestimmte Grundsätze halten, können Sie die Qualität der Plug-Ins verbessern.

Tabelle 1. Nützliche Verfahren bei der Plug-In-Implementierung

Komponente

Element

Beschreibung

Allgemein

Zugriff auf die Drittanbieter-API

Nach Möglichkeit sollten Plug-Ins vereinfachte Methoden bereitstellen, um auf die Drittanbieter-API zuzugreifen.

Schnittstelle

Plug-Ins sollten eine kohärente und standardisierte Schnittstelle für Benutzer bereitstellen, auch wenn die API dies nicht tut.

Aktion

Skriptobjekte

Erstellen Sie Aktionen für sämtliche Erstellungs-, Änderungs- und Lösch- und sonstigen Methoden, die für ein Skriptobjekt verfügbar sind.

Beschreibung

In der Beschreibung einer Aktion sollte erklärt werden, was die Aktion bewirkt, und nicht, wie sie funktioniert.

Skripterstellung

Wenn Sie Skripterstellung verwenden, um die Eigenschaften oder Methoden eines Objekts abzurufen, können Sie überprüfen, ob sich der Objektwert von null oder undefined unterscheidet.

Veraltung

Wenn eine Aktion veraltet ist, sollte die comment- oder throw-Anweisung die Ersatzaktion enthalten oder die Aktion selbst sollte eine neue Ersatzaktion aufrufen, damit Lösungen, die auf der veralteten Version der Aktion basieren, nicht fehlschlagen.

Workflow

Benutzeroberflächenvorgänge in der Orchestrator-gesteuerten Technologie

Erstellen Sie einen Workflow für jeden Vorgang, der in der Benutzeroberfläche der Orchestrator-gesteuerten Technologie verfügbar ist.

Beschreibung

In der Beschreibung eines Workflows sollte erklärt werden, was der Workflow bewirkt, und nicht, wie er funktioniert.

Präsentationseigenschaft mandatory input

Für alle obligatorischen Workfloweingaben müssen Sie die Eigenschaft mandatory input festlegen.

Präsentationseigenschaft default value

Wenn Sie einen Workflow entwickeln, der eine Einheit konfiguriert, sollten die Standardkonfigurationswerte für diese Einheit in die Workflowpräsentation geladen werden. Wenn Sie beispielsweise einen Workflow mit dem Namen „Hostkonfiguration“ entwickeln, müssen die Standardwerte der Hostkonfiguration in die Präsentation des Workflows geladen werden.

Präsentationseigenschaft Show in inventory

Sie müssen die Eigenschaft Show in inventory so einstellen, dass Kontextworkflows für Bestandslistenobjekte vorhanden sind.

Präsentationseigenschaft specify a root parameter

Verwenden Sie diese Eigenschaft in Workflows, wenn es nicht notwendig ist, die Bestandsliste vom Stamm der Baumstruktur aus zu durchsuchen.

Workflowvalidierung

Sie müssen Workflows validieren und sämtliche Fehler korrigieren.

Objekterstellung

Alle Workflows, die ein neues Objekt erstellen, sollten das neue Objekt als Ausgabeparameter zurückgeben.

Veraltung

Wenn ein Workflow veraltet ist, sollte die comment- oder throw-Anweisung den Ersatzworkflow enthalten oder der veraltete Workflow sollte einen neuen Ersatzworkflow aufrufen, damit Lösungen, die auf vorherigen Versionen des Workflows basieren, nicht fehlschlagen.

Bestandsliste

Trennen der Hostverbindung

Wenn Ihre Bestandsliste eine Verbindung zu einem Host enthält und dieser Host nicht mehr verfügbar ist, geben Sie an, dass die Hostverbindung getrennt wurde. Dazu können Sie entweder das Stammobjekt umbenennen, indem Sie - disconnected anhängen, oder die Baumstruktur der Objekt unterhalb dieses Objekts entfernen, was auch das vCloud Director-Plug-In tut.

Eigenschaft Select value as list

Ein Bestandslistenobjekt muss als treeview oder list auswählbar sein.

Hostmanager

Wenn das Plug-In ein host-Objekt für das Zielsystem implementiert, sollte ein übergeordnetes hostmanager-Stammobjekt mit Eigenschaften zum Hinzufügen, Entfernen oder Bearbeiten von Hosteigenschaften vorhanden sein.

Abrufen oder Aktualisieren von Objekten

Wenn ein Abfragedienst in der Orchestrator-gesteuerten Technologie ausgeführt wird, sollten Sie diesen zum Abrufen mehrerer Objekte verwenden.

Erkennung untergeordneter Objekte

Wenn Sie untergeordnete Objekte separat abrufen müssen, muss der Abrufprozess mehrere Threads umfassen und darf nicht bei einem einzelnen Fehler blockieren.

Orchestrator-Objektänderung

Alle Workflows, die den Zustand eines Elements in der Bestandsliste ändern können, müssen die Bestandsliste aktualisieren, damit die Synchronisierung der Objekte nicht verloren geht.

Externe Objektänderung

Sie können mithilfe eines Benachrichtigungsmechanismus auf Änderungen in der Orchestrator-gesteuerten Technologie hinweisen, die aus außerhalb von Orchestrator ausgeführten Vorgängen resultieren. Falls solche Vorgänge dazu führen, dass Objekte aus der Orchestrator-gesteuerten Technologie entfernt werden, müssen Sie die Bestandsliste entsprechend aktualisieren, um Fehler oder Datenverlust zu vermeiden. Wenn beispielsweise eine virtuelle Maschine aus vCenter Server gelöscht wird, aktualisiert das vCenter Server-Plug-In die Bestandsliste, um das Objekt der entfernten virtuellen Maschine zu entfernen.

Finder-Objekt

Finder-Objekte sollten über Eigenschaften verfügen, mit deren Hilfe Objekte unterschieden werden können. In der Regel sind dies die Eigenschaften, die in der Benutzeroberfläche angezeigt werden.

Skriptobjekt

Implementierung

Die Methode equals muss implementiert werden, um sicherzustellen, dass der Vorgang == auf dasselbe Objekt angewendet wird, da das Objekt möglicherweise über zwei Instanzen verfügt.

Plug-In-Objekteigenschaften

Für Objekte mit übergeordneten Objekten sollte eine parent-Eigenschaft implementiert werden.

Plug-In-Objekteigenschaften

Für Objekte mit untergeordneten Objekten sollten GET-Methoden implementiert werden, die Arrays von untergeordneten Objekten zurückgeben.

Bestandslistenobjekte

Bestandslistenobjekte sollten sich mit Server.find suchen lassen.

Alle Bestandslistenobjekte sollten serialisierbar sein, damit sie in einem Workflow als Eingabe- oder Ausgabeattribute verwendet werden können.

Konstruktor und Methoden

In den meisten Fällen sollten skriptfähige Objekte entweder über einen Konstruktor verfügen oder von anderen Objektattributen bzw. Methoden zurückgegeben werden.

Objekt-ID

Objekte mit einer von einem externen System ausgegebenen ID sollten eine interne ID verwenden, um sicherzustellen, dass keine IDs dupliziert werden, wenn Sie mehrere Server mit Orchestrator steuern.

Suchen nach Objekten

In search- oder find-Methoden sollte ein Filter implementiert werden, damit der angegebene Name bzw. die angegebene ID gefunden werden kann, statt einfach alle Objekte zu finden. Der Orchestrator-Server verfügt beispielsweise über die Methode Server.FindForId, mit der ein Plug-In-Objekt anhand seiner ID gefunden werden kann. Dazu muss die Methode für jedes auffindbare Objekt im Plug-In implementiert werden.

Auslöser

Nach Möglichkeit sollten Auslöser für Objekte, die sich ändern, verfügbar sein, damit Orchestrator bei verschiedenen Ereignissen Richtlinien auslösen lassen kann. Um beispielsweise zu ermitteln, wann eine neue virtuelle Maschine hinzugefügt, eingeschaltet, ausgeschaltet usw. wird, kann Orchestrator einen Auslöser oder ein Ereignis im vCenter-Plug-In für das Datacenter-Objekt überwachen.

Objekteigenschaften

Objekte in anderen Plug-Ins sollten über Eigenschaften verfügen, die eine einfache Konvertierung von einem Plug-in-Objekt in ein anderes ermöglichen. Objekte von virtuellen Maschinen müssen beispielsweise über eine moref (Referenz auf verwaltetes Objekt) verfügen.

Sitzungsmanager

Wenn Sie eine Verbindung zu einem Remoteserver herstellen, der eine andere Sitzung aufweisen kann, sollten im Plug-In eine gemeinsam genutzte Sitzung und eine Sitzung pro Benutzer implementiert werden.

Auslöser

Auslöser

Es sollte möglich sein, alle langen Vorgänge und blockierenden Methoden nach einer zurückgegebenen Aufgabe zu starten und bei Abschluss ein Auslöseereignis zu generieren.

Enumerationen

Enumerationen

Enumerationen für einen bestimmten Typ sollten über ein Bestandslistenobjekt verfügen, das ein Auswählen aus den verschiedenen Werten in der Enumeration ermöglicht.

Protokollierung

Protokolle

Für Methoden sollten verschiedene Protokollierungsebenen implementiert werden.

Versionierung

Plug-In-Version

Die Plug-In-Version sollte Standards entsprechen und zusammen mit dem Plug-In-Update aktualisiert werden.

API-Dokumentation

Methoden

Methoden, die in der API-Dokumentation beschrieben werden, sollten nie die Ausnahme no xyz method / property für ein Objekt zurückgeben. Stattdessen sollten Methoden null zurückgeben, wenn keine Eigenschaften verfügbar sind, und mit Details dokumentiert werden, wenn diese Eigenschaften nicht verfügbar sind.

vso.xml

Alle Objekte, Methoden und Eigenschaften müssen in der Datei vso.xml dokumentiert werden.