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)
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
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
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)