def upgrade_charm():
    apt_install(filter_installed_packages(determine_packages()),
                fatal=True)
    # NOTE: ensure psutil install for hugepages configuration
    status_set('maintenance', 'Installing apt packages')
    apt_install(filter_installed_packages(['python-psutil']))
    packages_removed = remove_old_packages()
    if packages_removed and not is_unit_paused_set():
        log("Package purge detected, restarting services", "INFO")
        for s in services():
            service_restart(s)

    for r_id in relation_ids('amqp'):
        amqp_joined(relation_id=r_id)

    if is_relation_made('nrpe-external-master'):
        update_nrpe_config()

    # Fix previously wrongly created path permissions
    # LP: https://bugs.launchpad.net/charm-cinder-ceph/+bug/1779676
    asok_path = '/var/run/ceph/'
    gid = grp.getgrnam("kvm").gr_gid
    if gid and os.path.isdir(asok_path) and gid != os.stat(asok_path).st_gid:
        log("{} not owned by group 'kvm', fixing permissions."
            .format(asok_path))
        shutil.chown(asok_path, group='kvm')
 def test_determine_packages_metadata(self, net_man, n_plugin, en_meta):
     en_meta.return_value = (True, None)
     net_man.return_value = 'bob'
     n_plugin.return_value = 'ovs'
     self.relation_ids.return_value = []
     result = utils.determine_packages()
     self.assertTrue('nova-api-metadata' in result)
Ejemplo n.º 3
0
def upgrade_charm():
    apt_install(filter_installed_packages(determine_packages()), fatal=True)
    # NOTE: ensure psutil install for hugepages configuration
    status_set('maintenance', 'Installing apt packages')
    apt_install(filter_installed_packages(['python-psutil']))
    packages_removed = remove_old_packages()
    if packages_removed and not is_unit_paused_set():
        log("Package purge detected, restarting services", "INFO")
        for s in services():
            service_restart(s)

    for r_id in relation_ids('amqp'):
        amqp_joined(relation_id=r_id)

    if is_relation_made('nrpe-external-master'):
        update_nrpe_config()

    # Fix previously wrongly created path permissions
    # LP: https://bugs.launchpad.net/charm-cinder-ceph/+bug/1779676
    asok_path = '/var/run/ceph/'
    gid = grp.getgrnam("kvm").gr_gid
    if gid and os.path.isdir(asok_path) and gid != os.stat(asok_path).st_gid:
        log("{} not owned by group 'kvm', fixing permissions.".format(
            asok_path))
        shutil.chown(asok_path, group='kvm')
 def test_determine_packages_quantum(self, net_man, n_plugin):
     self.neutron_plugin_attribute.return_value = OVS_PKGS
     net_man.return_value = 'quantum'
     n_plugin.return_value = 'ovs'
     self.relation_ids.return_value = []
     result = utils.determine_packages()
     ex = utils.BASE_PACKAGES + OVS_PKGS + ['nova-compute-kvm']
     self.assertEquals(ex, result)
Ejemplo n.º 5
0
 def test_determine_packages_ironic(self, en_meta):
     self.os_release.return_value = 'victoria'
     self.test_config.set('virt-type', 'ironic')
     en_meta.return_value = (False, None)
     self.relation_ids.return_value = []
     result = utils.determine_packages()
     ex = utils.BASE_PACKAGES + ['nova-compute-ironic']
     self.assertTrue(ex.sort() == result.sort())
def install():
    status_set('maintenance', 'Executing pre-install')
    execd_preinstall()
    configure_installation_source(config('openstack-origin'))

    status_set('maintenance', 'Installing apt packages')
    apt_update()
    apt_install(determine_packages(), fatal=True)
Ejemplo n.º 7
0
def install():
    status_set('maintenance', 'Executing pre-install')
    execd_preinstall()
    configure_installation_source(config('openstack-origin'))

    status_set('maintenance', 'Installing apt packages')
    apt_update()
    apt_install(determine_packages(), fatal=True)
 def test_determine_packages_no_multipath(self, net_man, n_plugin, en_meta):
     self.os_release.return_value = 'ocata'
     en_meta.return_value = (False, None)
     net_man.return_value = 'bob'
     self.test_config.set('use-multipath', False)
     self.relation_ids.return_value = []
     result = utils.determine_packages()
     for pkg in utils.MULTIPATH_PACKAGES:
         self.assertFalse(pkg in result)
 def test_determine_packages_metadata(self, git_requested, net_man,
                                      n_plugin, en_meta):
     git_requested.return_value = False
     en_meta.return_value = (True, None)
     net_man.return_value = 'bob'
     n_plugin.return_value = 'ovs'
     self.relation_ids.return_value = []
     result = utils.determine_packages()
     self.assertTrue('nova-api-metadata' in result)
 def test_determine_packages_metadata(self, net_man,
                                      n_plugin, en_meta):
     self.os_release.return_value = 'ocata'
     en_meta.return_value = (True, None)
     net_man.return_value = 'bob'
     n_plugin.return_value = 'ovs'
     self.relation_ids.return_value = []
     result = utils.determine_packages()
     self.assertTrue('nova-api-metadata' in result)
 def test_determine_packages_neutron(self, git_requested, net_man, n_plugin,
                                     en_meta):
     git_requested.return_value = False
     en_meta.return_value = (False, None)
     net_man.return_value = 'neutron'
     n_plugin.return_value = 'ovs'
     self.relation_ids.return_value = []
     result = utils.determine_packages()
     ex = utils.BASE_PACKAGES + ['nova-compute-kvm']
     self.assertEquals(ex, result)
 def test_determine_packages_nova_network(self, net_man):
     net_man.return_value = 'flatdhcpmanager'
     self.relation_ids.return_value = []
     result = utils.determine_packages()
     ex = utils.BASE_PACKAGES + [
         'nova-api',
         'nova-network',
         'nova-compute-kvm'
     ]
     self.assertEquals(ex, result)
 def test_determine_packages_no_multipath(self, net_man,
                                          n_plugin, en_meta):
     self.os_release.return_value = 'ocata'
     en_meta.return_value = (False, None)
     net_man.return_value = 'bob'
     self.test_config.set('use-multipath', False)
     self.relation_ids.return_value = []
     result = utils.determine_packages()
     for pkg in utils.MULTIPATH_PACKAGES:
         self.assertFalse(pkg in result)
 def test_determine_packages_neutron(self, machine, net_man, n_plugin,
                                     en_meta):
     en_meta.return_value = (False, None)
     net_man.return_value = 'neutron'
     n_plugin.return_value = 'ovs'
     machine.return_value = 'x86_64'
     self.relation_ids.return_value = []
     result = utils.determine_packages()
     ex = utils.BASE_PACKAGES + ['nova-compute-kvm']
     self.assertTrue(ex == result)
 def test_determine_packages_neutron_ceph(self, machine, net_man, n_plugin,
                                          en_meta):
     en_meta.return_value = (False, None)
     net_man.return_value = 'neutron'
     n_plugin.return_value = 'ovs'
     machine.return_value = 'x86_64'
     self.relation_ids.return_value = ['ceph:0']
     result = utils.determine_packages()
     ex = (utils.BASE_PACKAGES + ['ceph-common', 'nova-compute-kvm'])
     self.assertEqual(ex, result)
 def test_determine_packages_nova_network_ocata(self, machine, net_man,
                                                en_meta):
     self.os_release.return_value = 'ocata'
     en_meta.return_value = (False, None)
     net_man.return_value = 'flatdhcpmanager'
     machine.return_value = 'x86_64'
     self.relation_ids.return_value = []
     result = utils.determine_packages()
     ex = utils.BASE_PACKAGES + ['nova-compute-kvm']
     self.assertTrue(ex == result)
 def test_determine_packages_neutron(self, git_requested, net_man, n_plugin,
                                     en_meta):
     git_requested.return_value = False
     en_meta.return_value = False
     self.neutron_plugin_attribute.return_value = OVS_PKGS
     net_man.return_value = 'neutron'
     n_plugin.return_value = 'ovs'
     self.relation_ids.return_value = []
     result = utils.determine_packages()
     ex = utils.BASE_PACKAGES + OVS_PKGS_FLAT + ['nova-compute-kvm']
     self.assertEquals(ex, result)
 def test_determine_packages_neutron_aarch64_trusty(self, machine, net_man,
                                                    n_plugin, en_meta):
     self.lsb_release.return_value = {'DISTRIB_CODENAME': 'trusty'}
     en_meta.return_value = (False, None)
     net_man.return_value = 'neutron'
     n_plugin.return_value = 'ovs'
     machine.return_value = 'aarch64'
     self.relation_ids.return_value = []
     result = utils.determine_packages()
     ex = utils.BASE_PACKAGES + ['nova-compute-kvm']
     self.assertEqual(ex, result)
 def test_determine_packages_neutron_ceph(self, machine, git_requested,
                                          net_man, n_plugin, en_meta):
     git_requested.return_value = False
     en_meta.return_value = (False, None)
     net_man.return_value = 'neutron'
     n_plugin.return_value = 'ovs'
     machine.return_value = 'x86_64'
     self.relation_ids.return_value = ['ceph:0']
     result = utils.determine_packages()
     ex = (utils.BASE_PACKAGES + ['ceph-common', 'nova-compute-kvm'])
     self.assertEqual(ex, result)
 def test_determine_packages_neutron(self, machine, net_man,
                                     n_plugin, en_meta):
     self.os_release.return_value = 'ocata'
     en_meta.return_value = (False, None)
     net_man.return_value = 'neutron'
     n_plugin.return_value = 'ovs'
     machine.return_value = 'x86_64'
     self.relation_ids.return_value = []
     result = utils.determine_packages()
     ex = utils.BASE_PACKAGES + ['nova-compute-kvm']
     self.assertTrue(ex == result)
 def test_determine_packages_nova_network(self, git_requested, net_man,
                                          en_meta):
     git_requested.return_value = False
     en_meta.return_value = (False, None)
     net_man.return_value = 'flatdhcpmanager'
     self.relation_ids.return_value = []
     result = utils.determine_packages()
     ex = utils.BASE_PACKAGES + [
         'nova-api', 'nova-network', 'nova-compute-kvm'
     ]
     self.assertEquals(ex, result)
 def test_determine_packages_neutron_rocky(self, machine, net_man, n_plugin,
                                           en_meta):
     self.os_release.return_value = 'rocky'
     en_meta.return_value = (False, None)
     net_man.return_value = 'neutron'
     n_plugin.return_value = 'ovs'
     machine.return_value = 'x86_64'
     self.relation_ids.return_value = []
     result = utils.determine_packages()
     ex = ([p for p in utils.BASE_PACKAGES if not p.startswith('python-')] +
           ['nova-compute-kvm'] + utils.PY3_PACKAGES)
     self.assertEqual(ex, result)
 def test_determine_packages_neutron_aarch64_xenial(self, machine, net_man,
                                                    n_plugin, en_meta):
     self.os_release.return_value = 'ocata'
     self.lsb_release.return_value = {'DISTRIB_CODENAME': 'xenial'}
     en_meta.return_value = (False, None)
     net_man.return_value = 'neutron'
     n_plugin.return_value = 'ovs'
     machine.return_value = 'aarch64'
     self.relation_ids.return_value = []
     result = utils.determine_packages()
     ex = utils.BASE_PACKAGES + ['nova-compute-kvm', 'qemu-efi']
     self.assertTrue(ex == result)
Ejemplo n.º 24
0
 def test_determine_packages_quantum_ceph(self, git_requested, net_man,
                                          n_plugin, en_meta, leg_mode):
     git_requested.return_value = False
     en_meta.return_value = False
     leg_mode.return_value = True
     self.neutron_plugin_attribute.return_value = OVS_PKGS
     net_man.return_value = 'quantum'
     n_plugin.return_value = 'ovs'
     self.relation_ids.return_value = ['ceph:0']
     result = utils.determine_packages()
     ex = (utils.BASE_PACKAGES + OVS_PKGS_FLAT +
           ['ceph-common', 'nova-compute-kvm'])
     self.assertEquals(ex, result)
 def test_determine_packages_nova_network(self, machine,
                                          net_man, en_meta):
     self.os_release.return_value = 'icehouse'
     en_meta.return_value = (False, None)
     net_man.return_value = 'flatdhcpmanager'
     machine.return_value = 'x86_64'
     self.relation_ids.return_value = []
     result = utils.determine_packages()
     ex = utils.BASE_PACKAGES + [
         'nova-api',
         'nova-network',
         'nova-compute-kvm'
     ]
     self.assertTrue(ex == result)
 def test_determine_packages_nova_network_ocata(self, machine,
                                                git_requested,
                                                net_man, en_meta):
     self.os_release.return_value = 'ocata'
     git_requested.return_value = False
     en_meta.return_value = (False, None)
     net_man.return_value = 'flatdhcpmanager'
     machine.return_value = 'x86_64'
     self.relation_ids.return_value = []
     result = utils.determine_packages()
     ex = utils.BASE_PACKAGES + [
         'nova-compute-kvm'
     ]
     self.assertEqual(ex, result)
 def test_determine_packages_neutron_aarch64_trusty(self, machine,
                                                    net_man, n_plugin,
                                                    en_meta):
     self.os_release.return_value = 'ocata'
     self.lsb_release.return_value = {
         'DISTRIB_CODENAME': 'trusty'
     }
     en_meta.return_value = (False, None)
     net_man.return_value = 'neutron'
     n_plugin.return_value = 'ovs'
     machine.return_value = 'aarch64'
     self.relation_ids.return_value = []
     result = utils.determine_packages()
     ex = utils.BASE_PACKAGES + ['nova-compute-kvm']
     self.assertEqual(ex, result)
 def test_determine_packages_neutron_aarch64_xenial(self, machine,
                                                    git_requested,
                                                    net_man, n_plugin,
                                                    en_meta):
     self.lsb_release.return_value = {
         'DISTRIB_CODENAME': 'xenial'
     }
     git_requested.return_value = False
     en_meta.return_value = (False, None)
     net_man.return_value = 'neutron'
     n_plugin.return_value = 'ovs'
     machine.return_value = 'aarch64'
     self.relation_ids.return_value = []
     result = utils.determine_packages()
     ex = utils.BASE_PACKAGES + ['nova-compute-kvm', 'qemu-efi']
     self.assertEqual(ex, result)
 def test_determine_packages_neutron_rocky(self, machine, net_man,
                                           n_plugin, en_meta):
     self.os_release.return_value = 'rocky'
     en_meta.return_value = (False, None)
     net_man.return_value = 'neutron'
     n_plugin.return_value = 'ovs'
     machine.return_value = 'x86_64'
     self.relation_ids.return_value = []
     result = utils.determine_packages()
     ex = (
         [p for p in utils.BASE_PACKAGES
          if not p.startswith('python-')] +
         ['nova-compute-kvm'] +
         utils.PY3_PACKAGES +
         ['python3-ceilometer', 'python3-neutron']
     )
     self.assertEqual(ex, result)
def install():
    status_set('maintenance', 'Executing pre-install')
    execd_preinstall()
    configure_installation_source(config('openstack-origin'))

    status_set('maintenance', 'Installing apt packages')
    apt_update()
    apt_install(determine_packages(), fatal=True)

    # Start migration to agent registration with FQDNs for newly installed
    # units with OpenStack release Stein or newer.
    release = os_release('nova-common')
    if CompareOpenStackReleases(release) >= 'stein':
        db = kv()
        db.set(USE_FQDN_KEY, True)
        db.flush()

    install_vaultlocker()
def install():
    execd_preinstall()
    configure_installation_source(config('openstack-origin'))
    apt_update()
    apt_install(determine_packages(), fatal=True)