1 from sfa.rspecs.elements.element import Element
2 from sfa.rspecs.elements.execute import Execute
3 from sfa.rspecs.elements.install import Install
4 from sfa.rspecs.elements.login import Login
8 def add_services(xml, services):
11 for service in services:
12 service_elem = xml.add_element('services')
13 child_elements = {'install': Install.fields,
14 'execute': Execute.fields,
15 'login': Login.fields}
16 for (name, fields) in child_elements.items():
17 child = service.get(name)
20 if isinstance(child, dict):
21 service_elem.add_instance(name, child, fields)
22 elif isinstance(child, list):
24 service_elem.add_instance(name, obj, fields)
27 def get_services(xml):
29 for services_elem in xml.xpath('./default:services | ./services'):
30 service = Services(services_elem.attrib, services_elem)
32 install_elems = xml.xpath('./default:install | ./install')
33 service['install'] = [install_elem.get_instance(Install) for install_elem in install_elems]
35 execute_elems = xml.xpath('./default:execute | ./execute')
36 service['execute'] = [execute_elem.get_instance(Execute) for execute_elem in execute_elems]
38 login_elems = xml.xpath('./default:login | ./login')
39 service['login'] = [login_elem.get_instance(Login) for login_elem in login_elems]
40 services.append(service)