Created by Xiaoming Wang on 2014-08-18 and last modified on 2014-08-18
Get this branch:
bzr branch lp:~xwang2713/charms/precise/hpcc/hpcc-5.0
Only Xiaoming Wang can upload to this branch. If you are Xiaoming Wang please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Xiaoming Wang

Recent revisions

11. By Xiaoming Wang on 2014-08-18

Update for HPCC 5.0.0-3 release
Enable HPCC reconfiguration in dapart hook
Correct directory typo for dependencies

10. By Xiaoming Wang on 2014-03-08

Add fix for config-get update
If config-get bug fixed previous fix_private_key will break
This update fix the problem

9. By Xiaoming Wang on 2014-03-06

During test we found config-get return string has newlines replaced with spaces.
This prevent us using ssh private key defined through config.yaml.
I opened bug report at launchpad project juju-core: bug# 1288960
Here is a workaround for HPCC side: add newlines after retrive ssh private value
from config-get

8. By Xiaoming Wang on 2014-03-06

Again, thanks for taking time to review HPCC Charm. Based on the 5th review we made following changes:
1) add '-e' bash option for all the hook scripts
   So if any statement return non-zero value the hook script will stop
2) Remove unused charm upgrade and hpcc-relation-changed hooks
   The later will result "INFO" level message from 'juju charm proof'
   as expected.
3) For reported HPCC roxie process fails to start, it is due to lacking
   of network resource (/proc/sys/net/core/rmem_max. It is only happens
   on some Juju local environment. We will open a bug against juju-core.

7. By Xiaoming Wang on 2014-02-27

Fix missing ssh keys for single instance deployment

6. By Xiaoming Wang on 2014-02-20

Again, thanks for taking time to review HPCC Charm. Based on the 4th review we made following changes:
1) remove extra precise/hpcc directories in repository
2) enforce checksum validation before installing HPCC package. If checksum not
   supplied message will be logged with juju-log (though log as INFO) and exit 1
   We will defer sha1sum implementation due to the time limit.
3) Add check status after starting HPCC. It is neccessory even start run
   successfully (return code 0) becasue some processes may exit unexpectedly.
   A variable "start-check-wait" in seconds is introduced in config.yaml to delay
   the checking.
   If error found messsage logged to tell user where to find the detail about
   the error: /var/log/HPCCSystems/<component>/

4) Update README. It adds a link to HPCC Hardware requirement. HPCC require
   4GB memory. With less memory some processes may not start successfully or
   even started may not function correctly.

5. By Xiaoming Wang on 2014-02-10

Again, thanks for taking time to review HPCC Charm. Based on the 3rd review we made following change
1) Add restart in start hook

2) Add checksum validation. We add a string package-checksum in config.yaml. If it is not empty inst
all script will use it to validate the downloaded package before install. In future our download sit
e will provide md5sum file so validate will be conducted automatically wihtout this setting.

3) Fix the open-port which was broken before.

4) Add implementation to automatically generate ssh key pair if user doesn't provide them in config.
yaml. Basically if no keys supplied in config.yaml every new joined node will try to use existing ssh keys through relation-get. If can find it will call ssh-keygen to create new pair. In relation-chanage hook every node will use the keys from lowest ip node if there are different thant its pair. It shouldn't have overhead since when every nodes has the same pair of key. We tested in various scenarios, for example deploy multiple nodes, add new nodes, etc. There is a restriction: user can not change the keys setting in config.yaml after the charm deployed. It will be added in future enhancement.

5) We add CentOS prerequisite but never test it. Actually we are not sure if current juju charm supp
ort CentOS or Fedora.

4. By Xiaoming Wang on 2014-02-06

Prevent logging user ssh key pair values in log file

3. By Xiaoming Wang on 2014-02-03

Based on the second review the following modifications are made:

1) replaced /var/lib/juju/hpcc_data with /var/lib/HPCCSystems/charm
   All hpcc charm related user data saved in there. For example, ip files, url, etc

2) Add two string variables: ssh-key-public and ssh-key-private. User can generate
   ssh key pair and copy/paste the public key and private to these variables.
   install hook script will use the values if defined. Otherwise default ssh key pair
   will be used.

   It would be nice if we can generate key paris if user doesn't supply them. But we only
   want to have one pair of key fo reach clusters and not sure how to garrantte only
   one unit generating the key when relation changed. We will leave it to future enhancement.

3) README file is updated to reflect the change in 2)

2. By Xiaoming Wang on 2014-01-29

Based on the initial review the following modifications are made:

1) replaced /tmp with /var/lib/juju/hpcc which is created during install hook
   We do not use $CHARM_DIR since we want this directory to have the same name for all nodes.
   We cannot find variable $CHARM_ROOT. If there is a variable to point to /var/lib/juju we will
   be happy to use it instead of the hard-coded /var/lib/juju.

2) hpcc relation hook. For the first release there are no other charms related to hpcc. But
   in near future we will add other related charms, for example, ganglia-monitor and hadoop
   support, etc. We add an empty hpcc-relation-changed hook to satisfy the 'juju charm proof'

3) There is a potential security risk by using supplied ssh-key. For local deployment
   we added a sentence to recommend users to generate their own keys and replace the ones in hpcc/ssh-keys
   directory. For deploy directly from juju-store we don't know how to use users' generated keys.

4) Regarding the README section on help scripts under hpcc/bin:
   Users would need to download the charm to use the scripts.
   There are two main shell scripts. These are now explained in the readme (see below). The other two
   python scripts are support scripts and users do not call them directly.

   config_hpcc.sh : When you use the `juju add-unit` command to add nodes, scripts are called automatically
   to provide a default configuration. If you want to configure manually, set auto-gen to 0, wait for all
   nodes to be in a "started" state, then call the config_hpcc.sh script using the following parameters:

     ./config_hpcc.sh -thornodes <# of thor nodes> -roxienodes <# of roxie nodes> -supportnodes
            <# of support nodes> -slavespernode <#of thor slaves per node>
   Another useful script reports the URL for the ECL Watch node. Call the get-url.sh script to display the
   cluster configuration and the URL for the ECL Watch service.

5) We updated the icon.svg file with our company logo

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
This branch contains Public information 
Everyone can see this information.