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

Зная, что это тебе мало поможет, я спросил своего коллегу, который сидит рядом со мной (и намного умнее меня), и он порекомендовал следующее:

  1. Включить консоль управления предохранителями с container-add-profile root fmc

  2. Opem fmc в браузере (мой находится на localhost в порту 8181), перейдите в Profiles страница, выберите свой профиль из списка

  3. Перейти к 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:

Другие вопросы по тегам