2017-10-10 7 views
1

En utilisant la requête AQL et Jfrog CLI, nous prévoyons de trouver les artefacts expirés dans notre version d'entreprise artificielle. Pour cela, je voudrais passer une variable dans le fichier AQL JSON pour supprimer les artefacts en utilisant Jfrog CLI. Parce que la valeur de la variable ne sera pas une valeur statique et elle sera dynamique. J'ai donc besoin de passer une variable dans un fichier JSON et la variable ci-dessous en surbrillance que je dois utiliser.Impossible de passer la variable dans le fichier AQL JSON à l'aide de Jfrog CLI

Commande:

./jfrog rt del --spec /xxxxxxxx.json --dry-run=true --quiet=true 

xxxx.Json:

{ 
"files":[ 
    { 
    "aql":{ 
     "items.find":{ 
      "type":"file", 
      "$or":[ 
       { 
       "$and":[ 
        { 
         "stat.downloads":{ 
          "$eq":null 
         } 
        }, 
        { 
         "modified":{ 
          "$before":"1s" 
         } 
        }, 
        { 
         "@retention.RetDate":{ 
          "$lt":"$RetDate" 
         } 
        } 
       ] 
       }, 
       { 
       "$and":[ 
        { 
         "stat.downloads":{ 
          "$gt":"0" 
         } 
        }, 
        { 
         "stat.downloaded":{ 
          "$before":"1s" 
         } 
        }, 
        { 
         "modified":{ 
          "$before":"1s" 
         } 
        }, 
        { 
         "@retention.RetDate":{ 
          "$lt":"$RetDate" 
         } 
        } 
       ] 
       } 
      ] 
     } 
    } 
    } 
] 
} 

Répondre

1

Si vous voulez variables dans votre fichier de spécification, vous devez définir les variables de l'appel:

./jfrog rt del --spec /xxxxxxxx.json --spec-vars "RetDate=2018-01-01" --dry-run=true --quiet=true 

Et unl ess je me trompe, les variables sont identifiées comme $ {key} dans le fichier de spécification, de sorte que quelque chose comme

   [...] 
       { 
        "@retention.RetDate":{ 
         "$lt":"${RetDate}" 
        } 
       } 
       [...] 

-t-il aider votre cas de test?