@@ -12,6 +12,43 @@ def remove_prefix(s, prefix):
12
12
return s [len (prefix ):].lstrip ('/' ) if s .startswith (prefix ) else s
13
13
14
14
def range_prefix (meta , obj_prefix , fn ):
15
+ etcd = meta .etcd
16
+ orig_prefix = os .path .join (meta .orig_root_prefix , obj_prefix )
17
+ range_start = orig_prefix
18
+ range_end = etcd3 .utils .increment_last_byte (
19
+ etcd3 .utils .to_bytes (range_start )
20
+ )
21
+
22
+ while True :
23
+ range_request = etcd3 .etcdrpc .RangeRequest ()
24
+ range_request .key = etcd3 .utils .to_bytes (range_start )
25
+ range_request .keys_only = False
26
+ range_request .range_end = etcd3 .utils .to_bytes (range_end )
27
+ range_request .sort_order = etcd3 .etcdrpc .RangeRequest .ASCEND
28
+ range_request .sort_target = etcd3 .etcdrpc .RangeRequest .KEY
29
+ range_request .serializable = True
30
+ range_request .limit = 1000
31
+
32
+ range_response = etcd .kvstub .Range (
33
+ range_request ,
34
+ etcd .timeout ,
35
+ credentials = etcd .call_credentials ,
36
+ metadata = etcd .metadata ,
37
+ )
38
+
39
+ for kv in range_response .kvs :
40
+ orig_key = kv .key .decode ('utf-8' )
41
+ objname = remove_prefix (orig_key , orig_prefix )
42
+ new_key = fn (objname , kv .value .decode ('utf-8' ))
43
+ if new_key :
44
+ print ('convert %s to %s' % (orig_key , new_key ))
45
+
46
+ if not range_response .more :
47
+ break
48
+
49
+ range_start = etcd3 .utils .increment_last_byte (kv .key )
50
+
51
+ def range_prefix2 (meta , obj_prefix , fn ):
15
52
orig_prefix = os .path .join (meta .orig_root_prefix , obj_prefix )
16
53
17
54
for orig_value , orig_meta in meta .etcd .get_prefix (orig_prefix ):
@@ -151,7 +188,8 @@ def _trans_container(self, wrk_id, orig_value):
151
188
def _trans_deploy (self , deploy_key , orig_value ):
152
189
parts = deploy_key .split ('/' )
153
190
if len (parts ) != 4 :
154
- raise ValueError ('invalid deploy key: %s' % deploy_key )
191
+ print ('invalid deploy key: %s' % deploy_key )
192
+ return
155
193
156
194
appname , entrypoint , nodename , wrk_id = parts
157
195
@@ -200,8 +238,8 @@ def get(new_field, orig_field, transit_field, default=None):
200
238
cpu_quota_limit = get ('cpu_quota_limit' , 'quota' , 'CPUQuotaLimit' ),
201
239
memory_request = get ('memory_request' , 'memory' , 'MemoryRequest' ),
202
240
memory_limit = get ('memory_limit' , 'memory' , 'MemoryLimit' ),
203
- volume_request = get ('volume_request' , 'volumes' , 'VolumeRequest' ),
204
- volume_limit = get ('volume_limit' , 'volumes' , 'VolumeLimit' ),
241
+ volume_request = get ('volume_request' , 'volumes' , 'VolumeRequest' , default = [] ),
242
+ volume_limit = get ('volume_limit' , 'volumes' , 'VolumeLimit' , default = [] ),
205
243
volume_plan_request = get ('volume_plan_request' , 'volume_plan' , 'VolumePlanRequest' , default = {}),
206
244
volume_plan_limit = get ('volume_plan_limit' , 'volume_plan' , 'VolumePlanLimit' , default = {}),
207
245
volume_changed = dic .get ('volume_changed' , False ),
0 commit comments