def generate_environment_json(admin_host_ipaddr, available_hosts, use_bogus_hosts=False): log.info("Deploying SSH keys") tsclient.deploy_ssh_key(admin_host_ipaddr) tsclient.fetch_admin_node_ssh_key(admin_host_ipaddr) available_hosts2 = [] machine_id = tsclient.fetch_machine_id(admin_host_ipaddr, admin_host_ipaddr) available_hosts2.append(("admin", admin_host_ipaddr, "bogus_mac", admin_host_ipaddr, machine_id)) log.info("Fetching machine IDs") for servername, serial, macaddr, ipaddr in available_hosts: log.info("Attempting to fetch {} {} machine ID".format(servername, ipaddr)) while True: try: machine_id = tsclient.fetch_machine_id(admin_host_ipaddr, ipaddr) available_hosts2.append((servername, serial, macaddr, ipaddr, machine_id)) break except APIError as e: # 'port 22: No route to host' # 'port 22: Connection refused' if 'Connection timed out' not in str(e): log.info("The host is not ready yet: %s" % str(e)) sleep(10) log.info("Fetching done") if use_bogus_hosts: log.info("Adding bogus hosts to environment.json to run Velum setup") available_hosts2.append(('bogus', 'bogus', 'bogus', '8.8.8.8', 'bogus')) create_environment_json(admin_host_ipaddr, available_hosts2)
def generate_environment_json(admin_host_ipaddr, available_hosts, use_bogus_hosts=False): log.info("Deploying SSH keys") tsclient.deploy_ssh_key(admin_host_ipaddr) tsclient.fetch_admin_node_ssh_key(admin_host_ipaddr) available_hosts2 = [] machine_id = tsclient.fetch_machine_id(admin_host_ipaddr, admin_host_ipaddr) available_hosts2.append(("admin", admin_host_ipaddr, "bogus_mac", admin_host_ipaddr, machine_id)) log.info("Fetching machine IDs") for servername, serial, macaddr, ipaddr in available_hosts: log.info("Attempting to fetch {} {} machine ID".format( servername, ipaddr)) while True: msg = "" try: machine_id = tsclient.fetch_machine_id(admin_host_ipaddr, ipaddr) available_hosts2.append( (servername, serial, macaddr, ipaddr, machine_id)) break except APIError as e: # log out message only when it changes if str(e) != msg: msg = str(e) log.info("The host is not ready yet: {}".format(msg)) sleep(10) log.info("Fetching done") if use_bogus_hosts: log.info("Adding bogus hosts to environment.json to run Velum setup") available_hosts2.append( ('bogus', 'bogus', 'bogus', '8.8.8.8', 'bogus')) create_environment_json(admin_host_ipaddr, available_hosts2)
def generate_environment_json(admin_host_ipaddr, available_hosts, use_bogus_hosts=False): log.info("Deploying SSH keys") tsclient.deploy_ssh_key(admin_host_ipaddr) tsclient.fetch_admin_node_ssh_key(admin_host_ipaddr) available_hosts2 = [] machine_id = tsclient.fetch_machine_id(admin_host_ipaddr, admin_host_ipaddr) available_hosts2.append(("admin", admin_host_ipaddr, "bogus_mac", admin_host_ipaddr, machine_id)) log.info("Fetching machine IDs") for servername, serial, macaddr, ipaddr in available_hosts: log.info("Attempting to fetch {} {} machine ID".format(servername, ipaddr)) while True: msg = "" try: machine_id = tsclient.fetch_machine_id(admin_host_ipaddr, ipaddr) available_hosts2.append((servername, serial, macaddr, ipaddr, machine_id)) break except APIError as e: # log out message only when it changes if str(e) != msg: msg = str(e) log.info("The host is not ready yet: {}".format(msg)) sleep(10) log.info("Fetching done") if use_bogus_hosts: log.info("Adding bogus hosts to environment.json to run Velum setup") available_hosts2.append(('bogus', 'bogus', 'bogus', '8.8.8.8', 'bogus')) create_environment_json(admin_host_ipaddr, available_hosts2)