Hi,
BashCommands.ifExecutableElse(String, List, List) is correct and it has
been tested many times before.
It is an extension of BashCommands.ifExecutableElse0(String executable,
String command) but with an else option.
test -z checks whether stdout length is zero. I will elaborate this with
an example
if test -z `which dir`; then echo executing the other; else echo
executing dir; fi
---
Aled, I think Riak is not tested in CentOS 7. The installation steps
should be the same but it may have some small differences with firewall
or else.
Valentin.
On 10/04/16 23:11, Aled Sage wrote:
Regarding Svet's finding that RiakCluster has a problem:
Found a problem with template 3 - it's failing because of a problem
in RiakCluster. It's swapping the install scripts for redhat and
debian based systems, see [1].
[1]
https://github.com/apache/brooklyn-library/blob/master/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java#L195
This works for me.
I tested on aws-ec2:eu-central-1 and it worked (letting it choose an
AMI - ubuntu-trusty-14.04-amd64-server-20160406.manifest.xml
(ami-311dfc5e)).
I also tested with CentOS 6 (RightImage_CentOS_6.5_x64_v14.1.3.1_EBS
(ami-e82016f5)).
For CentOS 7 (RightImage_CentOS_7.0_x64_v14.2.1_HVM_EBS
(ami-70d3ee6d)), each RiakNode reported healthy but the RiakCluster
failed during the joinCluster command - I've reported this at
https://issues.apache.org/jira/browse/BROOKLYN-252. I don't think we
should let that block the release, but should definitely investigate
and fix (for a 0.9.1 and/or 0.10.0).
---
The line you pointed at looks wrong, but it seems to actually work!
This is because of the implementation of BashCommands.ifExecutableElse
(which is only ever called by this one place).
It builds up the command:
if test -z `which <cmd>`; then <ifTrue>; else <otherwise>; fi
That also seems the wrong way round, which therefore negates the error
in RiakNodeSshDriver:L195.
Aled