WUM — WSO2 Update Manager

WUM beta

WUM is a CLI tool from WSO2 which enables you to keep your WSO2 products up to date. WUM sounds like yum and yes, WUM has somewhat similar concepts like yum. WUM creates a local repository for WSO2 products in your file system., you can do operations such as add, update, delete for the products in the local repository.


What WUM means to you

WSO2 products are released as patch releases from time to time. They include bug fixes, security fixes etc. Those fixes are done as and when they are identified. But if your are not subscribed to WSO2 support, you will get those fixes only after the next patch release of the product which obviously will take some time from the last release. (Even if you are not subscribed to WSO2 support, you can still download and apply the security patches from here). This is the story of pre WUM era.

With WUM, you can get all the updates (the term “patch” in pre WUM era is now replaced with “update”, an update basically is a fix for a bug or a security vulnerability) for WSO2 product(s) as and when they are ready.

The process of applying a patch is also changed with WUM. Prior to WUM, you had to download and copy the patch to <WSO2_PRODUCT_HOME>/repository/components/patches directory. With WUM, what you get is a new product distribution with the updates installed. For example let’s say you downloaded WSO2 ESB 5.0.0 a couple of days ago and today you try to update it via WUM. If there are updates available, WUM will download them, apply them to WSO2 ESB 5.0.0 and create you a new distribution (a zip file). Say you do the same tomorrow, if there are updates available, WUM will create a new distribution with all the updates up to date. The new distribution is always based on the last updated (if not fresh) distribution. So if there are any configuration changes, custom modifications etc., you need to apply them manually to the updated distribution.

NOTE: Fresh WSO2 product downloaded from wso2.com or via WUM are licensed under Apache 2.0. But distributions built with updates installed via WUM are licensed under WSO2 Update License 1.0. If you are to use those updated product distributions in production, you need to have a valid WSO2 subscription.

Now that we have discussed the background, let’s see WUM in action…

Installing WUM

WUM is available for Linux, Max OS and Windows. You can find the installers and instructions at http://wso2.com/update.

Using WUM

WUM is powered with a rich help and all the commands/messages are self explanatory and intuitive. Yet, I will walk you along the basic flow of using WUM.


Initializing WUM

You need to have a WSO2 account to initialize WUM. If you don’t have one yet, create one at https://wso2.com/user/register. With wum init it creates a local repository in your file system. The default location is .wum-wso2 in your home directory.

$ wum init
You need a WSO2 account to start using WUM.
Don’t have one yet? Sign up at https://wso2.com/user/register
Please enter your WSO2 credentials to continue
Email: kalpaw@wso2.com
Password for ‘kalpaw@wso2.com’:
Authenticating…
Done!
 — Welcome to WUM 1.0-beta — 
* Find more information at http://wso2.com/update
* Please contact us for further information at http://wso2.com/contact
What’s next? Have a look at the following list of wum commands:
Add WSO2 products to your product repository
wum search Search WSO2 products
wum add Add or download WSO2 products
Update WSO2 products available in your product repository
wum check-update Check for new updates
wum update Update your WSO2 products
Manage WSO2 products available in your product repository
wum list List WSO2 products
wum describe Show details of WSO2 products
wum delete Delete WSO2 products
Use “wum [command] — help” for more information about a command.

As you can see in the output, WUM always suggests you what to do next.


Searching for WSO2 products

With wum search you can search for all the products that WUM supports.

$ wum search
Connecting to WSO2 Update...
wso2cep-4.2.0 - Complex Event Processor
wso2esb-5.0.0 - Enterprise Service Bus
wso2esb-analytics-5.0.0 - Enterprise Service Bus Analytics
wso2am-2.0.0 - API Manager
wso2am-analytics-2.0.0 - API Manager Analytics
wso2esb-4.9.0 - Enterprise Service Bus
What's next?
use "wum add <product>" to download a product
e.g "wum add wso2cep-4.2.0" to download Complex Event Processor 4.2.0

You can do your search with a keyword as well.

$ wum search esb
Connecting to WSO2 Update...
wso2esb-5.0.0 - Enterprise Service Bus
wso2esb-analytics-5.0.0 - Enterprise Service Bus Analytics
wso2esb-4.9.0 - Enterprise Service Bus
What's next?
use "wum add <product>" to download a product
e.g "wum add wso2esb-5.0.0" to download Enterprise Service Bus 5.0.0

Adding WSO2 products to the local repository

There are two options. One is to download the products from WUM. If you specify the product without any version, WUM will download the latest version of that product for you. The following downloads WSO2 ESB 5.0.0, which is the latest of WSO2 ESB at the moment.

$ wum add wso2esb
Connecting to WSO2 Update...
The following product(s) will be downloaded.
wso2esb-5.0.0.zip
After this operation, 218.1MB of additional disk space will be used.
Do you want to continue? [Y/n]
Downloading product wso2esb-5.0.0... [2.4MB/218.1MB]

You can add a specific version of a product as well. The following adds WSO2 ESB version 4.9.0.

$ wum add wso2esb-4.9.0

If you already have a fresh product distribution in your file system, you can add that to the WUM local repository without WUM downloading it. To do so, you can pass the distribution location with file flag in add command.

$ wum add --file ~/wso2/wso2esb-5.0.0.zip

Updating the repository

You can check for updates with wum check-update. wum check-update will check for updates for all the WSO2 products in your local repository. If you want to update a single product or a group of products (let’s say all the versions of WSO2 ESB) you can do it with a pattern matching the product or product group. Following is a wum check-update for WSO2 ESB 5.0.0.

$ wum check-update wso2esb-5.0.0
Connecting to WSO2 Update...
Checking for latest updates for wso2esb-5.0.0...
2 updates are available
[WARNING] 1 critical security update. WSO2 strongly recommends that you install this update now.
What's next?
use "wum update" to install latest updates

wum update updates the products in your local repository. Similar to wum check-update you can update all the products, a group of products or a single product in the local repository. Following is a update for WSO2 ESB 5.0.0.

$ wum update wso2esb-5.0.0
Connecting to WSO2 Update...
Validating your subscription status for product wso2esb...
[WARNING] Your credentials are not associated with an active WSO2 subscription.
Please remember that updates are not licensed for use in production without a valid WSO2 subscription.
See: http://wso2.com/update for more details.
Updating wso2esb-5.0.0...
2 updates are available
Downloading updates...
Installing updates...
Preparing update summary...
Building updated product...
Update summary:
Installed updates: 2
* [WARNING] WSO2 strongly recommends to use this updated product for production as soon as possible.
Security updates: 1
Updated Product: /home/fedora/.wum-wso2/products/wso2esb/5.0.0/wso2esb-5.0.0.1473322072976.zip
* More information about updates are available inside the above product archive
Update summary(pdf): (product-archive)/updates/summary-2016-09-18T02-/update-summary-1473322072976.pdf
What's next?
use "wum list [<product-pattern>]" to list products in your local repository
use "wum describe [<product-pattern>]" to get more details of products

Please pay attention to the output of wum update. It gives you the updated product distribution location, information of the update summary etc. You will also get a email (to the email address that you used to create a WSO2 account) with a PDF with all the information about the updates installed.


Managing the repository

There are a few more commands that WUM provides to manage the local repository. Commands list, describe and delete works with no arguments or with product name pattern as an argument. If there are no arguments, the command is applicable to all he products in the local repository. In the case of delete WUM will prompt for a confirmation of course.

wum list gives you a summary of the products in your local repository.

$ wum list
Product Updated Filename
wso2esb-5.0.0 18 Sep 16 02:53 UTC wso2esb-5.0.0.1473322072976.zip
wso2esb-5.0.0 - wso2esb-5.0.0.zip
What's next?
use "wum describe [<product-pattern>]" to get more details of products

Say you need more information about wso2esb-5.0.0.1473322072976.zip, you can use wum describe.

$ wum describe wso2esb-5.0.0.1473322072976.zip
Filename: wso2esb-5.0.0.1473322072976.zip
Product Name: wso2esb
Product Version: 5.0.0
Kernel Version: 4.4.8
Last Updated Time: 2016-09-18T02:53:08Z
Product File Path: /home/fedora/.wum-wso2/products/wso2esb/5.0.0/wso2esb-5.0.0.1473322072976.zip
No Of Times Updated: 1
Installed Updates: 2
Update History:
Date Installed Updates Username
2016-09-18T02:53:08Z 2 kalpaw@wso2.com

If you want to delete all the WSO2 ESB distributions, you can use wum delete.

$ wum delete wso2esb
The following product file(s) will be deleted.
wso2esb-5.0.0.1473322072976.zip
wso2esb-5.0.0.zip
Do you want to continue? [y/N]

You can move your local product repository to another location with wum config. The default location is .wum-wso2/products in your home directory.

$ wum config local.product.repo ~/wso2-products
There are products available in your previous repository.
WUM will not manage products in your previous repository if you decide not to move them to the new repository.
Do you want to continue? [y/N] y
New product repository is /home/fedora/wso2-products

That’s basically it about the basic flow of WUM. We have released WUM 1.0-beta and we highly appreciate you test and get back to us with the feedback. WUM tool is not an open source project, but your feedback is mostly welcome via the following channels,

WSO2 developer mailing list: dev@wso2.org

WUM Issue tracker : https://wso2.org/jira/browse/WUM