From c98b44fd6df3e2d11c7a4e1d9f6decdb3d8e243f Mon Sep 17 00:00:00 2001 From: pedohorse <13556996+pedohorse@users.noreply.github.com> Date: Mon, 27 Jan 2025 23:30:20 +0100 Subject: [PATCH] submitter ux improvement autolisten if ip not set unset ip by default ignore env res args with empty names --- .../DialogScript | 2 +- .../DialogScript | 2 +- .../DialogScript | 2 +- .../DialogScript | 2 +- .../Contents.dir/Contents.mime | 2 +- .../DialogScript | 13 ++++++++- .../DialogScript | 2 +- .../PythonModule | 28 +++++++++++++++++-- .../DialogScript | 2 +- 9 files changed, 44 insertions(+), 11 deletions(-) diff --git a/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_cache_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__cache__submitter_8_81.0/DialogScript b/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_cache_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__cache__submitter_8_81.0/DialogScript index b6ce7147..31757d8a 100644 --- a/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_cache_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__cache__submitter_8_81.0/DialogScript +++ b/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_cache_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__cache__submitter_8_81.0/DialogScript @@ -48,7 +48,7 @@ label "ip" type string joinnext - default { "127.0.0.1" } + default { "" } parmtag { "autoscope" "0000000000000000" } parmtag { "import_source" "op:./lifeblood_submitter" } parmtag { "import_token" "sch_ip" } diff --git a/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_distributed_flip_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__distributed__flip__submitter_8_81.0/DialogScript b/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_distributed_flip_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__distributed__flip__submitter_8_81.0/DialogScript index 94ec52cb..23ef2d6f 100644 --- a/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_distributed_flip_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__distributed__flip__submitter_8_81.0/DialogScript +++ b/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_distributed_flip_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__distributed__flip__submitter_8_81.0/DialogScript @@ -48,7 +48,7 @@ label "ip" type string joinnext - default { "127.0.0.1" } + default { "" } parmtag { "autoscope" "0000000000000000" } parmtag { "import_source" "op:./lifeblood_submitter" } parmtag { "import_token" "sch_ip" } diff --git a/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_karma_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__karma__submitter_8_81.0/DialogScript b/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_karma_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__karma__submitter_8_81.0/DialogScript index d38bef08..e0eed36b 100644 --- a/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_karma_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__karma__submitter_8_81.0/DialogScript +++ b/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_karma_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__karma__submitter_8_81.0/DialogScript @@ -47,7 +47,7 @@ label "ip" type string joinnext - default { "127.0.0.1" } + default { "" } parmtag { "autoscope" "0000000000000000" } parmtag { "import_source" "op:./lifeblood_submitter" } parmtag { "import_token" "sch_ip" } diff --git a/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_mantra_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__mantra__submitter_8_81.0/DialogScript b/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_mantra_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__mantra__submitter_8_81.0/DialogScript index 886412d6..8ac7cfc1 100644 --- a/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_mantra_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__mantra__submitter_8_81.0/DialogScript +++ b/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_mantra_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__mantra__submitter_8_81.0/DialogScript @@ -48,7 +48,7 @@ label "ip" type string joinnext - default { "127.0.0.1" } + default { "" } parmtag { "autoscope" "0000000000000000" } parmtag { "import_source" "op:./lifeblood_submitter" } parmtag { "import_token" "sch_ip" } diff --git a/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_redshift_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__redshift__submitter_8_81.0/Contents.dir/Contents.mime b/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_redshift_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__redshift__submitter_8_81.0/Contents.dir/Contents.mime index 44b050c7..3cf6a2ed 100644 --- a/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_redshift_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__redshift__submitter_8_81.0/Contents.dir/Contents.mime +++ b/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_redshift_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__redshift__submitter_8_81.0/Contents.dir/Contents.mime @@ -545,7 +545,7 @@ return \"package.houdini.py%d_%d\" % (sys.version_info.major, sys.version_info.m flags = 0 segment { options = { autoslope ai ao } - length = 0 accel = 0.33333333333333331 0.33333333333333331 expr = "\"package.\" + hou.pwd().node(\"..\").evalParm(\"rs_pkg_name\")" language = python } + length = 0 accel = 0.33333333333333331 0.33333333333333331 expr = "ifs(ch(\"../rs_pkg_do\"), \"package.\" + chs(\"../rs_pkg_name\"), \"\")" language = hscript } } channel env_arg_val_2 { lefttype = extend diff --git a/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_redshift_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__redshift__submitter_8_81.0/DialogScript b/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_redshift_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__redshift__submitter_8_81.0/DialogScript index 36aa7df6..0b508ddb 100644 --- a/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_redshift_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__redshift__submitter_8_81.0/DialogScript +++ b/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_redshift_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__redshift__submitter_8_81.0/DialogScript @@ -48,7 +48,7 @@ label "ip" type string joinnext - default { "127.0.0.1" } + default { "" } parmtag { "autoscope" "0000000000000000" } parmtag { "import_source" "op:./lifeblood_submitter" } parmtag { "import_token" "sch_ip" } @@ -280,12 +280,22 @@ name "folder3_1" label "Redshift Package" + parm { + name "rs_pkg_do" + label "Require package" + type toggle + joinnext + default { "1" } + parmtag { "script_callback_language" "python" } + } parm { name "rs_pkg_name" label "Name" type string + nolabel joinnext default { "redshift" } + disablewhen "{ rs_pkg_do == 0 }" parmtag { "script_callback_language" "python" } } parm { @@ -293,6 +303,7 @@ label "Version" type string default { [ "if hasattr(hou.session, '_lifeblood__rs_ver_str'):\n return hou.session._lifeblood__rs_ver_str\n\nreturn 'error! cannot autodetect'" python ] } + disablewhen "{ rs_pkg_do == 0 }" parmtag { "script_callback_language" "python" } } } diff --git a/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_submitter-1.0.0.hda/lifeblood_8_8Driver_1lifeblood__submitter_8_81.0.0/DialogScript b/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_submitter-1.0.0.hda/lifeblood_8_8Driver_1lifeblood__submitter_8_81.0.0/DialogScript index 0e2610a0..9f68c72c 100644 --- a/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_submitter-1.0.0.hda/lifeblood_8_8Driver_1lifeblood__submitter_8_81.0.0/DialogScript +++ b/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_submitter-1.0.0.hda/lifeblood_8_8Driver_1lifeblood__submitter_8_81.0.0/DialogScript @@ -43,7 +43,7 @@ label "ip" type string joinnext - default { "127.0.0.1" } + default { "" } parmtag { "script_callback_language" "python" } } parm { diff --git a/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_submitter-1.0.0.hda/lifeblood_8_8Driver_1lifeblood__submitter_8_81.0.0/PythonModule b/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_submitter-1.0.0.hda/lifeblood_8_8Driver_1lifeblood__submitter_8_81.0.0/PythonModule index df41c934..2a69c0c3 100644 --- a/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_submitter-1.0.0.hda/lifeblood_8_8Driver_1lifeblood__submitter_8_81.0.0/PythonModule +++ b/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_submitter-1.0.0.hda/lifeblood_8_8Driver_1lifeblood__submitter_8_81.0.0/PythonModule @@ -7,6 +7,17 @@ except ImportError: def submit_button_callback(node): + # first - check for trivial error if user have not set up scheduler address + if node.evalParm("sch_ip").strip() == '': # default "invalid" value + if hou.ui.displayMessage( + 'You haven\'t set up scheduler address.\nDo you want to listen for scheduler\'s broadcast?', + buttons=('Yes', 'Cancel'), + default_choice=0, + close_choice=1) == 1: + return + if not fill_address_from_broadcast(node): + return + if hou.hipFile.hasUnsavedChanges(): if hou.ui.displayMessage('scene has unsaved changes, save and continue?', buttons=('Ok', 'Cancel'), severity=hou.severityType.Warning, @@ -48,7 +59,11 @@ def submit(node): env_args = {} env_name = node.evalParm('env_resolver_name') for i in range(node.parm('env_resolver_args').evalAsInt()): - env_args[node.evalParm('env_arg_name_%d' % i)] = node.evalParm('env_arg_val_%d' % i) + arg_name = node.evalParm('env_arg_name_%d' % i) + # skip empty names + if arg_name.strip() == '': + continue + env_args[arg_name] = node.evalParm('env_arg_val_%d' % i) task.set_environment_resolver(env_name, env_args) for i in range(node.parm('attribs').evalAsInt()): @@ -131,15 +146,22 @@ def fill_address_from_broadcast(node): ip, port = address_from_broadcast(node) except hou.OperationInterrupted: if hou.isUIAvailable(): - hou.ui.displayMessage('waiting interrupted', severity=hou.severityType.Warning) + # this try-except block here is to workaround a bug in some hou builds + # that reraises OperationInterrupted exception + try: + hou.ui.displayMessage('waiting interrupted', severity=hou.severityType.Warning) + except hou.OperationInterrupted: + pass else: print('waiting interrupted') + return False if ip is None: if hou.isUIAvailable(): hou.ui.displayMessage('did not receive a broadcast within timeout', severity=hou.severityType.Warning) else: print('did not receive a broadcast within timeout') - return + return False assert port is not None node.parm('sch_ip').set(ip) node.parm('sch_port').set(port) + return True diff --git a/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_wedge_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__wedge__submitter_8_81.0/DialogScript b/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_wedge_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__wedge__submitter_8_81.0/DialogScript index b993bd48..b0e6dcae 100644 --- a/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_wedge_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__wedge__submitter_8_81.0/DialogScript +++ b/dcc_plugins_workspace/houdini/otls/Driver-lifeblood_wedge_submitter-1.0.hda/lifeblood_8_8Driver_1lifeblood__wedge__submitter_8_81.0/DialogScript @@ -48,7 +48,7 @@ label "ip" type string joinnext - default { "127.0.0.1" } + default { "" } parmtag { "autoscope" "0000000000000000" } parmtag { "import_source" "op:./lifeblood_submitter" } parmtag { "import_token" "sch_ip" }