from sfa.rspecs.elements.element import Element
class BWlimit(Element):
- fields = {
- 'units': None,
- 'value': None,
- }
+ fields = [
+ 'units',
+ 'value',
+ ]
def __init__(self, fields={}, element=None, keys=None):
self.element = element
- dict.__init__(self, self.fields)
+ dict.__init__(self, dict.fromkeys(self.fields))
if not keys:
keys = fields.keys()
for key in keys:
from sfa.rspecs.elements.element import Element
class Execute(Element):
- fields = {
- 'shell': None,
- 'command': None,
- }
+ fields = [
+ 'shell',
+ 'command',
+ ]
class HardwareType(Element):
- fields = {
- 'name': None,
- }
+ fields = [
+ 'name'
+ ]
from sfa.rspecs.elements.element import Element
class Install(Element):
- fields = {
- 'file_type': None,
- 'url': None,
- 'install_path': None,
- }
+ fields = [
+ 'file_type',
+ 'url',
+ 'install_path',
+ ]
from sfa.rspecs.elements.element import Element
class Interface(Element):
- fields = {'component_id': None,
- 'role': None,
- 'client_id': None,
- 'ipv4': None,
- 'bwlimit': None,
- 'node_id': None,
- 'interface_id': None,
- 'mac_address': None,
- }
+ fields = ['component_id',
+ 'role',
+ 'client_id',
+ 'ipv4',
+ 'bwlimit',
+ 'node_id',
+ 'interface_id',
+ 'mac_address',
+ ]
from sfa.rspecs.elements.element import Element
class Link(Element):
- fields = {
- 'client_id': None,
- 'component_id': None,
- 'component_name': None,
- 'component_manager': None,
- 'type': None,
- 'interface1': None,
- 'interface2': None,
- 'capacity': None,
- 'latency': None,
- 'packet_loss': None,
- 'description': None,
- }
+ fields = [
+ 'client_id',
+ 'component_id',
+ 'component_name',
+ 'component_manager',
+ 'type',
+ 'interface1',
+ 'interface2',
+ 'capacity',
+ 'latency',
+ 'packet_loss',
+ 'description',
+ ]
class Location(Element):
- fields = {
- 'country': None,
- 'longitude': None,
- 'latitude': None,
- }
+ fields = [
+ 'country',
+ 'longitude',
+ 'latitude',
+ ]
from sfa.rspecs.elements.element import Element
class Login(Element):
- fields = {
- 'authentication': None,
- 'hostname': None,
- 'port': None
- }
+ fields = [
+ 'authentication',
+ 'hostname',
+ 'port'
+ ]
class Node(Element):
- fields = {
- 'component_id': None,
- 'component_name': None,
- 'component_manager_id': None,
- 'client_id': None,
- 'sliver_id': None,
- 'authority_id': None,
- 'exclusive': None,
- 'location': None,
- 'bw_unallocated': None,
- 'bw_limit': None,
- 'boot_state': None,
- 'slivers': [],
- 'hardware_types': [],
- 'disk_images': [],
- 'interfaces': [],
- 'services': [],
- 'tags': [],
- 'pl_initscripts': [],
- }
+ fields = [
+ 'component_id',
+ 'component_name',
+ 'component_manager_id',
+ 'client_id',
+ 'sliver_id',
+ 'authority_id',
+ 'exclusive',
+ 'location',
+ 'bw_unallocated',
+ 'bw_limit',
+ 'boot_state',
+ 'slivers',
+ 'hardware_types',
+ 'disk_images',
+ 'interfaces',
+ 'services',
+ 'tags',
+ 'pl_initscripts',
+ ]
class PLTag(Element):
- fields = {
- 'tagname': None,
- 'value': None,
- }
+ fields = [
+ 'tagname',
+ 'value',
+ ]
class Property(Element):
- fields = {
- 'source_id': None,
- 'dest_id': None,
- 'capacity': None,
- 'latency': None,
- 'packet_loss': None,
- }
+ fields = [
+ 'source_id',
+ 'dest_id',
+ 'capacity',
+ 'latency',
+ 'packet_loss',
+ ]
class Services(Element):
- fields = {
- 'install': [],
- 'execute': [],
- 'login': [],
- }
+ fields = [
+ 'install',
+ 'execute',
+ 'login',
+ ]
from sfa.rspecs.elements.element import Element
class Sliver(Element):
- fields = {
- 'sliver_id': None,
- 'component_id': None,
- 'client_id': None,
- 'name': None,
- 'type': None,
- 'tags': [],
- }
+ fields = [
+ 'sliver_id',
+ 'component_id',
+ 'client_id',
+ 'name',
+ 'type',
+ 'tags',
+ ]
@staticmethod
def add_services(xml, services):
for service in services:
- service_elem = xml.add_element('service')
+ service_elem = xml.add_element('services')
Element.add_elements(service_elem, 'install', service.get('install', []), Install.fields)
Element.add_elements(service_elem, 'execute', service.get('execute', []), Execute.fields)
Element.add_elements(service_elem, 'login', service.get('login', []), Login.fields)