保险丝结构:如何从配置文件中删除配置PID?

时间:2012-11-08 14:36:58

标签: persistent ident fusefabric

我开始修改个人资料并在此过程中犯了一些错误。

因此我在配置文件中有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 个答案:

答案 0 :(得分:2)

我看了fabric:profile-edit --delete的命令行代码,遗憾的是这个函数似乎是为了从PID中删除键/值对而不是删除PID本身。

(这是github上ProfileEdit.java的代码)

基本上你可以使用该命令“清空”PID,但不能删除它们。

fabric:profile-edit --delete --pid mypid/mykey=myvalue myprofile

知道这对你没有多大帮助,我问我坐在我旁边的同事(并且比我聪明得多),他推荐了以下内容:

  1. 使用container-add-profile root fmc

  2. 启用保险丝管理控制台
  3. 在浏览器中操作fmc(我的是在端口8181的localhost上),转到Profiles页面,从列表中选择您的个人资料

  4. 转到Config Files标签,找到要核实的PID,然后点击十字(X)。

  5. 瞧,pid应该不见了。有兴趣知道这是否适合您,包括“空白”个人资料......

答案 1 :(得分:0)

以下适用于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:

enter image description here