fabric8io / fabric8

fabric8 is an open source microservices platform based on Docker, Kubernetes and Jenkins
http://fabric8.io/
1.76k stars 504 forks source link

Hawt.io doesn't show full PID for managed service configurations #2943

Open geertschuring opened 10 years ago

geertschuring commented 10 years ago

Using Fuse 6.1, Hawt.io shows only the factory part of the PID of Config Admin configurations.

Reproduction:

screen shot 2014-10-30 at 10 36 09

screen shot 2014-10-30 at 10 40 23

In this case "com.nidera.esb.watchdog.http-sap".

I would have expected Hawt.io to use the real PID instead of the unrecognizable UID.

davsclaus commented 9 years ago

To understand this, are you saying that UID number in the 1st screenshot with the green dot, is actually that text "com.nidera.esb.watchdog.http-sap" value, and you would like hawtio to show that value instead?

geertschuring commented 9 years ago

Exactly Claus!

davsclaus commented 9 years ago

It looks like that service is a custom service you have created? Is it a .cfg file you have created in the etc directory?

Can you look at this configuration using the CLI?

config:list

And see what information is shown there?

iocanel commented 9 years ago

AFAIR, when using factory configurations, you don't get to decide which is the pid. You just specify the factory pid and the framework generates the pid for you.

On Mon, Dec 8, 2014 at 11:48 AM, Claus Ibsen notifications@github.com wrote:

It looks like that service is a custom service you have created? Is it a .cfg file you have created in the etc directory?

Can you look at this configuration using the CLI?

config:list

And see what information is shown there?

— Reply to this email directly or view it on GitHub https://github.com/fabric8io/fabric8/issues/2943#issuecomment-66044670.

Ioannis Canellos

Blog: http://iocanel.blogspot.com http://iocanel.blogspot.com/ Twitter: iocanel

geertschuring commented 9 years ago

Using config:list on a clean fabric I see that for any managed service factory the config names are all UID's. The fileinstaller config for instance looks like this:

----------------------------------------------------------------
Pid:            org.apache.felix.fileinstall.e5a345d8-ca87-4a32-9f1b-59c8f88dff6e
FactoryPid:     org.apache.felix.fileinstall
BundleLocation: mvn:org.apache.felix/org.apache.felix.fileinstall/3.3.11.redhat-610379
Properties:
   felix.fileinstall.poll = 1000
   service.pid = org.apache.felix.fileinstall.e5a345d8-ca87-4a32-9f1b-59c8f88dff6e
   felix.fileinstall.dir = /Users/geert/Programs/jboss-fuse-6.1.0.redhat-379/deploy
   service.factoryPid = org.apache.felix.fileinstall
   felix.fileinstall.filename = file:/Users/geert/Programs/jboss-fuse-6.1.0.redhat-379/etc/org.apache.felix.fileinstall-deploy.cfg
   felix.fileinstall.tmpdir = /Users/geert/Programs/jboss-fuse-6.1.0.redhat-379/data/generated-bundles
----------------------------------------------------------------

The name of the file that contains the config is org.apache.felix.fileinstall-deploy.cfg but the PID is org.apache.felix.fileinstall.e5a345d8-ca87-4a32-9f1b-59c8f88dff6e.

So I think the current functionality is actually correct. I assumed the filename was the PID, but it turns out to be not true. Maybe we can make Hawt.io use information from other properties than service.pid.

For instance, the property fabric.zookeeper.pid, which actually contains the intended full PID. As seen in the following excerpt from our config:

----------------------------------------------------------------
Pid:            com.nidera.esb.referencedata.service.283edf0a-f6f6-4e28-b95d-82d5ee2f822b
FactoryPid:     com.nidera.esb.referencedata.service
BundleLocation: mvn:com.nidera.esb.reference/reference-data-service/7.0
Properties:
   service.pid = com.nidera.esb.referencedata.service.283edf0a-f6f6-4e28-b95d-82d5ee2f822b
   url = https://nexus.nidera.com/nexus/service/local/repositories/releases/content/com/nidera/esb/reference/reference-data/12/reference-data-12-dev.csv
   service.factoryPid = com.nidera.esb.referencedata.service
   fabric.zookeeper.pid = com.nidera.esb.referencedata.service-config
----------------------------------------------------------------