Upgrade einer dogu.json von v1 zu v2
Dependencies und OptionalDependencies
Zum Upgraden des dogu.json-Formats von v1 zu v2 müssen die Unterpunkte "Dependencies" und "OptionalDependencies" angepasst werden. Im V1-Format bestanden die Dependencies aus einer Liste von Dogu-Namen.
Im V2-Format ist es möglich, neben Dogus auch Abhängigkeiten auf clients und packages zu haben, sowie eine Version anzugeben.
Ein Eintrag einer Dependency ist nun ein json-Objet mit den Attributen:
Feld: type
- Datentyp: string
- Optional: nein
- Zulässige Werte:
dogu|package|client
dogu
Das Dogu hat eine Abhängigkeit zu einem anderen Dogu.
package
Das Dogu hat eine Abhängigkeit zu einem installierten Debian-Package.
client
Das Dogu hat eine Abhängigkeit zu einem installierten Debian-Package.
Die Besonderheit bei einem client ist, dass dieser nicht von jedem Tool überprüft wird.
So wird die client-Abhängigkeit cesapp beispielsweise nur von der Cesapp überprüft und die client-Abhängigkeit
ces-setup nur von dem Ces-Setup.
Dies ist notwendig, wenn der Client, der das Tool installiert in einer bestimmten Version vorhanden sein muss, es aber mehrere Alternativen gibt, dieses Dogu zu installieren.
Beispiel ces-setup:
Wird ein Dogu von dem ces-setup installiert, kann es notwendig sein, dass das ces-setup in einer bestimmten Version
installiert ist.
Wird dasselbe Dogu allerdings von der Cesapp installiert, so wird zwar eine bestimmte Cesapp-Version benötigt, die
installierte Version des Ces-Setups ist in diesem Moment aber irrelevant.
In diesem Fall hätte ein Dogu eine client-Abhängigkeit zum ces-setup und zur cesapp mit den entsprechenden Versionen.
Feld: name
- Datentyp: string
- Optional: nein
- Zulässige Werte: Beliebiger string mit dem Namen des Dogus (z.B.:
ldap)
Feld: version
- Datentyp: string
- Optional: ja
-
Zulässige Werte:
[Komparator]<Version>- Komparator:
>=: Version muss größer oder gleich sein - Komparator:
<=: Version muss kleiner oder gleich sein - Komparator:
>: Version muss größer sein - Komparator:
<: Version muss kleiner sein - Komparator:
=bzw.==: Version muss genau gleich sein
- Komparator:
Beispiele für gültige Werte: <1.0.0, >=1.2.0, 2.0.0
-
V1-Format-Beispiel
{ "Dependencies": [ "nginx", "redmine" ], "OptionalDependencies": [ "postgresql" ] } -
V2-Format-Beispiel
{ "Dependencies": [ { "type": "dogu", "name": "nginx", "version": ">1.0-1" }, { "type": "dogu", "name": "redmine" }, { "type": "client", "name": "cesapp", "version": ">=3.2.0" }, { "type": "package", "name": "ces-commons", "version": ">=1.0.0" } ], "OptionalDependencies": [ { "type": "dogu", "name": "postgresql", "version": "<=1.0-1" } ] }