//Cloudogu EcoSystem Docs

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

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"
    }
    ]
    }