From b4fd0fae6c0eccbc4909dac9b9e7699c8cbfe309 Mon Sep 17 00:00:00 2001 From: Sanghun Lee Date: Mon, 10 Feb 2025 14:01:11 +0900 Subject: [PATCH 1/3] feat: Update vfolder CLI cmd to support unmanaged vfolders --- src/ai/backend/client/cli/vfolder.py | 33 +++++++++++----------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/src/ai/backend/client/cli/vfolder.py b/src/ai/backend/client/cli/vfolder.py index 584c900843..65b3d9eac5 100644 --- a/src/ai/backend/client/cli/vfolder.py +++ b/src/ai/backend/client/cli/vfolder.py @@ -79,9 +79,11 @@ def list_allowed_types(): @click.option( "--unmanaged", "host_path", - is_flag=True, + metavar="HOST_PATH", + type=str, + default=None, help=( - "Treats HOST as a mount point of unmanaged virtual folder. " + "Map a given host path to a virtual folder. " "This option can only be used by Admin or Superadmin." ), ) @@ -124,24 +126,15 @@ def create(name, host, group, host_path, usage_mode, permission, cloneable): """ with Session() as session: try: - if host_path: - result = session.VFolder.create( - name=name, - unmanaged_path=host, - group=group, - usage_mode=usage_mode, - permission=permission, - cloneable=cloneable, - ) - else: - result = session.VFolder.create( - name=name, - host=host, - group=group, - usage_mode=usage_mode, - permission=permission, - cloneable=cloneable, - ) + result = session.VFolder.create( + name=name, + host=host, + unmanaged_path=host_path, + group=group, + usage_mode=usage_mode, + permission=permission, + cloneable=cloneable, + ) print('Virtual folder "{0}" is created.'.format(result["name"])) except Exception as e: print_error(e) From 57b5accedeac6a96999afddca1ba111267b282f5 Mon Sep 17 00:00:00 2001 From: Sanghun Lee Date: Mon, 10 Feb 2025 14:28:07 +0900 Subject: [PATCH 2/3] Add new option and leave the existing option as a deprecated legacy --- src/ai/backend/client/cli/vfolder.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/ai/backend/client/cli/vfolder.py b/src/ai/backend/client/cli/vfolder.py index 65b3d9eac5..304abb89b4 100644 --- a/src/ai/backend/client/cli/vfolder.py +++ b/src/ai/backend/client/cli/vfolder.py @@ -79,7 +79,17 @@ def list_allowed_types(): @click.option( "--unmanaged", "host_path", - metavar="HOST_PATH", + is_flag=True, + help=( + "Deprecated since 25.3.0. Use `--unmanaged-path` instead. " + "Treats HOST as a mount point of unmanaged virtual folder. " + "This option can only be used by Admin or Superadmin." + ), +) +@click.option( + "--unmanaged-path", + "unmanaged_path", + metavar="UNMANAGED_PATH", type=str, default=None, help=( @@ -117,7 +127,7 @@ def list_allowed_types(): is_flag=True, help="Allows the virtual folder to be cloned by users.", ) -def create(name, host, group, host_path, usage_mode, permission, cloneable): +def create(name, host, group, host_path, unmanaged_path, usage_mode, permission, cloneable): """Create a new virtual folder. \b @@ -129,7 +139,7 @@ def create(name, host, group, host_path, usage_mode, permission, cloneable): result = session.VFolder.create( name=name, host=host, - unmanaged_path=host_path, + unmanaged_path=unmanaged_path, group=group, usage_mode=usage_mode, permission=permission, From 55fe7ccf0ff76fa4411e84e027b42581b3ac208b Mon Sep 17 00:00:00 2001 From: Sanghun Lee Date: Mon, 10 Feb 2025 14:29:09 +0900 Subject: [PATCH 3/3] add news fragment --- changes/3631.feature.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 changes/3631.feature.md diff --git a/changes/3631.feature.md b/changes/3631.feature.md new file mode 100644 index 0000000000..dab916fc89 --- /dev/null +++ b/changes/3631.feature.md @@ -0,0 +1 @@ +Update vfolder CLI cmd to support unmanaged vfolders