[jira] [Commented] (AIRAVATA-3649) Automatically calculate queue settings with custom code

2023-09-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3649?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17769750#comment-17769750
 ] 

ASF subversion and git services commented on AIRAVATA-3649:
---

Commit 6339f7047f954af9cc269f8771c031695291e411 in 
airavata-cookiecutter-django-app's branch refs/heads/main from Marcus Christie
[ 
https://gitbox.apache.org/repos/asf?p=airavata-cookiecutter-django-app.git;h=6339f70
 ]

AIRAVATA-3649 Adding documentation link


> Automatically calculate queue settings with custom code
> ---
>
> Key: AIRAVATA-3649
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3649
> Project: Airavata
>  Issue Type: New Feature
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> For some applications the ideal queue settings for an experiment can be 
> straightforwardly calculated from the input values for the experiment. An 
> administrator may want to define some custom code to calculate the ideal 
> queue settings and then register it for use with one or more applications. 
> This will make streamline the use of the gateway for users and also reduce 
> errors in over- or under-allocating resources.
> h3. Design
> - custom code to be implemented as a module function that takes 
> experiment_model and returns a dictionary of possibly different queue setting 
> values
> - decorator {{@queue_settings_calculator}}
> - decorator attributes: id (allows renaming function), name (display to user)
> - decorator adds each decorated function to a registry
> - new REST API returns information about all registered 
> {{@queue_settings_calculator}} functions
> - new application_settings field for queue_settings_calculator id. UI 
> provides drop-down to allow admin to select a queue_settings_calculator
> - Experiment Editor will call calculate_queue_settings REST API if the 
> application interface has a queue_settings_calculator configured. Will pass 
> the entire Experiment Model. Updates the queue settings with the returned 
> values.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-09-26 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17769229#comment-17769229
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit e88ae808bcc8684a408900cc55f6eb5de3b063af in airavata-django-portal's 
branch refs/heads/AIRAVATA-3698--Add-support-for-Python-3.11 from Marcus 
Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=e88ae808 ]

AIRAVATA-3698 Fix new default theme page revisions


> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-09-26 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17769228#comment-17769228
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit 13e2d6f6be0115a88b532bfc580ad9243ecb6f9f in airavata-django-portal's 
branch refs/heads/AIRAVATA-3698--Add-support-for-Python-3.11 from Marcus 
Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=13e2d6f6 ]

Merge branch 'develop' into AIRAVATA-3698--Add-support-for-Python-3.11


> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-09-26 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17769227#comment-17769227
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit 75ff2835a078a515991dc48082fc19fdd9a72ae5 in airavata-django-portal's 
branch refs/heads/AIRAVATA-3698--Add-support-for-Python-3.11 from Marcus 
Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=75ff2835 ]

Merge pull request #186 from apache/AIRAVATA-3698-fix-page-revision-content-type

AIRAVATA-3698 management command to fix up the content type id in page revision 
json

> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-09-26 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17769226#comment-17769226
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit dd41406b112c7a6d5d2af74901f6de291b733ade in airavata-django-portal's 
branch refs/heads/AIRAVATA-3698--Add-support-for-Python-3.11 from Marcus 
Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=dd41406b ]

AIRAVATA-3698 management command to fix up the content type id in page revision 
json


> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-09-26 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17769200#comment-17769200
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit dd41406b112c7a6d5d2af74901f6de291b733ade in airavata-django-portal's 
branch refs/heads/develop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=dd41406b ]

AIRAVATA-3698 management command to fix up the content type id in page revision 
json


> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-09-26 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17769201#comment-17769201
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit 75ff2835a078a515991dc48082fc19fdd9a72ae5 in airavata-django-portal's 
branch refs/heads/develop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=75ff2835 ]

Merge pull request #186 from apache/AIRAVATA-3698-fix-page-revision-content-type

AIRAVATA-3698 management command to fix up the content type id in page revision 
json

> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-09-25 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17768898#comment-17768898
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit dd41406b112c7a6d5d2af74901f6de291b733ade in airavata-django-portal's 
branch refs/heads/master from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=dd41406b ]

AIRAVATA-3698 management command to fix up the content type id in page revision 
json


> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-09-25 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17768899#comment-17768899
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit 75ff2835a078a515991dc48082fc19fdd9a72ae5 in airavata-django-portal's 
branch refs/heads/master from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=75ff2835 ]

Merge pull request #186 from apache/AIRAVATA-3698-fix-page-revision-content-type

AIRAVATA-3698 management command to fix up the content type id in page revision 
json

> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-09-25 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17768811#comment-17768811
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit dd41406b112c7a6d5d2af74901f6de291b733ade in airavata-django-portal's 
branch refs/heads/AIRAVATA-3698-fix-page-revision-content-type from Marcus 
Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=dd41406b ]

AIRAVATA-3698 management command to fix up the content type id in page revision 
json


> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3697) Handle unicode characters in file names

2023-09-21 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17767584#comment-17767584
 ] 

ASF subversion and git services commented on AIRAVATA-3697:
---

Commit 71bc7c3d30e34daef0b308de15092f00cfe821cb in airavata's branch 
refs/heads/master from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=71bc7c3d30 ]

AIRAVATA-3697 Set lang and locale on WSGIDaemonProcess

Copying this change over from the template to the per gateway override files.


> Handle unicode characters in file names
> ---
>
> Key: AIRAVATA-3697
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3697
> Project: Airavata
>  Issue Type: Bug
>  Components: Airavata API, Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
> Attachments: Photophysical properties and photodegradation mechanism 
> of 2-(2′-furanyl)-1H-benzimidazole (Fuberidazole) - ScienceDirect.html
>
>
> Getting the following Django error when browsing experiment output files with 
> unicode characters in the file names:
> {code}
> Traceback (most recent call last):
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/rest_framework/views.py",
>  line 506, in dispatch
>response = handler(request, *args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1467, in get
>return self._create_response(request, experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1471, in _create_response
>directories, files = user_storage.list_experiment_dir(request, 
> experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 629, in list_experiment_dir
>backend=backend, owner=experiment.userName)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 760, in _get_data_product_uri
>if user_file.exists():
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/query.py",
>  line 808, in exists
>return self.query.has_results(using=self.db)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/query.py",
>  line 561, in has_results
>return compiler.has_results()
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1145, in has_results
>return bool(self.execute_sql(SINGLE))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1175, in execute_sql
>cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 66, in execute
>return self._execute_with_wrappers(sql, params, many=False, 
> executor=self._execute)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 75, in _execute_with_wrappers
>return executor(sql, params, many, context)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 84, in _execute
>return self.cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/mysql/base.py",
>  line 73, in execute
>return self.cursor.execute(query, args)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/cursors.py",
>  line 199, in execute
>args = tuple(map(db.literal, args))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/connections.py",
>  line 280, in literal
>s = self.string_literal(o.encode(self.encoding))
> During handling of the above exception ('utf-8' codec can't encode characters 
> in position 197-199: surrogates not allowed), another exception occurred:
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/exception.py",
>  line 47, in inner
>response = get_response(request)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/base.py",
>  line 181, in _get_response
>response = wrapped_callback(request, *callback_args, **callback_kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/decorators/csrf.py",
>  line 54, in wrapped_view
>return view_func(*args, **kwargs)
>  File 
> 

[jira] [Commented] (AIRAVATA-3697) Handle unicode characters in file names

2023-09-21 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17767585#comment-17767585
 ] 

ASF subversion and git services commented on AIRAVATA-3697:
---

Commit b3d68364c323bd03af0f435c54b6039a3743f148 in airavata's branch 
refs/heads/master from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=b3d68364c3 ]

Merge branch 'AIRAVATA-3697'


> Handle unicode characters in file names
> ---
>
> Key: AIRAVATA-3697
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3697
> Project: Airavata
>  Issue Type: Bug
>  Components: Airavata API, Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
> Attachments: Photophysical properties and photodegradation mechanism 
> of 2-(2′-furanyl)-1H-benzimidazole (Fuberidazole) - ScienceDirect.html
>
>
> Getting the following Django error when browsing experiment output files with 
> unicode characters in the file names:
> {code}
> Traceback (most recent call last):
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/rest_framework/views.py",
>  line 506, in dispatch
>response = handler(request, *args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1467, in get
>return self._create_response(request, experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1471, in _create_response
>directories, files = user_storage.list_experiment_dir(request, 
> experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 629, in list_experiment_dir
>backend=backend, owner=experiment.userName)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 760, in _get_data_product_uri
>if user_file.exists():
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/query.py",
>  line 808, in exists
>return self.query.has_results(using=self.db)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/query.py",
>  line 561, in has_results
>return compiler.has_results()
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1145, in has_results
>return bool(self.execute_sql(SINGLE))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1175, in execute_sql
>cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 66, in execute
>return self._execute_with_wrappers(sql, params, many=False, 
> executor=self._execute)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 75, in _execute_with_wrappers
>return executor(sql, params, many, context)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 84, in _execute
>return self.cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/mysql/base.py",
>  line 73, in execute
>return self.cursor.execute(query, args)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/cursors.py",
>  line 199, in execute
>args = tuple(map(db.literal, args))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/connections.py",
>  line 280, in literal
>s = self.string_literal(o.encode(self.encoding))
> During handling of the above exception ('utf-8' codec can't encode characters 
> in position 197-199: surrogates not allowed), another exception occurred:
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/exception.py",
>  line 47, in inner
>response = get_response(request)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/base.py",
>  line 181, in _get_response
>response = wrapped_callback(request, *callback_args, **callback_kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/decorators/csrf.py",
>  line 54, in wrapped_view
>return view_func(*args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/generic/base.py",
>  line 70, in view
>return self.dispatch(request, *args, **kwargs)
>  File 
> 

[jira] [Commented] (AIRAVATA-3697) Handle unicode characters in file names

2023-09-21 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17767583#comment-17767583
 ] 

ASF subversion and git services commented on AIRAVATA-3697:
---

Commit 6fcefb2c476fd73cc5070d378f0730713f5ac65f in airavata's branch 
refs/heads/master from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=6fcefb2c47 ]

AIRAVATA-3697 Switching to column level utf8 character set


> Handle unicode characters in file names
> ---
>
> Key: AIRAVATA-3697
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3697
> Project: Airavata
>  Issue Type: Bug
>  Components: Airavata API, Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
> Attachments: Photophysical properties and photodegradation mechanism 
> of 2-(2′-furanyl)-1H-benzimidazole (Fuberidazole) - ScienceDirect.html
>
>
> Getting the following Django error when browsing experiment output files with 
> unicode characters in the file names:
> {code}
> Traceback (most recent call last):
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/rest_framework/views.py",
>  line 506, in dispatch
>response = handler(request, *args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1467, in get
>return self._create_response(request, experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1471, in _create_response
>directories, files = user_storage.list_experiment_dir(request, 
> experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 629, in list_experiment_dir
>backend=backend, owner=experiment.userName)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 760, in _get_data_product_uri
>if user_file.exists():
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/query.py",
>  line 808, in exists
>return self.query.has_results(using=self.db)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/query.py",
>  line 561, in has_results
>return compiler.has_results()
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1145, in has_results
>return bool(self.execute_sql(SINGLE))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1175, in execute_sql
>cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 66, in execute
>return self._execute_with_wrappers(sql, params, many=False, 
> executor=self._execute)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 75, in _execute_with_wrappers
>return executor(sql, params, many, context)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 84, in _execute
>return self.cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/mysql/base.py",
>  line 73, in execute
>return self.cursor.execute(query, args)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/cursors.py",
>  line 199, in execute
>args = tuple(map(db.literal, args))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/connections.py",
>  line 280, in literal
>s = self.string_literal(o.encode(self.encoding))
> During handling of the above exception ('utf-8' codec can't encode characters 
> in position 197-199: surrogates not allowed), another exception occurred:
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/exception.py",
>  line 47, in inner
>response = get_response(request)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/base.py",
>  line 181, in _get_response
>response = wrapped_callback(request, *callback_args, **callback_kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/decorators/csrf.py",
>  line 54, in wrapped_view
>return view_func(*args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/generic/base.py",
>  line 70, in view
>return 

[jira] [Commented] (AIRAVATA-3697) Handle unicode characters in file names

2023-09-19 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17766801#comment-17766801
 ] 

ASF subversion and git services commented on AIRAVATA-3697:
---

Commit 71bc7c3d30e34daef0b308de15092f00cfe821cb in airavata's branch 
refs/heads/AIRAVATA-3697 from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=71bc7c3d30 ]

AIRAVATA-3697 Set lang and locale on WSGIDaemonProcess

Copying this change over from the template to the per gateway override files.


> Handle unicode characters in file names
> ---
>
> Key: AIRAVATA-3697
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3697
> Project: Airavata
>  Issue Type: Bug
>  Components: Airavata API, Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
> Attachments: Photophysical properties and photodegradation mechanism 
> of 2-(2′-furanyl)-1H-benzimidazole (Fuberidazole) - ScienceDirect.html
>
>
> Getting the following Django error when browsing experiment output files with 
> unicode characters in the file names:
> {code}
> Traceback (most recent call last):
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/rest_framework/views.py",
>  line 506, in dispatch
>response = handler(request, *args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1467, in get
>return self._create_response(request, experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1471, in _create_response
>directories, files = user_storage.list_experiment_dir(request, 
> experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 629, in list_experiment_dir
>backend=backend, owner=experiment.userName)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 760, in _get_data_product_uri
>if user_file.exists():
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/query.py",
>  line 808, in exists
>return self.query.has_results(using=self.db)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/query.py",
>  line 561, in has_results
>return compiler.has_results()
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1145, in has_results
>return bool(self.execute_sql(SINGLE))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1175, in execute_sql
>cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 66, in execute
>return self._execute_with_wrappers(sql, params, many=False, 
> executor=self._execute)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 75, in _execute_with_wrappers
>return executor(sql, params, many, context)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 84, in _execute
>return self.cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/mysql/base.py",
>  line 73, in execute
>return self.cursor.execute(query, args)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/cursors.py",
>  line 199, in execute
>args = tuple(map(db.literal, args))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/connections.py",
>  line 280, in literal
>s = self.string_literal(o.encode(self.encoding))
> During handling of the above exception ('utf-8' codec can't encode characters 
> in position 197-199: surrogates not allowed), another exception occurred:
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/exception.py",
>  line 47, in inner
>response = get_response(request)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/base.py",
>  line 181, in _get_response
>response = wrapped_callback(request, *callback_args, **callback_kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/decorators/csrf.py",
>  line 54, in wrapped_view
>return view_func(*args, **kwargs)
>  File 
> 

[jira] [Commented] (AIRAVATA-3702) User input files renamed with random extension when experiment launched

2023-07-17 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3702?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17743902#comment-17743902
 ] 

ASF subversion and git services commented on AIRAVATA-3702:
---

Commit 335ee8a488b7d64ebd85bbd02019df8d4916d587 in airavata-django-portal's 
branch refs/heads/master from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=335ee8a4 ]

AIRAVATA-3702 Update SDK for bug fix


> User input files renamed with random extension when experiment launched
> ---
>
> Key: AIRAVATA-3702
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3702
> Project: Airavata
>  Issue Type: Bug
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> When a user uploads an input file, that files goes into a staging directory 
> (the user's "tmp" directory). If a user uploads two input files with the same 
> name, the second one will be renamed with some random characters added to the 
> end of the name (see 
> https://docs.djangoproject.com/en/4.2/ref/files/storage/#django.core.files.storage.Storage.get_alternative_name).
> However, the original name of the file should be stored in the 
> replica_catalog and when the file is moved out of the staging directory and 
> into the experiment data directory, it should be renamed back to the 
> original, user-supplied filename. That's failing to happen.
> Actually, it looks like the root of the problem is that the randomized 
> filename is getting stored in replica_catalog.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-07-17 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17743844#comment-17743844
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit f1fb9f198e675cf6513de22a7b18757d8518a0ee in airavata-django-portal's 
branch refs/heads/AIRAVATA-3698--Add-support-for-Python-3.11 from Marcus 
Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=f1fb9f19 ]

Merge branch 'develop' into AIRAVATA-3698--Add-support-for-Python-3.11


> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3702) User input files renamed with random extension when experiment launched

2023-07-17 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3702?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17743843#comment-17743843
 ] 

ASF subversion and git services commented on AIRAVATA-3702:
---

Commit 17d744ddb8b0987e4124dbc37ea1638f35f9f957 in airavata-django-portal's 
branch refs/heads/AIRAVATA-3698--Add-support-for-Python-3.11 from Marcus 
Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=17d744dd ]

Merge branch 
'AIRAVATA-3702--User-input-files-renamed-with-random-extension-when-experiment-launched'
 into develop


> User input files renamed with random extension when experiment launched
> ---
>
> Key: AIRAVATA-3702
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3702
> Project: Airavata
>  Issue Type: Bug
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> When a user uploads an input file, that files goes into a staging directory 
> (the user's "tmp" directory). If a user uploads two input files with the same 
> name, the second one will be renamed with some random characters added to the 
> end of the name (see 
> https://docs.djangoproject.com/en/4.2/ref/files/storage/#django.core.files.storage.Storage.get_alternative_name).
> However, the original name of the file should be stored in the 
> replica_catalog and when the file is moved out of the staging directory and 
> into the experiment data directory, it should be renamed back to the 
> original, user-supplied filename. That's failing to happen.
> Actually, it looks like the root of the problem is that the randomized 
> filename is getting stored in replica_catalog.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3702) User input files renamed with random extension when experiment launched

2023-07-17 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3702?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17743842#comment-17743842
 ] 

ASF subversion and git services commented on AIRAVATA-3702:
---

Commit 335ee8a488b7d64ebd85bbd02019df8d4916d587 in airavata-django-portal's 
branch refs/heads/AIRAVATA-3698--Add-support-for-Python-3.11 from Marcus 
Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=335ee8a4 ]

AIRAVATA-3702 Update SDK for bug fix


> User input files renamed with random extension when experiment launched
> ---
>
> Key: AIRAVATA-3702
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3702
> Project: Airavata
>  Issue Type: Bug
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> When a user uploads an input file, that files goes into a staging directory 
> (the user's "tmp" directory). If a user uploads two input files with the same 
> name, the second one will be renamed with some random characters added to the 
> end of the name (see 
> https://docs.djangoproject.com/en/4.2/ref/files/storage/#django.core.files.storage.Storage.get_alternative_name).
> However, the original name of the file should be stored in the 
> replica_catalog and when the file is moved out of the staging directory and 
> into the experiment data directory, it should be renamed back to the 
> original, user-supplied filename. That's failing to happen.
> Actually, it looks like the root of the problem is that the randomized 
> filename is getting stored in replica_catalog.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3702) User input files renamed with random extension when experiment launched

2023-07-17 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3702?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17743837#comment-17743837
 ] 

ASF subversion and git services commented on AIRAVATA-3702:
---

Commit 335ee8a488b7d64ebd85bbd02019df8d4916d587 in airavata-django-portal's 
branch refs/heads/develop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=335ee8a4 ]

AIRAVATA-3702 Update SDK for bug fix


> User input files renamed with random extension when experiment launched
> ---
>
> Key: AIRAVATA-3702
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3702
> Project: Airavata
>  Issue Type: Bug
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> When a user uploads an input file, that files goes into a staging directory 
> (the user's "tmp" directory). If a user uploads two input files with the same 
> name, the second one will be renamed with some random characters added to the 
> end of the name (see 
> https://docs.djangoproject.com/en/4.2/ref/files/storage/#django.core.files.storage.Storage.get_alternative_name).
> However, the original name of the file should be stored in the 
> replica_catalog and when the file is moved out of the staging directory and 
> into the experiment data directory, it should be renamed back to the 
> original, user-supplied filename. That's failing to happen.
> Actually, it looks like the root of the problem is that the randomized 
> filename is getting stored in replica_catalog.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3702) User input files renamed with random extension when experiment launched

2023-07-17 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3702?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17743838#comment-17743838
 ] 

ASF subversion and git services commented on AIRAVATA-3702:
---

Commit 17d744ddb8b0987e4124dbc37ea1638f35f9f957 in airavata-django-portal's 
branch refs/heads/develop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=17d744dd ]

Merge branch 
'AIRAVATA-3702--User-input-files-renamed-with-random-extension-when-experiment-launched'
 into develop


> User input files renamed with random extension when experiment launched
> ---
>
> Key: AIRAVATA-3702
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3702
> Project: Airavata
>  Issue Type: Bug
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> When a user uploads an input file, that files goes into a staging directory 
> (the user's "tmp" directory). If a user uploads two input files with the same 
> name, the second one will be renamed with some random characters added to the 
> end of the name (see 
> https://docs.djangoproject.com/en/4.2/ref/files/storage/#django.core.files.storage.Storage.get_alternative_name).
> However, the original name of the file should be stored in the 
> replica_catalog and when the file is moved out of the staging directory and 
> into the experiment data directory, it should be renamed back to the 
> original, user-supplied filename. That's failing to happen.
> Actually, it looks like the root of the problem is that the randomized 
> filename is getting stored in replica_catalog.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3702) User input files renamed with random extension when experiment launched

2023-07-17 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3702?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17743836#comment-17743836
 ] 

ASF subversion and git services commented on AIRAVATA-3702:
---

Commit 3a6edf04d58244e5092315dd26afaccc9b60a39e in airavata-django-portal-sdk's 
branch refs/heads/master from Marcus Christie
[ 
https://gitbox.apache.org/repos/asf?p=airavata-django-portal-sdk.git;h=3a6edf0 ]

AIRAVATA-3702 Preserve original filename of input file when it has the same name


> User input files renamed with random extension when experiment launched
> ---
>
> Key: AIRAVATA-3702
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3702
> Project: Airavata
>  Issue Type: Bug
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> When a user uploads an input file, that files goes into a staging directory 
> (the user's "tmp" directory). If a user uploads two input files with the same 
> name, the second one will be renamed with some random characters added to the 
> end of the name (see 
> https://docs.djangoproject.com/en/4.2/ref/files/storage/#django.core.files.storage.Storage.get_alternative_name).
> However, the original name of the file should be stored in the 
> replica_catalog and when the file is moved out of the staging directory and 
> into the experiment data directory, it should be renamed back to the 
> original, user-supplied filename. That's failing to happen.
> Actually, it looks like the root of the problem is that the randomized 
> filename is getting stored in replica_catalog.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3697) Handle unicode characters in file names

2023-07-03 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17739718#comment-17739718
 ] 

ASF subversion and git services commented on AIRAVATA-3697:
---

Commit 6fcefb2c476fd73cc5070d378f0730713f5ac65f in airavata's branch 
refs/heads/develop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=6fcefb2c47 ]

AIRAVATA-3697 Switching to column level utf8 character set


> Handle unicode characters in file names
> ---
>
> Key: AIRAVATA-3697
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3697
> Project: Airavata
>  Issue Type: Bug
>  Components: Airavata API, Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
> Attachments: Photophysical properties and photodegradation mechanism 
> of 2-(2′-furanyl)-1H-benzimidazole (Fuberidazole) - ScienceDirect.html
>
>
> Getting the following Django error when browsing experiment output files with 
> unicode characters in the file names:
> {code}
> Traceback (most recent call last):
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/rest_framework/views.py",
>  line 506, in dispatch
>response = handler(request, *args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1467, in get
>return self._create_response(request, experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1471, in _create_response
>directories, files = user_storage.list_experiment_dir(request, 
> experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 629, in list_experiment_dir
>backend=backend, owner=experiment.userName)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 760, in _get_data_product_uri
>if user_file.exists():
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/query.py",
>  line 808, in exists
>return self.query.has_results(using=self.db)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/query.py",
>  line 561, in has_results
>return compiler.has_results()
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1145, in has_results
>return bool(self.execute_sql(SINGLE))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1175, in execute_sql
>cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 66, in execute
>return self._execute_with_wrappers(sql, params, many=False, 
> executor=self._execute)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 75, in _execute_with_wrappers
>return executor(sql, params, many, context)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 84, in _execute
>return self.cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/mysql/base.py",
>  line 73, in execute
>return self.cursor.execute(query, args)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/cursors.py",
>  line 199, in execute
>args = tuple(map(db.literal, args))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/connections.py",
>  line 280, in literal
>s = self.string_literal(o.encode(self.encoding))
> During handling of the above exception ('utf-8' codec can't encode characters 
> in position 197-199: surrogates not allowed), another exception occurred:
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/exception.py",
>  line 47, in inner
>response = get_response(request)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/base.py",
>  line 181, in _get_response
>response = wrapped_callback(request, *callback_args, **callback_kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/decorators/csrf.py",
>  line 54, in wrapped_view
>return view_func(*args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/generic/base.py",
>  line 70, in view
>return 

[jira] [Commented] (AIRAVATA-3697) Handle unicode characters in file names

2023-07-03 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17739719#comment-17739719
 ] 

ASF subversion and git services commented on AIRAVATA-3697:
---

Commit 3a5b8358cf295ae33d151d59ceacc71279580aa4 in airavata's branch 
refs/heads/develop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=3a5b8358cf ]

Merge branch 'AIRAVATA-3697' into develop


> Handle unicode characters in file names
> ---
>
> Key: AIRAVATA-3697
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3697
> Project: Airavata
>  Issue Type: Bug
>  Components: Airavata API, Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
> Attachments: Photophysical properties and photodegradation mechanism 
> of 2-(2′-furanyl)-1H-benzimidazole (Fuberidazole) - ScienceDirect.html
>
>
> Getting the following Django error when browsing experiment output files with 
> unicode characters in the file names:
> {code}
> Traceback (most recent call last):
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/rest_framework/views.py",
>  line 506, in dispatch
>response = handler(request, *args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1467, in get
>return self._create_response(request, experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1471, in _create_response
>directories, files = user_storage.list_experiment_dir(request, 
> experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 629, in list_experiment_dir
>backend=backend, owner=experiment.userName)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 760, in _get_data_product_uri
>if user_file.exists():
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/query.py",
>  line 808, in exists
>return self.query.has_results(using=self.db)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/query.py",
>  line 561, in has_results
>return compiler.has_results()
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1145, in has_results
>return bool(self.execute_sql(SINGLE))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1175, in execute_sql
>cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 66, in execute
>return self._execute_with_wrappers(sql, params, many=False, 
> executor=self._execute)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 75, in _execute_with_wrappers
>return executor(sql, params, many, context)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 84, in _execute
>return self.cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/mysql/base.py",
>  line 73, in execute
>return self.cursor.execute(query, args)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/cursors.py",
>  line 199, in execute
>args = tuple(map(db.literal, args))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/connections.py",
>  line 280, in literal
>s = self.string_literal(o.encode(self.encoding))
> During handling of the above exception ('utf-8' codec can't encode characters 
> in position 197-199: surrogates not allowed), another exception occurred:
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/exception.py",
>  line 47, in inner
>response = get_response(request)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/base.py",
>  line 181, in _get_response
>response = wrapped_callback(request, *callback_args, **callback_kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/decorators/csrf.py",
>  line 54, in wrapped_view
>return view_func(*args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/generic/base.py",
>  line 70, in view
>return self.dispatch(request, *args, 

[jira] [Commented] (AIRAVATA-3697) Handle unicode characters in file names

2023-07-03 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17739717#comment-17739717
 ] 

ASF subversion and git services commented on AIRAVATA-3697:
---

Commit 6fcefb2c476fd73cc5070d378f0730713f5ac65f in airavata's branch 
refs/heads/AIRAVATA-3697 from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=6fcefb2c47 ]

AIRAVATA-3697 Switching to column level utf8 character set


> Handle unicode characters in file names
> ---
>
> Key: AIRAVATA-3697
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3697
> Project: Airavata
>  Issue Type: Bug
>  Components: Airavata API, Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
> Attachments: Photophysical properties and photodegradation mechanism 
> of 2-(2′-furanyl)-1H-benzimidazole (Fuberidazole) - ScienceDirect.html
>
>
> Getting the following Django error when browsing experiment output files with 
> unicode characters in the file names:
> {code}
> Traceback (most recent call last):
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/rest_framework/views.py",
>  line 506, in dispatch
>response = handler(request, *args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1467, in get
>return self._create_response(request, experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1471, in _create_response
>directories, files = user_storage.list_experiment_dir(request, 
> experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 629, in list_experiment_dir
>backend=backend, owner=experiment.userName)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 760, in _get_data_product_uri
>if user_file.exists():
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/query.py",
>  line 808, in exists
>return self.query.has_results(using=self.db)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/query.py",
>  line 561, in has_results
>return compiler.has_results()
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1145, in has_results
>return bool(self.execute_sql(SINGLE))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1175, in execute_sql
>cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 66, in execute
>return self._execute_with_wrappers(sql, params, many=False, 
> executor=self._execute)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 75, in _execute_with_wrappers
>return executor(sql, params, many, context)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 84, in _execute
>return self.cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/mysql/base.py",
>  line 73, in execute
>return self.cursor.execute(query, args)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/cursors.py",
>  line 199, in execute
>args = tuple(map(db.literal, args))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/connections.py",
>  line 280, in literal
>s = self.string_literal(o.encode(self.encoding))
> During handling of the above exception ('utf-8' codec can't encode characters 
> in position 197-199: surrogates not allowed), another exception occurred:
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/exception.py",
>  line 47, in inner
>response = get_response(request)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/base.py",
>  line 181, in _get_response
>response = wrapped_callback(request, *callback_args, **callback_kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/decorators/csrf.py",
>  line 54, in wrapped_view
>return view_func(*args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/generic/base.py",
>  line 70, in view
>return 

[jira] [Commented] (AIRAVATA-3694) User data archive management commands

2023-07-03 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17739716#comment-17739716
 ] 

ASF subversion and git services commented on AIRAVATA-3694:
---

Commit 161dd0a21b3853446f9d1b35755bdc25af6e5d72 in airavata's branch 
refs/heads/AIRAVATA-3697 from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=161dd0a21b ]

AIRAVATA-3694 Fix comparison when var is a string


> User data archive management commands
> -
>
> Key: AIRAVATA-3694
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3694
> Project: Airavata
>  Issue Type: New Feature
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Create management commands to manage archiving user data. The use case is the 
> gateway admin wants to archive older data and then delete that user data to 
> free up disk space.
> The management commands will handle creating archives (as tarballs) and 
> deleting the data from the user data archive directory. There will also be an 
> unarchive command. There are settings for the max age of files to be archived 
> and for the directory in which archives should be copied.
> How the archive file are archived. It's expected that the gateway admin would 
> periodically (perhaps by cron) copy the archive files from the web server to 
> some other file server.
> h3. Description
> archive_user_data creates a tarball archive of user data for all files and 
> directories that are older than some configured amount of days. In addition 
> to the tarball is a text file that lists all of the files and directories 
> that are archived. The tarball and text file can be periodically pushed to 
> tape backup or any other backup location.
> The configuration settings are 
> - GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS
> - GATEWAY_USER_DATA_ARCHIVE_DIRECTORY
> -- this is the directory in which to place the archive files and is also the 
> place where temporary files are generated. Since the archive files can be 
> large, it's important that there be enough free disk space on the partition 
> where this directory lives
> - GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB
> -- defaults to 1 GB. This can be used to prevent creating a lot of small 
> archives since tape archives often want a few large files instead of many 
> small files.
> h4. Running archive_user_data
> All commands should be run as the gateway server user (pga).
> {code}
> python manage.py archive_user_data --dry-run
> {code}
> This just prints the files and directories that would be archived and exits. 
> Good for checking that configuration is correct, etc.
> {code}
> python manage.py archive_user_data
> {code}
> This will actually create an archive and then delete from user data the files 
> that were archived.
> {code}
> python manage.py archive_user_data --max-age MAX_AGE
> {code}
> The --max-age flag allows overriding the 
> GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS setting. This can be a good option to 
> create the first few archives when introducing the user data archive to an 
> existing gateway.
> h4. Running unarchive_user_data 
> unarchive_user_data requires an archive tarball as input. The main use case 
> for this command is that the gateway administrator wants to restore some 
> particular user data. First, the right archive must be found. The experiment 
> details view in Experiment Statistics will display the name of the archive 
> file for an experiment data directory that has been archived. Use this to 
> then retrieve the tarball from backup. Then run unarchive_user_data on the 
> file.
> {code}
> python manage.py unarchive_user_data 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}
> The timestamps will be restored from the archive, including the last modified 
> timestamps. This means that the next time archive_user_data runs, all files 
> unarchived will be re-archived. Sometimes that is desired, but if you want to 
> reset the last modified times, use the {{--reset-modification}} option:
> {code}
> python manage.py unarchive_user_data --reset-modification 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3694) User data archive management commands

2023-07-03 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17739714#comment-17739714
 ] 

ASF subversion and git services commented on AIRAVATA-3694:
---

Commit 09e6aaf4350cf35ed92555a81e27aeb33d952843 in airavata's branch 
refs/heads/AIRAVATA-3697 from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=09e6aaf435 ]

AIRAVATA-3694 Ansible: configure data archive max ages for scigap hosted 
gateways


> User data archive management commands
> -
>
> Key: AIRAVATA-3694
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3694
> Project: Airavata
>  Issue Type: New Feature
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Create management commands to manage archiving user data. The use case is the 
> gateway admin wants to archive older data and then delete that user data to 
> free up disk space.
> The management commands will handle creating archives (as tarballs) and 
> deleting the data from the user data archive directory. There will also be an 
> unarchive command. There are settings for the max age of files to be archived 
> and for the directory in which archives should be copied.
> How the archive file are archived. It's expected that the gateway admin would 
> periodically (perhaps by cron) copy the archive files from the web server to 
> some other file server.
> h3. Description
> archive_user_data creates a tarball archive of user data for all files and 
> directories that are older than some configured amount of days. In addition 
> to the tarball is a text file that lists all of the files and directories 
> that are archived. The tarball and text file can be periodically pushed to 
> tape backup or any other backup location.
> The configuration settings are 
> - GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS
> - GATEWAY_USER_DATA_ARCHIVE_DIRECTORY
> -- this is the directory in which to place the archive files and is also the 
> place where temporary files are generated. Since the archive files can be 
> large, it's important that there be enough free disk space on the partition 
> where this directory lives
> - GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB
> -- defaults to 1 GB. This can be used to prevent creating a lot of small 
> archives since tape archives often want a few large files instead of many 
> small files.
> h4. Running archive_user_data
> All commands should be run as the gateway server user (pga).
> {code}
> python manage.py archive_user_data --dry-run
> {code}
> This just prints the files and directories that would be archived and exits. 
> Good for checking that configuration is correct, etc.
> {code}
> python manage.py archive_user_data
> {code}
> This will actually create an archive and then delete from user data the files 
> that were archived.
> {code}
> python manage.py archive_user_data --max-age MAX_AGE
> {code}
> The --max-age flag allows overriding the 
> GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS setting. This can be a good option to 
> create the first few archives when introducing the user data archive to an 
> existing gateway.
> h4. Running unarchive_user_data 
> unarchive_user_data requires an archive tarball as input. The main use case 
> for this command is that the gateway administrator wants to restore some 
> particular user data. First, the right archive must be found. The experiment 
> details view in Experiment Statistics will display the name of the archive 
> file for an experiment data directory that has been archived. Use this to 
> then retrieve the tarball from backup. Then run unarchive_user_data on the 
> file.
> {code}
> python manage.py unarchive_user_data 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}
> The timestamps will be restored from the archive, including the last modified 
> timestamps. This means that the next time archive_user_data runs, all files 
> unarchived will be re-archived. Sometimes that is desired, but if you want to 
> reset the last modified times, use the {{--reset-modification}} option:
> {code}
> python manage.py unarchive_user_data --reset-modification 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3694) User data archive management commands

2023-07-03 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17739715#comment-17739715
 ] 

ASF subversion and git services commented on AIRAVATA-3694:
---

Commit ca9d5155baa101fa57fe9c3ed9a13a9d5673ab2f in airavata's branch 
refs/heads/AIRAVATA-3697 from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=ca9d5155ba ]

AIRAVATA-3694 Fix comparison when var is a string


> User data archive management commands
> -
>
> Key: AIRAVATA-3694
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3694
> Project: Airavata
>  Issue Type: New Feature
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Create management commands to manage archiving user data. The use case is the 
> gateway admin wants to archive older data and then delete that user data to 
> free up disk space.
> The management commands will handle creating archives (as tarballs) and 
> deleting the data from the user data archive directory. There will also be an 
> unarchive command. There are settings for the max age of files to be archived 
> and for the directory in which archives should be copied.
> How the archive file are archived. It's expected that the gateway admin would 
> periodically (perhaps by cron) copy the archive files from the web server to 
> some other file server.
> h3. Description
> archive_user_data creates a tarball archive of user data for all files and 
> directories that are older than some configured amount of days. In addition 
> to the tarball is a text file that lists all of the files and directories 
> that are archived. The tarball and text file can be periodically pushed to 
> tape backup or any other backup location.
> The configuration settings are 
> - GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS
> - GATEWAY_USER_DATA_ARCHIVE_DIRECTORY
> -- this is the directory in which to place the archive files and is also the 
> place where temporary files are generated. Since the archive files can be 
> large, it's important that there be enough free disk space on the partition 
> where this directory lives
> - GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB
> -- defaults to 1 GB. This can be used to prevent creating a lot of small 
> archives since tape archives often want a few large files instead of many 
> small files.
> h4. Running archive_user_data
> All commands should be run as the gateway server user (pga).
> {code}
> python manage.py archive_user_data --dry-run
> {code}
> This just prints the files and directories that would be archived and exits. 
> Good for checking that configuration is correct, etc.
> {code}
> python manage.py archive_user_data
> {code}
> This will actually create an archive and then delete from user data the files 
> that were archived.
> {code}
> python manage.py archive_user_data --max-age MAX_AGE
> {code}
> The --max-age flag allows overriding the 
> GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS setting. This can be a good option to 
> create the first few archives when introducing the user data archive to an 
> existing gateway.
> h4. Running unarchive_user_data 
> unarchive_user_data requires an archive tarball as input. The main use case 
> for this command is that the gateway administrator wants to restore some 
> particular user data. First, the right archive must be found. The experiment 
> details view in Experiment Statistics will display the name of the archive 
> file for an experiment data directory that has been archived. Use this to 
> then retrieve the tarball from backup. Then run unarchive_user_data on the 
> file.
> {code}
> python manage.py unarchive_user_data 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}
> The timestamps will be restored from the archive, including the last modified 
> timestamps. This means that the next time archive_user_data runs, all files 
> unarchived will be re-archived. Sometimes that is desired, but if you want to 
> reset the last modified times, use the {{--reset-modification}} option:
> {code}
> python manage.py unarchive_user_data --reset-modification 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-06-28 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17738192#comment-17738192
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit e036cf70a0ce36f0683363047b239b91385e9b10 in airavata's branch 
refs/heads/develop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=e036cf70a0 ]

AIRAVATA-3698 Switch Django deploy to Python 3.9


> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-06-28 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17738193#comment-17738193
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit 54c7adf1ab2d33b062eb77bf0741363529e4717f in airavata's branch 
refs/heads/develop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=54c7adf1ab ]

AIRAVATA-3698 Update mod_wsgi to work with Py 3.9


> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-06-28 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17738194#comment-17738194
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit e8a711a2fcd673f03d80428965b6824a4cdec08a in airavata's branch 
refs/heads/develop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=e8a711a2fc ]

AIRAVATA-3698 Referenc Django virtual env directory in vhost conf


> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-06-28 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17738195#comment-17738195
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit 61841473880e7b765f400c253161233681057366 in airavata's branch 
refs/heads/develop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=6184147388 ]

Merge branch 'AIRAVATA-3698--Add-support-for-Python-3.11' into develop


> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3700) Creating new project bug: Cannot read properties of undefined (reading 'preventDefault')

2023-06-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3700?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17737839#comment-17737839
 ] 

ASF subversion and git services commented on AIRAVATA-3700:
---

Commit 3912deccf734595537cf657ec5c04f6827c8ae67 in airavata-django-portal's 
branch refs/heads/AIRAVATA-3698--Add-support-for-Python-3.11 from Marcus 
Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=3912decc ]

AIRAVATA-3700 Handle ENTER key submission of new project form


> Creating new project bug: Cannot read properties of undefined (reading 
> 'preventDefault')
> 
>
> Key: AIRAVATA-3700
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3700
> Project: Airavata
>  Issue Type: Bug
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> {code}
> Frontend error: Cannot read properties of undefined (reading 
> 'preventDefault'): "\"v-on handler\""
> stacktrace: 
> onCreateProject 
> (webpack://django-airavata-workspace-views/static/django_airavata_workspace/js/components/project/ProjectButtonNew.vue:45:)
> invokeWithErrorHandling 
> (webpack://django../static/common/node_modules/vue/dist/vue.runtime.esm.js:1854:25)
> fns.slice 
> (webpack://django../static/common/node_modules/vue/dist/vue.runtime.esm.js:2179:13)
> invokeWithErrorHandling 
> (webpack://django../static/common/node_modules/vue/dist/vue.runtime.esm.js:1854:25)
> toArray 
> (webpack://django../static/common/node_modules/vue/dist/vue.runtime.esm.js:3882:8)
> onSubmit 
> (webpack://django-airavata-workspace-views/static/django_airavata_workspace/js/components/project/ProjectEditor.vue:97:)
> invokeWithErrorHandling 
> (webpack://django../static/common/node_modules/vue/dist/vue.runtime.esm.js:1854:25)
> fns.slice 
> (webpack://django../static/common/node_modules/vue/dist/vue.runtime.esm.js:2179:13)
> _wrapper 
> (webpack://django../static/common/node_modules/vue/dist/vue.runtime.esm.js:6911:24)
> {code}
> h3. Steps to reproduce:
> 1. Click on the project sidebar in the Workspace.
> 2. Click on the *New Project +* button.
> 3. Enter a name for a new project.
> 4. Press the ENTER key.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-06-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17737840#comment-17737840
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit d253b505f52e8562af2d6f0fe26927b0498762bb in airavata-django-portal's 
branch refs/heads/AIRAVATA-3698--Add-support-for-Python-3.11 from Marcus 
Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=d253b505 ]

Merge branch 'develop' into AIRAVATA-3698--Add-support-for-Python-3.11


> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3700) Creating new project bug: Cannot read properties of undefined (reading 'preventDefault')

2023-06-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3700?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17737838#comment-17737838
 ] 

ASF subversion and git services commented on AIRAVATA-3700:
---

Commit 3912deccf734595537cf657ec5c04f6827c8ae67 in airavata-django-portal's 
branch refs/heads/develop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=3912decc ]

AIRAVATA-3700 Handle ENTER key submission of new project form


> Creating new project bug: Cannot read properties of undefined (reading 
> 'preventDefault')
> 
>
> Key: AIRAVATA-3700
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3700
> Project: Airavata
>  Issue Type: Bug
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> {code}
> Frontend error: Cannot read properties of undefined (reading 
> 'preventDefault'): "\"v-on handler\""
> stacktrace: 
> onCreateProject 
> (webpack://django-airavata-workspace-views/static/django_airavata_workspace/js/components/project/ProjectButtonNew.vue:45:)
> invokeWithErrorHandling 
> (webpack://django../static/common/node_modules/vue/dist/vue.runtime.esm.js:1854:25)
> fns.slice 
> (webpack://django../static/common/node_modules/vue/dist/vue.runtime.esm.js:2179:13)
> invokeWithErrorHandling 
> (webpack://django../static/common/node_modules/vue/dist/vue.runtime.esm.js:1854:25)
> toArray 
> (webpack://django../static/common/node_modules/vue/dist/vue.runtime.esm.js:3882:8)
> onSubmit 
> (webpack://django-airavata-workspace-views/static/django_airavata_workspace/js/components/project/ProjectEditor.vue:97:)
> invokeWithErrorHandling 
> (webpack://django../static/common/node_modules/vue/dist/vue.runtime.esm.js:1854:25)
> fns.slice 
> (webpack://django../static/common/node_modules/vue/dist/vue.runtime.esm.js:2179:13)
> _wrapper 
> (webpack://django../static/common/node_modules/vue/dist/vue.runtime.esm.js:6911:24)
> {code}
> h3. Steps to reproduce:
> 1. Click on the project sidebar in the Workspace.
> 2. Click on the *New Project +* button.
> 3. Enter a name for a new project.
> 4. Press the ENTER key.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-06-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17737714#comment-17737714
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit e8a711a2fcd673f03d80428965b6824a4cdec08a in airavata's branch 
refs/heads/AIRAVATA-3698--Add-support-for-Python-3.11 from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=e8a711a2fc ]

AIRAVATA-3698 Referenc Django virtual env directory in vhost conf


> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-06-26 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17737325#comment-17737325
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit 54c7adf1ab2d33b062eb77bf0741363529e4717f in airavata's branch 
refs/heads/AIRAVATA-3698--Add-support-for-Python-3.11 from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=54c7adf1ab ]

AIRAVATA-3698 Update mod_wsgi to work with Py 3.9


> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-06-26 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17737324#comment-17737324
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit e036cf70a0ce36f0683363047b239b91385e9b10 in airavata's branch 
refs/heads/AIRAVATA-3698--Add-support-for-Python-3.11 from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=e036cf70a0 ]

AIRAVATA-3698 Switch Django deploy to Python 3.9


> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-06-26 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17737253#comment-17737253
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit 7dfe250751bc4be6f644cbc1a45acfdbae53e96c in airavata-django-portal's 
branch refs/heads/AIRAVATA-3698--Add-support-for-Python-3.11 from Marcus 
Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=7dfe2507 ]

AIRAVATA-3698 Pull in fixes for EntryPoint properties


> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-06-26 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17737246#comment-17737246
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit 1bb6b2ab5f4273188e91cadc28c236a931042086 in 
airavata-django-portal-commons's branch refs/heads/main from Marcus Christie
[ 
https://gitbox.apache.org/repos/asf?p=airavata-django-portal-commons.git;h=1bb6b2a
 ]

AIRAVATA-3698 Fix renames of EntryPoint properties


> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-06-22 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17736230#comment-17736230
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit 53585786f4493b4765f778c4b617b7edd6e681f3 in airavata-django-portal's 
branch refs/heads/AIRAVATA-3698--Add-support-for-Python-3.11 from Marcus 
Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=53585786 ]

AIRAVATA-3698 Changing supported Python version to 3.9 - 3.11


> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-06-22 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17736209#comment-17736209
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit 5432028312d2c9130d1bfb99788dec87004213b7 in airavata-django-portal's 
branch refs/heads/AIRAVATA-3698--Add-support-for-Python-3.11 from Marcus 
Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=54320283 ]

AIRAVATA-3698 Fixing deprecation warnings


> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-06-22 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17736210#comment-17736210
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit b47c4e4adb69ea5678ab0b5b45fec9775419d15e in airavata-django-portal's 
branch refs/heads/AIRAVATA-3698--Add-support-for-Python-3.11 from Marcus 
Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=b47c4e4a ]

AIRAVATA-3698 Fixing deprecation warnings in commons package


> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-06-22 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17736207#comment-17736207
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit 703a37a6c399172c36cdda9f99d4dba6c92a334e in airavata-django-portal's 
branch refs/heads/AIRAVATA-3698--Add-support-for-Python-3.11 from Marcus 
Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=703a37a6 ]

AIRAVATA-3698 Upgrade to Wagtail 4.2


> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-06-22 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17736211#comment-17736211
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit 119c88e307e75acb86ec700a0cfe62264eadce55 in airavata-django-portal's 
branch refs/heads/AIRAVATA-3698--Add-support-for-Python-3.11 from Marcus 
Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=119c88e3 ]

AIRAVATA-3698 Upgrading to Django 4.2


> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-06-22 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17736205#comment-17736205
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit 28f1d838456ef0c3dfd227b350fc6a5b9c5a049d in airavata-django-portal's 
branch refs/heads/AIRAVATA-3698--Add-support-for-Python-3.11 from Marcus 
Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=28f1d838 ]

AIRAVATA-3698 Upgrade to Wagtail 3.0, WAGTAILADMIN_BASE_URL setting added


> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-06-22 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17736208#comment-17736208
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit 47f09aecae5a42c5d20921b6b65d712734bc019a in airavata-django-portal's 
branch refs/heads/AIRAVATA-3698--Add-support-for-Python-3.11 from Marcus 
Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=47f09aec ]

AIRAVATA-3698 Upgrade to Wagtail 5.0, remove wagtailfontawesome


> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-06-22 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17736206#comment-17736206
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit 839e35148d9bb4b8911e8f67c2aa000d580004a1 in airavata-django-portal's 
branch refs/heads/AIRAVATA-3698--Add-support-for-Python-3.11 from Marcus 
Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=839e3514 ]

AIRAVATA-3698 Upgrade to Wagtail 4.0


> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3698) Add support for Python 3.11

2023-06-22 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17736169#comment-17736169
 ] 

ASF subversion and git services commented on AIRAVATA-3698:
---

Commit f2c981106d9baea9cab620a6356e181a8222549a in 
airavata-django-portal-commons's branch refs/heads/main from Marcus Christie
[ 
https://gitbox.apache.org/repos/asf?p=airavata-django-portal-commons.git;h=f2c9811
 ]

AIRAVATA-3698 Fixing deprecation warnings


> Add support for Python 3.11
> ---
>
> Key: AIRAVATA-3698
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3698
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Upgrade Wagtail and Django versions to get Python 3.11 support



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3694) User data archive management commands

2023-06-06 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17729819#comment-17729819
 ] 

ASF subversion and git services commented on AIRAVATA-3694:
---

Commit 161dd0a21b3853446f9d1b35755bdc25af6e5d72 in airavata's branch 
refs/heads/develop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=161dd0a21b ]

AIRAVATA-3694 Fix comparison when var is a string


> User data archive management commands
> -
>
> Key: AIRAVATA-3694
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3694
> Project: Airavata
>  Issue Type: New Feature
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Create management commands to manage archiving user data. The use case is the 
> gateway admin wants to archive older data and then delete that user data to 
> free up disk space.
> The management commands will handle creating archives (as tarballs) and 
> deleting the data from the user data archive directory. There will also be an 
> unarchive command. There are settings for the max age of files to be archived 
> and for the directory in which archives should be copied.
> How the archive file are archived. It's expected that the gateway admin would 
> periodically (perhaps by cron) copy the archive files from the web server to 
> some other file server.
> h3. Description
> archive_user_data creates a tarball archive of user data for all files and 
> directories that are older than some configured amount of days. In addition 
> to the tarball is a text file that lists all of the files and directories 
> that are archived. The tarball and text file can be periodically pushed to 
> tape backup or any other backup location.
> The configuration settings are 
> - GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS
> - GATEWAY_USER_DATA_ARCHIVE_DIRECTORY
> -- this is the directory in which to place the archive files and is also the 
> place where temporary files are generated. Since the archive files can be 
> large, it's important that there be enough free disk space on the partition 
> where this directory lives
> - GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB
> -- defaults to 1 GB. This can be used to prevent creating a lot of small 
> archives since tape archives often want a few large files instead of many 
> small files.
> h4. Running archive_user_data
> All commands should be run as the gateway server user (pga).
> {code}
> python manage.py archive_user_data --dry-run
> {code}
> This just prints the files and directories that would be archived and exits. 
> Good for checking that configuration is correct, etc.
> {code}
> python manage.py archive_user_data
> {code}
> This will actually create an archive and then delete from user data the files 
> that were archived.
> {code}
> python manage.py archive_user_data --max-age MAX_AGE
> {code}
> The --max-age flag allows overriding the 
> GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS setting. This can be a good option to 
> create the first few archives when introducing the user data archive to an 
> existing gateway.
> h4. Running unarchive_user_data 
> unarchive_user_data requires an archive tarball as input. The main use case 
> for this command is that the gateway administrator wants to restore some 
> particular user data. First, the right archive must be found. The experiment 
> details view in Experiment Statistics will display the name of the archive 
> file for an experiment data directory that has been archived. Use this to 
> then retrieve the tarball from backup. Then run unarchive_user_data on the 
> file.
> {code}
> python manage.py unarchive_user_data 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}
> The timestamps will be restored from the archive, including the last modified 
> timestamps. This means that the next time archive_user_data runs, all files 
> unarchived will be re-archived. Sometimes that is desired, but if you want to 
> reset the last modified times, use the {{--reset-modification}} option:
> {code}
> python manage.py unarchive_user_data --reset-modification 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3694) User data archive management commands

2023-06-06 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17729818#comment-17729818
 ] 

ASF subversion and git services commented on AIRAVATA-3694:
---

Commit ca9d5155baa101fa57fe9c3ed9a13a9d5673ab2f in airavata's branch 
refs/heads/develop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=ca9d5155ba ]

AIRAVATA-3694 Fix comparison when var is a string


> User data archive management commands
> -
>
> Key: AIRAVATA-3694
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3694
> Project: Airavata
>  Issue Type: New Feature
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Create management commands to manage archiving user data. The use case is the 
> gateway admin wants to archive older data and then delete that user data to 
> free up disk space.
> The management commands will handle creating archives (as tarballs) and 
> deleting the data from the user data archive directory. There will also be an 
> unarchive command. There are settings for the max age of files to be archived 
> and for the directory in which archives should be copied.
> How the archive file are archived. It's expected that the gateway admin would 
> periodically (perhaps by cron) copy the archive files from the web server to 
> some other file server.
> h3. Description
> archive_user_data creates a tarball archive of user data for all files and 
> directories that are older than some configured amount of days. In addition 
> to the tarball is a text file that lists all of the files and directories 
> that are archived. The tarball and text file can be periodically pushed to 
> tape backup or any other backup location.
> The configuration settings are 
> - GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS
> - GATEWAY_USER_DATA_ARCHIVE_DIRECTORY
> -- this is the directory in which to place the archive files and is also the 
> place where temporary files are generated. Since the archive files can be 
> large, it's important that there be enough free disk space on the partition 
> where this directory lives
> - GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB
> -- defaults to 1 GB. This can be used to prevent creating a lot of small 
> archives since tape archives often want a few large files instead of many 
> small files.
> h4. Running archive_user_data
> All commands should be run as the gateway server user (pga).
> {code}
> python manage.py archive_user_data --dry-run
> {code}
> This just prints the files and directories that would be archived and exits. 
> Good for checking that configuration is correct, etc.
> {code}
> python manage.py archive_user_data
> {code}
> This will actually create an archive and then delete from user data the files 
> that were archived.
> {code}
> python manage.py archive_user_data --max-age MAX_AGE
> {code}
> The --max-age flag allows overriding the 
> GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS setting. This can be a good option to 
> create the first few archives when introducing the user data archive to an 
> existing gateway.
> h4. Running unarchive_user_data 
> unarchive_user_data requires an archive tarball as input. The main use case 
> for this command is that the gateway administrator wants to restore some 
> particular user data. First, the right archive must be found. The experiment 
> details view in Experiment Statistics will display the name of the archive 
> file for an experiment data directory that has been archived. Use this to 
> then retrieve the tarball from backup. Then run unarchive_user_data on the 
> file.
> {code}
> python manage.py unarchive_user_data 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}
> The timestamps will be restored from the archive, including the last modified 
> timestamps. This means that the next time archive_user_data runs, all files 
> unarchived will be re-archived. Sometimes that is desired, but if you want to 
> reset the last modified times, use the {{--reset-modification}} option:
> {code}
> python manage.py unarchive_user_data --reset-modification 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3694) User data archive management commands

2023-06-06 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17729817#comment-17729817
 ] 

ASF subversion and git services commented on AIRAVATA-3694:
---

Commit 161dd0a21b3853446f9d1b35755bdc25af6e5d72 in airavata's branch 
refs/heads/master from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=161dd0a21b ]

AIRAVATA-3694 Fix comparison when var is a string


> User data archive management commands
> -
>
> Key: AIRAVATA-3694
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3694
> Project: Airavata
>  Issue Type: New Feature
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Create management commands to manage archiving user data. The use case is the 
> gateway admin wants to archive older data and then delete that user data to 
> free up disk space.
> The management commands will handle creating archives (as tarballs) and 
> deleting the data from the user data archive directory. There will also be an 
> unarchive command. There are settings for the max age of files to be archived 
> and for the directory in which archives should be copied.
> How the archive file are archived. It's expected that the gateway admin would 
> periodically (perhaps by cron) copy the archive files from the web server to 
> some other file server.
> h3. Description
> archive_user_data creates a tarball archive of user data for all files and 
> directories that are older than some configured amount of days. In addition 
> to the tarball is a text file that lists all of the files and directories 
> that are archived. The tarball and text file can be periodically pushed to 
> tape backup or any other backup location.
> The configuration settings are 
> - GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS
> - GATEWAY_USER_DATA_ARCHIVE_DIRECTORY
> -- this is the directory in which to place the archive files and is also the 
> place where temporary files are generated. Since the archive files can be 
> large, it's important that there be enough free disk space on the partition 
> where this directory lives
> - GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB
> -- defaults to 1 GB. This can be used to prevent creating a lot of small 
> archives since tape archives often want a few large files instead of many 
> small files.
> h4. Running archive_user_data
> All commands should be run as the gateway server user (pga).
> {code}
> python manage.py archive_user_data --dry-run
> {code}
> This just prints the files and directories that would be archived and exits. 
> Good for checking that configuration is correct, etc.
> {code}
> python manage.py archive_user_data
> {code}
> This will actually create an archive and then delete from user data the files 
> that were archived.
> {code}
> python manage.py archive_user_data --max-age MAX_AGE
> {code}
> The --max-age flag allows overriding the 
> GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS setting. This can be a good option to 
> create the first few archives when introducing the user data archive to an 
> existing gateway.
> h4. Running unarchive_user_data 
> unarchive_user_data requires an archive tarball as input. The main use case 
> for this command is that the gateway administrator wants to restore some 
> particular user data. First, the right archive must be found. The experiment 
> details view in Experiment Statistics will display the name of the archive 
> file for an experiment data directory that has been archived. Use this to 
> then retrieve the tarball from backup. Then run unarchive_user_data on the 
> file.
> {code}
> python manage.py unarchive_user_data 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}
> The timestamps will be restored from the archive, including the last modified 
> timestamps. This means that the next time archive_user_data runs, all files 
> unarchived will be re-archived. Sometimes that is desired, but if you want to 
> reset the last modified times, use the {{--reset-modification}} option:
> {code}
> python manage.py unarchive_user_data --reset-modification 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3694) User data archive management commands

2023-06-06 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17729816#comment-17729816
 ] 

ASF subversion and git services commented on AIRAVATA-3694:
---

Commit ca9d5155baa101fa57fe9c3ed9a13a9d5673ab2f in airavata's branch 
refs/heads/master from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=ca9d5155ba ]

AIRAVATA-3694 Fix comparison when var is a string


> User data archive management commands
> -
>
> Key: AIRAVATA-3694
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3694
> Project: Airavata
>  Issue Type: New Feature
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Create management commands to manage archiving user data. The use case is the 
> gateway admin wants to archive older data and then delete that user data to 
> free up disk space.
> The management commands will handle creating archives (as tarballs) and 
> deleting the data from the user data archive directory. There will also be an 
> unarchive command. There are settings for the max age of files to be archived 
> and for the directory in which archives should be copied.
> How the archive file are archived. It's expected that the gateway admin would 
> periodically (perhaps by cron) copy the archive files from the web server to 
> some other file server.
> h3. Description
> archive_user_data creates a tarball archive of user data for all files and 
> directories that are older than some configured amount of days. In addition 
> to the tarball is a text file that lists all of the files and directories 
> that are archived. The tarball and text file can be periodically pushed to 
> tape backup or any other backup location.
> The configuration settings are 
> - GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS
> - GATEWAY_USER_DATA_ARCHIVE_DIRECTORY
> -- this is the directory in which to place the archive files and is also the 
> place where temporary files are generated. Since the archive files can be 
> large, it's important that there be enough free disk space on the partition 
> where this directory lives
> - GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB
> -- defaults to 1 GB. This can be used to prevent creating a lot of small 
> archives since tape archives often want a few large files instead of many 
> small files.
> h4. Running archive_user_data
> All commands should be run as the gateway server user (pga).
> {code}
> python manage.py archive_user_data --dry-run
> {code}
> This just prints the files and directories that would be archived and exits. 
> Good for checking that configuration is correct, etc.
> {code}
> python manage.py archive_user_data
> {code}
> This will actually create an archive and then delete from user data the files 
> that were archived.
> {code}
> python manage.py archive_user_data --max-age MAX_AGE
> {code}
> The --max-age flag allows overriding the 
> GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS setting. This can be a good option to 
> create the first few archives when introducing the user data archive to an 
> existing gateway.
> h4. Running unarchive_user_data 
> unarchive_user_data requires an archive tarball as input. The main use case 
> for this command is that the gateway administrator wants to restore some 
> particular user data. First, the right archive must be found. The experiment 
> details view in Experiment Statistics will display the name of the archive 
> file for an experiment data directory that has been archived. Use this to 
> then retrieve the tarball from backup. Then run unarchive_user_data on the 
> file.
> {code}
> python manage.py unarchive_user_data 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}
> The timestamps will be restored from the archive, including the last modified 
> timestamps. This means that the next time archive_user_data runs, all files 
> unarchived will be re-archived. Sometimes that is desired, but if you want to 
> reset the last modified times, use the {{--reset-modification}} option:
> {code}
> python manage.py unarchive_user_data --reset-modification 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3694) User data archive management commands

2023-06-06 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17729808#comment-17729808
 ] 

ASF subversion and git services commented on AIRAVATA-3694:
---

Commit 09e6aaf4350cf35ed92555a81e27aeb33d952843 in airavata's branch 
refs/heads/develop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=09e6aaf435 ]

AIRAVATA-3694 Ansible: configure data archive max ages for scigap hosted 
gateways


> User data archive management commands
> -
>
> Key: AIRAVATA-3694
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3694
> Project: Airavata
>  Issue Type: New Feature
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Create management commands to manage archiving user data. The use case is the 
> gateway admin wants to archive older data and then delete that user data to 
> free up disk space.
> The management commands will handle creating archives (as tarballs) and 
> deleting the data from the user data archive directory. There will also be an 
> unarchive command. There are settings for the max age of files to be archived 
> and for the directory in which archives should be copied.
> How the archive file are archived. It's expected that the gateway admin would 
> periodically (perhaps by cron) copy the archive files from the web server to 
> some other file server.
> h3. Description
> archive_user_data creates a tarball archive of user data for all files and 
> directories that are older than some configured amount of days. In addition 
> to the tarball is a text file that lists all of the files and directories 
> that are archived. The tarball and text file can be periodically pushed to 
> tape backup or any other backup location.
> The configuration settings are 
> - GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS
> - GATEWAY_USER_DATA_ARCHIVE_DIRECTORY
> -- this is the directory in which to place the archive files and is also the 
> place where temporary files are generated. Since the archive files can be 
> large, it's important that there be enough free disk space on the partition 
> where this directory lives
> - GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB
> -- defaults to 1 GB. This can be used to prevent creating a lot of small 
> archives since tape archives often want a few large files instead of many 
> small files.
> h4. Running archive_user_data
> All commands should be run as the gateway server user (pga).
> {code}
> python manage.py archive_user_data --dry-run
> {code}
> This just prints the files and directories that would be archived and exits. 
> Good for checking that configuration is correct, etc.
> {code}
> python manage.py archive_user_data
> {code}
> This will actually create an archive and then delete from user data the files 
> that were archived.
> {code}
> python manage.py archive_user_data --max-age MAX_AGE
> {code}
> The --max-age flag allows overriding the 
> GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS setting. This can be a good option to 
> create the first few archives when introducing the user data archive to an 
> existing gateway.
> h4. Running unarchive_user_data 
> unarchive_user_data requires an archive tarball as input. The main use case 
> for this command is that the gateway administrator wants to restore some 
> particular user data. First, the right archive must be found. The experiment 
> details view in Experiment Statistics will display the name of the archive 
> file for an experiment data directory that has been archived. Use this to 
> then retrieve the tarball from backup. Then run unarchive_user_data on the 
> file.
> {code}
> python manage.py unarchive_user_data 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}
> The timestamps will be restored from the archive, including the last modified 
> timestamps. This means that the next time archive_user_data runs, all files 
> unarchived will be re-archived. Sometimes that is desired, but if you want to 
> reset the last modified times, use the {{--reset-modification}} option:
> {code}
> python manage.py unarchive_user_data --reset-modification 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3697) Handle unicode characters in file names

2023-06-05 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17729502#comment-17729502
 ] 

ASF subversion and git services commented on AIRAVATA-3697:
---

Commit 538745201bd07a88ae3696aa59fa6d8ae4e81ceb in airavata's branch 
refs/heads/master from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=538745201b ]

Merge branch 'AIRAVATA-3697' into develop


> Handle unicode characters in file names
> ---
>
> Key: AIRAVATA-3697
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3697
> Project: Airavata
>  Issue Type: Bug
>  Components: Airavata API, Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
> Attachments: Photophysical properties and photodegradation mechanism 
> of 2-(2′-furanyl)-1H-benzimidazole (Fuberidazole) - ScienceDirect.html
>
>
> Getting the following Django error when browsing experiment output files with 
> unicode characters in the file names:
> {code}
> Traceback (most recent call last):
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/rest_framework/views.py",
>  line 506, in dispatch
>response = handler(request, *args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1467, in get
>return self._create_response(request, experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1471, in _create_response
>directories, files = user_storage.list_experiment_dir(request, 
> experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 629, in list_experiment_dir
>backend=backend, owner=experiment.userName)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 760, in _get_data_product_uri
>if user_file.exists():
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/query.py",
>  line 808, in exists
>return self.query.has_results(using=self.db)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/query.py",
>  line 561, in has_results
>return compiler.has_results()
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1145, in has_results
>return bool(self.execute_sql(SINGLE))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1175, in execute_sql
>cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 66, in execute
>return self._execute_with_wrappers(sql, params, many=False, 
> executor=self._execute)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 75, in _execute_with_wrappers
>return executor(sql, params, many, context)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 84, in _execute
>return self.cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/mysql/base.py",
>  line 73, in execute
>return self.cursor.execute(query, args)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/cursors.py",
>  line 199, in execute
>args = tuple(map(db.literal, args))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/connections.py",
>  line 280, in literal
>s = self.string_literal(o.encode(self.encoding))
> During handling of the above exception ('utf-8' codec can't encode characters 
> in position 197-199: surrogates not allowed), another exception occurred:
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/exception.py",
>  line 47, in inner
>response = get_response(request)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/base.py",
>  line 181, in _get_response
>response = wrapped_callback(request, *callback_args, **callback_kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/decorators/csrf.py",
>  line 54, in wrapped_view
>return view_func(*args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/generic/base.py",
>  line 70, in view
>return self.dispatch(request, *args, 

[jira] [Commented] (AIRAVATA-3697) Handle unicode characters in file names

2023-06-05 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17729501#comment-17729501
 ] 

ASF subversion and git services commented on AIRAVATA-3697:
---

Commit f4cc483734c6f9c674c26e5f6b9627c4d7e9fc96 in airavata's branch 
refs/heads/master from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=f4cc483734 ]

AIRAVATA-3697 Set lang and locale on WSGIDaemonProcess

This is so that the Django portal code can handle filenames with UTF8 
characters.


> Handle unicode characters in file names
> ---
>
> Key: AIRAVATA-3697
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3697
> Project: Airavata
>  Issue Type: Bug
>  Components: Airavata API, Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
> Attachments: Photophysical properties and photodegradation mechanism 
> of 2-(2′-furanyl)-1H-benzimidazole (Fuberidazole) - ScienceDirect.html
>
>
> Getting the following Django error when browsing experiment output files with 
> unicode characters in the file names:
> {code}
> Traceback (most recent call last):
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/rest_framework/views.py",
>  line 506, in dispatch
>response = handler(request, *args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1467, in get
>return self._create_response(request, experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1471, in _create_response
>directories, files = user_storage.list_experiment_dir(request, 
> experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 629, in list_experiment_dir
>backend=backend, owner=experiment.userName)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 760, in _get_data_product_uri
>if user_file.exists():
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/query.py",
>  line 808, in exists
>return self.query.has_results(using=self.db)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/query.py",
>  line 561, in has_results
>return compiler.has_results()
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1145, in has_results
>return bool(self.execute_sql(SINGLE))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1175, in execute_sql
>cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 66, in execute
>return self._execute_with_wrappers(sql, params, many=False, 
> executor=self._execute)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 75, in _execute_with_wrappers
>return executor(sql, params, many, context)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 84, in _execute
>return self.cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/mysql/base.py",
>  line 73, in execute
>return self.cursor.execute(query, args)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/cursors.py",
>  line 199, in execute
>args = tuple(map(db.literal, args))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/connections.py",
>  line 280, in literal
>s = self.string_literal(o.encode(self.encoding))
> During handling of the above exception ('utf-8' codec can't encode characters 
> in position 197-199: surrogates not allowed), another exception occurred:
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/exception.py",
>  line 47, in inner
>response = get_response(request)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/base.py",
>  line 181, in _get_response
>response = wrapped_callback(request, *callback_args, **callback_kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/decorators/csrf.py",
>  line 54, in wrapped_view
>return view_func(*args, **kwargs)
>  File 
> 

[jira] [Commented] (AIRAVATA-3697) Handle unicode characters in file names

2023-06-05 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17729504#comment-17729504
 ] 

ASF subversion and git services commented on AIRAVATA-3697:
---

Commit 8bf8ee00691c016d7357aba094fd43b093aebfe0 in airavata's branch 
refs/heads/master from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=8bf8ee0069 ]

Merge branch 'AIRAVATA-3697' into develop


> Handle unicode characters in file names
> ---
>
> Key: AIRAVATA-3697
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3697
> Project: Airavata
>  Issue Type: Bug
>  Components: Airavata API, Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
> Attachments: Photophysical properties and photodegradation mechanism 
> of 2-(2′-furanyl)-1H-benzimidazole (Fuberidazole) - ScienceDirect.html
>
>
> Getting the following Django error when browsing experiment output files with 
> unicode characters in the file names:
> {code}
> Traceback (most recent call last):
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/rest_framework/views.py",
>  line 506, in dispatch
>response = handler(request, *args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1467, in get
>return self._create_response(request, experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1471, in _create_response
>directories, files = user_storage.list_experiment_dir(request, 
> experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 629, in list_experiment_dir
>backend=backend, owner=experiment.userName)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 760, in _get_data_product_uri
>if user_file.exists():
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/query.py",
>  line 808, in exists
>return self.query.has_results(using=self.db)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/query.py",
>  line 561, in has_results
>return compiler.has_results()
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1145, in has_results
>return bool(self.execute_sql(SINGLE))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1175, in execute_sql
>cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 66, in execute
>return self._execute_with_wrappers(sql, params, many=False, 
> executor=self._execute)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 75, in _execute_with_wrappers
>return executor(sql, params, many, context)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 84, in _execute
>return self.cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/mysql/base.py",
>  line 73, in execute
>return self.cursor.execute(query, args)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/cursors.py",
>  line 199, in execute
>args = tuple(map(db.literal, args))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/connections.py",
>  line 280, in literal
>s = self.string_literal(o.encode(self.encoding))
> During handling of the above exception ('utf-8' codec can't encode characters 
> in position 197-199: surrogates not allowed), another exception occurred:
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/exception.py",
>  line 47, in inner
>response = get_response(request)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/base.py",
>  line 181, in _get_response
>response = wrapped_callback(request, *callback_args, **callback_kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/decorators/csrf.py",
>  line 54, in wrapped_view
>return view_func(*args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/generic/base.py",
>  line 70, in view
>return self.dispatch(request, *args, 

[jira] [Commented] (AIRAVATA-3697) Handle unicode characters in file names

2023-06-05 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17729503#comment-17729503
 ] 

ASF subversion and git services commented on AIRAVATA-3697:
---

Commit 33300327fc98d34ba5a62dbe75aea2678120a065 in airavata's branch 
refs/heads/master from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=33300327fc ]

AIRAVATA-3697 Db migrations and changing PRODUCT_NAME, REPLICA_NAME to clobs


> Handle unicode characters in file names
> ---
>
> Key: AIRAVATA-3697
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3697
> Project: Airavata
>  Issue Type: Bug
>  Components: Airavata API, Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
> Attachments: Photophysical properties and photodegradation mechanism 
> of 2-(2′-furanyl)-1H-benzimidazole (Fuberidazole) - ScienceDirect.html
>
>
> Getting the following Django error when browsing experiment output files with 
> unicode characters in the file names:
> {code}
> Traceback (most recent call last):
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/rest_framework/views.py",
>  line 506, in dispatch
>response = handler(request, *args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1467, in get
>return self._create_response(request, experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1471, in _create_response
>directories, files = user_storage.list_experiment_dir(request, 
> experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 629, in list_experiment_dir
>backend=backend, owner=experiment.userName)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 760, in _get_data_product_uri
>if user_file.exists():
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/query.py",
>  line 808, in exists
>return self.query.has_results(using=self.db)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/query.py",
>  line 561, in has_results
>return compiler.has_results()
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1145, in has_results
>return bool(self.execute_sql(SINGLE))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1175, in execute_sql
>cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 66, in execute
>return self._execute_with_wrappers(sql, params, many=False, 
> executor=self._execute)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 75, in _execute_with_wrappers
>return executor(sql, params, many, context)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 84, in _execute
>return self.cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/mysql/base.py",
>  line 73, in execute
>return self.cursor.execute(query, args)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/cursors.py",
>  line 199, in execute
>args = tuple(map(db.literal, args))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/connections.py",
>  line 280, in literal
>s = self.string_literal(o.encode(self.encoding))
> During handling of the above exception ('utf-8' codec can't encode characters 
> in position 197-199: surrogates not allowed), another exception occurred:
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/exception.py",
>  line 47, in inner
>response = get_response(request)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/base.py",
>  line 181, in _get_response
>response = wrapped_callback(request, *callback_args, **callback_kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/decorators/csrf.py",
>  line 54, in wrapped_view
>return view_func(*args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/generic/base.py",
>  line 70, in view
>return 

[jira] [Commented] (AIRAVATA-3696) Defer instantiating output view providers until after Django apps are ready

2023-06-05 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3696?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17729494#comment-17729494
 ] 

ASF subversion and git services commented on AIRAVATA-3696:
---

Commit eef9d7e5bbc781291e5dc21ce5f683b17517b436 in airavata-django-portal's 
branch refs/heads/staging from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=eef9d7e5 ]

AIRAVATA-3696 removing unused import


> Defer instantiating output view providers until after Django apps are ready
> ---
>
> Key: AIRAVATA-3696
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3696
> Project: Airavata
>  Issue Type: Bug
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Currently in settings.py all output view providers are instantiated. However, 
> they might import code that transitively imports Django models which is not 
> allowed in Django until all apps have been loaded (see 
> https://docs.djangoproject.com/en/3.2/ref/applications/#initialization-process).
>  A better approach would be to instantiate the output view providers in the 
> ApiConfig.ready().
> {code}
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/settings.py",
>  line 644, in 
> OUTPUT_VIEW_PROVIDERS[entry_point.name] = entry_point.load()()
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/pkg_resources/__init__.py",
>  line 2517, in load
> return self.resolve()
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/pkg_resources/__init__.py",
>  line 2523, in resolve
> module = __import__(self.module_name, fromlist=['__name__'], level=0)
>   File 
> "/Users/machrist/Airavata/django/regsnp-django-app/regsnp_django_app/output_views.py",
>  line 32, in 
> from airavata_django_portal_sdk import urls
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/airavata_django_portal_sdk/urls.py",
>  line 6, in 
> from . import views
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/airavata_django_portal_sdk/views.py",
>  line 16, in 
> from rest_framework.decorators import api_view
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/decorators.py",
>  line 13, in 
> from rest_framework.views import APIView
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/views.py",
>  line 17, in 
> from rest_framework.schemas import DefaultSchema
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/schemas/__init__.py",
>  line 33, in 
> authentication_classes=api_settings.DEFAULT_AUTHENTICATION_CLASSES,
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
>  line 225, in __getattr__
> val = perform_import(val, attr)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
>  line 168, in perform_import
> return [import_from_string(item, setting_name) for item in val]
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
>  line 168, in 
> return [import_from_string(item, setting_name) for item in val]
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
>  line 177, in import_from_string
> return import_string(val)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/django/utils/module_loading.py",
>  line 17, in import_string
> module = import_module(module_path)
>   File 
> "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/importlib/__init__.py",
>  line 126, in import_module
> return _bootstrap._gcd_import(name[level:], package, level)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/authentication.py",
>  line 6, in 
> from django_airavata.apps.auth import utils
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/auth/utils.py",
>  line 14, in 
> from . import models
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/auth/models.py",
>  line 17, in 
> class EmailVerification(models.Model):
>   File 
> 

[jira] [Commented] (AIRAVATA-3696) Defer instantiating output view providers until after Django apps are ready

2023-06-05 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3696?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17729493#comment-17729493
 ] 

ASF subversion and git services commented on AIRAVATA-3696:
---

Commit 1bebb7eb5253de3a1cedb57372380ceb98eb8d1b in airavata-django-portal's 
branch refs/heads/staging from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=1bebb7eb ]

AIRAVATA-3696 instantiate output view providers in ready()


> Defer instantiating output view providers until after Django apps are ready
> ---
>
> Key: AIRAVATA-3696
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3696
> Project: Airavata
>  Issue Type: Bug
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Currently in settings.py all output view providers are instantiated. However, 
> they might import code that transitively imports Django models which is not 
> allowed in Django until all apps have been loaded (see 
> https://docs.djangoproject.com/en/3.2/ref/applications/#initialization-process).
>  A better approach would be to instantiate the output view providers in the 
> ApiConfig.ready().
> {code}
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/settings.py",
>  line 644, in 
> OUTPUT_VIEW_PROVIDERS[entry_point.name] = entry_point.load()()
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/pkg_resources/__init__.py",
>  line 2517, in load
> return self.resolve()
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/pkg_resources/__init__.py",
>  line 2523, in resolve
> module = __import__(self.module_name, fromlist=['__name__'], level=0)
>   File 
> "/Users/machrist/Airavata/django/regsnp-django-app/regsnp_django_app/output_views.py",
>  line 32, in 
> from airavata_django_portal_sdk import urls
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/airavata_django_portal_sdk/urls.py",
>  line 6, in 
> from . import views
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/airavata_django_portal_sdk/views.py",
>  line 16, in 
> from rest_framework.decorators import api_view
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/decorators.py",
>  line 13, in 
> from rest_framework.views import APIView
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/views.py",
>  line 17, in 
> from rest_framework.schemas import DefaultSchema
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/schemas/__init__.py",
>  line 33, in 
> authentication_classes=api_settings.DEFAULT_AUTHENTICATION_CLASSES,
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
>  line 225, in __getattr__
> val = perform_import(val, attr)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
>  line 168, in perform_import
> return [import_from_string(item, setting_name) for item in val]
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
>  line 168, in 
> return [import_from_string(item, setting_name) for item in val]
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
>  line 177, in import_from_string
> return import_string(val)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/django/utils/module_loading.py",
>  line 17, in import_string
> module = import_module(module_path)
>   File 
> "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/importlib/__init__.py",
>  line 126, in import_module
> return _bootstrap._gcd_import(name[level:], package, level)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/authentication.py",
>  line 6, in 
> from django_airavata.apps.auth import utils
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/auth/utils.py",
>  line 14, in 
> from . import models
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/auth/models.py",
>  line 17, in 
> class EmailVerification(models.Model):
>   File 
> 

[jira] [Commented] (AIRAVATA-3696) Defer instantiating output view providers until after Django apps are ready

2023-06-05 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3696?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17729498#comment-17729498
 ] 

ASF subversion and git services commented on AIRAVATA-3696:
---

Commit eef9d7e5bbc781291e5dc21ce5f683b17517b436 in airavata-django-portal's 
branch refs/heads/master from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=eef9d7e5 ]

AIRAVATA-3696 removing unused import


> Defer instantiating output view providers until after Django apps are ready
> ---
>
> Key: AIRAVATA-3696
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3696
> Project: Airavata
>  Issue Type: Bug
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Currently in settings.py all output view providers are instantiated. However, 
> they might import code that transitively imports Django models which is not 
> allowed in Django until all apps have been loaded (see 
> https://docs.djangoproject.com/en/3.2/ref/applications/#initialization-process).
>  A better approach would be to instantiate the output view providers in the 
> ApiConfig.ready().
> {code}
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/settings.py",
>  line 644, in 
> OUTPUT_VIEW_PROVIDERS[entry_point.name] = entry_point.load()()
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/pkg_resources/__init__.py",
>  line 2517, in load
> return self.resolve()
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/pkg_resources/__init__.py",
>  line 2523, in resolve
> module = __import__(self.module_name, fromlist=['__name__'], level=0)
>   File 
> "/Users/machrist/Airavata/django/regsnp-django-app/regsnp_django_app/output_views.py",
>  line 32, in 
> from airavata_django_portal_sdk import urls
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/airavata_django_portal_sdk/urls.py",
>  line 6, in 
> from . import views
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/airavata_django_portal_sdk/views.py",
>  line 16, in 
> from rest_framework.decorators import api_view
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/decorators.py",
>  line 13, in 
> from rest_framework.views import APIView
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/views.py",
>  line 17, in 
> from rest_framework.schemas import DefaultSchema
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/schemas/__init__.py",
>  line 33, in 
> authentication_classes=api_settings.DEFAULT_AUTHENTICATION_CLASSES,
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
>  line 225, in __getattr__
> val = perform_import(val, attr)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
>  line 168, in perform_import
> return [import_from_string(item, setting_name) for item in val]
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
>  line 168, in 
> return [import_from_string(item, setting_name) for item in val]
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
>  line 177, in import_from_string
> return import_string(val)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/django/utils/module_loading.py",
>  line 17, in import_string
> module = import_module(module_path)
>   File 
> "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/importlib/__init__.py",
>  line 126, in import_module
> return _bootstrap._gcd_import(name[level:], package, level)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/authentication.py",
>  line 6, in 
> from django_airavata.apps.auth import utils
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/auth/utils.py",
>  line 14, in 
> from . import models
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/auth/models.py",
>  line 17, in 
> class EmailVerification(models.Model):
>   File 
> 

[jira] [Commented] (AIRAVATA-3697) Handle unicode characters in file names

2023-06-05 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17729500#comment-17729500
 ] 

ASF subversion and git services commented on AIRAVATA-3697:
---

Commit a64264c10391df4bddeaa8663e18c3e508382dfc in airavata-django-portal's 
branch refs/heads/master from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=a64264c1 ]

AIRAVATA-3697 fix download of utf8 filename


> Handle unicode characters in file names
> ---
>
> Key: AIRAVATA-3697
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3697
> Project: Airavata
>  Issue Type: Bug
>  Components: Airavata API, Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
> Attachments: Photophysical properties and photodegradation mechanism 
> of 2-(2′-furanyl)-1H-benzimidazole (Fuberidazole) - ScienceDirect.html
>
>
> Getting the following Django error when browsing experiment output files with 
> unicode characters in the file names:
> {code}
> Traceback (most recent call last):
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/rest_framework/views.py",
>  line 506, in dispatch
>response = handler(request, *args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1467, in get
>return self._create_response(request, experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1471, in _create_response
>directories, files = user_storage.list_experiment_dir(request, 
> experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 629, in list_experiment_dir
>backend=backend, owner=experiment.userName)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 760, in _get_data_product_uri
>if user_file.exists():
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/query.py",
>  line 808, in exists
>return self.query.has_results(using=self.db)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/query.py",
>  line 561, in has_results
>return compiler.has_results()
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1145, in has_results
>return bool(self.execute_sql(SINGLE))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1175, in execute_sql
>cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 66, in execute
>return self._execute_with_wrappers(sql, params, many=False, 
> executor=self._execute)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 75, in _execute_with_wrappers
>return executor(sql, params, many, context)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 84, in _execute
>return self.cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/mysql/base.py",
>  line 73, in execute
>return self.cursor.execute(query, args)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/cursors.py",
>  line 199, in execute
>args = tuple(map(db.literal, args))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/connections.py",
>  line 280, in literal
>s = self.string_literal(o.encode(self.encoding))
> During handling of the above exception ('utf-8' codec can't encode characters 
> in position 197-199: surrogates not allowed), another exception occurred:
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/exception.py",
>  line 47, in inner
>response = get_response(request)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/base.py",
>  line 181, in _get_response
>response = wrapped_callback(request, *callback_args, **callback_kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/decorators/csrf.py",
>  line 54, in wrapped_view
>return view_func(*args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/generic/base.py",
>  line 70, in view
>return 

[jira] [Commented] (AIRAVATA-3696) Defer instantiating output view providers until after Django apps are ready

2023-06-05 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3696?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17729497#comment-17729497
 ] 

ASF subversion and git services commented on AIRAVATA-3696:
---

Commit 1bebb7eb5253de3a1cedb57372380ceb98eb8d1b in airavata-django-portal's 
branch refs/heads/master from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=1bebb7eb ]

AIRAVATA-3696 instantiate output view providers in ready()


> Defer instantiating output view providers until after Django apps are ready
> ---
>
> Key: AIRAVATA-3696
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3696
> Project: Airavata
>  Issue Type: Bug
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Currently in settings.py all output view providers are instantiated. However, 
> they might import code that transitively imports Django models which is not 
> allowed in Django until all apps have been loaded (see 
> https://docs.djangoproject.com/en/3.2/ref/applications/#initialization-process).
>  A better approach would be to instantiate the output view providers in the 
> ApiConfig.ready().
> {code}
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/settings.py",
>  line 644, in 
> OUTPUT_VIEW_PROVIDERS[entry_point.name] = entry_point.load()()
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/pkg_resources/__init__.py",
>  line 2517, in load
> return self.resolve()
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/pkg_resources/__init__.py",
>  line 2523, in resolve
> module = __import__(self.module_name, fromlist=['__name__'], level=0)
>   File 
> "/Users/machrist/Airavata/django/regsnp-django-app/regsnp_django_app/output_views.py",
>  line 32, in 
> from airavata_django_portal_sdk import urls
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/airavata_django_portal_sdk/urls.py",
>  line 6, in 
> from . import views
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/airavata_django_portal_sdk/views.py",
>  line 16, in 
> from rest_framework.decorators import api_view
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/decorators.py",
>  line 13, in 
> from rest_framework.views import APIView
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/views.py",
>  line 17, in 
> from rest_framework.schemas import DefaultSchema
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/schemas/__init__.py",
>  line 33, in 
> authentication_classes=api_settings.DEFAULT_AUTHENTICATION_CLASSES,
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
>  line 225, in __getattr__
> val = perform_import(val, attr)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
>  line 168, in perform_import
> return [import_from_string(item, setting_name) for item in val]
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
>  line 168, in 
> return [import_from_string(item, setting_name) for item in val]
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
>  line 177, in import_from_string
> return import_string(val)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/django/utils/module_loading.py",
>  line 17, in import_string
> module = import_module(module_path)
>   File 
> "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/importlib/__init__.py",
>  line 126, in import_module
> return _bootstrap._gcd_import(name[level:], package, level)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/authentication.py",
>  line 6, in 
> from django_airavata.apps.auth import utils
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/auth/utils.py",
>  line 14, in 
> from . import models
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/auth/models.py",
>  line 17, in 
> class EmailVerification(models.Model):
>   File 
> 

[jira] [Commented] (AIRAVATA-3697) Handle unicode characters in file names

2023-06-05 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17729496#comment-17729496
 ] 

ASF subversion and git services commented on AIRAVATA-3697:
---

Commit a64264c10391df4bddeaa8663e18c3e508382dfc in airavata-django-portal's 
branch refs/heads/staging from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=a64264c1 ]

AIRAVATA-3697 fix download of utf8 filename


> Handle unicode characters in file names
> ---
>
> Key: AIRAVATA-3697
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3697
> Project: Airavata
>  Issue Type: Bug
>  Components: Airavata API, Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
> Attachments: Photophysical properties and photodegradation mechanism 
> of 2-(2′-furanyl)-1H-benzimidazole (Fuberidazole) - ScienceDirect.html
>
>
> Getting the following Django error when browsing experiment output files with 
> unicode characters in the file names:
> {code}
> Traceback (most recent call last):
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/rest_framework/views.py",
>  line 506, in dispatch
>response = handler(request, *args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1467, in get
>return self._create_response(request, experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1471, in _create_response
>directories, files = user_storage.list_experiment_dir(request, 
> experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 629, in list_experiment_dir
>backend=backend, owner=experiment.userName)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 760, in _get_data_product_uri
>if user_file.exists():
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/query.py",
>  line 808, in exists
>return self.query.has_results(using=self.db)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/query.py",
>  line 561, in has_results
>return compiler.has_results()
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1145, in has_results
>return bool(self.execute_sql(SINGLE))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1175, in execute_sql
>cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 66, in execute
>return self._execute_with_wrappers(sql, params, many=False, 
> executor=self._execute)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 75, in _execute_with_wrappers
>return executor(sql, params, many, context)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 84, in _execute
>return self.cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/mysql/base.py",
>  line 73, in execute
>return self.cursor.execute(query, args)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/cursors.py",
>  line 199, in execute
>args = tuple(map(db.literal, args))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/connections.py",
>  line 280, in literal
>s = self.string_literal(o.encode(self.encoding))
> During handling of the above exception ('utf-8' codec can't encode characters 
> in position 197-199: surrogates not allowed), another exception occurred:
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/exception.py",
>  line 47, in inner
>response = get_response(request)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/base.py",
>  line 181, in _get_response
>response = wrapped_callback(request, *callback_args, **callback_kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/decorators/csrf.py",
>  line 54, in wrapped_view
>return view_func(*args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/generic/base.py",
>  line 70, in view
>return 

[jira] [Commented] (AIRAVATA-3697) Handle unicode characters in file names

2023-06-05 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17729495#comment-17729495
 ] 

ASF subversion and git services commented on AIRAVATA-3697:
---

Commit f29a74da5994561f6bec89df39db6a72f54128ab in airavata-django-portal's 
branch refs/heads/staging from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=f29a74da ]

AIRAVATA-3697 log error if filesystemencoding isn't 'utf-8'


> Handle unicode characters in file names
> ---
>
> Key: AIRAVATA-3697
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3697
> Project: Airavata
>  Issue Type: Bug
>  Components: Airavata API, Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
> Attachments: Photophysical properties and photodegradation mechanism 
> of 2-(2′-furanyl)-1H-benzimidazole (Fuberidazole) - ScienceDirect.html
>
>
> Getting the following Django error when browsing experiment output files with 
> unicode characters in the file names:
> {code}
> Traceback (most recent call last):
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/rest_framework/views.py",
>  line 506, in dispatch
>response = handler(request, *args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1467, in get
>return self._create_response(request, experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1471, in _create_response
>directories, files = user_storage.list_experiment_dir(request, 
> experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 629, in list_experiment_dir
>backend=backend, owner=experiment.userName)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 760, in _get_data_product_uri
>if user_file.exists():
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/query.py",
>  line 808, in exists
>return self.query.has_results(using=self.db)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/query.py",
>  line 561, in has_results
>return compiler.has_results()
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1145, in has_results
>return bool(self.execute_sql(SINGLE))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1175, in execute_sql
>cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 66, in execute
>return self._execute_with_wrappers(sql, params, many=False, 
> executor=self._execute)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 75, in _execute_with_wrappers
>return executor(sql, params, many, context)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 84, in _execute
>return self.cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/mysql/base.py",
>  line 73, in execute
>return self.cursor.execute(query, args)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/cursors.py",
>  line 199, in execute
>args = tuple(map(db.literal, args))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/connections.py",
>  line 280, in literal
>s = self.string_literal(o.encode(self.encoding))
> During handling of the above exception ('utf-8' codec can't encode characters 
> in position 197-199: surrogates not allowed), another exception occurred:
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/exception.py",
>  line 47, in inner
>response = get_response(request)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/base.py",
>  line 181, in _get_response
>response = wrapped_callback(request, *callback_args, **callback_kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/decorators/csrf.py",
>  line 54, in wrapped_view
>return view_func(*args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/generic/base.py",
>  line 70, in view
>

[jira] [Commented] (AIRAVATA-3697) Handle unicode characters in file names

2023-06-05 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17729499#comment-17729499
 ] 

ASF subversion and git services commented on AIRAVATA-3697:
---

Commit f29a74da5994561f6bec89df39db6a72f54128ab in airavata-django-portal's 
branch refs/heads/master from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=f29a74da ]

AIRAVATA-3697 log error if filesystemencoding isn't 'utf-8'


> Handle unicode characters in file names
> ---
>
> Key: AIRAVATA-3697
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3697
> Project: Airavata
>  Issue Type: Bug
>  Components: Airavata API, Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
> Attachments: Photophysical properties and photodegradation mechanism 
> of 2-(2′-furanyl)-1H-benzimidazole (Fuberidazole) - ScienceDirect.html
>
>
> Getting the following Django error when browsing experiment output files with 
> unicode characters in the file names:
> {code}
> Traceback (most recent call last):
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/rest_framework/views.py",
>  line 506, in dispatch
>response = handler(request, *args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1467, in get
>return self._create_response(request, experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1471, in _create_response
>directories, files = user_storage.list_experiment_dir(request, 
> experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 629, in list_experiment_dir
>backend=backend, owner=experiment.userName)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 760, in _get_data_product_uri
>if user_file.exists():
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/query.py",
>  line 808, in exists
>return self.query.has_results(using=self.db)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/query.py",
>  line 561, in has_results
>return compiler.has_results()
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1145, in has_results
>return bool(self.execute_sql(SINGLE))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1175, in execute_sql
>cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 66, in execute
>return self._execute_with_wrappers(sql, params, many=False, 
> executor=self._execute)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 75, in _execute_with_wrappers
>return executor(sql, params, many, context)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 84, in _execute
>return self.cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/mysql/base.py",
>  line 73, in execute
>return self.cursor.execute(query, args)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/cursors.py",
>  line 199, in execute
>args = tuple(map(db.literal, args))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/connections.py",
>  line 280, in literal
>s = self.string_literal(o.encode(self.encoding))
> During handling of the above exception ('utf-8' codec can't encode characters 
> in position 197-199: surrogates not allowed), another exception occurred:
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/exception.py",
>  line 47, in inner
>response = get_response(request)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/base.py",
>  line 181, in _get_response
>response = wrapped_callback(request, *callback_args, **callback_kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/decorators/csrf.py",
>  line 54, in wrapped_view
>return view_func(*args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/generic/base.py",
>  line 70, in view
>

[jira] [Commented] (AIRAVATA-3694) User data archive management commands

2023-06-02 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17728863#comment-17728863
 ] 

ASF subversion and git services commented on AIRAVATA-3694:
---

Commit 09e6aaf4350cf35ed92555a81e27aeb33d952843 in airavata's branch 
refs/heads/master from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=09e6aaf435 ]

AIRAVATA-3694 Ansible: configure data archive max ages for scigap hosted 
gateways


> User data archive management commands
> -
>
> Key: AIRAVATA-3694
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3694
> Project: Airavata
>  Issue Type: New Feature
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Create management commands to manage archiving user data. The use case is the 
> gateway admin wants to archive older data and then delete that user data to 
> free up disk space.
> The management commands will handle creating archives (as tarballs) and 
> deleting the data from the user data archive directory. There will also be an 
> unarchive command. There are settings for the max age of files to be archived 
> and for the directory in which archives should be copied.
> How the archive file are archived. It's expected that the gateway admin would 
> periodically (perhaps by cron) copy the archive files from the web server to 
> some other file server.
> h3. Description
> archive_user_data creates a tarball archive of user data for all files and 
> directories that are older than some configured amount of days. In addition 
> to the tarball is a text file that lists all of the files and directories 
> that are archived. The tarball and text file can be periodically pushed to 
> tape backup or any other backup location.
> The configuration settings are 
> - GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS
> - GATEWAY_USER_DATA_ARCHIVE_DIRECTORY
> -- this is the directory in which to place the archive files and is also the 
> place where temporary files are generated. Since the archive files can be 
> large, it's important that there be enough free disk space on the partition 
> where this directory lives
> - GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB
> -- defaults to 1 GB. This can be used to prevent creating a lot of small 
> archives since tape archives often want a few large files instead of many 
> small files.
> h4. Running archive_user_data
> All commands should be run as the gateway server user (pga).
> {code}
> python manage.py archive_user_data --dry-run
> {code}
> This just prints the files and directories that would be archived and exits. 
> Good for checking that configuration is correct, etc.
> {code}
> python manage.py archive_user_data
> {code}
> This will actually create an archive and then delete from user data the files 
> that were archived.
> {code}
> python manage.py archive_user_data --max-age MAX_AGE
> {code}
> The --max-age flag allows overriding the 
> GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS setting. This can be a good option to 
> create the first few archives when introducing the user data archive to an 
> existing gateway.
> h4. Running unarchive_user_data 
> unarchive_user_data requires an archive tarball as input. The main use case 
> for this command is that the gateway administrator wants to restore some 
> particular user data. First, the right archive must be found. The experiment 
> details view in Experiment Statistics will display the name of the archive 
> file for an experiment data directory that has been archived. Use this to 
> then retrieve the tarball from backup. Then run unarchive_user_data on the 
> file.
> {code}
> python manage.py unarchive_user_data 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}
> The timestamps will be restored from the archive, including the last modified 
> timestamps. This means that the next time archive_user_data runs, all files 
> unarchived will be re-archived. Sometimes that is desired, but if you want to 
> reset the last modified times, use the {{--reset-modification}} option:
> {code}
> python manage.py unarchive_user_data --reset-modification 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3694) User data archive management commands

2023-05-18 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17724005#comment-17724005
 ] 

ASF subversion and git services commented on AIRAVATA-3694:
---

Commit 8db03aa7458118819801a3371866cd08a0a172ef in airavata-django-portal's 
branch refs/heads/develop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=8db03aa7 ]

AIRAVATA-3694 handle case where file was already deleted

This is to handle the case where a user directory is symlinked as an alias
and the files to delete end up listed more than once. Code just emits a warning
when this happens.


> User data archive management commands
> -
>
> Key: AIRAVATA-3694
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3694
> Project: Airavata
>  Issue Type: New Feature
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Create management commands to manage archiving user data. The use case is the 
> gateway admin wants to archive older data and then delete that user data to 
> free up disk space.
> The management commands will handle creating archives (as tarballs) and 
> deleting the data from the user data archive directory. There will also be an 
> unarchive command. There are settings for the max age of files to be archived 
> and for the directory in which archives should be copied.
> How the archive file are archived. It's expected that the gateway admin would 
> periodically (perhaps by cron) copy the archive files from the web server to 
> some other file server.
> h3. Description
> archive_user_data creates a tarball archive of user data for all files and 
> directories that are older than some configured amount of days. In addition 
> to the tarball is a text file that lists all of the files and directories 
> that are archived. The tarball and text file can be periodically pushed to 
> tape backup or any other backup location.
> The configuration settings are 
> - GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS
> - GATEWAY_USER_DATA_ARCHIVE_DIRECTORY
> -- this is the directory in which to place the archive files and is also the 
> place where temporary files are generated. Since the archive files can be 
> large, it's important that there be enough free disk space on the partition 
> where this directory lives
> - GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB
> -- defaults to 1 GB. This can be used to prevent creating a lot of small 
> archives since tape archives often want a few large files instead of many 
> small files.
> h4. Running archive_user_data
> All commands should be run as the gateway server user (pga).
> {code}
> python manage.py archive_user_data --dry-run
> {code}
> This just prints the files and directories that would be archived and exits. 
> Good for checking that configuration is correct, etc.
> {code}
> python manage.py archive_user_data
> {code}
> This will actually create an archive and then delete from user data the files 
> that were archived.
> {code}
> python manage.py archive_user_data --max-age MAX_AGE
> {code}
> The --max-age flag allows overriding the 
> GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS setting. This can be a good option to 
> create the first few archives when introducing the user data archive to an 
> existing gateway.
> h4. Running unarchive_user_data 
> unarchive_user_data requires an archive tarball as input. The main use case 
> for this command is that the gateway administrator wants to restore some 
> particular user data. First, the right archive must be found. The experiment 
> details view in Experiment Statistics will display the name of the archive 
> file for an experiment data directory that has been archived. Use this to 
> then retrieve the tarball from backup. Then run unarchive_user_data on the 
> file.
> {code}
> python manage.py unarchive_user_data 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}
> The timestamps will be restored from the archive, including the last modified 
> timestamps. This means that the next time archive_user_data runs, all files 
> unarchived will be re-archived. Sometimes that is desired, but if you want to 
> reset the last modified times, use the {{--reset-modification}} option:
> {code}
> python manage.py unarchive_user_data --reset-modification 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3694) User data archive management commands

2023-05-18 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17724006#comment-17724006
 ] 

ASF subversion and git services commented on AIRAVATA-3694:
---

Commit 984b2614d671b0199f85d446b6ecf038e9e6ad48 in airavata-django-portal's 
branch refs/heads/develop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=984b2614 ]

AIRAVATA-3694 Remove data retention message for now


> User data archive management commands
> -
>
> Key: AIRAVATA-3694
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3694
> Project: Airavata
>  Issue Type: New Feature
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Create management commands to manage archiving user data. The use case is the 
> gateway admin wants to archive older data and then delete that user data to 
> free up disk space.
> The management commands will handle creating archives (as tarballs) and 
> deleting the data from the user data archive directory. There will also be an 
> unarchive command. There are settings for the max age of files to be archived 
> and for the directory in which archives should be copied.
> How the archive file are archived. It's expected that the gateway admin would 
> periodically (perhaps by cron) copy the archive files from the web server to 
> some other file server.
> h3. Description
> archive_user_data creates a tarball archive of user data for all files and 
> directories that are older than some configured amount of days. In addition 
> to the tarball is a text file that lists all of the files and directories 
> that are archived. The tarball and text file can be periodically pushed to 
> tape backup or any other backup location.
> The configuration settings are 
> - GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS
> - GATEWAY_USER_DATA_ARCHIVE_DIRECTORY
> -- this is the directory in which to place the archive files and is also the 
> place where temporary files are generated. Since the archive files can be 
> large, it's important that there be enough free disk space on the partition 
> where this directory lives
> - GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB
> -- defaults to 1 GB. This can be used to prevent creating a lot of small 
> archives since tape archives often want a few large files instead of many 
> small files.
> h4. Running archive_user_data
> All commands should be run as the gateway server user (pga).
> {code}
> python manage.py archive_user_data --dry-run
> {code}
> This just prints the files and directories that would be archived and exits. 
> Good for checking that configuration is correct, etc.
> {code}
> python manage.py archive_user_data
> {code}
> This will actually create an archive and then delete from user data the files 
> that were archived.
> {code}
> python manage.py archive_user_data --max-age MAX_AGE
> {code}
> The --max-age flag allows overriding the 
> GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS setting. This can be a good option to 
> create the first few archives when introducing the user data archive to an 
> existing gateway.
> h4. Running unarchive_user_data 
> unarchive_user_data requires an archive tarball as input. The main use case 
> for this command is that the gateway administrator wants to restore some 
> particular user data. First, the right archive must be found. The experiment 
> details view in Experiment Statistics will display the name of the archive 
> file for an experiment data directory that has been archived. Use this to 
> then retrieve the tarball from backup. Then run unarchive_user_data on the 
> file.
> {code}
> python manage.py unarchive_user_data 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}
> The timestamps will be restored from the archive, including the last modified 
> timestamps. This means that the next time archive_user_data runs, all files 
> unarchived will be re-archived. Sometimes that is desired, but if you want to 
> reset the last modified times, use the {{--reset-modification}} option:
> {code}
> python manage.py unarchive_user_data --reset-modification 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3694) User data archive management commands

2023-05-18 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17724004#comment-17724004
 ] 

ASF subversion and git services commented on AIRAVATA-3694:
---

Commit 984b2614d671b0199f85d446b6ecf038e9e6ad48 in airavata-django-portal's 
branch refs/heads/staging from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=984b2614 ]

AIRAVATA-3694 Remove data retention message for now


> User data archive management commands
> -
>
> Key: AIRAVATA-3694
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3694
> Project: Airavata
>  Issue Type: New Feature
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Create management commands to manage archiving user data. The use case is the 
> gateway admin wants to archive older data and then delete that user data to 
> free up disk space.
> The management commands will handle creating archives (as tarballs) and 
> deleting the data from the user data archive directory. There will also be an 
> unarchive command. There are settings for the max age of files to be archived 
> and for the directory in which archives should be copied.
> How the archive file are archived. It's expected that the gateway admin would 
> periodically (perhaps by cron) copy the archive files from the web server to 
> some other file server.
> h3. Description
> archive_user_data creates a tarball archive of user data for all files and 
> directories that are older than some configured amount of days. In addition 
> to the tarball is a text file that lists all of the files and directories 
> that are archived. The tarball and text file can be periodically pushed to 
> tape backup or any other backup location.
> The configuration settings are 
> - GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS
> - GATEWAY_USER_DATA_ARCHIVE_DIRECTORY
> -- this is the directory in which to place the archive files and is also the 
> place where temporary files are generated. Since the archive files can be 
> large, it's important that there be enough free disk space on the partition 
> where this directory lives
> - GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB
> -- defaults to 1 GB. This can be used to prevent creating a lot of small 
> archives since tape archives often want a few large files instead of many 
> small files.
> h4. Running archive_user_data
> All commands should be run as the gateway server user (pga).
> {code}
> python manage.py archive_user_data --dry-run
> {code}
> This just prints the files and directories that would be archived and exits. 
> Good for checking that configuration is correct, etc.
> {code}
> python manage.py archive_user_data
> {code}
> This will actually create an archive and then delete from user data the files 
> that were archived.
> {code}
> python manage.py archive_user_data --max-age MAX_AGE
> {code}
> The --max-age flag allows overriding the 
> GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS setting. This can be a good option to 
> create the first few archives when introducing the user data archive to an 
> existing gateway.
> h4. Running unarchive_user_data 
> unarchive_user_data requires an archive tarball as input. The main use case 
> for this command is that the gateway administrator wants to restore some 
> particular user data. First, the right archive must be found. The experiment 
> details view in Experiment Statistics will display the name of the archive 
> file for an experiment data directory that has been archived. Use this to 
> then retrieve the tarball from backup. Then run unarchive_user_data on the 
> file.
> {code}
> python manage.py unarchive_user_data 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}
> The timestamps will be restored from the archive, including the last modified 
> timestamps. This means that the next time archive_user_data runs, all files 
> unarchived will be re-archived. Sometimes that is desired, but if you want to 
> reset the last modified times, use the {{--reset-modification}} option:
> {code}
> python manage.py unarchive_user_data --reset-modification 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3694) User data archive management commands

2023-05-18 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17724000#comment-17724000
 ] 

ASF subversion and git services commented on AIRAVATA-3694:
---

Commit 984b2614d671b0199f85d446b6ecf038e9e6ad48 in airavata-django-portal's 
branch refs/heads/master from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=984b2614 ]

AIRAVATA-3694 Remove data retention message for now


> User data archive management commands
> -
>
> Key: AIRAVATA-3694
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3694
> Project: Airavata
>  Issue Type: New Feature
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Create management commands to manage archiving user data. The use case is the 
> gateway admin wants to archive older data and then delete that user data to 
> free up disk space.
> The management commands will handle creating archives (as tarballs) and 
> deleting the data from the user data archive directory. There will also be an 
> unarchive command. There are settings for the max age of files to be archived 
> and for the directory in which archives should be copied.
> How the archive file are archived. It's expected that the gateway admin would 
> periodically (perhaps by cron) copy the archive files from the web server to 
> some other file server.
> h3. Description
> archive_user_data creates a tarball archive of user data for all files and 
> directories that are older than some configured amount of days. In addition 
> to the tarball is a text file that lists all of the files and directories 
> that are archived. The tarball and text file can be periodically pushed to 
> tape backup or any other backup location.
> The configuration settings are 
> - GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS
> - GATEWAY_USER_DATA_ARCHIVE_DIRECTORY
> -- this is the directory in which to place the archive files and is also the 
> place where temporary files are generated. Since the archive files can be 
> large, it's important that there be enough free disk space on the partition 
> where this directory lives
> - GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB
> -- defaults to 1 GB. This can be used to prevent creating a lot of small 
> archives since tape archives often want a few large files instead of many 
> small files.
> h4. Running archive_user_data
> All commands should be run as the gateway server user (pga).
> {code}
> python manage.py archive_user_data --dry-run
> {code}
> This just prints the files and directories that would be archived and exits. 
> Good for checking that configuration is correct, etc.
> {code}
> python manage.py archive_user_data
> {code}
> This will actually create an archive and then delete from user data the files 
> that were archived.
> {code}
> python manage.py archive_user_data --max-age MAX_AGE
> {code}
> The --max-age flag allows overriding the 
> GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS setting. This can be a good option to 
> create the first few archives when introducing the user data archive to an 
> existing gateway.
> h4. Running unarchive_user_data 
> unarchive_user_data requires an archive tarball as input. The main use case 
> for this command is that the gateway administrator wants to restore some 
> particular user data. First, the right archive must be found. The experiment 
> details view in Experiment Statistics will display the name of the archive 
> file for an experiment data directory that has been archived. Use this to 
> then retrieve the tarball from backup. Then run unarchive_user_data on the 
> file.
> {code}
> python manage.py unarchive_user_data 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}
> The timestamps will be restored from the archive, including the last modified 
> timestamps. This means that the next time archive_user_data runs, all files 
> unarchived will be re-archived. Sometimes that is desired, but if you want to 
> reset the last modified times, use the {{--reset-modification}} option:
> {code}
> python manage.py unarchive_user_data --reset-modification 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3697) Handle unicode characters in file names

2023-04-28 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717817#comment-17717817
 ] 

ASF subversion and git services commented on AIRAVATA-3697:
---

Commit a64264c10391df4bddeaa8663e18c3e508382dfc in airavata-django-portal's 
branch refs/heads/develop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=a64264c1 ]

AIRAVATA-3697 fix download of utf8 filename


> Handle unicode characters in file names
> ---
>
> Key: AIRAVATA-3697
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3697
> Project: Airavata
>  Issue Type: Bug
>  Components: Airavata API, Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Getting the following Django error when browsing experiment output files with 
> unicode characters in the file names:
> {code}
> Traceback (most recent call last):
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/rest_framework/views.py",
>  line 506, in dispatch
>response = handler(request, *args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1467, in get
>return self._create_response(request, experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1471, in _create_response
>directories, files = user_storage.list_experiment_dir(request, 
> experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 629, in list_experiment_dir
>backend=backend, owner=experiment.userName)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 760, in _get_data_product_uri
>if user_file.exists():
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/query.py",
>  line 808, in exists
>return self.query.has_results(using=self.db)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/query.py",
>  line 561, in has_results
>return compiler.has_results()
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1145, in has_results
>return bool(self.execute_sql(SINGLE))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1175, in execute_sql
>cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 66, in execute
>return self._execute_with_wrappers(sql, params, many=False, 
> executor=self._execute)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 75, in _execute_with_wrappers
>return executor(sql, params, many, context)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 84, in _execute
>return self.cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/mysql/base.py",
>  line 73, in execute
>return self.cursor.execute(query, args)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/cursors.py",
>  line 199, in execute
>args = tuple(map(db.literal, args))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/connections.py",
>  line 280, in literal
>s = self.string_literal(o.encode(self.encoding))
> During handling of the above exception ('utf-8' codec can't encode characters 
> in position 197-199: surrogates not allowed), another exception occurred:
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/exception.py",
>  line 47, in inner
>response = get_response(request)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/base.py",
>  line 181, in _get_response
>response = wrapped_callback(request, *callback_args, **callback_kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/decorators/csrf.py",
>  line 54, in wrapped_view
>return view_func(*args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/generic/base.py",
>  line 70, in view
>return self.dispatch(request, *args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/rest_framework/views.py",
>  line 509, in 

[jira] [Commented] (AIRAVATA-3697) Handle unicode characters in file names

2023-04-28 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717816#comment-17717816
 ] 

ASF subversion and git services commented on AIRAVATA-3697:
---

Commit d0de482e134b2aac883d8c67da3a7481613ed97d in airavata-django-portal-sdk's 
branch refs/heads/master from Marcus Christie
[ 
https://gitbox.apache.org/repos/asf?p=airavata-django-portal-sdk.git;h=d0de482 ]

AIRAVATA-3697 Set filename appropriately when downloading file with utf8 
characters


> Handle unicode characters in file names
> ---
>
> Key: AIRAVATA-3697
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3697
> Project: Airavata
>  Issue Type: Bug
>  Components: Airavata API, Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Getting the following Django error when browsing experiment output files with 
> unicode characters in the file names:
> {code}
> Traceback (most recent call last):
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/rest_framework/views.py",
>  line 506, in dispatch
>response = handler(request, *args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1467, in get
>return self._create_response(request, experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1471, in _create_response
>directories, files = user_storage.list_experiment_dir(request, 
> experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 629, in list_experiment_dir
>backend=backend, owner=experiment.userName)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 760, in _get_data_product_uri
>if user_file.exists():
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/query.py",
>  line 808, in exists
>return self.query.has_results(using=self.db)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/query.py",
>  line 561, in has_results
>return compiler.has_results()
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1145, in has_results
>return bool(self.execute_sql(SINGLE))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1175, in execute_sql
>cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 66, in execute
>return self._execute_with_wrappers(sql, params, many=False, 
> executor=self._execute)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 75, in _execute_with_wrappers
>return executor(sql, params, many, context)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 84, in _execute
>return self.cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/mysql/base.py",
>  line 73, in execute
>return self.cursor.execute(query, args)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/cursors.py",
>  line 199, in execute
>args = tuple(map(db.literal, args))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/connections.py",
>  line 280, in literal
>s = self.string_literal(o.encode(self.encoding))
> During handling of the above exception ('utf-8' codec can't encode characters 
> in position 197-199: surrogates not allowed), another exception occurred:
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/exception.py",
>  line 47, in inner
>response = get_response(request)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/base.py",
>  line 181, in _get_response
>response = wrapped_callback(request, *callback_args, **callback_kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/decorators/csrf.py",
>  line 54, in wrapped_view
>return view_func(*args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/generic/base.py",
>  line 70, in view
>return self.dispatch(request, *args, **kwargs)
>  File 
> 

[jira] [Commented] (AIRAVATA-3697) Handle unicode characters in file names

2023-04-28 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717794#comment-17717794
 ] 

ASF subversion and git services commented on AIRAVATA-3697:
---

Commit f29a74da5994561f6bec89df39db6a72f54128ab in airavata-django-portal's 
branch refs/heads/develop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=f29a74da ]

AIRAVATA-3697 log error if filesystemencoding isn't 'utf-8'


> Handle unicode characters in file names
> ---
>
> Key: AIRAVATA-3697
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3697
> Project: Airavata
>  Issue Type: Bug
>  Components: Airavata API, Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Getting the following Django error when browsing experiment output files with 
> unicode characters in the file names:
> {code}
> Traceback (most recent call last):
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/rest_framework/views.py",
>  line 506, in dispatch
>response = handler(request, *args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1467, in get
>return self._create_response(request, experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1471, in _create_response
>directories, files = user_storage.list_experiment_dir(request, 
> experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 629, in list_experiment_dir
>backend=backend, owner=experiment.userName)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 760, in _get_data_product_uri
>if user_file.exists():
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/query.py",
>  line 808, in exists
>return self.query.has_results(using=self.db)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/query.py",
>  line 561, in has_results
>return compiler.has_results()
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1145, in has_results
>return bool(self.execute_sql(SINGLE))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1175, in execute_sql
>cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 66, in execute
>return self._execute_with_wrappers(sql, params, many=False, 
> executor=self._execute)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 75, in _execute_with_wrappers
>return executor(sql, params, many, context)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 84, in _execute
>return self.cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/mysql/base.py",
>  line 73, in execute
>return self.cursor.execute(query, args)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/cursors.py",
>  line 199, in execute
>args = tuple(map(db.literal, args))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/connections.py",
>  line 280, in literal
>s = self.string_literal(o.encode(self.encoding))
> During handling of the above exception ('utf-8' codec can't encode characters 
> in position 197-199: surrogates not allowed), another exception occurred:
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/exception.py",
>  line 47, in inner
>response = get_response(request)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/base.py",
>  line 181, in _get_response
>response = wrapped_callback(request, *callback_args, **callback_kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/decorators/csrf.py",
>  line 54, in wrapped_view
>return view_func(*args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/generic/base.py",
>  line 70, in view
>return self.dispatch(request, *args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/rest_framework/views.py",
>  

[jira] [Commented] (AIRAVATA-3697) Handle unicode characters in file names

2023-04-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717370#comment-17717370
 ] 

ASF subversion and git services commented on AIRAVATA-3697:
---

Commit 538745201bd07a88ae3696aa59fa6d8ae4e81ceb in airavata's branch 
refs/heads/develop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=538745201b ]

Merge branch 'AIRAVATA-3697' into develop


> Handle unicode characters in file names
> ---
>
> Key: AIRAVATA-3697
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3697
> Project: Airavata
>  Issue Type: Bug
>  Components: Airavata API, Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Getting the following Django error when browsing experiment output files with 
> unicode characters in the file names:
> {code}
> Traceback (most recent call last):
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/rest_framework/views.py",
>  line 506, in dispatch
>response = handler(request, *args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1467, in get
>return self._create_response(request, experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1471, in _create_response
>directories, files = user_storage.list_experiment_dir(request, 
> experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 629, in list_experiment_dir
>backend=backend, owner=experiment.userName)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 760, in _get_data_product_uri
>if user_file.exists():
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/query.py",
>  line 808, in exists
>return self.query.has_results(using=self.db)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/query.py",
>  line 561, in has_results
>return compiler.has_results()
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1145, in has_results
>return bool(self.execute_sql(SINGLE))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1175, in execute_sql
>cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 66, in execute
>return self._execute_with_wrappers(sql, params, many=False, 
> executor=self._execute)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 75, in _execute_with_wrappers
>return executor(sql, params, many, context)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 84, in _execute
>return self.cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/mysql/base.py",
>  line 73, in execute
>return self.cursor.execute(query, args)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/cursors.py",
>  line 199, in execute
>args = tuple(map(db.literal, args))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/connections.py",
>  line 280, in literal
>s = self.string_literal(o.encode(self.encoding))
> During handling of the above exception ('utf-8' codec can't encode characters 
> in position 197-199: surrogates not allowed), another exception occurred:
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/exception.py",
>  line 47, in inner
>response = get_response(request)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/base.py",
>  line 181, in _get_response
>response = wrapped_callback(request, *callback_args, **callback_kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/decorators/csrf.py",
>  line 54, in wrapped_view
>return view_func(*args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/generic/base.py",
>  line 70, in view
>return self.dispatch(request, *args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/rest_framework/views.py",
>  line 509, in dispatch
>response = 

[jira] [Commented] (AIRAVATA-3694) User data archive management commands

2023-04-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717368#comment-17717368
 ] 

ASF subversion and git services commented on AIRAVATA-3694:
---

Commit 7876cea94fcc8bccffdf9a89138a4b8fd34bf454 in airavata's branch 
refs/heads/develop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=7876cea94f ]

AIRAVATA-3694 configured testdrive for user data archives


> User data archive management commands
> -
>
> Key: AIRAVATA-3694
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3694
> Project: Airavata
>  Issue Type: New Feature
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Create management commands to manage archiving user data. The use case is the 
> gateway admin wants to archive older data and then delete that user data to 
> free up disk space.
> The management commands will handle creating archives (as tarballs) and 
> deleting the data from the user data archive directory. There will also be an 
> unarchive command. There are settings for the max age of files to be archived 
> and for the directory in which archives should be copied.
> How the archive file are archived. It's expected that the gateway admin would 
> periodically (perhaps by cron) copy the archive files from the web server to 
> some other file server.
> h3. Description
> archive_user_data creates a tarball archive of user data for all files and 
> directories that are older than some configured amount of days. In addition 
> to the tarball is a text file that lists all of the files and directories 
> that are archived. The tarball and text file can be periodically pushed to 
> tape backup or any other backup location.
> The configuration settings are 
> - GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS
> - GATEWAY_USER_DATA_ARCHIVE_DIRECTORY
> -- this is the directory in which to place the archive files and is also the 
> place where temporary files are generated. Since the archive files can be 
> large, it's important that there be enough free disk space on the partition 
> where this directory lives
> - GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB
> -- defaults to 1 GB. This can be used to prevent creating a lot of small 
> archives since tape archives often want a few large files instead of many 
> small files.
> h4. Running archive_user_data
> All commands should be run as the gateway server user (pga).
> {code}
> python manage.py archive_user_data --dry-run
> {code}
> This just prints the files and directories that would be archived and exits. 
> Good for checking that configuration is correct, etc.
> {code}
> python manage.py archive_user_data
> {code}
> This will actually create an archive and then delete from user data the files 
> that were archived.
> {code}
> python manage.py archive_user_data --max-age MAX_AGE
> {code}
> The --max-age flag allows overriding the 
> GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS setting. This can be a good option to 
> create the first few archives when introducing the user data archive to an 
> existing gateway.
> h4. Running unarchive_user_data 
> unarchive_user_data requires an archive tarball as input. The main use case 
> for this command is that the gateway administrator wants to restore some 
> particular user data. First, the right archive must be found. The experiment 
> details view in Experiment Statistics will display the name of the archive 
> file for an experiment data directory that has been archived. Use this to 
> then retrieve the tarball from backup. Then run unarchive_user_data on the 
> file.
> {code}
> python manage.py unarchive_user_data 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}
> The timestamps will be restored from the archive, including the last modified 
> timestamps. This means that the next time archive_user_data runs, all files 
> unarchived will be re-archived. Sometimes that is desired, but if you want to 
> reset the last modified times, use the {{--reset-modification}} option:
> {code}
> python manage.py unarchive_user_data --reset-modification 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3697) Handle unicode characters in file names

2023-04-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717372#comment-17717372
 ] 

ASF subversion and git services commented on AIRAVATA-3697:
---

Commit 8bf8ee00691c016d7357aba094fd43b093aebfe0 in airavata's branch 
refs/heads/develop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=8bf8ee0069 ]

Merge branch 'AIRAVATA-3697' into develop


> Handle unicode characters in file names
> ---
>
> Key: AIRAVATA-3697
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3697
> Project: Airavata
>  Issue Type: Bug
>  Components: Airavata API, Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Getting the following Django error when browsing experiment output files with 
> unicode characters in the file names:
> {code}
> Traceback (most recent call last):
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/rest_framework/views.py",
>  line 506, in dispatch
>response = handler(request, *args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1467, in get
>return self._create_response(request, experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1471, in _create_response
>directories, files = user_storage.list_experiment_dir(request, 
> experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 629, in list_experiment_dir
>backend=backend, owner=experiment.userName)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 760, in _get_data_product_uri
>if user_file.exists():
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/query.py",
>  line 808, in exists
>return self.query.has_results(using=self.db)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/query.py",
>  line 561, in has_results
>return compiler.has_results()
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1145, in has_results
>return bool(self.execute_sql(SINGLE))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1175, in execute_sql
>cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 66, in execute
>return self._execute_with_wrappers(sql, params, many=False, 
> executor=self._execute)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 75, in _execute_with_wrappers
>return executor(sql, params, many, context)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 84, in _execute
>return self.cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/mysql/base.py",
>  line 73, in execute
>return self.cursor.execute(query, args)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/cursors.py",
>  line 199, in execute
>args = tuple(map(db.literal, args))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/connections.py",
>  line 280, in literal
>s = self.string_literal(o.encode(self.encoding))
> During handling of the above exception ('utf-8' codec can't encode characters 
> in position 197-199: surrogates not allowed), another exception occurred:
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/exception.py",
>  line 47, in inner
>response = get_response(request)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/base.py",
>  line 181, in _get_response
>response = wrapped_callback(request, *callback_args, **callback_kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/decorators/csrf.py",
>  line 54, in wrapped_view
>return view_func(*args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/generic/base.py",
>  line 70, in view
>return self.dispatch(request, *args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/rest_framework/views.py",
>  line 509, in dispatch
>response = 

[jira] [Commented] (AIRAVATA-3697) Handle unicode characters in file names

2023-04-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717369#comment-17717369
 ] 

ASF subversion and git services commented on AIRAVATA-3697:
---

Commit f4cc483734c6f9c674c26e5f6b9627c4d7e9fc96 in airavata's branch 
refs/heads/develop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=f4cc483734 ]

AIRAVATA-3697 Set lang and locale on WSGIDaemonProcess

This is so that the Django portal code can handle filenames with UTF8 
characters.


> Handle unicode characters in file names
> ---
>
> Key: AIRAVATA-3697
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3697
> Project: Airavata
>  Issue Type: Bug
>  Components: Airavata API, Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Getting the following Django error when browsing experiment output files with 
> unicode characters in the file names:
> {code}
> Traceback (most recent call last):
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/rest_framework/views.py",
>  line 506, in dispatch
>response = handler(request, *args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1467, in get
>return self._create_response(request, experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1471, in _create_response
>directories, files = user_storage.list_experiment_dir(request, 
> experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 629, in list_experiment_dir
>backend=backend, owner=experiment.userName)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 760, in _get_data_product_uri
>if user_file.exists():
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/query.py",
>  line 808, in exists
>return self.query.has_results(using=self.db)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/query.py",
>  line 561, in has_results
>return compiler.has_results()
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1145, in has_results
>return bool(self.execute_sql(SINGLE))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1175, in execute_sql
>cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 66, in execute
>return self._execute_with_wrappers(sql, params, many=False, 
> executor=self._execute)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 75, in _execute_with_wrappers
>return executor(sql, params, many, context)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 84, in _execute
>return self.cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/mysql/base.py",
>  line 73, in execute
>return self.cursor.execute(query, args)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/cursors.py",
>  line 199, in execute
>args = tuple(map(db.literal, args))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/connections.py",
>  line 280, in literal
>s = self.string_literal(o.encode(self.encoding))
> During handling of the above exception ('utf-8' codec can't encode characters 
> in position 197-199: surrogates not allowed), another exception occurred:
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/exception.py",
>  line 47, in inner
>response = get_response(request)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/base.py",
>  line 181, in _get_response
>response = wrapped_callback(request, *callback_args, **callback_kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/decorators/csrf.py",
>  line 54, in wrapped_view
>return view_func(*args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/generic/base.py",
>  line 70, in view
>return self.dispatch(request, *args, **kwargs)
>  File 
> 

[jira] [Commented] (AIRAVATA-3690) Add Citation to Airavata repos

2023-04-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717367#comment-17717367
 ] 

ASF subversion and git services commented on AIRAVATA-3690:
---

Commit 03175bd669150b83a6869327dcfd3d7afadddeaa in airavata's branch 
refs/heads/develop from Suresh Marru
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=03175bd669 ]

Adding Citation Info

Addressing issue #AIRAVATA-3690

> Add Citation to Airavata repos
> --
>
> Key: AIRAVATA-3690
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3690
> Project: Airavata
>  Issue Type: Task
>Reporter: Suresh Marru
>Assignee: Suresh Marru
>Priority: Major
>
> GitHub now integrates citation capability - 
> [https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-citation-files]
>  
> We can include a preferred citation - 
> [https://github.com/citation-file-format/ruby-cff/issues/55]
> More details are at - [https://citation-file-format.github.io/] 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3697) Handle unicode characters in file names

2023-04-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717371#comment-17717371
 ] 

ASF subversion and git services commented on AIRAVATA-3697:
---

Commit 33300327fc98d34ba5a62dbe75aea2678120a065 in airavata's branch 
refs/heads/develop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=33300327fc ]

AIRAVATA-3697 Db migrations and changing PRODUCT_NAME, REPLICA_NAME to clobs


> Handle unicode characters in file names
> ---
>
> Key: AIRAVATA-3697
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3697
> Project: Airavata
>  Issue Type: Bug
>  Components: Airavata API, Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Getting the following Django error when browsing experiment output files with 
> unicode characters in the file names:
> {code}
> Traceback (most recent call last):
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/rest_framework/views.py",
>  line 506, in dispatch
>response = handler(request, *args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1467, in get
>return self._create_response(request, experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/airavata-django-portal/django_airavata/apps/api/views.py",
>  line 1471, in _create_response
>directories, files = user_storage.list_experiment_dir(request, 
> experiment_id, path)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 629, in list_experiment_dir
>backend=backend, owner=experiment.userName)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/airavata_django_portal_sdk/user_storage/api.py",
>  line 760, in _get_data_product_uri
>if user_file.exists():
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/query.py",
>  line 808, in exists
>return self.query.has_results(using=self.db)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/query.py",
>  line 561, in has_results
>return compiler.has_results()
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1145, in has_results
>return bool(self.execute_sql(SINGLE))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py",
>  line 1175, in execute_sql
>cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 66, in execute
>return self._execute_with_wrappers(sql, params, many=False, 
> executor=self._execute)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 75, in _execute_with_wrappers
>return executor(sql, params, many, context)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/utils.py",
>  line 84, in _execute
>return self.cursor.execute(sql, params)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/db/backends/mysql/base.py",
>  line 73, in execute
>return self.cursor.execute(query, args)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/cursors.py",
>  line 199, in execute
>args = tuple(map(db.literal, args))
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/MySQLdb/connections.py",
>  line 280, in literal
>s = self.string_literal(o.encode(self.encoding))
> During handling of the above exception ('utf-8' codec can't encode characters 
> in position 197-199: surrogates not allowed), another exception occurred:
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/exception.py",
>  line 47, in inner
>response = get_response(request)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/core/handlers/base.py",
>  line 181, in _get_response
>response = wrapped_callback(request, *callback_args, **callback_kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/decorators/csrf.py",
>  line 54, in wrapped_view
>return view_func(*args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/django/views/generic/base.py",
>  line 70, in view
>return self.dispatch(request, *args, **kwargs)
>  File 
> "/var/www/portals/django-seagrid/venv/lib64/python3.6/site-packages/rest_framework/views.py",
>  line 

[jira] [Commented] (AIRAVATA-3696) Defer instantiating output view providers until after Django apps are ready

2023-04-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3696?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717259#comment-17717259
 ] 

ASF subversion and git services commented on AIRAVATA-3696:
---

Commit eef9d7e5bbc781291e5dc21ce5f683b17517b436 in airavata-django-portal's 
branch refs/heads/develop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=eef9d7e5 ]

AIRAVATA-3696 removing unused import


> Defer instantiating output view providers until after Django apps are ready
> ---
>
> Key: AIRAVATA-3696
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3696
> Project: Airavata
>  Issue Type: Bug
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Currently in settings.py all output view providers are instantiated. However, 
> they might import code that transitively imports Django models which is not 
> allowed in Django until all apps have been loaded (see 
> https://docs.djangoproject.com/en/3.2/ref/applications/#initialization-process).
>  A better approach would be to instantiate the output view providers in the 
> ApiConfig.ready().
> {code}
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/settings.py",
>  line 644, in 
> OUTPUT_VIEW_PROVIDERS[entry_point.name] = entry_point.load()()
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/pkg_resources/__init__.py",
>  line 2517, in load
> return self.resolve()
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/pkg_resources/__init__.py",
>  line 2523, in resolve
> module = __import__(self.module_name, fromlist=['__name__'], level=0)
>   File 
> "/Users/machrist/Airavata/django/regsnp-django-app/regsnp_django_app/output_views.py",
>  line 32, in 
> from airavata_django_portal_sdk import urls
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/airavata_django_portal_sdk/urls.py",
>  line 6, in 
> from . import views
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/airavata_django_portal_sdk/views.py",
>  line 16, in 
> from rest_framework.decorators import api_view
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/decorators.py",
>  line 13, in 
> from rest_framework.views import APIView
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/views.py",
>  line 17, in 
> from rest_framework.schemas import DefaultSchema
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/schemas/__init__.py",
>  line 33, in 
> authentication_classes=api_settings.DEFAULT_AUTHENTICATION_CLASSES,
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
>  line 225, in __getattr__
> val = perform_import(val, attr)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
>  line 168, in perform_import
> return [import_from_string(item, setting_name) for item in val]
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
>  line 168, in 
> return [import_from_string(item, setting_name) for item in val]
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
>  line 177, in import_from_string
> return import_string(val)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/django/utils/module_loading.py",
>  line 17, in import_string
> module = import_module(module_path)
>   File 
> "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/importlib/__init__.py",
>  line 126, in import_module
> return _bootstrap._gcd_import(name[level:], package, level)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/authentication.py",
>  line 6, in 
> from django_airavata.apps.auth import utils
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/auth/utils.py",
>  line 14, in 
> from . import models
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/auth/models.py",
>  line 17, in 
> class EmailVerification(models.Model):
>   File 
> 

[jira] [Commented] (AIRAVATA-3696) Defer instantiating output view providers until after Django apps are ready

2023-04-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3696?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717244#comment-17717244
 ] 

ASF subversion and git services commented on AIRAVATA-3696:
---

Commit 1bebb7eb5253de3a1cedb57372380ceb98eb8d1b in airavata-django-portal's 
branch refs/heads/develop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=1bebb7eb ]

AIRAVATA-3696 instantiate output view providers in ready()


> Defer instantiating output view providers until after Django apps are ready
> ---
>
> Key: AIRAVATA-3696
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3696
> Project: Airavata
>  Issue Type: Bug
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Currently in settings.py all output view providers are instantiated. However, 
> they might import code that transitively imports Django models which is not 
> allowed in Django until all apps have been loaded (see 
> https://docs.djangoproject.com/en/3.2/ref/applications/#initialization-process).
>  A better approach would be to instantiate the output view providers in the 
> ApiConfig.ready().
> {code}
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/settings.py",
>  line 644, in 
> OUTPUT_VIEW_PROVIDERS[entry_point.name] = entry_point.load()()
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/pkg_resources/__init__.py",
>  line 2517, in load
> return self.resolve()
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/pkg_resources/__init__.py",
>  line 2523, in resolve
> module = __import__(self.module_name, fromlist=['__name__'], level=0)
>   File 
> "/Users/machrist/Airavata/django/regsnp-django-app/regsnp_django_app/output_views.py",
>  line 32, in 
> from airavata_django_portal_sdk import urls
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/airavata_django_portal_sdk/urls.py",
>  line 6, in 
> from . import views
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/airavata_django_portal_sdk/views.py",
>  line 16, in 
> from rest_framework.decorators import api_view
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/decorators.py",
>  line 13, in 
> from rest_framework.views import APIView
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/views.py",
>  line 17, in 
> from rest_framework.schemas import DefaultSchema
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/schemas/__init__.py",
>  line 33, in 
> authentication_classes=api_settings.DEFAULT_AUTHENTICATION_CLASSES,
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
>  line 225, in __getattr__
> val = perform_import(val, attr)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
>  line 168, in perform_import
> return [import_from_string(item, setting_name) for item in val]
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
>  line 168, in 
> return [import_from_string(item, setting_name) for item in val]
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
>  line 177, in import_from_string
> return import_string(val)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/django/utils/module_loading.py",
>  line 17, in import_string
> module = import_module(module_path)
>   File 
> "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/importlib/__init__.py",
>  line 126, in import_module
> return _bootstrap._gcd_import(name[level:], package, level)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/authentication.py",
>  line 6, in 
> from django_airavata.apps.auth import utils
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/auth/utils.py",
>  line 14, in 
> from . import models
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/auth/models.py",
>  line 17, in 
> class EmailVerification(models.Model):
>   File 
> 

[jira] [Commented] (AIRAVATA-3694) User data archive management commands

2023-04-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717218#comment-17717218
 ] 

ASF subversion and git services commented on AIRAVATA-3694:
---

Commit 75a4e563dda44e84abae93d8d1838238a34b7a1d in airavata-django-portal's 
branch refs/heads/delta-topology-workshop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=75a4e563 ]

AIRAVATA-3694 --max-age option added to archive_user_data


> User data archive management commands
> -
>
> Key: AIRAVATA-3694
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3694
> Project: Airavata
>  Issue Type: New Feature
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Create management commands to manage archiving user data. The use case is the 
> gateway admin wants to archive older data and then delete that user data to 
> free up disk space.
> The management commands will handle creating archives (as tarballs) and 
> deleting the data from the user data archive directory. There will also be an 
> unarchive command. There are settings for the max age of files to be archived 
> and for the directory in which archives should be copied.
> How the archive file are archived. It's expected that the gateway admin would 
> periodically (perhaps by cron) copy the archive files from the web server to 
> some other file server.
> h3. Description
> archive_user_data creates a tarball archive of user data for all files and 
> directories that are older than some configured amount of days. In addition 
> to the tarball is a text file that lists all of the files and directories 
> that are archived. The tarball and text file can be periodically pushed to 
> tape backup or any other backup location.
> The configuration settings are 
> - GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS
> - GATEWAY_USER_DATA_ARCHIVE_DIRECTORY
> -- this is the directory in which to place the archive files and is also the 
> place where temporary files are generated. Since the archive files can be 
> large, it's important that there be enough free disk space on the partition 
> where this directory lives
> - GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB
> -- defaults to 1 GB. This can be used to prevent creating a lot of small 
> archives since tape archives often want a few large files instead of many 
> small files.
> h4. Running archive_user_data
> All commands should be run as the gateway server user (pga).
> {code}
> python manage.py archive_user_data --dry-run
> {code}
> This just prints the files and directories that would be archived and exits. 
> Good for checking that configuration is correct, etc.
> {code}
> python manage.py archive_user_data
> {code}
> This will actually create an archive and then delete from user data the files 
> that were archived.
> {code}
> python manage.py archive_user_data --max-age MAX_AGE
> {code}
> The --max-age flag allows overriding the 
> GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS setting. This can be a good option to 
> create the first few archives when introducing the user data archive to an 
> existing gateway.
> h4. Running unarchive_user_data 
> unarchive_user_data requires an archive tarball as input. The main use case 
> for this command is that the gateway administrator wants to restore some 
> particular user data. First, the right archive must be found. The experiment 
> details view in Experiment Statistics will display the name of the archive 
> file for an experiment data directory that has been archived. Use this to 
> then retrieve the tarball from backup. Then run unarchive_user_data on the 
> file.
> {code}
> python manage.py unarchive_user_data 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}
> The timestamps will be restored from the archive, including the last modified 
> timestamps. This means that the next time archive_user_data runs, all files 
> unarchived will be re-archived. Sometimes that is desired, but if you want to 
> reset the last modified times, use the {{--reset-modification}} option:
> {code}
> python manage.py unarchive_user_data --reset-modification 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3694) User data archive management commands

2023-04-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717212#comment-17717212
 ] 

ASF subversion and git services commented on AIRAVATA-3694:
---

Commit 6a52ac3c2b968f46ecd9c2cd08317a97da8c5bef in airavata-django-portal's 
branch refs/heads/delta-topology-workshop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=6a52ac3c ]

AIRAVATA-3694 handle case where there is nothing to archive


> User data archive management commands
> -
>
> Key: AIRAVATA-3694
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3694
> Project: Airavata
>  Issue Type: New Feature
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Create management commands to manage archiving user data. The use case is the 
> gateway admin wants to archive older data and then delete that user data to 
> free up disk space.
> The management commands will handle creating archives (as tarballs) and 
> deleting the data from the user data archive directory. There will also be an 
> unarchive command. There are settings for the max age of files to be archived 
> and for the directory in which archives should be copied.
> How the archive file are archived. It's expected that the gateway admin would 
> periodically (perhaps by cron) copy the archive files from the web server to 
> some other file server.
> h3. Description
> archive_user_data creates a tarball archive of user data for all files and 
> directories that are older than some configured amount of days. In addition 
> to the tarball is a text file that lists all of the files and directories 
> that are archived. The tarball and text file can be periodically pushed to 
> tape backup or any other backup location.
> The configuration settings are 
> - GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS
> - GATEWAY_USER_DATA_ARCHIVE_DIRECTORY
> -- this is the directory in which to place the archive files and is also the 
> place where temporary files are generated. Since the archive files can be 
> large, it's important that there be enough free disk space on the partition 
> where this directory lives
> - GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB
> -- defaults to 1 GB. This can be used to prevent creating a lot of small 
> archives since tape archives often want a few large files instead of many 
> small files.
> h4. Running archive_user_data
> All commands should be run as the gateway server user (pga).
> {code}
> python manage.py archive_user_data --dry-run
> {code}
> This just prints the files and directories that would be archived and exits. 
> Good for checking that configuration is correct, etc.
> {code}
> python manage.py archive_user_data
> {code}
> This will actually create an archive and then delete from user data the files 
> that were archived.
> {code}
> python manage.py archive_user_data --max-age MAX_AGE
> {code}
> The --max-age flag allows overriding the 
> GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS setting. This can be a good option to 
> create the first few archives when introducing the user data archive to an 
> existing gateway.
> h4. Running unarchive_user_data 
> unarchive_user_data requires an archive tarball as input. The main use case 
> for this command is that the gateway administrator wants to restore some 
> particular user data. First, the right archive must be found. The experiment 
> details view in Experiment Statistics will display the name of the archive 
> file for an experiment data directory that has been archived. Use this to 
> then retrieve the tarball from backup. Then run unarchive_user_data on the 
> file.
> {code}
> python manage.py unarchive_user_data 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}
> The timestamps will be restored from the archive, including the last modified 
> timestamps. This means that the next time archive_user_data runs, all files 
> unarchived will be re-archived. Sometimes that is desired, but if you want to 
> reset the last modified times, use the {{--reset-modification}} option:
> {code}
> python manage.py unarchive_user_data --reset-modification 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3694) User data archive management commands

2023-04-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717192#comment-17717192
 ] 

ASF subversion and git services commented on AIRAVATA-3694:
---

Commit 9e5ccfacff38ae70169103c0268368d898fbafa1 in airavata-django-portal's 
branch refs/heads/master from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=9e5ccfac ]

AIRAVATA-3694 REST API and admin view to see when experiment data dir has been 
archived


> User data archive management commands
> -
>
> Key: AIRAVATA-3694
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3694
> Project: Airavata
>  Issue Type: New Feature
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Create management commands to manage archiving user data. The use case is the 
> gateway admin wants to archive older data and then delete that user data to 
> free up disk space.
> The management commands will handle creating archives (as tarballs) and 
> deleting the data from the user data archive directory. There will also be an 
> unarchive command. There are settings for the max age of files to be archived 
> and for the directory in which archives should be copied.
> How the archive file are archived. It's expected that the gateway admin would 
> periodically (perhaps by cron) copy the archive files from the web server to 
> some other file server.
> h3. Description
> archive_user_data creates a tarball archive of user data for all files and 
> directories that are older than some configured amount of days. In addition 
> to the tarball is a text file that lists all of the files and directories 
> that are archived. The tarball and text file can be periodically pushed to 
> tape backup or any other backup location.
> The configuration settings are 
> - GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS
> - GATEWAY_USER_DATA_ARCHIVE_DIRECTORY
> -- this is the directory in which to place the archive files and is also the 
> place where temporary files are generated. Since the archive files can be 
> large, it's important that there be enough free disk space on the partition 
> where this directory lives
> - GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB
> -- defaults to 1 GB. This can be used to prevent creating a lot of small 
> archives since tape archives often want a few large files instead of many 
> small files.
> h4. Running archive_user_data
> All commands should be run as the gateway server user (pga).
> {code}
> python manage.py archive_user_data --dry-run
> {code}
> This just prints the files and directories that would be archived and exits. 
> Good for checking that configuration is correct, etc.
> {code}
> python manage.py archive_user_data
> {code}
> This will actually create an archive and then delete from user data the files 
> that were archived.
> {code}
> python manage.py archive_user_data --max-age MAX_AGE
> {code}
> The --max-age flag allows overriding the 
> GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS setting. This can be a good option to 
> create the first few archives when introducing the user data archive to an 
> existing gateway.
> h4. Running unarchive_user_data 
> unarchive_user_data requires an archive tarball as input. The main use case 
> for this command is that the gateway administrator wants to restore some 
> particular user data. First, the right archive must be found. The experiment 
> details view in Experiment Statistics will display the name of the archive 
> file for an experiment data directory that has been archived. Use this to 
> then retrieve the tarball from backup. Then run unarchive_user_data on the 
> file.
> {code}
> python manage.py unarchive_user_data 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}
> The timestamps will be restored from the archive, including the last modified 
> timestamps. This means that the next time archive_user_data runs, all files 
> unarchived will be re-archived. Sometimes that is desired, but if you want to 
> reset the last modified times, use the {{--reset-modification}} option:
> {code}
> python manage.py unarchive_user_data --reset-modification 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3695) new optional list Thrift property causes error in thrift_utils if not present in request

2023-04-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3695?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717201#comment-17717201
 ] 

ASF subversion and git services commented on AIRAVATA-3695:
---

Commit 4442cde5e9f9a46ba6f4f3af8103980b810eeb45 in airavata-django-portal's 
branch refs/heads/master from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=4442cde5 ]

AIRAVATA-3695 Bug fix for null reference


> new optional list Thrift property causes error in thrift_utils if not present 
> in request
> 
>
> Key: AIRAVATA-3695
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3695
> Project: Airavata
>  Issue Type: Bug
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> {code}
> [2023-04-19 20:59:43,639 django_airavata.apps.api.exceptions:63 ERROR] API 
> exception
> Traceback (most recent call last):
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/views.py",
>  line 506, in dispatch
> response = handler(request, *args, **kwargs)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/mixins.py",
>  line 68, in update
> self.perform_update(serializer)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/views.py",
>  line 225, in perform_update
> experiment = serializer.save(
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/serializers.py",
>  line 200, in save
> self.instance = self.update(self.instance, validated_data)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/thrift_utils.py",
>  line 148, in update
> return self.create(validated_data)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/thrift_utils.py",
>  line 144, in create
> params = self.process_nested_fields(validated_data)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/thrift_utils.py",
>  line 139, in process_nested_fields
> params[field_name] = serializer.create(
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/thrift_utils.py",
>  line 144, in create
> params = self.process_nested_fields(validated_data)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/thrift_utils.py",
>  line 129, in process_nested_fields
> if (params[field_name] is not None or
> KeyError: 'autoScheduledCompResourceSchedulingList'
> {code}
> thrift_utils.py assumes that every field will be present even when the field 
> is optional/nullable.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3694) User data archive management commands

2023-04-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717213#comment-17717213
 ] 

ASF subversion and git services commented on AIRAVATA-3694:
---

Commit 9e5ccfacff38ae70169103c0268368d898fbafa1 in airavata-django-portal's 
branch refs/heads/delta-topology-workshop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=9e5ccfac ]

AIRAVATA-3694 REST API and admin view to see when experiment data dir has been 
archived


> User data archive management commands
> -
>
> Key: AIRAVATA-3694
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3694
> Project: Airavata
>  Issue Type: New Feature
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Create management commands to manage archiving user data. The use case is the 
> gateway admin wants to archive older data and then delete that user data to 
> free up disk space.
> The management commands will handle creating archives (as tarballs) and 
> deleting the data from the user data archive directory. There will also be an 
> unarchive command. There are settings for the max age of files to be archived 
> and for the directory in which archives should be copied.
> How the archive file are archived. It's expected that the gateway admin would 
> periodically (perhaps by cron) copy the archive files from the web server to 
> some other file server.
> h3. Description
> archive_user_data creates a tarball archive of user data for all files and 
> directories that are older than some configured amount of days. In addition 
> to the tarball is a text file that lists all of the files and directories 
> that are archived. The tarball and text file can be periodically pushed to 
> tape backup or any other backup location.
> The configuration settings are 
> - GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS
> - GATEWAY_USER_DATA_ARCHIVE_DIRECTORY
> -- this is the directory in which to place the archive files and is also the 
> place where temporary files are generated. Since the archive files can be 
> large, it's important that there be enough free disk space on the partition 
> where this directory lives
> - GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB
> -- defaults to 1 GB. This can be used to prevent creating a lot of small 
> archives since tape archives often want a few large files instead of many 
> small files.
> h4. Running archive_user_data
> All commands should be run as the gateway server user (pga).
> {code}
> python manage.py archive_user_data --dry-run
> {code}
> This just prints the files and directories that would be archived and exits. 
> Good for checking that configuration is correct, etc.
> {code}
> python manage.py archive_user_data
> {code}
> This will actually create an archive and then delete from user data the files 
> that were archived.
> {code}
> python manage.py archive_user_data --max-age MAX_AGE
> {code}
> The --max-age flag allows overriding the 
> GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS setting. This can be a good option to 
> create the first few archives when introducing the user data archive to an 
> existing gateway.
> h4. Running unarchive_user_data 
> unarchive_user_data requires an archive tarball as input. The main use case 
> for this command is that the gateway administrator wants to restore some 
> particular user data. First, the right archive must be found. The experiment 
> details view in Experiment Statistics will display the name of the archive 
> file for an experiment data directory that has been archived. Use this to 
> then retrieve the tarball from backup. Then run unarchive_user_data on the 
> file.
> {code}
> python manage.py unarchive_user_data 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}
> The timestamps will be restored from the archive, including the last modified 
> timestamps. This means that the next time archive_user_data runs, all files 
> unarchived will be re-archived. Sometimes that is desired, but if you want to 
> reset the last modified times, use the {{--reset-modification}} option:
> {code}
> python manage.py unarchive_user_data --reset-modification 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3695) new optional list Thrift property causes error in thrift_utils if not present in request

2023-04-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3695?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717222#comment-17717222
 ] 

ASF subversion and git services commented on AIRAVATA-3695:
---

Commit 4442cde5e9f9a46ba6f4f3af8103980b810eeb45 in airavata-django-portal's 
branch refs/heads/delta-topology-workshop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=4442cde5 ]

AIRAVATA-3695 Bug fix for null reference


> new optional list Thrift property causes error in thrift_utils if not present 
> in request
> 
>
> Key: AIRAVATA-3695
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3695
> Project: Airavata
>  Issue Type: Bug
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> {code}
> [2023-04-19 20:59:43,639 django_airavata.apps.api.exceptions:63 ERROR] API 
> exception
> Traceback (most recent call last):
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/views.py",
>  line 506, in dispatch
> response = handler(request, *args, **kwargs)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/mixins.py",
>  line 68, in update
> self.perform_update(serializer)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/views.py",
>  line 225, in perform_update
> experiment = serializer.save(
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/serializers.py",
>  line 200, in save
> self.instance = self.update(self.instance, validated_data)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/thrift_utils.py",
>  line 148, in update
> return self.create(validated_data)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/thrift_utils.py",
>  line 144, in create
> params = self.process_nested_fields(validated_data)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/thrift_utils.py",
>  line 139, in process_nested_fields
> params[field_name] = serializer.create(
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/thrift_utils.py",
>  line 144, in create
> params = self.process_nested_fields(validated_data)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/thrift_utils.py",
>  line 129, in process_nested_fields
> if (params[field_name] is not None or
> KeyError: 'autoScheduledCompResourceSchedulingList'
> {code}
> thrift_utils.py assumes that every field will be present even when the field 
> is optional/nullable.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3694) User data archive management commands

2023-04-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717215#comment-17717215
 ] 

ASF subversion and git services commented on AIRAVATA-3694:
---

Commit d0768e84bfd60814cf8f292afe380c1ef8bb9996 in airavata-django-portal's 
branch refs/heads/delta-topology-workshop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=d0768e84 ]

AIRAVATA-3694 Attempt to rollback the archive if something fails when deleting 
archived data


> User data archive management commands
> -
>
> Key: AIRAVATA-3694
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3694
> Project: Airavata
>  Issue Type: New Feature
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Create management commands to manage archiving user data. The use case is the 
> gateway admin wants to archive older data and then delete that user data to 
> free up disk space.
> The management commands will handle creating archives (as tarballs) and 
> deleting the data from the user data archive directory. There will also be an 
> unarchive command. There are settings for the max age of files to be archived 
> and for the directory in which archives should be copied.
> How the archive file are archived. It's expected that the gateway admin would 
> periodically (perhaps by cron) copy the archive files from the web server to 
> some other file server.
> h3. Description
> archive_user_data creates a tarball archive of user data for all files and 
> directories that are older than some configured amount of days. In addition 
> to the tarball is a text file that lists all of the files and directories 
> that are archived. The tarball and text file can be periodically pushed to 
> tape backup or any other backup location.
> The configuration settings are 
> - GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS
> - GATEWAY_USER_DATA_ARCHIVE_DIRECTORY
> -- this is the directory in which to place the archive files and is also the 
> place where temporary files are generated. Since the archive files can be 
> large, it's important that there be enough free disk space on the partition 
> where this directory lives
> - GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB
> -- defaults to 1 GB. This can be used to prevent creating a lot of small 
> archives since tape archives often want a few large files instead of many 
> small files.
> h4. Running archive_user_data
> All commands should be run as the gateway server user (pga).
> {code}
> python manage.py archive_user_data --dry-run
> {code}
> This just prints the files and directories that would be archived and exits. 
> Good for checking that configuration is correct, etc.
> {code}
> python manage.py archive_user_data
> {code}
> This will actually create an archive and then delete from user data the files 
> that were archived.
> {code}
> python manage.py archive_user_data --max-age MAX_AGE
> {code}
> The --max-age flag allows overriding the 
> GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS setting. This can be a good option to 
> create the first few archives when introducing the user data archive to an 
> existing gateway.
> h4. Running unarchive_user_data 
> unarchive_user_data requires an archive tarball as input. The main use case 
> for this command is that the gateway administrator wants to restore some 
> particular user data. First, the right archive must be found. The experiment 
> details view in Experiment Statistics will display the name of the archive 
> file for an experiment data directory that has been archived. Use this to 
> then retrieve the tarball from backup. Then run unarchive_user_data on the 
> file.
> {code}
> python manage.py unarchive_user_data 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}
> The timestamps will be restored from the archive, including the last modified 
> timestamps. This means that the next time archive_user_data runs, all files 
> unarchived will be re-archived. Sometimes that is desired, but if you want to 
> reset the last modified times, use the {{--reset-modification}} option:
> {code}
> python manage.py unarchive_user_data --reset-modification 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3694) User data archive management commands

2023-04-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717219#comment-17717219
 ] 

ASF subversion and git services commented on AIRAVATA-3694:
---

Commit 28b9ee7885d7aebeb60b2abfbbe1b1cba7712804 in airavata-django-portal's 
branch refs/heads/delta-topology-workshop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=28b9ee78 ]

AIRAVATA-3694 make the archive directory, including any missing parents


> User data archive management commands
> -
>
> Key: AIRAVATA-3694
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3694
> Project: Airavata
>  Issue Type: New Feature
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Create management commands to manage archiving user data. The use case is the 
> gateway admin wants to archive older data and then delete that user data to 
> free up disk space.
> The management commands will handle creating archives (as tarballs) and 
> deleting the data from the user data archive directory. There will also be an 
> unarchive command. There are settings for the max age of files to be archived 
> and for the directory in which archives should be copied.
> How the archive file are archived. It's expected that the gateway admin would 
> periodically (perhaps by cron) copy the archive files from the web server to 
> some other file server.
> h3. Description
> archive_user_data creates a tarball archive of user data for all files and 
> directories that are older than some configured amount of days. In addition 
> to the tarball is a text file that lists all of the files and directories 
> that are archived. The tarball and text file can be periodically pushed to 
> tape backup or any other backup location.
> The configuration settings are 
> - GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS
> - GATEWAY_USER_DATA_ARCHIVE_DIRECTORY
> -- this is the directory in which to place the archive files and is also the 
> place where temporary files are generated. Since the archive files can be 
> large, it's important that there be enough free disk space on the partition 
> where this directory lives
> - GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB
> -- defaults to 1 GB. This can be used to prevent creating a lot of small 
> archives since tape archives often want a few large files instead of many 
> small files.
> h4. Running archive_user_data
> All commands should be run as the gateway server user (pga).
> {code}
> python manage.py archive_user_data --dry-run
> {code}
> This just prints the files and directories that would be archived and exits. 
> Good for checking that configuration is correct, etc.
> {code}
> python manage.py archive_user_data
> {code}
> This will actually create an archive and then delete from user data the files 
> that were archived.
> {code}
> python manage.py archive_user_data --max-age MAX_AGE
> {code}
> The --max-age flag allows overriding the 
> GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS setting. This can be a good option to 
> create the first few archives when introducing the user data archive to an 
> existing gateway.
> h4. Running unarchive_user_data 
> unarchive_user_data requires an archive tarball as input. The main use case 
> for this command is that the gateway administrator wants to restore some 
> particular user data. First, the right archive must be found. The experiment 
> details view in Experiment Statistics will display the name of the archive 
> file for an experiment data directory that has been archived. Use this to 
> then retrieve the tarball from backup. Then run unarchive_user_data on the 
> file.
> {code}
> python manage.py unarchive_user_data 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}
> The timestamps will be restored from the archive, including the last modified 
> timestamps. This means that the next time archive_user_data runs, all files 
> unarchived will be re-archived. Sometimes that is desired, but if you want to 
> reset the last modified times, use the {{--reset-modification}} option:
> {code}
> python manage.py unarchive_user_data --reset-modification 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3693) Windows support: use run-s to build frontend code and library

2023-04-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3693?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717186#comment-17717186
 ] 

ASF subversion and git services commented on AIRAVATA-3693:
---

Commit 2b5ba36b3cfc61fc1aa2130785c4e77a51bf11cf in airavata-django-portal's 
branch refs/heads/master from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=2b5ba36b ]

AIRAVATA-3693 add npm-run-all to package.json


> Windows support: use run-s to build frontend code and library
> -
>
> Key: AIRAVATA-3693
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3693
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Currently the common frontend code in the Django Portal builds the JS/CSS and 
> the library by using {{&&}} to run the two build steps one after the other. 
> But this only works in Bash shell environments. To work on Windows, 
> [run-s|https://github.com/mysticatea/npm-run-all] is a better alternative.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3694) User data archive management commands

2023-04-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717214#comment-17717214
 ] 

ASF subversion and git services commented on AIRAVATA-3694:
---

Commit 2a63b583725ca2d28d5936c55080a155e6c0f713 in airavata-django-portal's 
branch refs/heads/delta-topology-workshop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=2a63b583 ]

AIRAVATA-3694 Documented new user data archive settings


> User data archive management commands
> -
>
> Key: AIRAVATA-3694
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3694
> Project: Airavata
>  Issue Type: New Feature
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Create management commands to manage archiving user data. The use case is the 
> gateway admin wants to archive older data and then delete that user data to 
> free up disk space.
> The management commands will handle creating archives (as tarballs) and 
> deleting the data from the user data archive directory. There will also be an 
> unarchive command. There are settings for the max age of files to be archived 
> and for the directory in which archives should be copied.
> How the archive file are archived. It's expected that the gateway admin would 
> periodically (perhaps by cron) copy the archive files from the web server to 
> some other file server.
> h3. Description
> archive_user_data creates a tarball archive of user data for all files and 
> directories that are older than some configured amount of days. In addition 
> to the tarball is a text file that lists all of the files and directories 
> that are archived. The tarball and text file can be periodically pushed to 
> tape backup or any other backup location.
> The configuration settings are 
> - GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS
> - GATEWAY_USER_DATA_ARCHIVE_DIRECTORY
> -- this is the directory in which to place the archive files and is also the 
> place where temporary files are generated. Since the archive files can be 
> large, it's important that there be enough free disk space on the partition 
> where this directory lives
> - GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB
> -- defaults to 1 GB. This can be used to prevent creating a lot of small 
> archives since tape archives often want a few large files instead of many 
> small files.
> h4. Running archive_user_data
> All commands should be run as the gateway server user (pga).
> {code}
> python manage.py archive_user_data --dry-run
> {code}
> This just prints the files and directories that would be archived and exits. 
> Good for checking that configuration is correct, etc.
> {code}
> python manage.py archive_user_data
> {code}
> This will actually create an archive and then delete from user data the files 
> that were archived.
> {code}
> python manage.py archive_user_data --max-age MAX_AGE
> {code}
> The --max-age flag allows overriding the 
> GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS setting. This can be a good option to 
> create the first few archives when introducing the user data archive to an 
> existing gateway.
> h4. Running unarchive_user_data 
> unarchive_user_data requires an archive tarball as input. The main use case 
> for this command is that the gateway administrator wants to restore some 
> particular user data. First, the right archive must be found. The experiment 
> details view in Experiment Statistics will display the name of the archive 
> file for an experiment data directory that has been archived. Use this to 
> then retrieve the tarball from backup. Then run unarchive_user_data on the 
> file.
> {code}
> python manage.py unarchive_user_data 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}
> The timestamps will be restored from the archive, including the last modified 
> timestamps. This means that the next time archive_user_data runs, all files 
> unarchived will be re-archived. Sometimes that is desired, but if you want to 
> reset the last modified times, use the {{--reset-modification}} option:
> {code}
> python manage.py unarchive_user_data --reset-modification 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3693) Windows support: use run-s to build frontend code and library

2023-04-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3693?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717205#comment-17717205
 ] 

ASF subversion and git services commented on AIRAVATA-3693:
---

Commit 5ab69a4a0ece3ccdffc478e4301c9c975c6e6508 in airavata-django-portal's 
branch refs/heads/delta-topology-workshop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=5ab69a4a ]

AIRAVATA-3693 Add windows JS build to action


> Windows support: use run-s to build frontend code and library
> -
>
> Key: AIRAVATA-3693
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3693
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Currently the common frontend code in the Django Portal builds the JS/CSS and 
> the library by using {{&&}} to run the two build steps one after the other. 
> But this only works in Bash shell environments. To work on Windows, 
> [run-s|https://github.com/mysticatea/npm-run-all] is a better alternative.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3694) User data archive management commands

2023-04-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717189#comment-17717189
 ] 

ASF subversion and git services commented on AIRAVATA-3694:
---

Commit e0abdebb508d867fd104f3e09c712c9c46cf1eb5 in airavata-django-portal's 
branch refs/heads/master from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=e0abdebb ]

AIRAVATA-3694 minimum archive size setting


> User data archive management commands
> -
>
> Key: AIRAVATA-3694
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3694
> Project: Airavata
>  Issue Type: New Feature
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Create management commands to manage archiving user data. The use case is the 
> gateway admin wants to archive older data and then delete that user data to 
> free up disk space.
> The management commands will handle creating archives (as tarballs) and 
> deleting the data from the user data archive directory. There will also be an 
> unarchive command. There are settings for the max age of files to be archived 
> and for the directory in which archives should be copied.
> How the archive file are archived. It's expected that the gateway admin would 
> periodically (perhaps by cron) copy the archive files from the web server to 
> some other file server.
> h3. Description
> archive_user_data creates a tarball archive of user data for all files and 
> directories that are older than some configured amount of days. In addition 
> to the tarball is a text file that lists all of the files and directories 
> that are archived. The tarball and text file can be periodically pushed to 
> tape backup or any other backup location.
> The configuration settings are 
> - GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS
> - GATEWAY_USER_DATA_ARCHIVE_DIRECTORY
> -- this is the directory in which to place the archive files and is also the 
> place where temporary files are generated. Since the archive files can be 
> large, it's important that there be enough free disk space on the partition 
> where this directory lives
> - GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB
> -- defaults to 1 GB. This can be used to prevent creating a lot of small 
> archives since tape archives often want a few large files instead of many 
> small files.
> h4. Running archive_user_data
> All commands should be run as the gateway server user (pga).
> {code}
> python manage.py archive_user_data --dry-run
> {code}
> This just prints the files and directories that would be archived and exits. 
> Good for checking that configuration is correct, etc.
> {code}
> python manage.py archive_user_data
> {code}
> This will actually create an archive and then delete from user data the files 
> that were archived.
> {code}
> python manage.py archive_user_data --max-age MAX_AGE
> {code}
> The --max-age flag allows overriding the 
> GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS setting. This can be a good option to 
> create the first few archives when introducing the user data archive to an 
> existing gateway.
> h4. Running unarchive_user_data 
> unarchive_user_data requires an archive tarball as input. The main use case 
> for this command is that the gateway administrator wants to restore some 
> particular user data. First, the right archive must be found. The experiment 
> details view in Experiment Statistics will display the name of the archive 
> file for an experiment data directory that has been archived. Use this to 
> then retrieve the tarball from backup. Then run unarchive_user_data on the 
> file.
> {code}
> python manage.py unarchive_user_data 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}
> The timestamps will be restored from the archive, including the last modified 
> timestamps. This means that the next time archive_user_data runs, all files 
> unarchived will be re-archived. Sometimes that is desired, but if you want to 
> reset the last modified times, use the {{--reset-modification}} option:
> {code}
> python manage.py unarchive_user_data --reset-modification 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3694) User data archive management commands

2023-04-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717217#comment-17717217
 ] 

ASF subversion and git services commented on AIRAVATA-3694:
---

Commit 086fb53fc8d816c76f5df69d5a33c4cb0e47bb6a in airavata-django-portal's 
branch refs/heads/delta-topology-workshop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=086fb53f ]

AIRAVATA-3694 Notice to user when experiment data is archived and also the 
general archive policy


> User data archive management commands
> -
>
> Key: AIRAVATA-3694
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3694
> Project: Airavata
>  Issue Type: New Feature
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Create management commands to manage archiving user data. The use case is the 
> gateway admin wants to archive older data and then delete that user data to 
> free up disk space.
> The management commands will handle creating archives (as tarballs) and 
> deleting the data from the user data archive directory. There will also be an 
> unarchive command. There are settings for the max age of files to be archived 
> and for the directory in which archives should be copied.
> How the archive file are archived. It's expected that the gateway admin would 
> periodically (perhaps by cron) copy the archive files from the web server to 
> some other file server.
> h3. Description
> archive_user_data creates a tarball archive of user data for all files and 
> directories that are older than some configured amount of days. In addition 
> to the tarball is a text file that lists all of the files and directories 
> that are archived. The tarball and text file can be periodically pushed to 
> tape backup or any other backup location.
> The configuration settings are 
> - GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS
> - GATEWAY_USER_DATA_ARCHIVE_DIRECTORY
> -- this is the directory in which to place the archive files and is also the 
> place where temporary files are generated. Since the archive files can be 
> large, it's important that there be enough free disk space on the partition 
> where this directory lives
> - GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB
> -- defaults to 1 GB. This can be used to prevent creating a lot of small 
> archives since tape archives often want a few large files instead of many 
> small files.
> h4. Running archive_user_data
> All commands should be run as the gateway server user (pga).
> {code}
> python manage.py archive_user_data --dry-run
> {code}
> This just prints the files and directories that would be archived and exits. 
> Good for checking that configuration is correct, etc.
> {code}
> python manage.py archive_user_data
> {code}
> This will actually create an archive and then delete from user data the files 
> that were archived.
> {code}
> python manage.py archive_user_data --max-age MAX_AGE
> {code}
> The --max-age flag allows overriding the 
> GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS setting. This can be a good option to 
> create the first few archives when introducing the user data archive to an 
> existing gateway.
> h4. Running unarchive_user_data 
> unarchive_user_data requires an archive tarball as input. The main use case 
> for this command is that the gateway administrator wants to restore some 
> particular user data. First, the right archive must be found. The experiment 
> details view in Experiment Statistics will display the name of the archive 
> file for an experiment data directory that has been archived. Use this to 
> then retrieve the tarball from backup. Then run unarchive_user_data on the 
> file.
> {code}
> python manage.py unarchive_user_data 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}
> The timestamps will be restored from the archive, including the last modified 
> timestamps. This means that the next time archive_user_data runs, all files 
> unarchived will be re-archived. Sometimes that is desired, but if you want to 
> reset the last modified times, use the {{--reset-modification}} option:
> {code}
> python manage.py unarchive_user_data --reset-modification 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3695) new optional list Thrift property causes error in thrift_utils if not present in request

2023-04-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3695?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717221#comment-17717221
 ] 

ASF subversion and git services commented on AIRAVATA-3695:
---

Commit 668357b0dc6660bd946cf943d6afe6b8966b8551 in airavata-django-portal's 
branch refs/heads/delta-topology-workshop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=668357b0 ]

AIRAVATA-3695 Bug fix for handling missing optional fields


> new optional list Thrift property causes error in thrift_utils if not present 
> in request
> 
>
> Key: AIRAVATA-3695
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3695
> Project: Airavata
>  Issue Type: Bug
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> {code}
> [2023-04-19 20:59:43,639 django_airavata.apps.api.exceptions:63 ERROR] API 
> exception
> Traceback (most recent call last):
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/views.py",
>  line 506, in dispatch
> response = handler(request, *args, **kwargs)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/mixins.py",
>  line 68, in update
> self.perform_update(serializer)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/views.py",
>  line 225, in perform_update
> experiment = serializer.save(
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/serializers.py",
>  line 200, in save
> self.instance = self.update(self.instance, validated_data)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/thrift_utils.py",
>  line 148, in update
> return self.create(validated_data)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/thrift_utils.py",
>  line 144, in create
> params = self.process_nested_fields(validated_data)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/thrift_utils.py",
>  line 139, in process_nested_fields
> params[field_name] = serializer.create(
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/thrift_utils.py",
>  line 144, in create
> params = self.process_nested_fields(validated_data)
>   File 
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/thrift_utils.py",
>  line 129, in process_nested_fields
> if (params[field_name] is not None or
> KeyError: 'autoScheduledCompResourceSchedulingList'
> {code}
> thrift_utils.py assumes that every field will be present even when the field 
> is optional/nullable.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3693) Windows support: use run-s to build frontend code and library

2023-04-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3693?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717206#comment-17717206
 ] 

ASF subversion and git services commented on AIRAVATA-3693:
---

Commit e56c3306f5f1a799d1d5fd1dc03951a10b62674a in airavata-django-portal's 
branch refs/heads/delta-topology-workshop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=e56c3306 ]

AIRAVATA-3693 windows JS build action set to use cmd shell


> Windows support: use run-s to build frontend code and library
> -
>
> Key: AIRAVATA-3693
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3693
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Currently the common frontend code in the Django Portal builds the JS/CSS and 
> the library by using {{&&}} to run the two build steps one after the other. 
> But this only works in Bash shell environments. To work on Windows, 
> [run-s|https://github.com/mysticatea/npm-run-all] is a better alternative.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3694) User data archive management commands

2023-04-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717209#comment-17717209
 ] 

ASF subversion and git services commented on AIRAVATA-3694:
---

Commit b9dc12e4e27e4f7ef199b36590736ffb399b8f81 in airavata-django-portal's 
branch refs/heads/delta-topology-workshop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=b9dc12e4 ]

AIRAVATA-3694 Basic unarchive_user_data command


> User data archive management commands
> -
>
> Key: AIRAVATA-3694
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3694
> Project: Airavata
>  Issue Type: New Feature
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Create management commands to manage archiving user data. The use case is the 
> gateway admin wants to archive older data and then delete that user data to 
> free up disk space.
> The management commands will handle creating archives (as tarballs) and 
> deleting the data from the user data archive directory. There will also be an 
> unarchive command. There are settings for the max age of files to be archived 
> and for the directory in which archives should be copied.
> How the archive file are archived. It's expected that the gateway admin would 
> periodically (perhaps by cron) copy the archive files from the web server to 
> some other file server.
> h3. Description
> archive_user_data creates a tarball archive of user data for all files and 
> directories that are older than some configured amount of days. In addition 
> to the tarball is a text file that lists all of the files and directories 
> that are archived. The tarball and text file can be periodically pushed to 
> tape backup or any other backup location.
> The configuration settings are 
> - GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS
> - GATEWAY_USER_DATA_ARCHIVE_DIRECTORY
> -- this is the directory in which to place the archive files and is also the 
> place where temporary files are generated. Since the archive files can be 
> large, it's important that there be enough free disk space on the partition 
> where this directory lives
> - GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB
> -- defaults to 1 GB. This can be used to prevent creating a lot of small 
> archives since tape archives often want a few large files instead of many 
> small files.
> h4. Running archive_user_data
> All commands should be run as the gateway server user (pga).
> {code}
> python manage.py archive_user_data --dry-run
> {code}
> This just prints the files and directories that would be archived and exits. 
> Good for checking that configuration is correct, etc.
> {code}
> python manage.py archive_user_data
> {code}
> This will actually create an archive and then delete from user data the files 
> that were archived.
> {code}
> python manage.py archive_user_data --max-age MAX_AGE
> {code}
> The --max-age flag allows overriding the 
> GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS setting. This can be a good option to 
> create the first few archives when introducing the user data archive to an 
> existing gateway.
> h4. Running unarchive_user_data 
> unarchive_user_data requires an archive tarball as input. The main use case 
> for this command is that the gateway administrator wants to restore some 
> particular user data. First, the right archive must be found. The experiment 
> details view in Experiment Statistics will display the name of the archive 
> file for an experiment data directory that has been archived. Use this to 
> then retrieve the tarball from backup. Then run unarchive_user_data on the 
> file.
> {code}
> python manage.py unarchive_user_data 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}
> The timestamps will be restored from the archive, including the last modified 
> timestamps. This means that the next time archive_user_data runs, all files 
> unarchived will be re-archived. Sometimes that is desired, but if you want to 
> reset the last modified times, use the {{--reset-modification}} option:
> {code}
> python manage.py unarchive_user_data --reset-modification 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3694) User data archive management commands

2023-04-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717216#comment-17717216
 ] 

ASF subversion and git services commented on AIRAVATA-3694:
---

Commit e4aa3d4d99138634556d46628d747b1a40e077be in airavata-django-portal's 
branch refs/heads/delta-topology-workshop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=e4aa3d4d ]

AIRAVATA-3694 Reset modification time when unarchiving

i.e., 'touch' all of the unarchived files


> User data archive management commands
> -
>
> Key: AIRAVATA-3694
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3694
> Project: Airavata
>  Issue Type: New Feature
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Create management commands to manage archiving user data. The use case is the 
> gateway admin wants to archive older data and then delete that user data to 
> free up disk space.
> The management commands will handle creating archives (as tarballs) and 
> deleting the data from the user data archive directory. There will also be an 
> unarchive command. There are settings for the max age of files to be archived 
> and for the directory in which archives should be copied.
> How the archive file are archived. It's expected that the gateway admin would 
> periodically (perhaps by cron) copy the archive files from the web server to 
> some other file server.
> h3. Description
> archive_user_data creates a tarball archive of user data for all files and 
> directories that are older than some configured amount of days. In addition 
> to the tarball is a text file that lists all of the files and directories 
> that are archived. The tarball and text file can be periodically pushed to 
> tape backup or any other backup location.
> The configuration settings are 
> - GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS
> - GATEWAY_USER_DATA_ARCHIVE_DIRECTORY
> -- this is the directory in which to place the archive files and is also the 
> place where temporary files are generated. Since the archive files can be 
> large, it's important that there be enough free disk space on the partition 
> where this directory lives
> - GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB
> -- defaults to 1 GB. This can be used to prevent creating a lot of small 
> archives since tape archives often want a few large files instead of many 
> small files.
> h4. Running archive_user_data
> All commands should be run as the gateway server user (pga).
> {code}
> python manage.py archive_user_data --dry-run
> {code}
> This just prints the files and directories that would be archived and exits. 
> Good for checking that configuration is correct, etc.
> {code}
> python manage.py archive_user_data
> {code}
> This will actually create an archive and then delete from user data the files 
> that were archived.
> {code}
> python manage.py archive_user_data --max-age MAX_AGE
> {code}
> The --max-age flag allows overriding the 
> GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS setting. This can be a good option to 
> create the first few archives when introducing the user data archive to an 
> existing gateway.
> h4. Running unarchive_user_data 
> unarchive_user_data requires an archive tarball as input. The main use case 
> for this command is that the gateway administrator wants to restore some 
> particular user data. First, the right archive must be found. The experiment 
> details view in Experiment Statistics will display the name of the archive 
> file for an experiment data directory that has been archived. Use this to 
> then retrieve the tarball from backup. Then run unarchive_user_data on the 
> file.
> {code}
> python manage.py unarchive_user_data 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}
> The timestamps will be restored from the archive, including the last modified 
> timestamps. This means that the next time archive_user_data runs, all files 
> unarchived will be re-archived. Sometimes that is desired, but if you want to 
> reset the last modified times, use the {{--reset-modification}} option:
> {code}
> python manage.py unarchive_user_data --reset-modification 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3693) Windows support: use run-s to build frontend code and library

2023-04-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3693?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717185#comment-17717185
 ] 

ASF subversion and git services commented on AIRAVATA-3693:
---

Commit e56c3306f5f1a799d1d5fd1dc03951a10b62674a in airavata-django-portal's 
branch refs/heads/master from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=e56c3306 ]

AIRAVATA-3693 windows JS build action set to use cmd shell


> Windows support: use run-s to build frontend code and library
> -
>
> Key: AIRAVATA-3693
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3693
> Project: Airavata
>  Issue Type: Improvement
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Currently the common frontend code in the Django Portal builds the JS/CSS and 
> the library by using {{&&}} to run the two build steps one after the other. 
> But this only works in Bash shell environments. To work on Windows, 
> [run-s|https://github.com/mysticatea/npm-run-all] is a better alternative.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AIRAVATA-3694) User data archive management commands

2023-04-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/AIRAVATA-3694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717223#comment-17717223
 ] 

ASF subversion and git services commented on AIRAVATA-3694:
---

Commit 15f91433b519f096f0c29869d9b3e9ba2c33c505 in airavata-django-portal's 
branch refs/heads/delta-topology-workshop from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=15f91433 ]

AIRAVATA-3694 log exception when archive fails so it generates an error email 
in production


> User data archive management commands
> -
>
> Key: AIRAVATA-3694
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3694
> Project: Airavata
>  Issue Type: New Feature
>  Components: Django Portal
>Reporter: Marcus Christie
>Assignee: Marcus Christie
>Priority: Major
>
> Create management commands to manage archiving user data. The use case is the 
> gateway admin wants to archive older data and then delete that user data to 
> free up disk space.
> The management commands will handle creating archives (as tarballs) and 
> deleting the data from the user data archive directory. There will also be an 
> unarchive command. There are settings for the max age of files to be archived 
> and for the directory in which archives should be copied.
> How the archive file are archived. It's expected that the gateway admin would 
> periodically (perhaps by cron) copy the archive files from the web server to 
> some other file server.
> h3. Description
> archive_user_data creates a tarball archive of user data for all files and 
> directories that are older than some configured amount of days. In addition 
> to the tarball is a text file that lists all of the files and directories 
> that are archived. The tarball and text file can be periodically pushed to 
> tape backup or any other backup location.
> The configuration settings are 
> - GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS
> - GATEWAY_USER_DATA_ARCHIVE_DIRECTORY
> -- this is the directory in which to place the archive files and is also the 
> place where temporary files are generated. Since the archive files can be 
> large, it's important that there be enough free disk space on the partition 
> where this directory lives
> - GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB
> -- defaults to 1 GB. This can be used to prevent creating a lot of small 
> archives since tape archives often want a few large files instead of many 
> small files.
> h4. Running archive_user_data
> All commands should be run as the gateway server user (pga).
> {code}
> python manage.py archive_user_data --dry-run
> {code}
> This just prints the files and directories that would be archived and exits. 
> Good for checking that configuration is correct, etc.
> {code}
> python manage.py archive_user_data
> {code}
> This will actually create an archive and then delete from user data the files 
> that were archived.
> {code}
> python manage.py archive_user_data --max-age MAX_AGE
> {code}
> The --max-age flag allows overriding the 
> GATEWAY_USER_DATA_ARCHIVE_MAX_AGE_DAYS setting. This can be a good option to 
> create the first few archives when introducing the user data archive to an 
> existing gateway.
> h4. Running unarchive_user_data 
> unarchive_user_data requires an archive tarball as input. The main use case 
> for this command is that the gateway administrator wants to restore some 
> particular user data. First, the right archive must be found. The experiment 
> details view in Experiment Statistics will display the name of the archive 
> file for an experiment data directory that has been archived. Use this to 
> then retrieve the tarball from backup. Then run unarchive_user_data on the 
> file.
> {code}
> python manage.py unarchive_user_data 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}
> The timestamps will be restored from the archive, including the last modified 
> timestamps. This means that the next time archive_user_data runs, all files 
> unarchived will be re-archived. Sometimes that is desired, but if you want to 
> reset the last modified times, use the {{--reset-modification}} option:
> {code}
> python manage.py unarchive_user_data --reset-modification 
> /path/to/archive_seagrid_older_than_2023-04-17-22-15-34.tgz
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


  1   2   3   4   5   6   7   8   9   10   >