Example #1
0
    def construct(self):
        root = xmlutil.TemplateElement('services')
        elem = xmlutil.SubTemplateElement(root, 'service', selector='services')
        elem.set('binary')
        elem.set('host')
        elem.set('zone')
        elem.set('status')
        elem.set('state')
        elem.set('update_at')

        return xmlutil.MasterTemplate(root, 1)
Example #2
0
    def construct(self):
        root = xmlutil.TemplateElement('hosts')
        elem = xmlutil.SubTemplateElement(root, 'host', selector='hosts')
        elem.set('service-status')
        elem.set('service')
        elem.set('zone')
        elem.set('service-state')
        elem.set('host_name')
        elem.set('last-update')

        return xmlutil.MasterTemplate(root, 1)
Example #3
0
    def construct(self):
        tagname = xmlutil.Selector('key')

        def extraspec_sel(obj, do_raise=False):
            # Have to extract the key and value for later use...
            key, value = obj.items()[0]
            return dict(key=key, value=value)

        root = xmlutil.TemplateElement(tagname, selector=extraspec_sel)
        root.text = 'value'
        return xmlutil.MasterTemplate(root, 1)
Example #4
0
    def construct(self):
        # TODO(uni): template elements of 'host', 'service' and 'disabled'
        # should be deprecated to make ServicesUpdateTemplate consistent
        # with ServicesIndexTemplate. Still keeping it here for API
        # compatibility sake.
        root = xmlutil.TemplateElement('host')
        root.set('host')
        root.set('service')
        root.set('disabled')
        root.set('binary')
        root.set('status')

        return xmlutil.MasterTemplate(root, 1)
Example #5
0
 def construct(self):
     root = xmlutil.TemplateElement('os-volume_upload_image',
                                    selector='os-volume_upload_image')
     root.set('id')
     root.set('updated_at')
     root.set('status')
     root.set('display_description')
     root.set('size')
     root.set('volume_type')
     root.set('image_id')
     root.set('container_format')
     root.set('disk_format')
     root.set('image_name')
     return xmlutil.MasterTemplate(root, 1)
Example #6
0
    def construct(self):
        root = xmlutil.TemplateElement('services')
        elem = xmlutil.SubTemplateElement(root, 'service', selector='services')
        elem.set('binary')
        elem.set('host')
        elem.set('zone')
        elem.set('status')
        elem.set('state')
        elem.set('update_at')
        elem.set('disabled_reason')
        elem.set('replication_status')
        elem.set('active_backend_id')
        elem.set('frozen')

        return xmlutil.MasterTemplate(root, 1)
Example #7
0
 def construct(self):
     root = xmlutil.TemplateElement('os-volume_upload_image',
                                    selector='os-volume_upload_image')
     root.set('id')
     root.set('updated_at')
     root.set('status')
     root.set('display_description')
     root.set('size')
     root.set('volume_type')
     root.set('image_id')
     root.set('container_format')
     root.set('disk_format')
     root.set('image_name')
     root.set('protected')
     if CONF.glance_api_version == 2:
         root.set('visibility')
     else:
         root.set('is_public')
     return xmlutil.MasterTemplate(root, 1)
Example #8
0
    def test_master_copy(self):
        # Construct a master template
        elem = xmlutil.TemplateElement('test')
        tmpl = xmlutil.MasterTemplate(elem, 1, nsmap=dict(a='foo'))

        # Give it a slave
        slave = xmlutil.TemplateElement('test')
        tmpl.attach(slave)

        # Construct a copy
        copy = tmpl.copy()

        # Check to see if we actually managed a copy
        self.assertNotEqual(tmpl, copy)
        self.assertEqual(tmpl.root, copy.root)
        self.assertEqual(tmpl.version, copy.version)
        self.assertEqual(id(tmpl.nsmap), id(copy.nsmap))
        self.assertNotEqual(id(tmpl.slaves), id(copy.slaves))
        self.assertEqual(len(tmpl.slaves), len(copy.slaves))
        self.assertEqual(tmpl.slaves[0], copy.slaves[0])
Example #9
0
    def construct(self):
        root = xmlutil.TemplateElement('limits', selector='limits')

        rates = xmlutil.SubTemplateElement(root, 'rates')
        rate = xmlutil.SubTemplateElement(rates, 'rate', selector='rate')
        rate.set('uri', 'uri')
        rate.set('regex', 'regex')
        limit = xmlutil.SubTemplateElement(rate, 'limit', selector='limit')
        limit.set('value', 'value')
        limit.set('verb', 'verb')
        limit.set('remaining', 'remaining')
        limit.set('unit', 'unit')
        limit.set('next-available', 'next-available')

        absolute = xmlutil.SubTemplateElement(root, 'absolute',
                                              selector='absolute')
        limit = xmlutil.SubTemplateElement(absolute, 'limit',
                                           selector=xmlutil.get_items)
        limit.set('name', 0)
        limit.set('value', 1)

        return xmlutil.MasterTemplate(root, 1, nsmap=limits_nsmap)
Example #10
0
 def construct(self):
     sel = xmlutil.Selector('meta', xmlutil.get_items, 0)
     root = xmlutil.TemplateElement('meta', selector=sel)
     root.set('key', 0)
     root.text = 1
     return xmlutil.MasterTemplate(root, 1, nsmap=metadata_nsmap)
Example #11
0
 def construct(self):
     elem = xmlutil.TemplateElement('test')
     return xmlutil.MasterTemplate(elem, 1)
Example #12
0
 def construct(self):
     root = xmlutil.TemplateElement('snapshot', selector='snapshot')
     make_snapshot(root)
     return xmlutil.MasterTemplate(root, 1)
Example #13
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'])
 def construct(self):
     root = xmlutil.TemplateElement('relationship', selector='relationship')
     make_relationship(root)
     alias = Volume_replication.alias
     namespace = Volume_replication.namespace
     return xmlutil.MasterTemplate(root, 1, nsmap={alias: namespace})
Example #15
0
 def construct(self):
     root = xmlutil.TemplateElement('qos_specs')
     elem = xmlutil.SubTemplateElement(root, 'qos_spec',
                                       selector='qos_specs')
     make_qos_specs(elem)
     return xmlutil.MasterTemplate(root, 1)
Example #16
0
 def construct(self):
     root = xmlutil.TemplateElement('volumes')
     elem = xmlutil.SubTemplateElement(root, 'volume', selector='volumes')
     make_volume(elem)
     return xmlutil.MasterTemplate(root, 1, nsmap=volume_nsmap)
Example #17
0
 def construct(self):
     root = xmlutil.TemplateElement('extension', selector='extension')
     make_ext(root)
     return xmlutil.MasterTemplate(root, 1, nsmap=ext_nsmap)
Example #18
0
 def construct(self):
     root = xmlutil.TemplateElement('cgsnapshot', selector='cgsnapshot')
     make_cgsnapshot(root)
     alias = Cgsnapshots.alias
     namespace = Cgsnapshots.namespace
     return xmlutil.MasterTemplate(root, 1, nsmap={alias: namespace})
Example #19
0
 def construct(self):
     root = xmlutil.TemplateElement('volume_type_access')
     elem = xmlutil.SubTemplateElement(root, 'access',
                                       selector='volume_type_access')
     make_volume_type_access(elem)
     return xmlutil.MasterTemplate(root, 1)
Example #20
0
 def construct(self):
     root = xmlutil.TemplateElement('version', selector='version')
     make_version(root)
     return xmlutil.MasterTemplate(root, 1, nsmap=version_nsmap)
Example #21
0
 def construct(self):
     root = xmlutil.make_flat_dict('encryption', selector='encryption')
     return xmlutil.MasterTemplate(root, 1)
 def construct(self):
     return xmlutil.MasterTemplate(xmlutil.make_flat_dict('specs'), 1)
Example #23
0
 def construct(self):
     root = xmlutil.TemplateElement('qos_associations')
     elem = xmlutil.SubTemplateElement(root, 'associations',
                                       selector='qos_associations')
     make_associations(elem)
     return xmlutil.MasterTemplate(root, 1)
Example #24
0
 def construct(self):
     root = xmlutil.make_flat_dict('extra_specs', selector='extra_specs')
     return xmlutil.MasterTemplate(root, 1)
Example #25
0
 def construct(self):
     root = xmlutil.TemplateElement('restore', selector='restore')
     make_backup_restore(root)
     alias = Backups.alias
     namespace = Backups.namespace
     return xmlutil.MasterTemplate(root, 1, nsmap={alias: namespace})
Example #26
0
 def construct(self):
     root = xmlutil.TemplateElement('volume_type', selector='volume_type')
     make_voltype(root)
     return xmlutil.MasterTemplate(root, 1)
Example #27
0
 def construct(self):
     root = xmlutil.TemplateElement('choices')
     elem = xmlutil.SubTemplateElement(root, 'version', selector='choices')
     make_version(elem)
     return xmlutil.MasterTemplate(root, 1, nsmap=version_nsmap)
Example #28
0
 def construct(self):
     root = xmlutil.TemplateElement('transfer', selector='transfer')
     make_transfer(root)
     alias = Volume_transfer.alias
     namespace = Volume_transfer.namespace
     return xmlutil.MasterTemplate(root, 1, nsmap={alias: namespace})
Example #29
0
    def construct(self):
        root = xmlutil.TemplateElement('host')
        root.set('host')

        return xmlutil.MasterTemplate(root, 1)