from calculate.vars.datavars import Namespace, Variable, ChoiceVariable,\ ReadonlyVariable, ListVariable,\ HashVariable, TableVariable, ListVariable class Simple(Variable): def get(self): return "simple value" class Uselocalsimple(Variable): def get(self): return "Using %s" % self.vars.simple.get_value(self) class Usefullsimple(Variable): def get(self): return "Using %s" % self.vars.root.level.simple.get_value(self) class Badchoice(Variable): properties = [ChoiceVariable] class Disks(Variable): properties = [ListVariable] def get(self): return ["/dev/sda1", "/dev/sda2", "/dev/sda3"] def get_comment(self): mymap = {'/dev/sda1': 'SWAP', '/dev/sda2': 'ROOT', '/dev/sda3': 'DATA'} return [mymap.get(x) for x in self.get_value()] class SimpleChoice(Variable): properties = [ChoiceVariable] def choice(self): return self.vars.disks.get_value(self) class CommentChoice(Variable): properties = [ChoiceVariable] def choice_comment(self): return list(zip(self.vars.disks.get_value(), self.vars.disks.get_comment())) class Version(Variable): value = "1.0" class Myshortname(Variable): value = "CLD" class Linux(HashVariable): class Data(HashVariable.Data): def get(self): return { 'ver': self.vars.version.get_value(self), 'shortname': self.vars.myshortname.get_value(self) } class Test(Variable): def get(self): return "my test - %s" % self.vars.ver.get_value(self) readonly_vars = ['shortname'] hash_vars = ["ver", "shortname"] class ShortnameTest(Variable): def get(self): return "{} test".format(self.vars.linux.shortname.get_value(self)) class Devicelist(Variable): properties = [ListVariable] def get(self): return ["/dev/sda", "/dev/sdb"] class Device(TableVariable): class Data(TableVariable.Data): def get(self): mapData = {'/dev/sda': ["hdd", "Samsung SSD"], '/dev/sdb': ["flash", "Transcend 64GB"], '/dev/sdc': ["usbhdd", "WD 1TB"]} defaultValue = ["hdd", "Unknown"] return [ {"dev": x, "type": mapData.get(x, defaultValue)[0], "name": mapData.get(x, defaultValue)[1]} for x in self.vars.devicelist.get_value(self) ] hash_vars = ["dev", "type", "name"] readonly_vars = ["name"] class DeviceChild(Variable): def get(self): return self.vars.device[0].type.get_value(self) class Level3(Namespace): class MyVar1(Variable): def get(self): return "testing" class Myvar2(Variable): def get(self): return "testing2"