jboss-fuse/fuse

fabric-jclouds feature broken in version 1.2.0....-133

kachizukanne opened this issue · 3 comments

Hi all,

Starting with a clean download of the latest release version of JBoss Fuse, after I start up the server and attempt to install fabric-jclouds, it fails with an Unsatisfied requirement(s) error for 3 services

JBossFuse:admin@root> features:install fabric-jclouds
Error executing command: Can not resolve feature:
Unsatisfied requirement(s):

   service:(service=org.apache.curator.framework.CuratorFramework)
      Fabric8 :: Core Agent JClouds
   service:(service=io.fabric8.api.FabricService)
      Fabric8 :: Core Agent JClouds
   service:(service=io.fabric8.api.ZooKeeperClusterService)
      Fabric8 :: Core Agent JClouds

After unzipping and digging through the relevant distro files, I confirm that the 3 services indicated are non-optional dependencies for the fabric-core-agent-jclouds bundle

<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">

    <reference id="fabricService" interface="io.fabric8.api.FabricService"/>
    <reference id="clusterService" interface="io.fabric8.api.ZooKeeperClusterService"/>
    <reference id="curator" interface="org.apache.curator.framework.CuratorFramework"/>
   ...

However, the services have not been exported by any of the bundles that this feature references.

<feature name="fabric-jclouds" version="1.2.0.redhat-133" resolver="(obr)">
        <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.activation-api-1.1/2.5.0</bundle>
        <feature version="1.2.0.redhat-133">fabric-commands</feature>
        <feature version='1.8.1'>jclouds-commands</feature>
        <feature version='1.8.1'>jclouds-api-ec2</feature>
        <bundle>mvn:io.fabric8/common-util/1.2.0.redhat-133</bundle> 
        <bundle>mvn:io.fabric8/fabric-core-agent-jclouds/1.2.0.redhat-133</bundle> 
    </feature>

Strangely enough, comparing this version of the fabric-core distro with 1.0.0, I find that the missing services were appropriately exported in 1.0.0, but for some reason have been removed in the current version.

Version 1.0.0

Export-Service: io.fabric8.api.FabricService,io.fabric8.api.DataStore,
 io.fabric8.api.ZooKeeperClusterBootstrap,io.fabric8.api.ZooKeeperClus
 terService,org.osgi.service.url.URLStreamHandlerService;url.handler.p
 rotocol=profile

Version 1.2.0

...
  1. Is this deliberate? In which case, what's the idea to realise dependency sufficiency in the current version
  2. Is a patch already existing and how does one apply it in a relatively standard way? (I'd rather not be digging through and manually updating manifests and features xmls)
  3. This release has been available for several months. For such an obvious entry scenario, I still can't understand how come I've not found ANY meaningful reference to this issue anywhere on the web (just the one reference in passing while discussing a smoke test to ensure all features in a version can be installed). Made me wonder for a bit whether this issue was due to something wrong with my setup. What am I missing?

The is only meant to be used in a fabric managed container via profiles. If this is not the case try the plain clouds features.

Sent from my iPhone

On 13 Οκτ 2015, at 22:37, Kachi Izukanne notifications@github.com wrote:

Hi all,

Starting with a clean download of the latest release version of JBoss Fuse, after I start up the server and attempt to install fabric-jclouds, it fails with an Unsatisfied requirement(s) error for 3 services

JBossFuse:admin@root> features:install fabric-jclouds
Error executing command: Can not resolve feature:
Unsatisfied requirement(s):

service:(service=org.apache.curator.framework.CuratorFramework)
Fabric8 :: Core Agent JClouds
service:(service=io.fabric8.api.FabricService)
Fabric8 :: Core Agent JClouds
service:(service=io.fabric8.api.ZooKeeperClusterService)
Fabric8 :: Core Agent JClouds
After unzipping and digging through the relevant distro files, I confirm that the 3 services indicated are non-optional dependencies for the fabric-core-agent-jclouds bundle

<reference id="fabricService" interface="io.fabric8.api.FabricService"/>
<reference id="clusterService" interface="io.fabric8.api.ZooKeeperClusterService"/>
<reference id="curator" interface="org.apache.curator.framework.CuratorFramework"/>

...
However, the services have not been exported by any of the bundles that this feature references.

mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.activation-api-1.1/2.5.0 fabric-commands jclouds-commands jclouds-api-ec2 mvn:io.fabric8/common-util/1.2.0.redhat-133 mvn:io.fabric8/fabric-core-agent-jclouds/1.2.0.redhat-133 Strangely enough, comparing this version of the fabric-core distro with 1.0.0, I find that the missing services were appropriately exported in 1.0.0, but for some reason have been removed in the current version.

Version 1.0.0

Export-Service: io.fabric8.api.FabricService,io.fabric8.api.DataStore,
io.fabric8.api.ZooKeeperClusterBootstrap,io.fabric8.api.ZooKeeperClus
terService,org.osgi.service.url.URLStreamHandlerService;url.handler.p
rotocol=profile

Version 1.2.0

...
Is this deliberate? In which case, what's the idea to realise dependency sufficiency in the current version
Is a patch already existing and how does one apply it in a relatively standard way? (I'd rather not be digging through and manually updating manifests and features xmls)
This release has been available for several months. For such an obvious entry scenario, I still can't understand how come I've not found ANY meaningful reference to this issue anywhere on the web (just the one reference in passing while discussing a smoke test to ensure all features in a version can be installed). Made me wonder for a bit whether this issue was due to something wrong with my setup. What am I missing?

Reply to this email directly or view it on GitHub.

Indeed it's for a fabric-managed container. Per this guide, I'm setting up a stand-alone container for the administration tasks to make installing the features more straightforward.

Even if I were to go ahead and try to set this up on a fabric-managed container, after I edit the relevant profile to add the fabric-jclouds feature, the container fails with the same errors indicating the feature is indeed broken

closing old ticket