def command_12_openstackList(self, user, message, args): """([Oo]s)\s+(list|show|boot|kill|addfloat)( +(.*))?$(?i)""" action = args[1] target = None try: print "args" print args if args[2] != None: target = args[2] target = target.lstrip() else: target = "all" except: pass if action == "list": try: if not target: self.replyMessage(user, "You need to load a site first.") else: self.replyMessage(user, "Checking for a openstack type in loaded hosts...") for host in self.devload.hosts: print "oslist: is this an openstack server?:" if host[3] != "openstack": continue if not target: self.replyMessage(user, "List what? servers, flavors, or images") self.replyMessage(user, "Performing cmd " + target + " on " + host[0]) if target == "servers": data = openstack().list_servers() dd2r = range(len(data["servers"])) reply = "" for n in dd2r: reply += "Server ID\n" reply += "\t" + str(data["servers"][n]["id"]) + "\n" reply += "Server Name\n" reply += "\t" + data["servers"][n]["name"] + "\n" ips = openstack().show_server_ips(str(data["servers"][n]["id"])) for net in ips["addresses"]: print "net is %s" % net print ips["addresses"][net] for i in ips["addresses"][net]: reply += "\t" + net + ": " + i["addr"] + "\n" # print ips reply += "===============\n" self.replyMessage(user, reply) elif target == "images": self.replyMessage(user, "I dont know what xx" + target + "xx is.") data = openstack().list_images() dd3r = range(len(data["images"])) reply = "" for n in dd3r: reply += "Image ID\n" reply += "\t" + str(data["images"][n]["id"]) + "\n" reply += "Image Name\n" reply += "\t" + data["images"][n]["name"] + "\n" reply += "===============\n" self.replyMessage(user, reply) elif target == "flavors": data = openstack().list_flavors() dd3r = range(len(data["flavors"])) reply = "" for n in dd3r: reply += "Flavors ID\n" reply += "\t" + str(data["flavors"][n]["id"]) + "\n" reply += "Flavor Name\n" reply += "\t" + data["flavors"][n]["name"] + "\n" reply += "===============\n" self.replyMessage(user, reply) # print "and the survey says..." # print data # if data: # reply="" # for line in data: # reply += "%s\n" % line # # self.replyMessage(user, reply) except Exception, e: for i in e: msg = "Exception: %s" % e self.replyMessage(user, msg) pass
msg = "Exception: %s" % e self.replyMessage(user, msg) pass elif action == "boot": try: if not target: self.replyMessage(user, "You need to give a server name.") else: for host in self.devload.hosts: print "oslist: is this an openstack server?:" host if host[3] != "openstack": continue self.replyMessage(user, "Starting m1.tiny " + target + " on " + host[0]) data = openstack().server_boot(target) print "results of server start:" print data dd2r = range(len(data["server"])) reply = "\n===============\n" reply += "Server ID\n" reply += "\t" + str(data["server"]["id"]) + "\n" reply += "Server Security Groups\n" for sec in data["server"]["security_groups"]: print data["server"]["security_groups"] print sec reply += "\t" + sec["name"] + "\n" reply += "Admin Pass\n" reply += "\t" + str(data["server"]["adminPass"]) + "\n" # print ips