From fe72eb1b2b05e6874594405dd99a98026e5ebd11 Mon Sep 17 00:00:00 2001 From: Bincheng Wu Date: Fri, 30 Sep 2022 16:34:52 -0400 Subject: [PATCH 1/5] fix bug where deploy_name was used for server_name --- rsconnect/actions.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/rsconnect/actions.py b/rsconnect/actions.py index e49037f1..73af8306 100644 --- a/rsconnect/actions.py +++ b/rsconnect/actions.py @@ -740,7 +740,7 @@ def _finalize_deploy( file_name: str, app_id: int, app_mode: AppMode, - name: str, + deployment_name: str, title: str, title_is_default: bool, bundle: typing.IO[bytes], @@ -755,7 +755,7 @@ def _finalize_deploy( :param file_name: the primary file or directory being deployed. :param app_id: the ID of an existing application to deploy new files for. :param app_mode: the app mode to use. - :param name: the name to use for the deploy. + :param deployment_name: the name to use for the deploy. :param title: the title to use for the deploy. :param title_is_default: a flag noting whether the title carries a defaulted value. :param bundle: the bundle to deploy. @@ -766,7 +766,7 @@ def _finalize_deploy( :return: the ultimate URL where the deployed app may be accessed and the sequence of log lines. The log lines value will be None if a log callback was provided. """ - app = deploy_bundle(connect_server, app_id, name, title, title_is_default, bundle, None) + app = deploy_bundle(connect_server, app_id, deployment_name, title, title_is_default, bundle, None) app_url, log_lines, _ = spool_deployment_log(connect_server, app, log_callback) app_store.set( connect_server.url, @@ -1771,7 +1771,7 @@ def create_quarto_deployment_bundle( def deploy_bundle( remote_server: api.TargetableServer, app_id: int, - name: str, + deployment_name: str, # legacy, no longer used; managed by RSConnectExecutor title: str, title_is_default: bool, bundle: typing.IO[bytes], @@ -1782,7 +1782,7 @@ def deploy_bundle( :param remote_server: the server information. :param app_id: the ID of the app to deploy, if this is a redeploy. - :param name: the name for the deploy. + :param deployment_name: the name for the deploy. :param title: the title for the deploy. :param title_is_default: a flag noting whether the title carries a defaulted value. :param bundle: the bundle to deploy. @@ -1791,9 +1791,12 @@ def deploy_bundle( task that may be queried for deployment progress. """ ce = RSConnectExecutor( - server=remote_server, + url=remote_server.url, + api_key=remote_server.api_key, + insecure=remote_server.insecure, + ca_data=remote_server.ca_data, + cookies=remote_server.cookie_jar, app_id=app_id, - name=name, title=title, title_is_default=title_is_default, bundle=bundle, From 10d2b5fe16d946f27a7cadf62c40f1e827458abd Mon Sep 17 00:00:00 2001 From: Bincheng Wu Date: Fri, 30 Sep 2022 16:56:20 -0400 Subject: [PATCH 2/5] remove actions.deploy_bundle type check. Note: actions.py will need further work to support shinyapps and cloud --- rsconnect/actions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rsconnect/actions.py b/rsconnect/actions.py index 73af8306..0a741af6 100644 --- a/rsconnect/actions.py +++ b/rsconnect/actions.py @@ -1769,7 +1769,7 @@ def create_quarto_deployment_bundle( def deploy_bundle( - remote_server: api.TargetableServer, + remote_server, app_id: int, deployment_name: str, # legacy, no longer used; managed by RSConnectExecutor title: str, From 34a4ddb4d720013337d7ab10d471091a0c1fc302 Mon Sep 17 00:00:00 2001 From: Bincheng Wu Date: Fri, 30 Sep 2022 17:39:21 -0400 Subject: [PATCH 3/5] update Executor init for actions. deploy_bundle --- rsconnect/actions.py | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/rsconnect/actions.py b/rsconnect/actions.py index 0a741af6..5bd09496 100644 --- a/rsconnect/actions.py +++ b/rsconnect/actions.py @@ -1769,9 +1769,9 @@ def create_quarto_deployment_bundle( def deploy_bundle( - remote_server, + remote_server: api.TargetableServer, app_id: int, - deployment_name: str, # legacy, no longer used; managed by RSConnectExecutor + deployment_name: str, title: str, title_is_default: bool, bundle: typing.IO[bytes], @@ -1790,19 +1790,29 @@ def deploy_bundle( :return: application information about the deploy. This includes the ID of the task that may be queried for deployment progress. """ - ce = RSConnectExecutor( - url=remote_server.url, - api_key=remote_server.api_key, - insecure=remote_server.insecure, - ca_data=remote_server.ca_data, - cookies=remote_server.cookie_jar, + if isinstance(remote_server, api.RSConnectServer): + ce = RSConnectExecutor( + url=remote_server.url, + api_key=remote_server.api_key, + insecure=remote_server.insecure, + ca_data=remote_server.ca_data, + cookies=remote_server.cookie_jar, + ) + elif isinstance(remote_server, api.ShinyappsServer): + ce = RSConnectExecutor( + url=remote_server.url, + account=remote_server.account_name, + token=remote_server.token, + secret=remote_server.secret, + ) + ce.deploy_bundle( app_id=app_id, + deployment_name=deployment_name, title=title, title_is_default=title_is_default, bundle=bundle, env_vars=env_vars, ) - ce.deploy_bundle() return ce.state["deployed_info"] From 96435e7023d1fa5e7b23e4cd2270fef0a2347225 Mon Sep 17 00:00:00 2001 From: Bincheng Wu Date: Fri, 30 Sep 2022 17:41:42 -0400 Subject: [PATCH 4/5] add exeception --- rsconnect/actions.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rsconnect/actions.py b/rsconnect/actions.py index 5bd09496..823f4ae8 100644 --- a/rsconnect/actions.py +++ b/rsconnect/actions.py @@ -1805,6 +1805,8 @@ def deploy_bundle( token=remote_server.token, secret=remote_server.secret, ) + else: + raise RSConnectException("Unable to infer Connect client.") ce.deploy_bundle( app_id=app_id, deployment_name=deployment_name, From 159fc4d0b7389f8cb2ea2077082337ad40b8becc Mon Sep 17 00:00:00 2001 From: Bincheng Wu Date: Wed, 12 Oct 2022 11:50:49 -0400 Subject: [PATCH 5/5] include CloudServer in actions.deploy_bundle --- rsconnect/actions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rsconnect/actions.py b/rsconnect/actions.py index d71a0c2c..80135385 100644 --- a/rsconnect/actions.py +++ b/rsconnect/actions.py @@ -1798,7 +1798,7 @@ def deploy_bundle( ca_data=remote_server.ca_data, cookies=remote_server.cookie_jar, ) - elif isinstance(remote_server, api.ShinyappsServer): + elif isinstance(remote_server, api.ShinyappsServer) or isinstance(remote_server, api.CloudServer): ce = RSConnectExecutor( url=remote_server.url, account=remote_server.account_name,