Beispiel #1
0
    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
Beispiel #2
0
                    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