'Subscribe current system to available pools matching the specified
regular expression. It matches regexp against available pool ids first.
If any pool ids match, subscribe to those pools and return.
If no pool ids match, then match regexp against available pool product
names. Note this can still easily match many many pools. Then subscribe
to those pools.
Since a pool id is a more specific match, we only fallback to matching
against names if we didn\'t match pool ids.
Raises:
* Exception - if error occurs while running command'

def subscribe(self, regexp):

    subscribed_pool_ids = self.subscribe_pool(regexp)
    if subscribed_pool_ids:
        return subscribed_pool_ids
    subscribed_by_product_pool_ids = self.subscribe_product(regexp)
    if subscribed_by_product_pool_ids:
        return subscribed_by_product_pool_ids
    return []
