web-dev-qa-db-fra.com

Les valeurs de mappage YAML ne sont pas autorisées dans ce contexte

J'essaie de configurer un fichier YAML dans ce format:

jobs:
 - name: A
   - schedule: "0 0/5 * 1/1 * ? *"
   - type: mongodb.cluster
    - config:
       - Host: mongodb://localhost:27017/admin?replicaSet=rs
       - minSecondaries: 2
       - minOplogHours: 100
       - maxSecondaryDelay: 120
 - name: B
   - schedule: "0 0/5 * 1/1 * ? *"
   - type: mongodb.cluster
    - config:
       - Host: mongodb://localhost:27017/admin?replicaSet=rs
       - minSecondaries: 2
       - minOplogHours: 100
       - maxSecondaryDelay: 120

L'idée est que je puisse lire le contenu à l'intérieur de l'élément job et avoir une série de configurations de travail différentes qui peuvent être analysées.

cependant, yamllint.com me dit que c'est illégal, YAML en raison de mapping values are not allowed in this context at line 2line 2 est le jobs: ligne.

Qu'est-ce que je fais mal?

42
Chris Edwards

Ceci est valide YAML:

jobs:
 - name: A
   schedule: "0 0/5 * 1/1 * ? *"
   type: mongodb.cluster
   config:
     Host: mongodb://localhost:27017/admin?replicaSet=rs
     minSecondaries: 2
     minOplogHours: 100
     maxSecondaryDelay: 120
 - name: B
   schedule: "0 0/5 * 1/1 * ? *"
   type: mongodb.cluster
   config:
     Host: mongodb://localhost:27017/admin?replicaSet=rs
     minSecondaries: 2
     minOplogHours: 100
     maxSecondaryDelay: 120

Notez que cet élément chaque '-' commence nouvea dans la séquence. En outre, l'indentation des clés sur la carte devrait être exactement la même chose.

55
Tsyvarev

Les éléments d'une séquence doivent être mis en retrait au même niveau. En supposant que vous souhaitiez deux travaux (A et B) chacun avec une liste de paires clé-valeur ordonnée, vous devez utiliser:

jobs:
 - - name: A
   - schedule: "0 0/5 * 1/1 * ? *"
   - - type: mongodb.cluster
     - config:
       - Host: mongodb://localhost:27017/admin?replicaSet=rs
       - minSecondaries: 2
       - minOplogHours: 100
       - maxSecondaryDelay: 120
 - - name: B
   - schedule: "0 0/5 * 1/1 * ? *"
   - - type: mongodb.cluster
     - config:
       - Host: mongodb://localhost:27017/admin?replicaSet=rs
       - minSecondaries: 2
       - minOplogHours: 100
       - maxSecondaryDelay: 120

Convertir les séquences de mappages (entrée unique) en un mappage comme le fait @Tsyvarrev est également possible, mais vous fait perdre l'ordre.

2
Anthon