Пример #1
0
 def construct(self):
     root = xmlutil.TemplateElement('servers')
     elem = xmlutil.SubTemplateElement(root, 'server', selector='servers')
     elem.set('{%s}config_drive' % ConfigDrive.namespace, ATTRIBUTE_NAME)
     return xmlutil.SlaveTemplate(
         root, 1, nsmap={ConfigDrive.alias: ConfigDrive.namespace})
Пример #2
0
    def test__serialize(self):
        # Our test object to serialize
        obj = {
            'test': {
                'name': 'foobar',
                'values': [1, 2, 3, 4],
                'attrs': {
                    'a': 1,
                    'b': 2,
                    'c': 3,
                    'd': 4,
                },
                'image': {
                    'name': 'image_foobar',
                    'id': 42,
                },
            },
        }

        # Set up our master template
        root = xmlutil.TemplateElement('test', selector='test', name='name')
        value = xmlutil.SubTemplateElement(root, 'value', selector='values')
        value.text = xmlutil.Selector()
        attrs = xmlutil.SubTemplateElement(root, 'attrs', selector='attrs')
        xmlutil.SubTemplateElement(attrs,
                                   'attr',
                                   selector=xmlutil.get_items,
                                   key=0,
                                   value=1)
        master = xmlutil.MasterTemplate(root, 1, nsmap=dict(f='foo'))

        # Set up our slave template
        root_slave = xmlutil.TemplateElement('test', selector='test')
        image = xmlutil.SubTemplateElement(root_slave,
                                           'image',
                                           selector='image',
                                           id='id')
        image.text = xmlutil.Selector('name')
        slave = xmlutil.SlaveTemplate(root_slave, 1, nsmap=dict(b='bar'))

        # Attach the slave to the master...
        master.attach(slave)

        # Try serializing our object
        siblings = master._siblings()
        nsmap = master._nsmap()
        result = master._serialize(None, obj, siblings, nsmap)

        # Now we get to manually walk the element tree...
        self.assertEqual(result.tag, 'test')
        self.assertEqual(len(result.nsmap), 2)
        self.assertEqual(result.nsmap['f'], 'foo')
        self.assertEqual(result.nsmap['b'], 'bar')
        self.assertEqual(result.get('name'), obj['test']['name'])
        for idx, val in enumerate(obj['test']['values']):
            self.assertEqual(result[idx].tag, 'value')
            self.assertEqual(result[idx].text, str(val))
        idx += 1
        self.assertEqual(result[idx].tag, 'attrs')
        for attr in result[idx]:
            self.assertEqual(attr.tag, 'attr')
            self.assertEqual(attr.get('value'),
                             str(obj['test']['attrs'][attr.get('key')]))
        idx += 1
        self.assertEqual(result[idx].tag, 'image')
        self.assertEqual(result[idx].get('id'),
                         str(obj['test']['image']['id']))
        self.assertEqual(result[idx].text, obj['test']['image']['name'])
Пример #3
0
 def construct(self):
     root = xmlutil.TemplateElement('flavor', selector='flavor')
     make_flavor(root)
     alias = Flavor_access.alias
     namespace = Flavor_access.namespace
     return xmlutil.SlaveTemplate(root, 1, nsmap={alias: namespace})
Пример #4
0
 def construct(self):
     root = xmlutil.TemplateElement('servers')
     elem = xmlutil.SubTemplateElement(root, 'server', selector='servers')
     make_server(elem)
     return xmlutil.SlaveTemplate(root, 1)
Пример #5
0
 def construct(self):
     root = xmlutil.TemplateElement('flavors')
     elem = xmlutil.SubTemplateElement(root, 'flavor', selector='flavors')
     make_flavor(elem)
     return xmlutil.SlaveTemplate(root, 1)
Пример #6
0
 def construct(self):
     root = xmlutil.TemplateElement('servers')
     elem = xmlutil.SubTemplateElement(root, 'server', selector='servers')
     elem.set('numaOpts', 'numaOpts')
     elem.set('evsOpts', 'evsOpts')
     return xmlutil.SlaveTemplate(root, 1)
Пример #7
0
 def construct(self):
     root = xmlutil.TemplateElement('hypervisor', selector='hypervisor')
     make_hypervisor(root)
     return xmlutil.SlaveTemplate(root, 1, nsmap={Pci.alias: Pci.namespace})
Пример #8
0
 def construct(self):
     root = xmlutil.TemplateElement('server')
     root.set('key_name', 'key_name')
     return xmlutil.SlaveTemplate(root, 1)
Пример #9
0
 def construct(self):
     root = xmlutil.TemplateElement('servers')
     elem = xmlutil.SubTemplateElement(root, 'server', selector='servers')
     elem.set('{%s}diskConfig' % XMLNS_DCF, API_DISK_CONFIG)
     return xmlutil.SlaveTemplate(root, 1, nsmap={ALIAS: XMLNS_DCF})
Пример #10
0
 def construct(self):
     root = xmlutil.TemplateElement('server')
     root.set('adminPass')
     return xmlutil.SlaveTemplate(root, 1, nsmap=server_nsmap)
Пример #11
0
 def construct(self):
     root = xmlutil.TemplateElement('image')
     root.set('{%s}diskConfig' % XMLNS_DCF, API_DISK_CONFIG)
     return xmlutil.SlaveTemplate(root, 1, nsmap={ALIAS: XMLNS_DCF})
Пример #12
0
 def construct(self):
     root = xmlutil.TemplateElement('flavors')
     elem = xmlutil.SubTemplateElement(root, 'flavor', selector='flavors')
     make_flavor(elem)
     return xmlutil.SlaveTemplate(root, 1, nsmap={
         Flavorextradata.alias: Flavorextradata.namespace})
Пример #13
0
 def construct(self):
     root = xmlutil.TemplateElement('server', selector='server')
     make_server(root)
     alias = Extended_availability_zone.alias
     namespace = Extended_availability_zone.namespace
     return xmlutil.SlaveTemplate(root, 1, nsmap={alias: namespace})
Пример #14
0
 def construct(self):
     elem = xmlutil.TemplateElement('test')
     return xmlutil.SlaveTemplate(elem, 1)
Пример #15
0
 def construct(self):
     root = xmlutil.TemplateElement('server')
     root.set('config_drive', 'config_drive')
     return xmlutil.SlaveTemplate(root, 1)
Пример #16
0
 def construct(self):
     root = xmlutil.TemplateElement('server', selector='server')
     make_server(root)
     return xmlutil.SlaveTemplate(
         root, 1, nsmap={ExtendedVolumes.alias: ExtendedVolumes.namespace})
Пример #17
0
 def construct(self):
     root = xmlutil.TemplateElement('server', selector='server')
     make_server(root)
     alias = Extended_server_attributes.alias
     namespace = Extended_server_attributes.namespace
     return xmlutil.SlaveTemplate(root, 1, nsmap={alias: namespace})
Пример #18
0
 def construct(self):
     root = xmlutil.TemplateElement('servers')
     elem = xmlutil.SubTemplateElement(root, 'server', selector='servers')
     elem.set('key_name', 'key_name')
     return xmlutil.SlaveTemplate(root, 1)
Пример #19
0
 def construct(self):
     root = xmlutil.TemplateElement('servers')
     elem = xmlutil.SubTemplateElement(root, 'server', selector='servers')
     make_server(elem)
     return xmlutil.SlaveTemplate(root, 1, nsmap={
         Server_usage.alias: Server_usage.namespace})
Пример #20
0
 def construct(self):
     root = xmlutil.TemplateElement('server')
     root.set('numaOpts', 'numaOpts')
     root.set('evsOpts', 'evsOpts')
     return xmlutil.SlaveTemplate(root, 1)
Пример #21
0
 def construct(self):
     root = xmlutil.TemplateElement('image', selector='image')
     make_image(root)
     return xmlutil.SlaveTemplate(root, 1, nsmap={
         Image_size.alias: Image_size.namespace})
Пример #22
0
 def construct(self):
     root = xmlutil.TemplateElement('servers')
     elem = xmlutil.SubTemplateElement(root, 'server', selector='servers')
     make_server(elem)
     return xmlutil.SlaveTemplate(root, 1, nsmap={
         Extended_status.alias: Extended_status.namespace})
Пример #23
0
 def construct(self):
     root = xmlutil.TemplateElement('server')
     root.set('{%s}diskConfig' % XMLNS_DCF, '%s:diskConfig' % ALIAS)
     return xmlutil.SlaveTemplate(root, 1, nsmap={ALIAS: XMLNS_DCF})
Пример #24
0
 def construct(self):
     root = xmlutil.TemplateElement('server')
     make_server(root)
     return xmlutil.SlaveTemplate(root, 1)
Пример #25
0
 def construct(self):
     root = xmlutil.TemplateElement('images')
     elem = xmlutil.SubTemplateElement(root, 'image', selector='images')
     elem.set('{%s}diskConfig' % XMLNS_DCF, '%s:diskConfig' % ALIAS)
     return xmlutil.SlaveTemplate(root, 1, nsmap={ALIAS: XMLNS_DCF})
Пример #26
0
 def construct(self):
     root = xmlutil.TemplateElement('limits', selector='limits')
     root.set('{%s}usedLimits' % XMLNS, '%s:usedLimits' % ALIAS)
     return xmlutil.SlaveTemplate(root, 1, nsmap={ALIAS: XMLNS})
Пример #27
0
 def construct(self):
     root = xmlutil.TemplateElement('flavor', selector='flavor')
     make_flavor(root)
     return xmlutil.SlaveTemplate(
         root, 1, nsmap={Flavor_disabled.alias: Flavor_disabled.namespace})