Changeset 69692a9 for fedd/federation/topdl.py
- Timestamp:
- Sep 21, 2009 6:48:12 PM (15 years ago)
- Branches:
- axis_example, compt_changes, info-ops, master, version-2.00, version-3.01, version-3.02
- Children:
- ae0f69a
- Parents:
- adcbdaf
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
fedd/federation/topdl.py
radcbdaf r69692a9 22 22 elif getattr(a, '__iter__', None): return a 23 23 else: return [ a ] 24 25 def remove_attribute(self, key): 26 to_del = None 27 attrs = getattr(self, 'attribute', []) 28 for i, a in enumerate(attrs): 29 if a.attribute == key: 30 to_del = i 31 break 32 33 if to_del: del attrs[i] 24 34 25 35 def get_attribute(self, key): … … 384 394 return e 385 395 386 def __init__(self, substrates=[], elements=[] ):396 def __init__(self, substrates=[], elements=[], attribute=[]): 387 397 self.substrates = [ self.init_class(Substrate, s) \ 388 398 for s in self.make_list(substrates) ] 389 399 self.elements = [ self.init_element(e) \ 390 400 for e in self.make_list(elements) ] 401 self.attribute = [ self.init_class(Attribute, c) \ 402 for c in self.make_list(attribute) ] 391 403 self.incorporate_elements() 392 404 … … 419 431 def clone(self): 420 432 return Topology(substrates=[s.clone() for s in self.substrates], 421 elements=[e.clone() for e in self.elements]) 433 elements=[e.clone() for e in self.elements], 434 attribute=[a.clone() for a in self.attribute]) 422 435 423 436 … … 432 445 if self.elements: 433 446 rv['elements'] = [ s.to_dict() for s in self.elements ] 447 if self.attribute: 448 rv['attribute'] = [ s.to_dict() for s in self.attribute] 434 449 return rv 435 450 … … 519 534 520 535 for k in e.keys(): 521 if isinstance(e[k], (basestring, int, float, long)):536 if isinstance(e[k], basestring): 522 537 rv += "<%s>%s</%s>" % (k, escape(e[k]), k) 538 elif isinstance(e[k], (int, float, long)): 539 rv += "<%s>%d</%s>" % (k, e[k], k) 523 540 elif isinstance(e[k], dict): 524 541 rv += "<%s>%s</%s>" % (k, dict_to_xml(e[k]), k) … … 530 547 rv += "<%s>%s</%s>" % (k, escape(ee), k) 531 548 else: 532 raise ConsistencyError("What is this?? %s %s" % (k, e[k])) 549 try: 550 rv += "<%s>%s</%s>" % (k, e[k], k) 551 except Exception: 552 raise ConsistencyError("What is this?? %s %s" % (k, e[k])) 533 553 if top: rv += "</%s>" % top 534 554 return rv … … 582 602 return t 583 603 584 def generate_portal_command_filter(cmd ):604 def generate_portal_command_filter(cmd, add_filter=None): 585 605 def rv(e): 586 606 s ="" 587 607 if isinstance(e, Computer): 588 608 gw = e.get_attribute('portal') 589 if gw: 609 if add_filter and callable(add_filter): 610 add = add_filter(e) 611 else: 612 add = True 613 if gw and add: 590 614 s = "%s $%s\n" % (cmd, to_tcl_name(e.name[0])) 591 615 return s
Note: See TracChangeset
for help on using the changeset viewer.