-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathdisk_writer.py
More file actions
26 lines (20 loc) · 921 Bytes
/
disk_writer.py
File metadata and controls
26 lines (20 loc) · 921 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from synapse.api.node_pb2 import NodeConfig, NodeType
from synapse.api.nodes.disk_writer_pb2 import DiskWriterConfig
from synapse.client.node import Node
class DiskWriter(Node):
type = NodeType.kDiskWriter
def __init__(self, filename: str, storage_device_id: int):
self.filename = filename
self.storage_device_id = storage_device_id
def _to_proto(self):
n = NodeConfig()
p = DiskWriterConfig(filename=self.filename, storage_device_id=self.storage_device_id)
n.disk_writer.CopyFrom(p)
return n
@staticmethod
def _from_proto(proto: DiskWriterConfig):
if not proto:
raise ValueError("parameter 'proto' is missing")
if not isinstance(proto, DiskWriterConfig):
raise ValueError("proto is not of type DiskWriterConfig")
return DiskWriter(filename=proto.filename, storage_device_id=proto.storage_device_id)