@@ -406,6 +406,11 @@ def _render_payload(kwargs: MutableMapping[str, Any]) -> Dict[str, Any]:
406406 def pop (k ):
407407 return args .pop (k , None )
408408
409+ def normalize_nsmode (mode : Union [str , Dict [str , str ]]) -> Dict [str , str ]:
410+ if isinstance (mode , dict ):
411+ return mode
412+ return {"nsmode" : mode }
413+
409414 def to_bytes (size : Union [int , str , None ]) -> Union [int , None ]:
410415 """
411416 Converts str or int to bytes.
@@ -694,22 +699,22 @@ def parse_host_port(_container_port, _protocol, _host):
694699 params ["secret_env" ] = args .pop ("secret_env" , {})
695700
696701 if "cgroupns" in args :
697- params ["cgroupns" ] = { "nsmode" : args .pop ("cgroupns" )}
702+ params ["cgroupns" ] = normalize_nsmode ( args .pop ("cgroupns" ))
698703
699704 if "ipc_mode" in args :
700- params ["ipcns" ] = { "nsmode" : args .pop ("ipc_mode" )}
705+ params ["ipcns" ] = normalize_nsmode ( args .pop ("ipc_mode" ))
701706
702707 if "network_mode" in args :
703- params ["netns" ] = { "nsmode" : args .pop ("network_mode" )}
708+ params ["netns" ] = normalize_nsmode ( args .pop ("network_mode" ))
704709
705710 if "pid_mode" in args :
706- params ["pidns" ] = { "nsmode" : args .pop ("pid_mode" )}
711+ params ["pidns" ] = normalize_nsmode ( args .pop ("pid_mode" ))
707712
708713 if "userns_mode" in args :
709- params ["userns" ] = { "nsmode" : args .pop ("userns_mode" )}
714+ params ["userns" ] = normalize_nsmode ( args .pop ("userns_mode" ))
710715
711716 if "uts_mode" in args :
712- params ["utsns" ] = { "nsmode" : args .pop ("uts_mode" )}
717+ params ["utsns" ] = normalize_nsmode ( args .pop ("uts_mode" ))
713718
714719 if len (args ) > 0 :
715720 raise TypeError (
0 commit comments