Example #1
0
File: bosi.py Project: xinwu/bosi-1
def worker_upgrade_node(q):
    while True:
        node = q.get()
        # copy ivs pkg to node
        Helper.copy_pkg_scripts_to_remote(node)

        # deploy node
        safe_print("Start to deploy %(fqdn)s\n" %
                   {'fqdn': node.fqdn})

        start_time = datetime.datetime.now()
        Helper.run_command_on_remote(node,
            (r'''sudo bash %(dst_dir)s/%(hostname)s_upgrade.sh''' %
            {'dst_dir': node.dst_dir,
             'hostname': node.hostname,
             'log': node.log}))
        end_time = datetime.datetime.now()

        # parse setup log
        diff = Helper.timedelta_total_seconds(end_time - start_time)
        node.set_time_diff(diff)
        node = Helper.update_last_log(node)
        node_dict[node.fqdn] = node
        time_dict[node.fqdn] = diff

        safe_print("Finish upgrading %(fqdn)s, cost time: %(diff).2f\n" %
                   {'fqdn': node.fqdn, 'diff': node.time_diff})
        q.task_done()
Example #2
0
def worker_setup_node():
    while True:
        node = node_q.get()
        # copy ivs pkg to node
        Helper.copy_pkg_scripts_to_remote(node)

        # deploy node
        Helper.safe_print("Start to deploy %(hostname)s\n" %
                          {'hostname': node.hostname})
        if node.role == const.ROLE_NEUTRON_SERVER:
            Helper.run_command_on_remote(node, (
                r'''/bin/bash %(dst_dir)s/%(hostname)s_ospurge.sh >> %(log)s 2>&1'''
                % {
                    'dst_dir': node.dst_dir,
                    'hostname': node.hostname,
                    'log': node.log
                }))
        Helper.run_command_on_remote(
            node,
            (r'''/bin/bash %(dst_dir)s/%(hostname)s.sh >> %(log)s 2>&1''' % {
                'dst_dir': node.dst_dir,
                'hostname': node.hostname,
                'log': node.log
            }))
        Helper.safe_print("Finish deploying %(hostname)s\n" %
                          {'hostname': node.hostname})
        node_q.task_done()
Example #3
0
def worker_setup_dhcp_agent():
    while True:
        node = dhcp_node_q.get()
        Helper.safe_print("Copy dhcp_agent.ini to %(hostname)s\n" %
                         {'hostname' : node.hostname})
        Helper.copy_file_to_remote(node, r'''%(dir)s/dhcp_agent.ini''' % {'dir' : node.setup_node_dir},
                                   '/etc/neutron', 'dhcp_agent.ini')
        Helper.safe_print("Copy metadata_agent.ini to %(hostname)s\n" %
                         {'hostname' : node.hostname})
        Helper.copy_file_to_remote(node, r'''%(dir)s/metadata_agent.ini''' % {'dir': node.setup_node_dir},
                                   '/etc/neutron', 'metadata_agent.ini')
        Helper.safe_print("Restart neutron-metadata-agent and neutron-dhcp-agent on %(hostname)s\n" %
                         {'hostname' : node.hostname})
        Helper.run_command_on_remote(node, 'service neutron-metadata-agent restart')
        Helper.run_command_on_remote(node, 'service neutron-dhcp-agent restart')
        Helper.safe_print("Finish deploying dhcp agent and metadata agent on %(hostname)s\n" %
                         {'hostname' : node.hostname})
        dhcp_node_q.task_done()
Example #4
0
def worker_setup_node(q):
    while True:
        node = q.get()
        # copy ivs pkg to node
        Helper.copy_pkg_scripts_to_remote(node)

        # deploy node
        safe_print("Start to deploy %(fqdn)s\n" % {'fqdn': node.fqdn})
        if node.cleanup and node.role == const.ROLE_NEUTRON_SERVER:
            Helper.run_command_on_remote(
                node, (r'''sudo bash %(dst_dir)s/%(hostname)s_ospurge.sh''' % {
                    'dst_dir': node.dst_dir,
                    'hostname': node.hostname,
                    'log': node.log
                }))

        # a random delay to smooth apt-get/yum
        delay = random.random() * 10.0
        time.sleep(delay)

        start_time = datetime.datetime.now()
        Helper.run_command_on_remote(
            node, (r'''sudo bash %(dst_dir)s/%(hostname)s.sh''' % {
                'dst_dir': node.dst_dir,
                'hostname': node.hostname,
                'log': node.log
            }))
        end_time = datetime.datetime.now()

        # parse setup log
        diff = Helper.timedelta_total_seconds(end_time - start_time)
        node.set_time_diff(diff)
        node = Helper.update_last_log(node)
        node_dict[node.fqdn] = node
        time_dict[node.fqdn] = diff

        # when deploying T5 on UBUNTU, reboot compute nodes
        Helper.reboot_if_necessary(node)

        safe_print("Finish deploying %(fqdn)s, cost time: %(diff).2f\n" % {
            'fqdn': node.fqdn,
            'diff': node.time_diff
        })
        q.task_done()
Example #5
0
File: bosi.py Project: xinwu/bosi-1
def worker_setup_node(q):
    while True:
        node = q.get()
        # copy ivs pkg to node
        Helper.copy_pkg_scripts_to_remote(node)

        # deploy node
        safe_print("Start to deploy %(fqdn)s\n" %
                   {'fqdn': node.fqdn})
        if node.cleanup and node.role == const.ROLE_NEUTRON_SERVER:
            Helper.run_command_on_remote(node,
                (r'''sudo bash %(dst_dir)s/%(hostname)s_ospurge.sh''' %
                {'dst_dir': node.dst_dir,
                 'hostname': node.hostname,
                 'log': node.log}))

        # a random delay to smooth apt-get/yum
        delay = random.random() * 10.0
        time.sleep(delay)

        start_time = datetime.datetime.now()
        Helper.run_command_on_remote(node,
            (r'''sudo bash %(dst_dir)s/%(hostname)s.sh''' %
            {'dst_dir': node.dst_dir,
             'hostname': node.hostname,
             'log': node.log}))
        end_time = datetime.datetime.now()

        # parse setup log
        diff = Helper.timedelta_total_seconds(end_time - start_time)
        node.set_time_diff(diff)
        node = Helper.update_last_log(node)
        node_dict[node.fqdn] = node
        time_dict[node.fqdn] = diff

        # when deploying T5 on UBUNTU, reboot compute nodes
        Helper.reboot_if_necessary(node)

        safe_print("Finish deploying %(fqdn)s, cost time: %(diff).2f\n" %
                   {'fqdn': node.fqdn, 'diff': node.time_diff})
        q.task_done()
Example #6
0
def worker_upgrade_or_sriov_node(q):
    while True:
        node = q.get()
        # copy ivs pkg to node
        Helper.copy_pkg_scripts_to_remote(node)

        # deploy node
        safe_print("Start to deploy %(fqdn)s\n" % {'fqdn': node.fqdn})

        start_time = datetime.datetime.now()
        if node.role == const.ROLE_SRIOV:
            Helper.run_command_on_remote(
                node, (r'''sudo bash %(dst_dir)s/%(hostname)s_sriov.sh''' % {
                    'dst_dir': node.dst_dir,
                    'hostname': node.hostname,
                    'log': node.log
                }))
        else:
            Helper.run_command_on_remote(
                node, (r'''sudo bash %(dst_dir)s/%(hostname)s_upgrade.sh''' % {
                    'dst_dir': node.dst_dir,
                    'hostname': node.hostname,
                    'log': node.log
                }))
        end_time = datetime.datetime.now()

        # parse setup log
        diff = Helper.timedelta_total_seconds(end_time - start_time)
        node.set_time_diff(diff)
        node = Helper.update_last_log(node)
        node_dict[node.fqdn] = node
        time_dict[node.fqdn] = diff

        safe_print("Finish executing script for node %(fqdn)s, "
                   "cost time: %(diff).2f\n" % {
                       'fqdn': node.fqdn,
                       'diff': node.time_diff
                   })
        q.task_done()
Example #7
0
def worker_setup_node():
    while True:
        node = node_q.get()
        # copy ivs pkg to node
        Helper.copy_pkg_scripts_to_remote(node)

        # deploy node
        Helper.safe_print("Start to deploy %(hostname)s\n" %
                         {'hostname' : node.hostname})
        if node.role == const.ROLE_NEUTRON_SERVER:
            Helper.run_command_on_remote(node,
                (r'''/bin/bash %(dst_dir)s/%(hostname)s_ospurge.sh >> %(log)s 2>&1''' %
                {'dst_dir'  : node.dst_dir,
                 'hostname' : node.hostname,
                 'log'      : node.log}))
        Helper.run_command_on_remote(node,
            (r'''/bin/bash %(dst_dir)s/%(hostname)s.sh >> %(log)s 2>&1''' %
            {'dst_dir'  : node.dst_dir,
             'hostname' : node.hostname,
             'log'      : node.log}))
        Helper.safe_print("Finish deploying %(hostname)s\n" %
                         {'hostname' : node.hostname})
        node_q.task_done()