-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/38543/
-----------------------------------------------------------

Review request for Ambari, Jonathan Hurley, Jayush Luniya, Nate Cole, Srimanth 
Gunturi, and Sid Wagle.


Bugs: AMBARI-13164
    https://issues.apache.org/jira/browse/AMBARI-13164


Repository: ambari


Description
-------

Starting in HDP 2.3.2.0, Knox will version its data directory.

HDP 2.3.2.0 is meant to support Debian & Ubuntu.
A customer installing HDP 2.3.2.0 would receive the following for knox:
/usr/hdp/current/knox/data is a symlink to /var/lib/knox/data_$
{version}

Hence, all of the data directories in /var/lib/knox/ would be versioned. This 
is because the Debian installer fails if it tries to create the 
/var/lib/knox/data folder and it already exists (since it belongs to a previous 
version); further, you would get data loss if you tried to uninstall the newer 
version, since it would wipe out the folder that was used by the previous 
version.

So the problem doesn't arise on the initial install, but rather on installing 
an additional version for Rolling Upgrade.

This means that any customer planning to upgrade Knox must first upgrade Ambari 
to 2.1.2.

There are 3 scenarios:

1. Ambari 2.1.2 with HDP 2.3.0.0:
Ambari must continue to use the non-versioned data directory.

2. Ambari 2.1.2 with HDP 2.3.2.0:
A brand new install will use the versioned data directory out-of-the-box.

3. Ambari 2.1.0 with HDP 2.3.0.0:
Technically, this allows registering bits for HDP 2.3.2.0 and performing an RU 
to it. However, because HDP 2.3.2.0 uses a versioned data dir, it means that 
any customer with Knox that plans to perform an RU must first upgrade Ambari to 
2.1.2, which is equivalent to starting with case #1.

Because RU allows the following paths, 
2.3.0.0 (non-versioned data dir) -> 2.3.2.0 (versioned data dir)
2.3.2.0 (versioned data dir) -> 2.3.3.- (versioned data dir, once it is 
available)

It means that it must always copy any contents from 
previous_data_dir to  /usr/hdp/{new-version}/knox/data

In the case of 2.3.0.0 -> 2.3.+, previous_data_dir is /var/lib/knox/data/
In the case of 2.3.+ -> 2.3.+, previous_data_dir is 
/usr/hdp/{prev-version}/knox/data


Diffs
-----

  ambari-common/src/main/python/resource_management/libraries/script/script.py 
e0a7877 
  
ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/params_linux.py
 990fc87 
  
ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/upgrade.py
 2c805fa 
  
ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/nodemanager_upgrade.py
 9ac2d63 
  ambari-server/src/test/python/stacks/2.2/KNOX/test_knox_gateway.py 3ae42a0 

Diff: https://reviews.apache.org/r/38543/diff/


Testing
-------

Ran python unit tests, which passed.
Verified during RU in several scenarios.
1. Fresh install of HDP 2.3.0.0 and RU to 2.3.2.0 with Knox. Before Finalizing, 
Downgraded.
2. Fresh install of HDP 2.3.0.0 and RU to 2.3.2.0 with Knox. Finalized.
3. Steps from #2, and then perform an RU to a higher build in HDP 2.3.2.0


Thanks,

Alejandro Fernandez

Reply via email to