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.