Пример #1
0
    def get_resources(self):
        resources = []

        metadata = _get_metadata()
        body_serializers = {
            'application/xml': wsgi.XMLDictSerializer(metadata=metadata,
                                                      xmlns=wsgi.XMLNS_V11),
        }
        serializer = wsgi.ResponseSerializer(body_serializers, None)

        body_deserializers = {
            'application/xml': SecurityGroupXMLDeserializer(),
        }
        deserializer = wsgi.RequestDeserializer(body_deserializers)

        res = extensions.ResourceExtension('os-security-groups',
                                controller=SecurityGroupController(),
                                deserializer=deserializer,
                                serializer=serializer)

        resources.append(res)

        body_deserializers = {
            'application/xml': SecurityGroupRulesXMLDeserializer(),
        }
        deserializer = wsgi.RequestDeserializer(body_deserializers)

        res = extensions.ResourceExtension('os-security-group-rules',
                                controller=SecurityGroupRulesController(),
                                deserializer=deserializer,
                                serializer=serializer)
        resources.append(res)
        return resources
Пример #2
0
def create_resource():
    headers_serializer = HeadersSerializer()
    body_serializers = {'application/xml': ServerXMLSerializer()}
    serializer = wsgi.ResponseSerializer(body_serializers, headers_serializer)
    body_deserializers = {'application/xml': ServerXMLDeserializer()}
    deserializer = wsgi.RequestDeserializer(body_deserializers)
    return wsgi.Resource(Controller(), deserializer, serializer)
Пример #3
0
def create_resource():
    body_serializers = {
        'application/xml': VolumeTypesSerializer(),
    }
    serializer = wsgi.ResponseSerializer(body_serializers)

    deserializer = wsgi.RequestDeserializer()

    return wsgi.Resource(VolumeTypesController(), serializer=serializer)
Пример #4
0
def create_resource(version='1.0'):
    controller = {
        '1.0': ControllerV10,
        '1.1': ControllerV11,
    }[version]()

    metadata = {
        "attributes": {
            "server": [
                "id", "imageId", "name", "flavorId", "hostId", "status",
                "progress", "adminPass", "flavorRef", "imageRef"
            ],
            "link": ["rel", "type", "href"],
        },
        "dict_collections": {
            "metadata": {
                "item_name": "meta",
                "item_key": "key"
            },
        },
        "list_collections": {
            "public": {
                "item_name": "ip",
                "item_key": "addr"
            },
            "private": {
                "item_name": "ip",
                "item_key": "addr"
            },
        },
    }

    xmlns = {
        '1.0': wsgi.XMLNS_V10,
        '1.1': wsgi.XMLNS_V11,
    }[version]

    headers_serializer = HeadersSerializer()

    xml_serializer = {
        '1.0': wsgi.XMLDictSerializer(metadata, wsgi.XMLNS_V10),
        '1.1': ServerXMLSerializer(),
    }[version]

    body_serializers = {
        'application/xml': xml_serializer,
    }

    body_deserializers = {
        'application/xml': helper.ServerXMLDeserializer(),
    }

    serializer = wsgi.ResponseSerializer(body_serializers, headers_serializer)
    deserializer = wsgi.RequestDeserializer(body_deserializers)

    return wsgi.Resource(controller, deserializer, serializer)
Пример #5
0
def create_resource():
    body_serializers = {
        'application/xml': VersionsXMLSerializer(),
        'application/atom+xml': VersionsAtomSerializer(),
    }
    serializer = wsgi.ResponseSerializer(body_serializers)

    deserializer = wsgi.RequestDeserializer()

    return wsgi.Resource(VersionV2(), serializer=serializer,
                         deserializer=deserializer)
Пример #6
0
def create_resource():
    body_serializers = {
        'application/xml': ZonesXMLSerializer(),
    }
    serializer = wsgi.ResponseSerializer(body_serializers)

    body_deserializers = {
        'application/xml': servers.ServerXMLDeserializer(),
    }
    deserializer = wsgi.RequestDeserializer(body_deserializers)

    return wsgi.Resource(Controller(), deserializer, serializer)
Пример #7
0
def create_resource():
    headers_serializer = common.MetadataHeadersSerializer()

    body_deserializers = {
        'application/xml': common.MetadataXMLDeserializer(),
    }

    body_serializers = {
        'application/xml': common.MetadataXMLSerializer(),
    }
    serializer = wsgi.ResponseSerializer(body_serializers, headers_serializer)
    deserializer = wsgi.RequestDeserializer(body_deserializers)

    return wsgi.Resource(Controller(), deserializer, serializer)
Пример #8
0
    def get_resources(self):
        resources = []

        body_serializers = {
            'application/xml': VolumeSerializer(),
        }
        serializer = wsgi.ResponseSerializer(body_serializers)

        # NOTE(justinsb): No way to provide singular name ('volume')
        # Does this matter?
        res = extensions.ResourceExtension(
            'os-volumes',
            VolumeController(),
            serializer=serializer,
            collection_actions={'detail': 'GET'})
        resources.append(res)

        body_serializers = {
            'application/xml': VolumeAttachmentSerializer(),
        }
        serializer = wsgi.ResponseSerializer(body_serializers)

        res = extensions.ResourceExtension('os-volume_attachments',
                                           VolumeAttachmentController(),
                                           serializer=serializer,
                                           parent=dict(
                                               member_name='server',
                                               collection_name='servers'))
        resources.append(res)

        headers_serializer = servers.HeadersSerializer()
        body_serializers = {
            'application/xml': servers.ServerXMLSerializer(),
        }
        serializer = wsgi.ResponseSerializer(body_serializers,
                                             headers_serializer)

        body_deserializers = {
            'application/xml': servers.ServerXMLDeserializer(),
        }
        deserializer = wsgi.RequestDeserializer(body_deserializers)

        res = extensions.ResourceExtension('os-volumes_boot',
                                           BootFromVolumeController(),
                                           serializer=serializer,
                                           deserializer=deserializer)
        resources.append(res)

        return resources
Пример #9
0
    def setUp(self):
        class JSONDeserializer(object):
            def deserialize(self, data, action='default'):
                return 'pew_json'

        class XMLDeserializer(object):
            def deserialize(self, data, action='default'):
                return 'pew_xml'

        self.body_deserializers = {
            'application/json': JSONDeserializer(),
            'application/xml': XMLDeserializer(),
        }

        self.deserializer = wsgi.RequestDeserializer(self.body_deserializers)
Пример #10
0
def create_resource(version='1.0'):
    controller = {
        '1.0': VersionV10,
        '1.1': VersionV11,
    }[version]()

    body_serializers = {
        'application/xml': VersionsXMLSerializer(),
        'application/atom+xml': VersionsAtomSerializer(),
    }
    serializer = wsgi.ResponseSerializer(body_serializers)

    supported_content_types = ('application/json', 'application/xml',
                               'application/atom+xml')
    deserializer = wsgi.RequestDeserializer(
        supported_content_types=supported_content_types)

    return wsgi.Resource(controller,
                         serializer=serializer,
                         deserializer=deserializer)
Пример #11
0
    def __init__(self):
        metadata = {
            "attributes": {
                "version": ["status", "id"],
                "link": ["rel", "href"],
            }
        }

        body_serializers = {
            'application/atom+xml': VersionsAtomSerializer(metadata=metadata),
            'application/xml': VersionsXMLSerializer(metadata=metadata),
        }
        serializer = wsgi.ResponseSerializer(body_serializers)

        supported_content_types = ('application/json', 'application/xml',
                                   'application/atom+xml')
        deserializer = wsgi.RequestDeserializer(
            supported_content_types=supported_content_types)

        wsgi.Resource.__init__(self,
                               None,
                               serializer=serializer,
                               deserializer=deserializer)
Пример #12
0
    def get_resources(self):
        resources = []

        headers_serializer = servers.HeadersSerializer()
        body_serializers = {
            'application/xml': servers.ServerXMLSerializer(),
        }

        body_deserializers = {
            'application/xml': helper.ServerXMLDeserializerV11(),
        }

        serializer = wsgi.ResponseSerializer(body_serializers,
                                             headers_serializer)
        deserializer = wsgi.RequestDeserializer(body_deserializers)

        res = extensions.ResourceExtension('os-create-server-ext',
                                        controller=CreateServerController(),
                                        deserializer=deserializer,
                                        serializer=serializer)
        resources.append(res)

        return resources
Пример #13
0
    def get_resources(self):
        body_serializers = {
            'application/xml': HostSerializer(),
        }
        body_deserializers = {
            'application/xml': HostDeserializer(),
        }

        serializer = wsgi.ResponseSerializer(body_serializers)
        deserializer = wsgi.RequestDeserializer(body_deserializers)

        resources = [
            extensions.ResourceExtension('os-hosts',
                                         HostController(),
                                         serializer=serializer,
                                         deserializer=deserializer,
                                         collection_actions={'update': 'PUT'},
                                         member_actions={
                                             "startup": "GET",
                                             "shutdown": "GET",
                                             "reboot": "GET"
                                         })
        ]
        return resources
Пример #14
0
def create_resource(version):
    controller = {
        '1.0': Controller,
        '1.1': ControllerV11,
    }[version]()

    metadata = {
        "attributes": {
            "zone": ["id", "api_url", "name", "capabilities"],
        },
    }

    body_serializers = {
        'application/xml':
        wsgi.XMLDictSerializer(xmlns=wsgi.XMLNS_V10, metadata=metadata),
    }
    serializer = wsgi.ResponseSerializer(body_serializers)

    body_deserializers = {
        'application/xml': helper.ServerXMLDeserializer(),
    }
    deserializer = wsgi.RequestDeserializer(body_deserializers)

    return wsgi.Resource(controller, deserializer, serializer)
Пример #15
0
    def get_resources(self):
        body_serializers = {
            'application/xml': ZonesXMLSerializer(),
        }
        serializer = wsgi.ResponseSerializer(body_serializers)

        body_deserializers = {
            'application/xml': servers.ServerXMLDeserializer(),
        }
        deserializer = wsgi.RequestDeserializer(body_deserializers)

        #NOTE(bcwaldon): This resource should be prefixed with 'os-'
        coll_actions = {
            'detail': 'GET',
            'info': 'GET',
            'select': 'POST',
        }

        res = extensions.ResourceExtension('zones',
                                           Controller(),
                                           deserializer=deserializer,
                                           serializer=serializer,
                                           collection_actions=coll_actions)
        return [res]
Пример #16
0
 def __init__(self, application):
     controller = RequestExtensionController(application)
     wsgi.Resource.__init__(self,
                            controller,
                            serializer=wsgi.ResponseSerializer(),
                            deserializer=wsgi.RequestDeserializer())
Пример #17
0
    def get_resources(self):
        resources = []

        body_serializers = {
            'application/xml': VsaSerializer(),
        }
        serializer = wsgi.ResponseSerializer(body_serializers)

        res = extensions.ResourceExtension(
            'zadr-vsa',
            VsaController(),
            serializer=serializer,
            collection_actions={'detail': 'GET'},
            member_actions={
                'add_capacity': 'POST',
                'remove_capacity': 'POST',
                'associate_address': 'POST',
                'disassociate_address': 'POST'
            })
        resources.append(res)

        body_serializers = {
            'application/xml': VsaVolumeSerializer(),
        }
        serializer = wsgi.ResponseSerializer(body_serializers)

        res = extensions.ResourceExtension(
            'volumes',
            VsaVolumeController(),
            serializer=serializer,
            collection_actions={'detail': 'GET'},
            parent=dict(member_name='vsa', collection_name='zadr-vsa'))
        resources.append(res)

        body_serializers = {
            'application/xml': VsaDriveSerializer(),
        }
        serializer = wsgi.ResponseSerializer(body_serializers)

        res = extensions.ResourceExtension(
            'drives',
            VsaDriveController(),
            serializer=serializer,
            collection_actions={'detail': 'GET'},
            parent=dict(member_name='vsa', collection_name='zadr-vsa'))
        resources.append(res)

        body_serializers = {
            'application/xml': VsaVPoolSerializer(),
        }
        serializer = wsgi.ResponseSerializer(body_serializers)

        res = extensions.ResourceExtension('vpools',
                                           VsaVPoolController(),
                                           serializer=serializer,
                                           parent=dict(
                                               member_name='vsa',
                                               collection_name='zadr-vsa'))
        resources.append(res)

        headers_serializer = servers.HeadersSerializer()
        body_serializers = {
            'application/xml': servers.ServerXMLSerializer(),
        }
        serializer = wsgi.ResponseSerializer(body_serializers,
                                             headers_serializer)

        body_deserializers = {
            'application/xml': servers.ServerXMLDeserializer(),
        }
        deserializer = wsgi.RequestDeserializer(body_deserializers)

        res = extensions.ResourceExtension('instances',
                                           VsaVCController(),
                                           serializer=serializer,
                                           deserializer=deserializer,
                                           parent=dict(
                                               member_name='vsa',
                                               collection_name='zadr-vsa'))
        resources.append(res)

        return resources