@@ -356,7 +356,8 @@ def __init__(
356356 fsal : FSAL ,
357357 clients : Optional [List [Client ]] = None ,
358358 sectype : Optional [List [str ]] = None ,
359- qos_block : Optional [QOS ] = None ) -> None :
359+ qos_block : Optional [QOS ] = None ,
360+ kmip_key_id : Optional [str ] = None ) -> None :
360361 self .export_id = export_id
361362 self .path = path
362363 self .fsal = fsal
@@ -371,6 +372,7 @@ def __init__(
371372 self .clients : List [Client ] = clients or []
372373 self .sectype = sectype
373374 self .qos_block = qos_block
375+ self .kmip_key_id = kmip_key_id
374376
375377 @classmethod
376378 def from_export_block (cls , export_block : RawBlock , cluster_id : str ) -> 'Export' :
@@ -417,11 +419,17 @@ def from_export_block(cls, export_block: RawBlock, cluster_id: str) -> 'Export':
417419 [Client .from_client_block (client )
418420 for client in client_blocks ],
419421 sectype = sectype ,
420- qos_block = qos_block
422+ qos_block = qos_block ,
423+ kmip_key_id = export_block .values .get ('kmip_key_id' )
421424 )
422425
423426 def to_export_block (self ) -> RawBlock :
424- values = {
427+ # if kmip_key_id is present, it should be first line of export block
428+ values : Dict [str , Any ] = {}
429+ if self .kmip_key_id :
430+ values ['kmip_key_id' ] = self .kmip_key_id
431+
432+ values .update ({
425433 'export_id' : self .export_id ,
426434 'path' : self .path ,
427435 'pseudo' : self .pseudo ,
@@ -431,7 +439,7 @@ def to_export_block(self) -> RawBlock:
431439 'security_label' : self .security_label ,
432440 'protocols' : self .protocols ,
433441 'transports' : self .transports ,
434- }
442+ })
435443 if self .sectype :
436444 values ['SecType' ] = self .sectype
437445 result = RawBlock ("EXPORT" , values = values )
@@ -463,7 +471,8 @@ def from_dict(cls, export_id: int, ex_dict: Dict[str, Any]) -> 'Export':
463471 FSAL .from_dict (ex_dict .get ('fsal' , {})),
464472 [Client .from_dict (client ) for client in ex_dict .get ('clients' , [])],
465473 sectype = ex_dict .get ("sectype" ),
466- qos_block = qos_block
474+ qos_block = qos_block ,
475+ kmip_key_id = ex_dict .get ('kmip_key_id' )
467476 )
468477
469478 def to_dict (self ) -> Dict [str , Any ]:
@@ -484,6 +493,8 @@ def to_dict(self) -> Dict[str, Any]:
484493 values ['sectype' ] = self .sectype
485494 if self .qos_block :
486495 values ['qos_block' ] = self .qos_block .to_dict ()
496+ if self .kmip_key_id :
497+ values ['kmip_key_id' ] = self .kmip_key_id
487498 return values
488499
489500 def validate (self , mgr : 'Module' ) -> None :
@@ -535,14 +546,15 @@ def __eq__(self, other: Any) -> bool:
535546
536547def _format_block_body (block : RawBlock , depth : int = 0 ) -> str :
537548 conf_str = ""
538- for blo in block .blocks :
539- conf_str += format_block (blo , depth )
540-
541549 for key , val in block .values .items ():
542550 if val is not None :
543551 conf_str += _indentation (depth )
544552 fval = _format_val (block .block_name , key , val )
545553 conf_str += '{} = {};\n ' .format (key , fval )
554+
555+ for blo in block .blocks :
556+ conf_str += format_block (blo , depth )
557+
546558 return conf_str
547559
548560
0 commit comments