components/openstack/horizon/files/horizon-upgrade
author Laszlo Peter <laszlo.peter@oracle.com>
Wed, 07 Sep 2016 14:48:42 -0700
changeset 6856 356aeea98c39
permissions -rw-r--r--
24465729 Update Horizon for the Mitaka release 22955127 Error:Unauthorized when admin removed as project member of service project 22997164 xstatic package version numbers must match TPNO version
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6856
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
     1
#!/usr/bin/python2.7
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
     2
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
     3
# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
     4
#
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
     5
#    Licensed under the Apache License, Version 2.0 (the "License"); you may
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
     6
#    not use this file except in compliance with the License. You may obtain
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
     7
#    a copy of the License at
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
     8
#
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
     9
#         http://www.apache.org/licenses/LICENSE-2.0
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    10
#
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    11
#    Unless required by applicable law or agreed to in writing, software
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    12
#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    13
#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    14
#    License for the specific language governing permissions and limitations
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    15
#    under the License.
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    16
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    17
import os
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    18
from subprocess import check_call, Popen, PIPE
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    19
import sys
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    20
import traceback
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    21
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    22
import smf_include
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    23
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    24
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    25
def start():
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    26
    # pull out the current version of config/upgrade-id
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    27
    p = Popen(['/usr/bin/svcprop', '-p', 'config/upgrade-id',
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    28
               os.environ['SMF_FMRI']], stdout=PIPE, stderr=PIPE)
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    29
    curr_ver, _err = p.communicate()
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    30
    curr_ver = curr_ver.strip()
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    31
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    32
    # extract the openstack-upgrade-id from the pkg
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    33
    p = Popen(['/usr/bin/pkg', 'contents', '-H', '-t', 'set', '-o', 'value',
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    34
               '-a', 'name=openstack.upgrade-id',
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    35
               'pkg:/cloud/openstack/horizon'], stdout=PIPE, stderr=PIPE)
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    36
    pkg_ver, _err = p.communicate()
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    37
    pkg_ver = pkg_ver.strip()
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    38
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    39
    if curr_ver == pkg_ver:
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    40
        # No need to upgrade
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    41
        sys.exit(smf_include.SMF_EXIT_OK)
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    42
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    43
    # In versions of OpenStack prior to Mitaka, 'openstack-dashboard-http.conf'
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    44
    # and 'openstack-dashboard-tls.conf' were delivered by the
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    45
    # cloud/openstack/horizon package.  Look for the existence of either file
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    46
    # in Apache's conf.d directory.  If either are found, exit the service
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    47
    # degraded so the administrator can investigate why.
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    48
    for filename in ['openstack-dashboard-http.conf',
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    49
                     'openstack-dashboard-tls.conf']:
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    50
        path = os.path.join('/etc/apache2/2.4/conf.d', filename)
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    51
        if os.path.exists(path) or os.path.islink(path):
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    52
            reason = '/etc/apache2/2.4/conf.d/%s found.  ' % filename + \
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    53
                     'Starting with the Mitaka release, Horizon is now a ' + \
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    54
                     'stand-alone service and should be configured ' + \
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    55
                     'independently from the ' + \
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    56
                     'svc:/network/http:apache24 service.  ' + \
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    57
                     '/etc/apache2/2.4/conf.d/%s should be ' % filename + \
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    58
                     'removed before restarting the ' + \
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    59
                     'svc:/network/http:apache24 service'
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    60
            smf_include.smf_method_exit(smf_include.SMF_EXIT_DEGRADED,
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    61
                                        'Apache_Configured', reason)
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    62
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    63
    # update the current version
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    64
    check_call(['/usr/sbin/svccfg', '-s', os.environ['SMF_FMRI'], 'setprop',
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    65
                'config/upgrade-id', '=', pkg_ver])
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    66
    check_call(['/usr/sbin/svccfg', '-s', os.environ['SMF_FMRI'], 'refresh'])
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    67
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    68
    sys.exit(smf_include.SMF_EXIT_OK)
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    69
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    70
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    71
if __name__ == '__main__':
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    72
    os.putenv('LC_ALL', 'C')
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    73
    try:
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    74
        smf_include.smf_main()
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    75
    except RuntimeError:
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    76
        sys.exit(smf_include.SMF_EXIT_ERR_FATAL)
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    77
    except Exception as err:
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    78
        print 'Unknown error:  %s' % err
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    79
        print
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    80
        traceback.print_exc(file=sys.stdout)
356aeea98c39 24465729 Update Horizon for the Mitaka release
Laszlo Peter <laszlo.peter@oracle.com>
parents:
diff changeset
    81
        sys.exit(smf_include.SMF_EXIT_ERR_FATAL)