示例#1
0
    def de_json(cls, data, client):
        if not data:
            return None

        data = super(Operation, cls).de_json(data, client)
        data['metadata'] = OperationMetadata.de_json(
            universal_obj_hook(data.get('metadata')), client)
        data['error'] = OperationError.de_json(
            universal_obj_hook(data.get('error')), client)
        return cls(client=client, **data)
示例#2
0
    def de_json(cls, data: dict, client):
        if not data:
            return None

        data = super(Challenges, cls).de_json(data, client)

        data['dns_challenge'] = DnsChallenges.de_json(
            universal_obj_hook(data.get('dns_challenge')), client)
        data['http_challenge'] = HttpChallenges.de_json(
            universal_obj_hook(data.get('http_challenge')), client)

        return cls(client=client, **data)
示例#3
0
    def de_json(cls, data: dict, client):
        if not data:
            return None

        data = super(Certificate, cls).de_json(data, client)
        data['challenges'] = Challenges.de_list(
            universal_obj_hook(data.get('challenges')), client)
        return cls(client=client, **data)
示例#4
0
文件: address.py 项目: 113375/quiz
    def de_json(cls, data: dict, client):
        if not data:
            return None

        data = super(Address, cls).de_json(data, client)
        data['one_to_one_nat'] = OneToOneNat.de_json(
            universal_obj_hook(data.get('one_to_one_nat')), client)
        return cls(client=client, **data)
示例#5
0
    def de_json(cls, data: dict, client):
        if not data:
            return None

        data = super(Instance, cls).de_json(data, client)
        data['boot_disk'].update({'attached_to': data.get('id', None)})
        data['boot_disk'].update({'folder_id': data.get('folder_id', None)})
        data['boot_disk'] = AttachedDisk.de_json(
            universal_obj_hook(data.get('boot_disk')), client)

        # add folder id and source instance id as attr to disks
        for disk in data.get('secondary_disks', []):
            if disk is not None:
                disk.update({'attached_to': data.get('id', None)})
                disk.update({'folder_id': data.get('folder_id', None)})

        data['secondary_disks'] = AttachedDisk.de_list(
            universal_obj_hook(data.get('secondary_disks')), client)
        data['network_interfaces'] = NetworkInterface.de_list(
            universal_obj_hook(data.get('network_interfaces')), client)
        data['resources'] = Resources.de_json(
            universal_obj_hook(data.get('resources')), client)
        data['metadata'] = Metadata.de_json(
            universal_obj_hook(data.get('metadata')), client)
        data['scheduling_policy'] = SchedulingPolicy.de_json(
            universal_obj_hook(data.get('scheduling_policy')), client)
        data['network_settings'] = NetworkSettings.de_json(
            universal_obj_hook(data.get('network_settings')), client)

        return cls(client=client, **data)