Ejemplo n.º 1
0
def create(desc, output, args):

    vms = desc["VNF"]["vm"]
    prefix = desc["VNF"]["name"]

    for vm in vms:
        name = vm + "-" + prefix
        fmt = text.getItem(desc["vm " + vm]["image"], 0)
        image = text.getItem(desc["vm " + vm]["image"], 1)

        if search(name) != -1:
            app.exists("Image " + name)
            continue

        if not os.path.isfile(image):
            app.warn("Image " + image + " does not exist")
            continue

        params = ["--name", name, "--container-format", "bare", "--file", image]
        params = params + ["--disk-format", fmt]

        if proc.execProcess("glance", "image-create", params, output, args):
            app.failed("Creating image " + name)
        else:
            app.passed("Creating image " + name)
Ejemplo n.º 2
0
def create (desc, output, args):

        vms = desc["VNF"]["vm"]
        prefix = desc["VNF"]["name"]

        for vm in vms:
                name = vm + "-" + prefix

                hosts = []
                if  desc["vm "+vm]["host"]!="":
                        hosts = text.getList(desc["vm "+vm]["host"])

                disk = []
                if desc["vm "+vm]["disk"] != "":
                        disk = text.getList(desc["vm "+vm]["disk"])

                j = 0
                for h in hosts:
                        j = j + 1
                        i = 0
                        params = []

                        for d in disk:
                                size = text.getItem(d, 0)
                                disk_name = text.getItem(d, 1)

                                i = i + 1
                                vname = name +"-no"+str(j)+"-node"+h
                                dname = vname+"-disk"+str(i)+"-"+size+"GB-"+disk_name

                                if search (dname) != -1:
                                        app.exists ("Volume "+dname)
                                        continue

                                params = [str(size), "--display-name="+ dname]

				if (proc.execProcess ("cinder", "create", params, output, args)):
                                        app.failed ("Creating volume " + dname)
                                else:
                                        app.passed ("Creating volume " + dname)


                                status = "creating"

                                while status!="available":
                                        time.sleep(1)
                                        buf = proc.readProcess ("cinder", "show", dname)

                                        for line in buf.readlines():
                                                if line.find("status")!=-1:
                                                        if text.getField(line, 1) == "status":
                                                                status = text.getField(line,2 )
                                                                break

                                        if status == "error":
                                                return -1

        return 1
Ejemplo n.º 3
0
def delete (desc, output, args):

        vms = desc["VNF"]["vm"]
        prefix = desc["VNF"]["name"]

        for vm in vms:
                name = vm + "-" + prefix

		hosts = []
                if  desc["vm "+vm]["host"]!="":
                        hosts = text.getList(desc["vm "+vm]["host"])

		disk = []
                if desc["vm "+vm]["disk"] != "":
                        disk = text.getList(desc["vm "+vm]["disk"])

                j = 0
                for h in hosts:
                        j = j + 1
                        i = 0

                        for d in disk:
                                size = text.getItem(d, 0)
                                disk_name = text.getItem (d, 1)

                                i = i + 1
                                vname = name +"-no" + str(j) + "-node"+h
                                dname = vname+"-disk" + str(i) + "-"+size+"GB-"+disk_name

                                if search (dname) == -1:
                                        app.notfound ("Volume "+dname)
                                        continue

				if (proc.execProcess ("cinder", "delete", [dname], output, args)):
                                        app.failed ("Deleting volume " + dname)
                                else:
                                        app.passed ("Deleting volume " + dname)

        return 1
Ejemplo n.º 4
0
def create (desc, output, args):

        network = desc["VNF"]["network"]
        prefix = desc["VNF"]["name"]

        for n in network:
                name = n + "-" + prefix
                subnet = desc["network "+n]["subnet"]
                start = desc["network "+n]["start"]
                end = desc["network "+n]["end"]
                dhcp = desc["network "+n]["dhcp"]
                gateway = desc["network "+n]["gateway"]
                nameserver = desc["network "+n]["nameserver"]
                route = desc["network "+n]["route"]

                if search (name) != -1:
                        app.exists ("Subnet " + name)
                        continue

                params = [name, subnet,"--name",name]

                if start != "" and end != "":
                        params = params + ["--allocation-pool","start=" + start + ",end="+ end]

                if gateway != "":
                        params = params + ["--gateway="+gateway]

                if dhcp == "false":
                        params = params + ["--disable-dhcp"]

                if nameserver != "":
                        params = params + ["--dns_nameservers","list=true"]
                        for ns in text.getList(nameserver):
                                params = params + [ns]

                if route != "":
                        params = params + ["--host_routes","type=dict","list=true"]
                        for r in text.getList(route):
                                dest = getitem (r, 0)
                                next_hop = text.getItem (r, 1)
                                params = params + ["destination="+dest+",nexthop="+next_hop]

		if (proc.execProcess("neutron", "subnet-create", params, output, args)):
                        app.failed ("Creating subnet "+name)
                else:
                        app.passed ("Creating subnet " + name)