示例#1
0
    def add_slivers(xml, slivers):
        if not slivers:
            return
        if not isinstance(slivers, list):
            slivers = [slivers]

        for sliver in slivers:
            sliver_elem = xml.add_element('sliver_type')
            if sliver.get('type'):
                sliver_elem.set('name', sliver['type'])
            attrs = ['client_id', 'cpus', 'memory', 'storage']
            for attr in attrs:
                if sliver.get(attr):
                    sliver_elem.set(attr, sliver[attr])

            images = sliver.get('disk_image')
            if images and isinstance(images, list):
                PGv2DiskImage.add_images(sliver_elem, images)
            fw_rules = sliver.get('fw_rules')
            if fw_rules and isinstance(fw_rules, list):
                PLOSv1FWRule.add_rules(sliver_elem, fw_rules)
            Clabv1Sliver.add_sliver_attributes(sliver_elem,
                                               sliver.get('tags', []))

            # EXTENSION FOR CLab v1 RSpec
            sliver_parameters_elem = xml.add_element('{%s}sliver_parameters' %
                                                     xml.namespaces['clab'])
            # template
            template = sliver.get('template')
            if template:
                sliver_parameters_elem.add_element('{%s}template' %
                                                   xml.namespaces['clab'],
                                                   name=template['name'],
                                                   id=str(template['id']),
                                                   type=template['type'])
            # overlay
            overlay = sliver.get('overlay')
            if overlay:
                sliver_parameters_elem.add_element('{%s}overlay' %
                                                   xml.namespaces['clab'],
                                                   name=overlay['uri'],
                                                   uri=overlay['uri'])
            # interfaces
            #sliver_interfaces_elem = sliver_parameters_elem.add_element('{%s}sliver_interfaces'%xml.namespaces['clab'])
            interfaces = sliver.get('interfaces')
            if interfaces:
                for interface in interfaces:
                    sliver_parameters_elem.add_element(
                        '{%s}network_interface' % xml.namespaces['clab'],
                        name=interface['name'],
                        nr=str(interface['nr']),
                        type=interface['type'])
示例#2
0
 def add_slivers(xml, slivers):
     if not slivers:
         return 
     if not isinstance(slivers, list):
         slivers = [slivers]
     for sliver in slivers: 
         sliver_elem = xml.add_element('sliver_type')
         if sliver.get('type'):
             sliver_elem.set('name', sliver['type'])
         attrs = ['client_id', 'cpus', 'memory', 'storage']
         for attr in attrs:
             if sliver.get(attr):
                 sliver_elem.set(attr, sliver[attr])
         
         images = sliver.get('disk_image')
         if images and isinstance(images, list):
             PGv2DiskImage.add_images(sliver_elem, images)      
         fw_rules = sliver.get('fw_rules')
         if fw_rules and isinstance(fw_rules, list):
             PLOSv1FWRule.add_rules(sliver_elem, fw_rules)
         PGv2SliverType.add_sliver_attributes(sliver_elem, sliver.get('tags', []))
示例#3
0
 def add_slivers(xml, slivers):
     if not slivers:
         return 
     if not isinstance(slivers, list):
         slivers = [slivers]
         
     for sliver in slivers: 
         sliver_elem = xml.add_element('sliver_type')
         if sliver.get('type'):
             sliver_elem.set('name', sliver['type'])
         attrs = ['client_id', 'cpus', 'memory', 'storage']
         for attr in attrs:
             if sliver.get(attr):
                 sliver_elem.set(attr, sliver[attr])
         
         images = sliver.get('disk_image')
         if images and isinstance(images, list):
             PGv2DiskImage.add_images(sliver_elem, images)      
         fw_rules = sliver.get('fw_rules')
         if fw_rules and isinstance(fw_rules, list):
             PLOSv1FWRule.add_rules(sliver_elem, fw_rules)
         Clabv1Sliver.add_sliver_attributes(sliver_elem, sliver.get('tags', []))
         
         # EXTENSION FOR CLab v1 RSpec
         sliver_parameters_elem = xml.add_element('{%s}sliver_parameters'%xml.namespaces['clab'])
         # template
         template = sliver.get('template')
         if template:
             sliver_parameters_elem.add_element('{%s}template'%xml.namespaces['clab'], name=template['name'], id=str(template['id']), type=template['type'])
         # overlay
         overlay = sliver.get('overlay')
         if overlay:
             sliver_parameters_elem.add_element('{%s}overlay'%xml.namespaces['clab'], name=overlay['uri'], uri=overlay['uri'])
         # interfaces
         #sliver_interfaces_elem = sliver_parameters_elem.add_element('{%s}sliver_interfaces'%xml.namespaces['clab'])
         interfaces = sliver.get('interfaces')
         if interfaces:
             for interface in interfaces:
                 sliver_parameters_elem.add_element('{%s}network_interface'%xml.namespaces['clab'], name=interface['name'], nr=str(interface['nr']), type=interface['type'])
示例#4
0
    def add_slivers(xml, slivers):
        if not slivers:
            return
        if not isinstance(slivers, list):
            slivers = [slivers]
        for sliver in slivers:
            sliver_elem = xml.add_element('sliver_type')
            if sliver.get('type'):
                sliver_elem.set('name', sliver['type'])
            attrs = ['client_id', 'cpus', 'memory', 'storage']
            for attr in attrs:
                if sliver.get(attr):
                    sliver_elem.set(attr, sliver[attr])

            images = sliver.get('disk_image')
            if images and isinstance(images, list):
                PGv2DiskImage.add_images(sliver_elem, images)
            fw_rules = sliver.get('fw_rules')
            if fw_rules and isinstance(fw_rules, list):
                PLOSv1FWRule.add_rules(sliver_elem, fw_rules)
            PGv2SliverType.add_sliver_attributes(sliver_elem,
                                                 sliver.get('tags', []))