def selected_terminate(self): # terminate = raw_input( "Would you like to terminate running instances now? (Y/N)\n" ) terminate = True if terminate: for cloud in self.list: cloud.connect() # terminate_all = raw_input( "Terminate all running instances? (Y/N)\n" ) terminate_all = True if terminate_all: for cloud in self.list: if cloud.conn != None: for reservation in cloud.conn.get_all_instances(): for instance in reservation.instances: instance.terminate() LOG.info("Terminated instance: %s" % (instance.id)) else: for cloud in self.list: if cloud.conn != None: for reservation in cloud.conn.get_all_instances(): for instance in reservation.instances: printfile( self.config.node_log, "Log entries for instance %s:" % instance.id, instance.id ) terminate_instance = raw_input('Terminate instance "%s"? (Y/N)\n' % (instance.id)) if is_yes(terminate_instance): instance.terminate() LOG.info("Terminated instance: %s" % (instance.id)) else: LOG.info('Instance "%s" is left running' % (instance.id)) for cloud in self.list: cloud.conn = None
def __init__(self, config, clouds): self.config = config self.cloud = clouds.lookup_by_name(config.master.cloud) if self.cloud == None: LOG.error('Can\'t find a cloud "%s" specified for the master node' % (config.master.cloud)) sys.exit(1) decision_made = False create = True while decision_made == False: # input = raw_input( "Create a new master node or reuse existing? (C/R)\n" ) input = "Create" if input == "C" or input == "c" or input == "Create" or input == "create": create = True decision_made = True elif input == "R" or input == "r" or input == "Reuse" or input == "reuse": create = False decision_made = True else: print("Invalid input. Please try again.\n") if create: LOG.info("Master node is going to be created in the cloud: %s" % (config.master.cloud)) self.reservation = self.cloud.boot_image(config.master.image_id, count=1, type=config.master.instance_type) self.sleep_until_master_ready() self.determine_dns() filelog( self.config.node_log, "CREATED MASTER cloud: %s, instance: %s, dns: %s" % (self.cloud.name, self.instance_id, self.dns), ) else: # Reusing existing master node LOG.info( 'One of the existing instances in cloud "%s" is going to be reused as a master node' % (self.cloud.name) ) self.cloud.connect() master_selected = False while master_selected == False: for reservation in self.cloud.conn.get_all_instances(): instances = reservation.instances if len(instances) != 1: LOG.info('Skipping reservation "%s" since it has more than one instance' % (reservation.id)) continue instance = instances[0] printfile(self.config.node_log, "Log entries for instance %s:" % instance.id, instance.id) select_instance = raw_input( 'Select instance "%s" of reservation "%s" in cloud "%s" as a master node? (Y/N)\n' % (instance.id, reservation.id, self.cloud.name) ) if is_yes(select_instance): LOG.info( "Master node has been selected. Instance: %s, Reservation: %s, Cloud: %s" % (instance.id, reservation.id, self.cloud.name) ) master_selected = True self.reservation = reservation self.determine_dns() filelog( self.config.node_log, "REUSED MASTER cloud: %s, reservation: %s, instance: %s, dns: %s" % (self.cloud.name, self.reservation.id, self.instance_id, self.dns), ) break if master_selected == False: print("Master node has not been selected. Looping through the list of existing reservations again.")