~openstack-charmers-next/charms/trusty/cinder/trunk

« back to all changes in this revision

Viewing changes to hooks/cinder_utils.py

  • Committer: Gerrit Code Review
  • Author(s): Jenkins
  • Date: 2016-05-26 10:21:47 UTC
  • mfrom: (166.1.1 trunk)
  • Revision ID: review@openstack.org-20160526102147-r8vpyj0ij0cr73u3
Merge "Add systemd init support for deploy from source"

Show diffs side-by-side

added added

removed removed

Lines of Context:
78
78
from charmhelpers.contrib.openstack.utils import (
79
79
    configure_installation_source,
80
80
    get_os_codename_install_source,
 
81
    git_clone_and_install,
 
82
    git_generate_systemd_init_files,
81
83
    git_install_requested,
82
 
    git_clone_and_install,
 
84
    git_pip_venv_dir,
83
85
    git_src_dir,
84
86
    git_yaml_value,
85
 
    git_pip_venv_dir,
86
87
    os_release,
87
88
    set_os_workload_status,
88
89
    make_assess_status_func,
123
124
    'libxslt1-dev',
124
125
    'libyaml-dev',
125
126
    'lvm2',
 
127
    'openstack-pkg-tools',
126
128
    'python-dev',
127
129
    'python-pip',
128
130
    'python-setuptools',
783
785
    os.chmod('/etc/sudoers.d', 0o750)
784
786
 
785
787
    bin_dir = os.path.join(git_pip_venv_dir(projects_yaml), 'bin')
786
 
    cinder_api_context = {
787
 
        'service_description': 'Cinder API server',
788
 
        'service_name': 'Cinder',
789
 
        'user_name': 'cinder',
790
 
        'start_dir': '/var/lib/cinder',
791
 
        'process_name': 'cinder-api',
792
 
        'executable_name': os.path.join(bin_dir, 'cinder-api'),
793
 
        'config_files': ['/etc/cinder/cinder.conf'],
794
 
        'log_file': '/var/log/cinder/cinder-api.log',
795
 
    }
796
 
 
797
 
    cinder_backup_context = {
798
 
        'service_description': 'Cinder backup server',
799
 
        'service_name': 'Cinder',
800
 
        'user_name': 'cinder',
801
 
        'start_dir': '/var/lib/cinder',
802
 
        'process_name': 'cinder-backup',
803
 
        'executable_name': os.path.join(bin_dir, 'cinder-backup'),
804
 
        'config_files': ['/etc/cinder/cinder.conf'],
805
 
        'log_file': '/var/log/cinder/cinder-backup.log',
806
 
    }
807
 
 
808
 
    cinder_scheduler_context = {
809
 
        'service_description': 'Cinder scheduler server',
810
 
        'service_name': 'Cinder',
811
 
        'user_name': 'cinder',
812
 
        'start_dir': '/var/lib/cinder',
813
 
        'process_name': 'cinder-scheduler',
814
 
        'executable_name': os.path.join(bin_dir, 'cinder-scheduler'),
815
 
        'config_files': ['/etc/cinder/cinder.conf'],
816
 
        'log_file': '/var/log/cinder/cinder-scheduler.log',
817
 
    }
818
 
 
819
 
    cinder_volume_context = {
820
 
        'service_description': 'Cinder volume server',
821
 
        'service_name': 'Cinder',
822
 
        'user_name': 'cinder',
823
 
        'start_dir': '/var/lib/cinder',
824
 
        'process_name': 'cinder-volume',
825
 
        'executable_name': os.path.join(bin_dir, 'cinder-volume'),
826
 
        'config_files': ['/etc/cinder/cinder.conf'],
827
 
        'log_file': '/var/log/cinder/cinder-volume.log',
828
 
    }
829
 
 
830
 
    # NOTE(coreycb): Needs systemd support
831
 
    templates_dir = 'hooks/charmhelpers/contrib/openstack/templates'
832
 
    templates_dir = os.path.join(charm_dir(), templates_dir)
833
 
    render('git.upstart', '/etc/init/cinder-api.conf',
834
 
           cinder_api_context, perms=0o644, templates_dir=templates_dir)
835
 
    render('git.upstart', '/etc/init/cinder-backup.conf',
836
 
           cinder_backup_context, perms=0o644, templates_dir=templates_dir)
837
 
    render('git.upstart', '/etc/init/cinder-scheduler.conf',
838
 
           cinder_scheduler_context, perms=0o644, templates_dir=templates_dir)
839
 
    render('git.upstart', '/etc/init/cinder-volume.conf',
840
 
           cinder_volume_context, perms=0o644, templates_dir=templates_dir)
 
788
    # Use systemd init units/scripts from ubuntu wily onward
 
789
    if lsb_release()['DISTRIB_RELEASE'] >= '15.10':
 
790
        templates_dir = os.path.join(charm_dir(), 'templates/git')
 
791
        daemons = ['cinder-api', 'cinder-backup', 'cinder-scheduler',
 
792
                   'cinder-volume']
 
793
        for daemon in daemons:
 
794
            cinder_context = {
 
795
                'daemon_path': os.path.join(bin_dir, daemon),
 
796
            }
 
797
            template_file = 'git/{}.init.in.template'.format(daemon)
 
798
            init_in_file = '{}.init.in'.format(daemon)
 
799
            render(template_file, os.path.join(templates_dir, init_in_file),
 
800
                   cinder_context, perms=0o644)
 
801
        git_generate_systemd_init_files(templates_dir)
 
802
    else:
 
803
        cinder_api_context = {
 
804
            'service_description': 'Cinder API server',
 
805
            'service_name': 'Cinder',
 
806
            'user_name': 'cinder',
 
807
            'start_dir': '/var/lib/cinder',
 
808
            'process_name': 'cinder-api',
 
809
            'executable_name': os.path.join(bin_dir, 'cinder-api'),
 
810
            'config_files': ['/etc/cinder/cinder.conf'],
 
811
            'log_file': '/var/log/cinder/cinder-api.log',
 
812
        }
 
813
 
 
814
        cinder_backup_context = {
 
815
            'service_description': 'Cinder backup server',
 
816
            'service_name': 'Cinder',
 
817
            'user_name': 'cinder',
 
818
            'start_dir': '/var/lib/cinder',
 
819
            'process_name': 'cinder-backup',
 
820
            'executable_name': os.path.join(bin_dir, 'cinder-backup'),
 
821
            'config_files': ['/etc/cinder/cinder.conf'],
 
822
            'log_file': '/var/log/cinder/cinder-backup.log',
 
823
        }
 
824
 
 
825
        cinder_scheduler_context = {
 
826
            'service_description': 'Cinder scheduler server',
 
827
            'service_name': 'Cinder',
 
828
            'user_name': 'cinder',
 
829
            'start_dir': '/var/lib/cinder',
 
830
            'process_name': 'cinder-scheduler',
 
831
            'executable_name': os.path.join(bin_dir, 'cinder-scheduler'),
 
832
            'config_files': ['/etc/cinder/cinder.conf'],
 
833
            'log_file': '/var/log/cinder/cinder-scheduler.log',
 
834
        }
 
835
 
 
836
        cinder_volume_context = {
 
837
            'service_description': 'Cinder volume server',
 
838
            'service_name': 'Cinder',
 
839
            'user_name': 'cinder',
 
840
            'start_dir': '/var/lib/cinder',
 
841
            'process_name': 'cinder-volume',
 
842
            'executable_name': os.path.join(bin_dir, 'cinder-volume'),
 
843
            'config_files': ['/etc/cinder/cinder.conf'],
 
844
            'log_file': '/var/log/cinder/cinder-volume.log',
 
845
        }
 
846
 
 
847
        templates_dir = 'hooks/charmhelpers/contrib/openstack/templates'
 
848
        templates_dir = os.path.join(charm_dir(), templates_dir)
 
849
        render('git.upstart', '/etc/init/cinder-api.conf',
 
850
               cinder_api_context, perms=0o644,
 
851
               templates_dir=templates_dir)
 
852
        render('git.upstart', '/etc/init/cinder-backup.conf',
 
853
               cinder_backup_context, perms=0o644,
 
854
               templates_dir=templates_dir)
 
855
        render('git.upstart', '/etc/init/cinder-scheduler.conf',
 
856
               cinder_scheduler_context, perms=0o644,
 
857
               templates_dir=templates_dir)
 
858
        render('git.upstart', '/etc/init/cinder-volume.conf',
 
859
               cinder_volume_context, perms=0o644,
 
860
               templates_dir=templates_dir)
841
861
 
842
862
    if not is_unit_paused_set():
843
863
        service_restart('tgtd')