Uploaded image for project: 'IGB'
  1. IGB
  2. IGBF-2950

Investigate how to make the site more robust to back end CyVerse errors

    Details

    • Type: Task
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None
    • Story Points:
      1
    • Sprint:
      Fall 3 2021 Sep 13 - Sep 24, Fall 4 2021 Sep 27 - Oct 8, Fall 5 2021 Oct 11 - Oct 22

      Description

      Find the best ways to indicate to the user about errors that can be caused either by Cyverse APIs, Bioviz Connect, or user input especially when Cyverse is down or maintenance is underway

        Attachments

          Issue Links

            Activity

            ann.loraine Ann Loraine created issue -
            ann.loraine Ann Loraine made changes -
            Field Original Value New Value
            Epic Link IGBF-2376 [ 18533 ]
            ann.loraine Ann Loraine made changes -
            Link This issue relates to IGBF-2940 [ IGBF-2940 ]
            ann.loraine Ann Loraine made changes -
            Assignee Ann Loraine [ aloraine ]
            ann.loraine Ann Loraine made changes -
            Story Points 1.5 1
            ann.loraine Ann Loraine made changes -
            Link This issue relates to IGBF-2951 [ IGBF-2951 ]
            karthik Karthik Raveendran made changes -
            Status To-Do [ 10305 ] In Progress [ 3 ]
            karthik Karthik Raveendran made changes -
            Assignee Karthik Raveendran [ karthik ]
            ann.loraine Ann Loraine made changes -
            Sprint Fall 3 2021 Sep 13 - Sep 24 [ 129 ] Fall 3 2021 Sep 13 - Sep 24, Fall 4 2021 Sep 27 - Oct 8 [ 129, 130 ]
            ann.loraine Ann Loraine made changes -
            Rank Ranked higher
            karthik Karthik Raveendran made changes -
            Status In Progress [ 3 ] To-Do [ 10305 ]
            karthik Karthik Raveendran made changes -
            Rank Ranked higher
            ann.loraine Ann Loraine made changes -
            Rank Ranked lower
            Hide
            nfreese Nowlan Freese added a comment -

            One idea would be to add some logic to bioviz.org/connect so that if the various CyVerse resources are down we prevent users from logging in. This could be accomplished using the webhooks available through https://status.cyverse.org/.

            Show
            nfreese Nowlan Freese added a comment - One idea would be to add some logic to bioviz.org/connect so that if the various CyVerse resources are down we prevent users from logging in. This could be accomplished using the webhooks available through https://status.cyverse.org/ .
            karthik Karthik Raveendran made changes -
            Status To-Do [ 10305 ] In Progress [ 3 ]
            Hide
            karthik Karthik Raveendran added a comment - - edited

            The Webhooks in https://status.cyverse.org/ seems like a good solution for CAS login issues because they provide APIs specifically CAS status. However, they do not seem to have specific webhooks for Terrain API error status. In the Discovery Environment section, Cyverse has a status webhook for their website but I am not sure if it is for Terrain or Tapis(previously Agave). We could just subscribe to the CAS service status and redirect users to a "broken robot" page in case it is not operational.

            Note: Cyverse is using https://status.io/ infrastructure to run the webhooks.

            Show
            karthik Karthik Raveendran added a comment - - edited The Webhooks in https://status.cyverse.org/ seems like a good solution for CAS login issues because they provide APIs specifically CAS status. However, they do not seem to have specific webhooks for Terrain API error status. In the Discovery Environment section, Cyverse has a status webhook for their website but I am not sure if it is for Terrain or Tapis(previously Agave). We could just subscribe to the CAS service status and redirect users to a "broken robot" page in case it is not operational. Note: Cyverse is using https://status.io/ infrastructure to run the webhooks.
            Hide
            karthik Karthik Raveendran added a comment -

            To redirect users in case of an outage or an error in any of the Terrain APIs, we could create a "broken robot" error page to redirect users.

            1) Any errors caused due to access issues are caught in getSessionId function in views.py as the getAccessToken API is called from this function.
            2) Issues about user data are caught in getRootPathUser in views.py(or getUserDetails function in getUserDetail.py). This function is used to get the root path of the user's file directory and the only parameter passed here is the access token.

            Redirecting users to the error page upon receiving an error in these two functions makes a lot of sense to me because there is not a lot of mistakes that we, as developers, or the users can make in these API calls. So the errors could only most certainly come from Cyverse. Currently, we are handling only the authorization errors in these functions.

            Show
            karthik Karthik Raveendran added a comment - To redirect users in case of an outage or an error in any of the Terrain APIs, we could create a "broken robot" error page to redirect users. 1) Any errors caused due to access issues are caught in getSessionId function in views.py as the getAccessToken API is called from this function. 2) Issues about user data are caught in getRootPathUser in views.py(or getUserDetails function in getUserDetail.py). This function is used to get the root path of the user's file directory and the only parameter passed here is the access token. Redirecting users to the error page upon receiving an error in these two functions makes a lot of sense to me because there is not a lot of mistakes that we, as developers, or the users can make in these API calls. So the errors could only most certainly come from Cyverse. Currently, we are handling only the authorization errors in these functions.
            karthik Karthik Raveendran made changes -
            Description Find the best ways to indicate to the user about errors that can be caused either by Cyverse APIs, Bioviz Connect, or user input especially when Cyverse is down or maintenance is underway
            karthik Karthik Raveendran made changes -
            Assignee Karthik Raveendran [ karthik ]
            karthik Karthik Raveendran made changes -
            Status In Progress [ 3 ] Needs 1st Level Review [ 10005 ]
            karthik Karthik Raveendran made changes -
            Status Needs 1st Level Review [ 10005 ] First Level Review in Progress [ 10301 ]
            karthik Karthik Raveendran made changes -
            Status First Level Review in Progress [ 10301 ] Needs 1st Level Review [ 10005 ]
            karthik Karthik Raveendran made changes -
            Comment [ Submitted PR

            Added a try-except to catch NoneType errors that occur when accesstoken parameter is not present or if accesstoken is not active ]
            ann.loraine Ann Loraine made changes -
            Sprint Fall 3 2021 Sep 13 - Sep 24, Fall 4 2021 Sep 27 - Oct 8 [ 129, 130 ] Fall 3 2021 Sep 13 - Sep 24, Fall 4 2021 Sep 27 - Oct 8, Fall 5 2021 Oct 11 - Oct 22 [ 129, 130, 131 ]
            ann.loraine Ann Loraine made changes -
            Rank Ranked higher
            ann.loraine Ann Loraine made changes -
            Status Needs 1st Level Review [ 10005 ] First Level Review in Progress [ 10301 ]
            ann.loraine Ann Loraine made changes -
            Status First Level Review in Progress [ 10301 ] Ready for Pull Request [ 10304 ]
            ann.loraine Ann Loraine made changes -
            Status Ready for Pull Request [ 10304 ] Pull Request Submitted [ 10101 ]
            ann.loraine Ann Loraine made changes -
            Status Pull Request Submitted [ 10101 ] Reviewing Pull Request [ 10303 ]
            ann.loraine Ann Loraine made changes -
            Status Reviewing Pull Request [ 10303 ] Merged Needs Testing [ 10002 ]
            ann.loraine Ann Loraine made changes -
            Status Merged Needs Testing [ 10002 ] Post-merge Testing In Progress [ 10003 ]
            ann.loraine Ann Loraine made changes -
            Resolution Done [ 10000 ]
            Status Post-merge Testing In Progress [ 10003 ] Closed [ 6 ]
            ann.loraine Ann Loraine made changes -
            Assignee Karthik Raveendran [ karthik ]
            karthik Karthik Raveendran made changes -
            Link This issue is blocked by IGBF-2982 [ IGBF-2982 ]

              People

              • Assignee:
                karthik Karthik Raveendran
                Reporter:
                ann.loraine Ann Loraine
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: