You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ambari.apache.org by "Vitaly Brodetskyi (JIRA)" <ji...@apache.org> on 2017/07/13 17:43:00 UTC

[jira] [Assigned] (AMBARI-21355) Upgrade to Ambari Server 2.5.1 breaks common-services provided by MPacks

     [ https://issues.apache.org/jira/browse/AMBARI-21355?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Vitaly Brodetskyi reassigned AMBARI-21355:
------------------------------------------

    Assignee: Vitaly Brodetskyi

> Upgrade to Ambari Server 2.5.1 breaks common-services provided by MPacks
> ------------------------------------------------------------------------
>
>                 Key: AMBARI-21355
>                 URL: https://issues.apache.org/jira/browse/AMBARI-21355
>             Project: Ambari
>          Issue Type: Bug
>          Components: ambari-server, ambari-upgrade
>    Affects Versions: 2.5.0
>         Environment: Ubuntu Linux 14.04
>            Reporter: David Kaspar
>            Assignee: Vitaly Brodetskyi
>
> *How to reproduce:*
> * Have your own MPack that is similar to one that is located at "contrib/management-packs/microsoft-r_mpack" in Ambari source code
> * Have an Ambari Server 2.4.3 with the MPack installed in a cluster
> * Upgrade Ambari-Server to 2.5.1 version
> *Expected Behavior:*
> Ambari Server is upgraded and MPack is still installed and used
> *Actual Behavior:*
> When running {{ambari-server upgrade}}, it fails with the following error message:
> {code}
> Using python  /usr/bin/python
> Upgrading ambari-server
> INFO: Upgrade Ambari Server
> INFO: Updating Ambari Server properties in ambari.properties ...
> INFO: Updating Ambari Server properties in ambari-env.sh ...
> WARNING: Original file ambari-env.sh kept
> ERROR: Unexpected OSError: [Errno 17] File exists
> For more info run ambari-server with -v or --verbose option
> {code}
> *The following steps are used for Ambari-Server upgrade:*
> {code}
> service ambari-server stop
> ambari-agent stop
> wget -nv http://public-repo-1.hortonworks.com/ambari/ubuntu14/2.x/updates/2.5.1.0/ambari.list -O /etc/apt/sources.list.d/ambari.list
> apt-get clean all
> apt-get update
> apt-get install ambari-server
> apt-get install ambari-agent
> ambari-server upgrade
> {code}
> *Analyses:*
> Usually when such a common service is installed from MPack, a new directory (named by the service) is created in {{/var/lib/ambari-server/resources/common-services/}} directory. The service directory contain a single symbolic link (named by the version of the service) and targets {{/var/lib/ambari-server/resources/mpacks/<MY_MPACK_NAME>-<MY_MPACK_VERSION>/common-services/<MY_SERVICE_NAME>/<MY_SERVICE_VERSION>}}
> It seems that the whole upgrade process works correctly until {code}ambari-server upgrade{code} command runs {{find_and_copy_custom_services}} function that re-creates common-services from the backup directory that is created during {{apt-get install ambari-server}}. The backup directory is correctly having the symbolic link in it while the newly created {{/var/lib/ambari-server/resources/common-services/}} is NOT having the symbolic link. Instead it contains full-deep copy of the directory targeted by the original symbolic link.
> *Proposed Solution:*
> Replace the following line in {{ambari-server/src/main/python/ambari_server/serverUpgrade.py}}:
> {code}
> shutil.copytree(backup_service, os.path.join(current_base_service_dir,service_name))
> {code}
> with:
> {code}
> shutil.copytree(backup_service, os.path.join(current_base_service_dir,service_name), True)
> {code}
> so the service directory gets copied while keeping symbolic links.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)