Fuse Fabric: Как удалить PID конфигурации из профиля?
Я начал изменять профиль и сделал несколько ошибок по пути.
Из-за этого у меня есть PID в профиле, которые я хотел бы полностью удалить.
Это можно увидеть в fabric:profile-display default
вывод показан внизу этого поста.
Они есть:
http:
patch.repositories=http:
org.ops4j.pax.url.mvn.repositories=http:
Я не могу найти правильную команду, чтобы удалить это. Я пробовал:
config:delete org.ops4j.pax.url.mvn.repositories=http:
который успешно завершает. Но default
профиль все еще перечисляет этот pid.
Я также попробовал:
fabric:profile-edit --delete -p org.ops4j.pax.url.mvn.repositories=http: default
который терпит неудачу с:
Error executing command: String index out of range: -1
Это указывает на путь свойства /property
должен быть указан.
Добавление просто /
тоже не работает.
Еще одна проблема заключается в том, что у меня есть pid с, казалось бы, пустым именем, как показано в этой строке:
PID:
(за этим выходным префиксом ничего не стоит).
Выход из fabric:profile-display default
:
Profile id: default
Version : 1.0
Parents :
Associated Containers :
Container settings
----------------------------
Repositories :
mvn:org.fusesource.fabric/fuse-fabric/7.0.1.fuse-084/xml/features
Features :
fabric-agent
karaf
fabric-jaas
fabric-core
Agent Properties :
patch.repositories = http://repo.fusesource.com/nexus/content/repositories/releases,
http://repo.fusesource.com/nexus/content/groups/ea
org.ops4j.pax.url.mvn.repositories = http://repo1.maven.org/maven2,
http://repo.fusesource.com/nexus/content/repositories/releases,
http://repo.fusesource.com/nexus/content/groups/ea,
http://repository.springsource.com/maven/bundles/release,
http://repository.springsource.com/maven/bundles/external,
http://scala-tools.org/repo-releases
org.ops4j.pax.url.mvn.defaultRepositories = file:${karaf.home}/${karaf.default.repository}@snapshots,
file:${karaf.home}/local-repo@snapshots
Configuration details
----------------------------
PID:
PID: org.ops4j.pax.url.mvn
org.ops4j.pax.url.mvn.useFallbackRepositories false
org.ops4j.pax.url.mvn.disableAether true
org.ops4j.pax.url.mvn.repositories ${profile:org.fusesource.fabric.agent/org.ops4j.pax.url.mvn.repositories}
org.ops4j.pax.url.mvn.defaultRepositories ${profile:org.fusesource.fabric.agent/org.ops4j.pax.url.mvn.defaultRepositories}
PID: patch.repositories=http:
PID: org.ops4j.pax.url.mvn.repositories=http:
PID: http:
PID: org.fusesource.fabric.zookeeper
zookeeper.url ${zk:root/ip}:2181
Я был бы чрезвычайно признателен, если бы кто-то мог указать правильные команды.
2 ответа
Я посмотрел на код командной строки для fabric:profile-edit
с --delete
и, к сожалению, эта функция, по-видимому, предназначена для удаления пар ключ / значение из PID, а не для удаления самого PID.
(Вот код для ProfileEdit.java на github)
Таким образом, вы можете использовать эту команду для "очистки" PID, но не для их удаления.
fabric:profile-edit --delete --pid mypid/mykey=myvalue myprofile
Зная, что это тебе мало поможет, я спросил своего коллегу, который сидит рядом со мной (и намного умнее меня), и он порекомендовал следующее:
Включить консоль управления предохранителями с
container-add-profile root fmc
Opem fmc в браузере (мой находится на localhost в порту 8181), перейдите в
Profiles
страница, выберите свой профиль из спискаПерейти к
Config Files
на вкладке найдите PID, который вы хотите уничтожить, и нажмите крестик (X).
Эт вуаля, пид должен исчезнуть. Интересно узнать, работает ли это для вас, в том числе в "пустом" профиле...
Следующие работы в Fuse 6.2:
1) для файлов свойств (которые становятся объектами PID)
# create
profile-edit --resource foobar.properties default
# delete
profile-edit --delete --pid foobar default
2) для произвольных файлов
# create
profile-edit --resource foobar.xml default
#delete
only via hawtio web console, see screenshot: