Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pilot 4952: Update cli listing command to allow user list specific files/folders under given root level folder #135

Merged
merged 18 commits into from
Apr 25, 2024

Conversation

colorzzr
Copy link
Member

@colorzzr colorzzr commented Apr 5, 2024

Summary

Description

We used to list project folder together with user name folder. After this refactory, we would like to list them in different path, “shared” and “users”. Because there is no project folder concept in pilot, we will remove the [p] prefix while listing shared folders as well.

Implementation Detail

While listing items, user can use follow command to list items under shared folder or name folder:

pilotcli file list -p [indoctestproject/shared/]
pilotcli file list -p [indoctestproject/users/]

Update help info based on above changes

Outcome

After refactor cli, user can list items seperately. When listing under project code directly. only shared and users are visible.

JIRA Issues

Pilot 4952

Type of Change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update
  • Refactor or reformatting

Testing

Are there any new or updated tests to validate the changes?

  • Yes
  • No

Test Directions

update old test cases

@colorzzr colorzzr added the enhancement New feature or request label Apr 5, 2024
@colorzzr colorzzr self-assigned this Apr 5, 2024
Copy link

github-actions bot commented Apr 5, 2024

Coverage

Coverage Report
FileStmtsMissCoverMissing
__init__.py00100% 
pilotcli.py0310%5, 7–8, 10–14, 17–21, 23–28, 31–39, 42–44
commands
   __init__.py00100% 
   container_registry.py01959%16, 22–24, 31–33, 41–44, 50–53, 62–65
   dataset.py04844%19, 36–38, 41–48, 50–60, 78–80, 83–91, 93–103, 123, 127
   entry_point.py01085%39, 45, 89–91, 93–97
   file.py04084%40, 152–154, 158, 163, 166–168, 184–185, 227, 312–319, 321, 323, 337–343, 345, 374, 376, 379, 425, 428, 445–447, 453–454
   project.py0197%17
   user.py0685%23, 40, 48, 56, 72–73
configs
   __init__.py00100% 
   app_config.py00100% 
   config.py00100% 
   user_config.py01784%61, 70, 114, 124, 131, 135, 139, 143, 147, 151, 155, 159, 163, 167, 171, 175, 179
models
   __init__.py00100% 
   enums.py00100% 
   item.py00100% 
   service_meta_class.py0180%9
   singleton.py00100% 
   upload_form.py0625%30, 42–46
resources
   custom_error.py00100% 
   custom_help.py00100% 
services
   __init__.py00100% 
services/container_registry_manager
   container_registry_manager.py010817%19–20, 23–26, 29–33, 36–44, 48–60, 62–64, 68–82, 84–86, 90–99, 101–103, 107–110, 125–136, 140–143, 147–162, 164, 166–169
services/crypto
   __init__.py00100% 
   crypto.py01940%35, 43–47, 49, 59–61, 69–75, 77, 79
services/dataset_manager
   dataset_detail.py02370%42, 44, 61, 68–73, 75–77, 79–88, 90
   dataset_download.py01983%56, 72–73, 84, 96, 98–99, 101–102, 104, 106–108, 116–119, 153, 165
   dataset_list.py0878%37, 43–46, 48–50
   model.py00100% 
services/file_manager
   __init__.py00100% 
   file_list.py01676%50, 52, 72–74, 82–85, 87, 93–98
   file_manifests.py09525%19–24, 39–43, 47–48, 51–59, 61, 65–68, 71–75, 77, 81–82, 85–87, 91–92, 95–102, 104, 107, 109–110, 112–113, 115–118, 123–129, 134–139, 142–148, 150–152, 155–161, 163–165, 167–170
   file_tag.py03931%23, 27–31, 33, 36–48, 50–52, 54–55, 59–61, 64–68, 70–73, 75–76
services/file_manager/file_download
   __init__.py00100% 
   download_client.py017423%44–45, 47–53, 56–57, 59–60, 69, 71–72, 76–79, 86, 91–94, 96, 98–106, 108, 110, 114–119, 121, 124–125, 128–130, 132–134, 136–137, 139–141, 145–153, 156–161, 165–174, 182–184, 186–193, 195–199, 204–214, 216–217, 220–221, 226–227, 231–236, 240–241, 244–246, 248–259, 263–266, 269–273, 275–277, 279–281, 283–284, 286, 290–292, 294–307, 309
   model.py0187%15
services/file_manager/file_metadata
   __init__.py00100% 
   file_metadata_client.py0395%97–99
services/file_manager/file_move
   __init__.py00100% 
   file_move_client.py0790%67, 76, 85–87, 89, 116
services/file_manager/file_upload
   __init__.py00100% 
   exception.py0175%10
   file_upload.py02884%36–43, 97–99, 111, 142–143, 147, 152, 189, 209–211, 252–253, 255–257, 331, 334, 338
   models.py0591%24, 44, 150–152
   upload_client.py07760%101–104, 207–209, 223–229, 231–235, 237–249, 251, 295, 298, 302, 304–306, 308–311, 315–319, 321, 325, 327, 329, 331, 350, 380–381, 386, 390–393, 397, 413, 415–417, 424, 429–430, 432, 434–435, 437–440, 442
   upload_validator.py02156%29–31, 34–39, 42–48, 51–52, 57, 59, 61
services/logger_services
   __init__.py00100% 
   log_functions.py00100% 
services/output_manager
   __init__.py00100% 
   error_handler.py00100% 
   help_page.py00100% 
   message_handler.py05770%23, 45, 50, 65–67, 72, 82, 87, 100, 105, 112, 117, 122, 126, 142, 177, 187, 196, 214, 224, 243, 265–276, 287–292, 294–300, 311, 315–316, 320–321, 323–324, 328, 332, 336
services/project_manager
   __init__.py00100% 
   project.py0878%38, 44–47, 49–51
services/user_authentication
   __init__.py00100% 
   decorator.py0293%27, 30
   token_manager.py0986%26, 41–42, 73, 76, 91, 96, 100, 105
   user_login_logout.py04266%30–31, 41, 122, 126–132, 134–136, 140–141, 145–152, 154–156, 160–161, 168–173, 175–177, 181–184
utils
   __init__.py00100% 
   aggregated.py02283%52, 64, 104, 118–119, 129–130, 132, 156–163, 165–166, 194, 202, 219–220
TOTAL311196369% 

@colorzzr colorzzr requested review from erikdvlp and Samantha77 and removed request for erikdvlp April 23, 2024 15:12
folder_name = temp_paths[2]
else:
folder_name = os.path.join(temp_paths[1], temp_paths[2])
folder_name = temp_paths[2]
else:
SrvErrorHandler.customized_handle(ECustomizedError.INVALID_NAMEFOLDER, True)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We may want to change the error message to reflect invlid folder structure for either name folder or shared folder

Copy link
Member

@Samantha77 Samantha77 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs explicit error message for folder structure issue

@colorzzr
Copy link
Member Author

Needs explicit error message for folder structure issue

Thanks for catching that!

@colorzzr colorzzr requested a review from Samantha77 April 25, 2024 14:38
@colorzzr colorzzr merged commit 4dfccb2 into develop Apr 25, 2024
1 check passed
andricDu pushed a commit that referenced this pull request May 23, 2024
…les/folders under given root level folder (#135)

* add [p] prefix for project folder when listing items under project

* group itemprefix class with itemtype class

* add double quotation when item name contains space

* change enum type PROJECTFOLDER to SHAREDFOLDER

* replace PROJECTFOLDER with SHAREDFOLDER

* fixup test cases

* fixup logic for different prefix

* add prefix for name folder

* bump up version to 3.0.0

* fixup test cases

* fixup test cases

* replace hardcoded string with enum value in test cases

* remove the reference of project_folder

* fixup test cases

* update error message with new top level folder structure

---------

Co-authored-by: zhiren <zzhan@indocresearch.org>
Former-commit-id: 61f8a8b
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants