print "doview::", toks[1] print "\t paths::", paths if not Debug: vobj = Personis_base.View(Identifier=toks[1], component_list=paths) themodel.mkview(curcontext, vobj) paths = [] # name := ID # attribute := name '=' QUOTEDSTRING # path = [ '/' ] name [ '/' name ] # context := path ':' attribute [ ',' attribute ]* # component := name ':' attribute [ ',' attribute ]* # view := name ':' path [ ',' path ] name = Word(alphanums+"_") flaglist = Literal('[')+ quotedString.setParseAction(removeQuotes) + ZeroOrMore(Literal(',') + quotedString.setParseAction(removeQuotes)) + Literal(']') value = quotedString.setParseAction(removeQuotes) | flaglist keyval = name + Literal("=") + value keyval_list = keyval + ZeroOrMore(Literal(",") + keyval) evidence = Literal("[") + keyval_list + Literal("]") evidencelist = evidence + ZeroOrMore(Literal(",") + evidence) path = ZeroOrMore(Literal('/')) + name + ZeroOrMore(Literal('/') + name) context = Literal('@@') + path + Literal(':') + keyval_list component = Literal('--') + name + Literal(":") + keyval_list + Optional(Literal(',') + evidencelist) view = Literal('==') + name + Literal(":") + path + ZeroOrMore(Literal(",") + path) mdef = OneOrMore(context + ZeroOrMore(component) + ZeroOrMore(view)) + Literal('$$') name.setParseAction(doname) keyval.setParseAction(dokeyval) flaglist.setParseAction(doflaglist) keyval_list.setParseAction(dokeyval_list)
#print "donotify::", toks url = "".join(toks[1:]) import urllib print "Notify", url f = urllib.urlopen(url) print f.readlines() f.close() return component = Forward() componentval = Literal("<")+Optional(Word(alphas) + Literal('!'))+component+Literal(">") componentval.setParseAction(askval) componentname = Word(alphas) | componentval modelname = Literal('.') | componentname component << modelname + ZeroOrMore(Literal('/') + componentname) item = component | quotedString.setParseAction(removeQuotes) cronspec = Literal('[') + quotedString.setParseAction(removeQuotes) + Literal(']') patternmatch = item + Literal('~') + item patternmatch.setParseAction(domatch) tell = Literal('TELL') + item + Literal(',') + item + Literal(':') + item tell.setParseAction(dotell) tellchanged = Literal('TELLCHANGED') + item + Literal(',') + item + Literal(':') + item tellchanged.setParseAction(dotellchanged) notify = Literal('NOTIFY') + OneOrMore(item) notify.setParseAction(donotify) action = tell | notify | tellchanged subgrammar = Optional(cronspec) + patternmatch + Literal(':') + action user = None password = None statement = ""
print "\t paths::", paths if not Debug: vobj = Personis_base.View(Identifier=toks[1], component_list=paths) themodel.mkview(curcontext, vobj) paths = [] # name := ID # attribute := name '=' QUOTEDSTRING # path = [ '/' ] name [ '/' name ] # context := path ':' attribute [ ',' attribute ]* # component := name ':' attribute [ ',' attribute ]* # view := name ':' path [ ',' path ] name = Word(alphanums + "_") flaglist = Literal('[') + quotedString.setParseAction( removeQuotes) + ZeroOrMore( Literal(',') + quotedString.setParseAction(removeQuotes)) + Literal(']') value = quotedString.setParseAction(removeQuotes) | flaglist keyval = name + Literal("=") + value keyval_list = keyval + ZeroOrMore(Literal(",") + keyval) evidence = Literal("[") + keyval_list + Literal("]") evidencelist = evidence + ZeroOrMore(Literal(",") + evidence) path = ZeroOrMore(Literal('/')) + name + ZeroOrMore(Literal('/') + name) context = Literal('@@') + path + Literal(':') + keyval_list component = Literal('--') + name + Literal(":") + keyval_list + Optional( Literal(',') + evidencelist) view = Literal('==') + name + Literal(":") + path + ZeroOrMore( Literal(",") + path) mdef = OneOrMore(context + ZeroOrMore(component) + ZeroOrMore(view)) + Literal('$$')