def install_contrail_ceilometer_plugin_node(*args): """Installs contrail ceilometer plugin pkgs in one or list of nodes. USAGE:fab install_contrail_ceilometer_plugin_node:[email protected],[email protected]""" for host_string in args: with settings(host_string=host_string): if not is_ceilometer_contrail_plugin_install_supported(): continue pkg_contrail_ceilometer = get_ceilometer_plugin_pkgs() act_os_type = detect_ostype() openstack_sku = get_openstack_sku() if not pkg_contrail_ceilometer: raise RuntimeError('Unsupported OpenStack distribution (%s) ' 'on (%s)' % (openstack_sku, act_os_type)) if act_os_type == 'ubuntu': apt_install(pkg_contrail_ceilometer) elif act_os_type in ['redhat']: # We need to copy the pkg from the cfgm node # and then install it on the openstack node cfgm_node = env.roledefs['cfgm'][0] if host_string != cfgm_node: local_tempdir = tempfile.mkdtemp() with lcd(local_tempdir): for pkg in pkg_contrail_ceilometer: with settings(host_string = cfgm_node): get('/opt/contrail/contrail_install_repo/%s*.rpm' % (pkg), local_tempdir) output = local("ls %s/*.rpm" % (local_tempdir), capture=True) pkg_list = output.split('\n') for pkg in pkg_list: install_pkg_node(pkg, host_string) local('rm -rf %s' % (local_tempdir)) else: yum_install(pkg_contrail_ceilometer) else: yum_install(pkg_contrail_ceilometer)
def uninstall_openstack_node(*args): """Uninstalls openstack pkgs in one or list of nodes. USAGE:fab uninstall_openstack_node:[email protected],[email protected]""" for host_string in args: with settings(host_string=host_string): pkg = ['contrail-openstack'] if len(env.roledefs['openstack']) > 1 and get_openstack_internal_vip(): pkg.append('contrail-openstack-ha') if is_ceilometer_install_supported(): pkg += get_openstack_ceilometer_pkgs() pkg += get_ceilometer_plugin_pkgs() if detect_ostype() == 'ubuntu': with settings(warn_only=True): sudo("umount /var/lib/glance/images") sudo("sed -i '/.*glance.*/d' /etc/fstab") apt_uninstall(pkg) else: pkgs = get_pkg_list() yum_uninstall(pkgs) with cd('/etc/'): sudo('sudo rm -rf glance/ cinder/ openstack_dashboard/ keystone/ quantum/ nova/ haproxy/ keepalived/') with cd('/var/lib/'): sudo('sudo rm -rf nova quantum glance quantum keystone mysql haproxy') with cd('/var/run'): sudo('sudo rm -rf cinder glance quantum nova keystone') with cd('/var/log'): sudo('sudo rm -rf contrail/* nova quantum glance cinder ~/keystone-signing /tmp/keystone-signing /tmp/keystone-signing-nova')
def uninstall_openstack_node(*args): """Uninstalls openstack pkgs in one or list of nodes. USAGE:fab uninstall_openstack_node:[email protected],[email protected]""" for host_string in args: with settings(host_string=host_string): pkg = ['contrail-openstack'] if len(env.roledefs['openstack'] ) > 1 and get_openstack_internal_vip(): pkg.append('contrail-openstack-ha') if is_ceilometer_install_supported(): pkg += get_openstack_ceilometer_pkgs() pkg += get_ceilometer_plugin_pkgs() if detect_ostype() == 'ubuntu': with settings(warn_only=True): sudo("umount /var/lib/glance/images") sudo("sed -i '/.*glance.*/d' /etc/fstab") apt_uninstall(pkg) else: pkgs = get_pkg_list() yum_uninstall(pkgs) with cd('/etc/'): sudo( 'sudo rm -rf glance/ cinder/ openstack_dashboard/ keystone/ quantum/ nova/ haproxy/ keepalived/' ) with cd('/var/lib/'): sudo( 'sudo rm -rf nova quantum glance quantum keystone mysql haproxy' ) with cd('/var/run'): sudo('sudo rm -rf cinder glance quantum nova keystone') with cd('/var/log'): sudo( 'sudo rm -rf contrail/* nova quantum glance cinder ~/keystone-signing /tmp/keystone-signing /tmp/keystone-signing-nova' )
def upgrade_openstack_node(from_rel, pkg, *args): """Upgrades openstack pkgs in one or list of nodes. USAGE:fab upgrade_openstack_node:[email protected],[email protected]""" for host_string in args: with settings(host_string=host_string): pkg_contrail_ceilometer = None if env.roledefs["openstack"] and host_string == env.roledefs["openstack"][0]: if is_ceilometer_contrail_plugin_install_supported(): pkg_contrail_ceilometer = get_ceilometer_plugin_pkgs() execute("install_pkg_node", pkg, host_string) execute("create_install_repo_node", host_string) pkg_install(["contrail-setup"]) cmd = frame_vnc_openstack_cmd(host_string, "upgrade-vnc-openstack") openstack_pkgs = get_openstack_pkgs() if pkg_contrail_ceilometer: openstack_pkgs.extend(pkg_contrail_ceilometer) cmd += " -P %s" % " ".join(openstack_pkgs) cmd += " -F %s" % from_rel cmd += " -T %s" % get_release() sudo(cmd)
def upgrade_openstack_node(from_rel, pkg, *args): """Upgrades openstack pkgs in one or list of nodes. USAGE:fab upgrade_openstack_node:[email protected],[email protected]""" for host_string in args: with settings(host_string=host_string): pkg_contrail_ceilometer = None if env.roledefs['openstack'] and \ host_string == env.roledefs['openstack'][0]: if is_ceilometer_contrail_plugin_install_supported(): pkg_contrail_ceilometer = get_ceilometer_plugin_pkgs() execute('install_pkg_node', pkg, host_string) execute('create_install_repo_node', host_string) pkg_install(['contrail-setup']) cmd = frame_vnc_openstack_cmd(host_string, 'upgrade-vnc-openstack') openstack_pkgs = get_openstack_pkgs() if pkg_contrail_ceilometer: openstack_pkgs.extend(pkg_contrail_ceilometer) cmd += ' -P %s' % ' '.join(openstack_pkgs) cmd += ' -F %s' % from_rel cmd += ' -T %s' % get_release() sudo(cmd)