2017-10-10 13 views
1

AQL 쿼리와 Jfrog CLI를 사용하여 Artifactory Enterprise 버전에서 만료 된 아티팩트를 찾을 계획입니다.Jfrog CLI를 사용하여 AQL Json 파일에서 변수를 전달할 수 없습니다.

저는 Jfrog CLI를 사용하여 아티팩트를 삭제하기 위해 AQL Json 파일에서 변수를 전달하고 싶습니다.

변수의 값은 정적 값이 아니며 동적입니다. 따라서 Json 파일에 변수를 전달해야하며 아래에 강조 표시된 변수를 사용해야합니다.

명령 :

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

답변

1

:

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

그리고 ESS는 내가 잘못 생각은, 변수는 사양 파일에서 {키} $로 확인되므로

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

같은, 그것은 당신의 테스트 케이스를 도움이됩니까?