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

Update the installation status in the local App Store

    Details

    • Type: Improvement
    • Status: Closed (View Workflow)
    • Priority: Minor
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:

      Description

      If the plugin is installed using the Web App Store,

      the status should also be reflected in the local app store.

      **Note: the functionCallback has to be changed for this.

        Activity

        Hide
        aloraine Ann Loraine added a comment -

        This looks like the issue you were talking about earlier today (before lunch).
        KK's and my changes are now merged into master. Please use the new master branch as a starting point.

        Show
        aloraine Ann Loraine added a comment - This looks like the issue you were talking about earlier today (before lunch). KK's and my changes are now merged into master. Please use the new master branch as a starting point.
        Hide
        rpatil14 Riddhi Jagdish Patil added a comment -

        Issue:- Update the installation status in the local App Store

        Solution:-
        Added a callback mechanism in Web app manager which updates the status of app available in IGB to installed when it receives app installation request.

        Files changed:-
        plugins/AppStore/src/main/java/org/lorainelab/igb/appstore/IgbAppServer.java
        plugins/AppStore/src/main/java/org/lorainelab/igb/appstore/WebAppManager.java
        plugins/plugin-manager/src/main/java/org/lorainelab/igb/plugin/manager/AppManagerFxPanel.java

        Testing steps:-
        Scenario #1 : Install available App :
        Make an http GET request by passing valid symbolic name as follows:-
        Input - http://127.0.0.1:7090/installApp?symbolicName=org.lorainelab.igb.protannot
        Output - The app should be installed successfully and its status should be updated in local App Store. The request should return response with status "200 Ok".

        Scenario #2: Try installing unavailable App:
        Make an http GET request by passing invalid symbolic name as follows:-
        Input - http://127.0.0.1:7090/installApp?symbolicName=org.lorainelab.igb.fakeapp
        Output - The app should not be installed and the request should return response with status "404 Not found".

        Testing results:-
        Please find attached test result screenshots.

        Code changes:-
        https://bitbucket.org/rpatil14/riddhifork-igb/branch/IGBF-1608#diff

        Show
        rpatil14 Riddhi Jagdish Patil added a comment - Issue:- Update the installation status in the local App Store Solution:- Added a callback mechanism in Web app manager which updates the status of app available in IGB to installed when it receives app installation request. Files changed:- plugins/AppStore/src/main/java/org/lorainelab/igb/appstore/IgbAppServer.java plugins/AppStore/src/main/java/org/lorainelab/igb/appstore/WebAppManager.java plugins/plugin-manager/src/main/java/org/lorainelab/igb/plugin/manager/AppManagerFxPanel.java Testing steps:- Scenario #1 : Install available App : Make an http GET request by passing valid symbolic name as follows:- Input - http://127.0.0.1:7090/installApp?symbolicName=org.lorainelab.igb.protannot Output - The app should be installed successfully and its status should be updated in local App Store. The request should return response with status "200 Ok". Scenario #2: Try installing unavailable App: Make an http GET request by passing invalid symbolic name as follows:- Input - http://127.0.0.1:7090/installApp?symbolicName=org.lorainelab.igb.fakeapp Output - The app should not be installed and the request should return response with status "404 Not found". Testing results:- Please find attached test result screenshots. Code changes:- https://bitbucket.org/rpatil14/riddhifork-igb/branch/IGBF-1608#diff
        Hide
        aloraine Ann Loraine added a comment - - edited

        This looks good - please submit pull request.
        For the next step, we need to include (somehow) a parameter indicating the repository. That's because there could be multiple apps with the same symbolic name, offered by different repositories. This would likely happen most often during development. For example, a developer could be working on a new ProtAnnot bundle and with the local "target" (build) directory serving as a local repository. Also, the production App Store will also be (or have) a repository, so it will always be able to provide this information to IGB when using the REST endpoint to trigger App installation or update.

        After that, I'd like to move WebAppManager into the Plugin Manager module and expose its functionality as a service, along the lines we discussed in the meeting today, rather than give the appstore bundle direct access to the internals of the other bundle. I am not sure how to do it, however, or if this is a good idea or not.

        Show
        aloraine Ann Loraine added a comment - - edited This looks good - please submit pull request. For the next step, we need to include (somehow) a parameter indicating the repository. That's because there could be multiple apps with the same symbolic name, offered by different repositories. This would likely happen most often during development. For example, a developer could be working on a new ProtAnnot bundle and with the local "target" (build) directory serving as a local repository. Also, the production App Store will also be (or have) a repository, so it will always be able to provide this information to IGB when using the REST endpoint to trigger App installation or update. After that, I'd like to move WebAppManager into the Plugin Manager module and expose its functionality as a service, along the lines we discussed in the meeting today, rather than give the appstore bundle direct access to the internals of the other bundle. I am not sure how to do it, however, or if this is a good idea or not.
        Show
        rpatil14 Riddhi Jagdish Patil added a comment - Pull request submitted:- https://bitbucket.org/lorainelab/integrated-genome-browser/pull-requests/678/igbf-1608-update-the-installation-status/diff
        Hide
        aloraine Ann Loraine added a comment -

        Merged to master.

        Show
        aloraine Ann Loraine added a comment - Merged to master.
        Hide
        aloraine Ann Loraine added a comment -

        Revision:
        We actually do not need information about the repository. My previous comment is wrong.
        The SymbolicName and Version of an app bundle is all that is needed.

        Show
        aloraine Ann Loraine added a comment - Revision: We actually do not need information about the repository. My previous comment is wrong. The SymbolicName and Version of an app bundle is all that is needed.
        Hide
        prutha Prutha Kulkarni added a comment -

        Functional testing has been done for the ticket.

        Show
        prutha Prutha Kulkarni added a comment - Functional testing has been done for the ticket.

          People

          • Assignee:
            rpatil14 Riddhi Jagdish Patil
            Reporter:
            kkorey Kiran Korey (Inactive)
          • Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development

                Agile