Я пытаюсь использовать API быстрого поиска Artifactory (https://www.jfrog.com/confluence/display/RTF/Artifactory+REST+API#ArtifactoryRESTAPI-ArtifactSearch(QuickSearch)), чтобы найти URL для данного артефакта, указав для него параметр репо с подстановочным знаком в нем. Я могу получить результат только при репозначение является точным соответствием.
Артефакты загружаются со следующими общими свойствами: build.name (IE: Enterprise-Communications :: NativeVXML-CICD-TestDemo :: v1.2.7rc) build.number (IE:1) тэг build.timestamp (метка времени Unix) (номер версии тэга Git) vcs.revision (думаю, что это git's commit_id)
Я не могу вспомнить все сайты и страницы, которые я проверял, но воттот, который показывает пользовательский интерфейс с использованием * и? в качестве подстановочных знаков. https://www.jfrog.com/confluence/display/RTF/Artifactory+REST+API
Наша компания Artifactory является гео-избыточной и использует соглашение об именах корневых каталогов [Department] - [target] - [environment]что-то вроде «SysDev-general-dev» и «SysDev-general-prod» с конвейерным процессом копирования файла из -dev в -prod после завершения приема QA / UAT.
Артефактзагружено в репутациюo / папка «SysDev-general-dev / clientName / program / artifact.tar», и, очевидно, система добавляет ссылку «- [Site]» в репозиторий («SysDev-general-dev-DEN01»), ноэтот идентификатор сайта виден только при входе в один из пользовательских интерфейсов сайта или использовании поисковых API.
** Примечание: тесты выполнены с использованием Chrome, FireFox и Ansible playbook с модулем 'uri'.
При выполнении быстрого поиска по имени артефакта возвращается ожидаемый список URL-адресов."artifactory / api / search / artifact? name = NativeVXML-CICD-TestDemo.v1.2.7"
{
"results" : [ {
"uri" : "http://<DOMAIN>/artifactory/api/storage/Enterprise-Communications-generic-preprod-SWN01/nreddy/NativeVXML-CICD-TestDemo/NativeVXML-CICD-TestDemo.v1.2.7.tar"
}, {
"uri" : "http://<DOMAIN>/artifactory/api/storage/Enterprise-Communications-generic-prod-SWN01/nreddy/NativeVXML-CICD-TestDemo/NativeVXML-CICD-TestDemo.v1.2.7.tar"
} ]
}
Использование фильтра репо с точным соответствием возвращает 1 URI, которыйЯ хочу.& repos = Enterprise-Communications-generic-preprod-SWN01 {
"results" : [ {
"uri" : "http://<DOMAIN>/artifactory/api/storage/Enterprise-Communications-generic-preprod-SWN01/nreddy/NativeVXML-CICD-TestDemo/NativeVXML-CICD-TestDemo.v1.2.7.tar"
} ]
}
При добавлении "& repos =" с первым фрагментом корневого каталога для фильтрации возврата возвращается пустой набор результатов."artifactory / api / search / artifact? name = NativeVXML-CICD-TestDemo.v1.2.7.tar & repos = Enterprise-Communications-generic-preprod"
{
"results" : [ ]
}
Добавить* к имени репо с подстановочными символами: "артефакт / api / search / artifact? name = NativeVXML-CICD-TestDemo.v1.2.7.tar & repos = Enterprise-Communications-generic-preprod" {
"results" : [ ]
}
Wrapимя репо (с ) в кавычках артефакт / api / search / artifact? name = NativeVXML-CICD-TestDemo.v1.2.7.tar & repos = "Enterprise-Communications-generic-preprod " {
"results" : [ ]
}
Обернуть имя репо (с *) в кавычки, а URL кодировать: артефакт / api / search / artifact? Name = NativeVXML-CICD-TestDemo.v1.2.7.tar & repos =% 22Enterprise-Communications-generic-preprod%A2% 22 * 1044 *
Обернуть имя репо (с?) В кавычки артефакт / api / search / artifact? Name = NativeVXML-CICD-TestDemo.v1.2.7.tar & repos = "Enterprise-Communications-генерическая-preprod?»{
"results" : [ ]
}
Playbook:
- name: "Search URL: {{find_uri}} "
uri:
url: '{{ find_uri }}'
method: GET # Default is GET
force_basic_auth: yes
validate_certs: no
return_content: yes
timeout: 15 #Default is 30
register: artifact_list
Что я действительно хочу сделать, это передать ссылку на репо с подстановочным знаком и получить обратно только значения URI, которые содержатэто значение.
IE: & repos = "Enterprise-Communications-generic-preprod *"
{
"results" : [ {
"uri" : "http://<DOMAIN>/artifactory/api/storage/Enterprise-Communications-generic-preprod-SWN01/nreddy/NativeVXML-CICD-TestDemo/NativeVXML-CICD-TestDemo.v1.2.7.tar"
} ]
}