New Charm: IBM IB

Bug #1452242 reported by vsr
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Juju Charms Collection
Fix Released
Undecided
Unassigned

Bug Description

Hi!

Here is a new charm for IBM Integration Bus (IB) for review.

To test this charm, a license to IBM IB is required.
You need to get an IBM IB license for at least IB 10.0.0.0 (for x86_64)

Repo: https://code.launchpad.net/~ibmcharmers/charms/trusty/ibm-ib/trunk

Thanks

Related branches

Revision history for this message
Matt Bruzek (mbruzek) wrote :
Download full text (5.4 KiB)

# Charm ibm-ib review

Hello vsr and thank you for the submission of this new Integration Bus charm! I am very concerned about the extra steps (downloading the binary) creating a burden on the Juju user that other charms do not. Please consider adding an automatic way to get the trial version software and the trial version license to the charm if possible.

Here is my review:

## charm proof
    $ charm proof
    I: all charms should provide at least one thing
    I: missing recommended hook start
    I: missing recommended hook stop

The charm proof tool reports no errors! That is great and reveals a valid charm. Since this software deals with integration I would expect it to provide relations for other charms to consume. The README states that this server must be installed on the same system as IBM MQ, and I see the relation there. Reading the [IBM Knowledge Center](http://www-01.ibm.com/support/knowledgecenter/SSMKHH_10.0.0/com.ibm.etools.mft.doc/bb43020_.htm) tells me this charm supports HTTP, and HTTPS, along with web service protocols. To me that means this charm should also expose the website relation on the “http” interface. Is my assumption invalid here? What other charms can be linked with this charm? How can it be used?

The README instructs the user to download the software and host it on a webserver like apache. This is a big gap in the instructions and a regular Juju user may not know how to host the file. Is the software available to be downloaded automatically? The charm should give more instructions to the user on how to host the file if the software is not available for automatic download.

## config.yaml
There was a misspelling of incorrectly in this file. Since all the variables are tied to this charm, the “ib_” prefix is unnecessary.

## copyright
This looks like a valid Apache 2.0 license. That works for us. Consider adding another license file for the IB software in this directory as well so the user does not have to use the web to find it.

## icon.svg
The icon looks great and is within the parameters.

## revision
This file is no longer used (deprecated) and can safely be deleted.

## install
It is [charm store policy](https://jujucharms.com/docs/devel/authors-charm-policy) that all downloaded software must be cryptographically verified. The install hook does not do this. There are a few ways to fix this problem:

It is always best to include the software in the charm directories. This option is much preferred because files included in the charm directories do not have to be verified. However since the software file is 1.2GB that creates a problem of upload to the cloud. I would really like to see if we can find a way to download the software automatically when deploying the charm.

Is it possible to generate some code that would download the code from the IBM site directly so the user does not have to set up their own HTTP server? Could you do something like this?

The second way is to add a configuration option for the cryptographic sum. The user would then have to set both the URL and the hash sum for the software to install. There are examples of this in other charms as well. Please con...

Read more...

Changed in charms:
status: New → In Progress
Revision history for this message
vsr (vsasi) wrote :

@Matt

## README

The IB software has a concept of nodes that can be created by user. The nodes can be configured to listen to user defined ports (http or other). So it is not feasible to up front decide on which ports to expose.

I have added details on how to get the apache setup. For configuring the same, expect that user will need to refer to apache documentation as they would be subject to change. Else expect the administrator to set it up. The software is not available for download automatically.

##config.yaml
Spelling corrected. Prefix ib_ removed.

##Copyright
Since the user is able to download and install newer product versions with different license, it is not shipped as part of the charm.

##install
Currently do not see an easy mechanism for getting hash values for the software package. Will need to explore this further. Also, there is no automatic mechanism for downloading the software.

Have removed the download code from install. Added code to deploy wget in install hook

## tests
The local.yaml is created by the 00-setup shell script. This scripts expects two shell variables to be set up:
IB_URL & IB_PKG. The values of this variables are stored in the local.yaml file

This file is then read by the test script to set up the IB package download configuration information.

Changed in charms:
status: In Progress → Fix Committed
Revision history for this message
Matt Bruzek (mbruzek) wrote :

@vsr

Thanks for the quick response!

Part of the cryptographic verification is to verify the download is complete, and is the file you requested. You could add a configuration option for the sha1sum of the payload. So the user would have to provide both the "url" and "sha1sum" configuration options.

Theoretically there is a way to make the charm download the payload from the IBM web site. The link to the download page appears to be a simple HTML form with a POST action. Technically this _could_ be called from bash with curl or wget commands. If the name information on the page https://www14.software.ibm.com/webapp/iwm/web/pick.do?source=swg-wmbfd is the blocker you could change the charm to include these values as configuration and make the charm supply that information to automatically download the developer or trial version of this software. This would make the charm SO MUCH more useful and would be a huge improvement to the user experience.

The cryptographic verification is a requirement for the recommended section of the charm store. This charm can already be deployed from the namespace without any reviews or changes. I am going to put this bug "In Progress" until that is changed.

Changed in charms:
status: Fix Committed → In Progress
Revision history for this message
vsr (vsasi) wrote :

@Matt

Thanks for the review.

I have added support for integrity validation using sha1sum.

About automatic download of package: Since the page content/input details could change, would prefer not to embed it into the charm for doing a POST. As I understand, a separate mechanism is being worked out for getting access to the package.

Changed in charms:
status: In Progress → Fix Committed
vsr (vsasi)
Changed in charms:
status: Fix Committed → In Progress
vsr (vsasi)
Changed in charms:
status: In Progress → Fix Committed
Revision history for this message
vsr (vsasi) wrote :

IB package is uploaded to canonical.brickftp.com, user: ibm-charmers.

Revision history for this message
Adam Israel (aisrael) wrote :

Hi Vsali,

I had a chance to review this charm today. I followed the directions in the README, and added the binary to a local web server. The charm downloaded the file, but ended up failing with this fatal error:

unit-ibm-ib-0[3250]: 2015-07-09 16:21:31 INFO unit.ibm-ib/0.config-changed logger.go:40 tar (child): /var/lib/juju/agents/unit-ibm-ib-0/charm/files/archives/EAsmbl_image/iib-10.0.0.0.tar.gz: Cannot open: No such file or directory

I've attached the unit log for your review, and thanks for your work on this!

Revision history for this message
Adam Israel (aisrael) wrote :
Adam Israel (aisrael)
Changed in charms:
status: Fix Committed → In Progress
Revision history for this message
vsr (vsasi) wrote :

Thanks for the review.
I have updated the charm to support the packaging structures in trial/development version.

Changed in charms:
status: In Progress → Fix Committed
Revision history for this message
Cory Johns (johnsca) wrote :

Vsali,

Thank you for your submission and diligent attention to the previous reviews.

With your latest set of changes, I was able to successfully deploy the charm using the trial version, and I was able to relate it to the ibm-mq charm without error. Not being familiar with the two packages, I wasn't able to verify that it was fully working beyond that, but according to the charm, everything should be functional. (If there are some easy steps that could be done to verify that the two services are up and working well together, it might be nice to add them to the README, but I understand that these seem to be support services, so that may not be feasible.)

With the SHA1 verification added and the other comments noted and responded to, I think this charm is in pretty good shape!

+1

Cory Johns (johnsca)
Changed in charms:
status: Fix Committed → Fix Released
Revision history for this message
Cory Johns (johnsca) wrote :

Hello vsr,

Thanks for the submission and dedication to Juju charms. This charm is now promulgated!

The promoted charm project can be found in Launchpad at: https://launchpad.net/charms/+source/ibm-ib
And you can start monitoring for bugs at : https://bugs.launchpad.net/charms/trusty/+source/ibm-ib

Congratulations on making it into the charm store!

Thanks again!

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.