Uploaded image for project: 'Metron (Retired)'
  1. Metron (Retired)
  2. METRON-1856

[UI] Implement parser grouping with drag and drop

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: To Do
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None

    Description

      The capability to group parsers via the CLI already exists in Metron, but it currently is not possible to do so through the Management UI. This feature seems important as it allows users to pass in groups of parsers to start, stop, disable and enable rather than enacting the action on each individual parser.

      An initial implementation of the UI was done by Tamás Fodor, Tibor Meller and myself (@ruffle1986, @tiborm and @sardell on GitHub, respectively), and the REST endpoint work was performed by Ryan Merriman in PR 1396: https://github.com/apache/metron/pull/1396.

      Here is a brief description of the UI changes we proposing (and subsequently implemented in PR 1360).

      In order to create a parser group, simply drag and drop two parsers together. A user can optionally update the name and add a description before creating the group. Notice that once a group is created, the parser group is highlighted in green and the parsers moved inside of a group are highlighted in yellow.

      Once a user has created the parser groups they want, they can simply click on the apply button at the bottom of the screen. You'll notice the highlighting colors go away, a success message appears and controls for all the parsers in the group are available at the group level (in this case the start button).

      If a user wants to add to a group or create a new group from nested parsers, they can choose to either merge or create a new group as shown below.

      If a user wants to delete a group, they can simply click on the trash can icon in the group's controls section. We chose to keep the confirmation popup in addition to the apply button in order to prevent accidental group deletions and prevent sending multiple http delete calls one after the other to the backend. If a user decides not to delete a group after confirming with the modal window, they can click on the discard button to return to the previous state.

      Attachments

        1. create-parser-group.gif
          6.16 MB
          Shane Ardell
        2. save-parser-group.gif
          1.75 MB
          Shane Ardell
        3. delete-parser-group.gif
          469 kB
          Shane Ardell
        4. merge-and-create-new-group.gif
          10.21 MB
          Shane Ardell

        Issue Links

          1.
          Add Drag and Drop Capability to Parsers Sub-task To Do Unassigned

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 20m
          2.
          Setup Parser Grouping Service with Mock Backend Sub-task To Do Unassigned  
          3.
          [UI] Moving components to sensor parser module Sub-task Done Tibor Meller

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 2h
          4.
          [UI] Aligning UI to the parser aggregation API Sub-task Done Tibor Meller

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 1h 10m
          5.
          [UI] Removing redundant AppConfigService Sub-task Done Tibor Meller

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 50m
          6.
          [UI] Aligning models to grouping feature Sub-task Done Tibor Meller

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 2h 20m
          7.
          [UI] Fixing early app config access issue Sub-task Done Tibor Meller

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 0.5h
          8.
          [UI] Move status information and start/stop to the Aggregate level Sub-task Done Shane Ardell

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 0.5h
          9.
          [UI] Making changes visible in the parser list by marking changed items Sub-task Done Shane Ardell

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 0.5h
          10.
          [UI] Editing parser aggregate updates Sub-task To Do Shane Ardell  
          11.
          Add NgRx and related dependencies Sub-task Done Tamas Fodor

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 0.5h
          12.
          Add NgRx effects to communicate with the server Sub-task Done Tamas Fodor

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 0.5h
          13.
          Add NgRx reducers to perform parser and group changes in the store Sub-task Done Tamas Fodor

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 50m
          14.
          Add NgRx actions to trigger state changes Sub-task Done Tamas Fodor

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 0.5h
          15.
          Add parser aggregation sidebar Sub-task Done Tamas Fodor

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 0.5h
          16.
          Implement drag and drop mechanism and wire NgRx Sub-task Done Tamas Fodor

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 0.5h
          17.
          Code clean up Sub-task Done Tamas Fodor

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 50m
          18.
          Refactoring sensor-parser-config.component and wire NgRx Sub-task Done Tamas Fodor

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 1h 20m
          19.
          Update with the latest master branch Sub-task Done Shane Ardell

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 1h 20m
          20.
          Update sensor effect tests to use mock store and actions Sub-task To Do Unassigned  
          21.
          [UI] Eliminate Create new/merge screen Sub-task Done Shane Ardell

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 40m
          22.
          [UI] Extend e2e tests Sub-task Done Tibor Meller  
          23.
          [UI] Delete confirmation dialogue looks visually broken Sub-task In Progress Tibor Meller

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 0.5h
          24.
          Merge master into feature branch Sub-task To Do Unassigned

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 1h 20m
          25.
          Wrong validation message appears when clicking on input of existing group Sub-task Done Shane Ardell

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 50m

          Activity

            People

              Unassigned Unassigned
              tibormeller Tibor Meller
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 20h
                  20h