hobbit-project / platform

HOBBIT benchmarking platform
GNU General Public License v2.0
24 stars 9 forks source link

Improve the UI for the queue content #90

Closed MichaelRoeder closed 6 years ago

MichaelRoeder commented 7 years ago

Description

At the moment, the status page is generated by the platform controller and the UI simply shows the generated text. For enabling a better interaction with the platform, the UI needs to be able to understand the information that is shown on the page.

Design

The design of the page should take care of the following information that we want to show.

Probably just do an experiment status widget to be used across the whole GUI and display more or less information, including experiment results for experiment results pages.

Also information needs to be updated while page is being left open.

Note that the two queues might be displayed as one single or two seperated queues. The details can be discuss in this issue.

Please take into considerations the information that are needed by #91 to avoid additional work.

Tasks

MichaelRoeder commented 6 years ago

Prepared the backend part for this issue in the feature/newStatusPage branch.

Instead of a String, the GUI-Serverbackend generates a status bean https://github.com/hobbit-project/platform/blob/feature/newStatusPage/hobbit-gui/gui-serverbackend/src/main/java/de/usu/research/hobbit/gui/rest/beans/StatusBean.java This bean contains the information about the running experiment (is null if there is not experiment running at the moment) and queued experiments.

Note that the challenge related attributes of the beans are null if they are not part of a challenge. The same holds for the abortion time of the running experiment which might be unset if the experiment has not been started but is being prepared.

@romankorf and @Ennosigaeon please let us know if you need further information.

Ennosigaeon commented 6 years ago

Using the branch feature/newStatusPage I am running in a weird issue. The content of all benchmarks is null. So the benchmarks are all listed, but every attribute is null. I have attached the according log snippet.

2018-01-18 09:55:47,915 INFO [de.usu.research.hobbit.gui.rest.BenchmarksResources] - <List benchmarks ...>
2018-01-18 09:55:47,973 INFO [de.usu.research.hobbit.gui.rabbitmq.PlatformControllerClient] - <Sending request...>
2018-01-18 09:55:48,151 INFO [de.usu.research.hobbit.gui.rabbitmq.PlatformControllerClient] - <Parsing response...>
2018-01-18 09:55:48,160 INFO [de.usu.research.hobbit.gui.rabbitmq.PlatformControllerClient] - <Preparing response for GUI...>
2018-01-18 09:55:48,162 DEBUG [de.usu.research.hobbit.gui.rabbitmq.PlatformControllerClient] - <[de.usu.research.hobbit.gui.rest.beans.BenchmarkBean@29004187[systems=<null>,configurationParams=<null>,configurationParamNames=[],kpis=<null>,id=<null>,name=<null>,description=<null>], de.usu.research.hobbit.gui.rest.beans.BenchmarkBean@31d55280[systems=<null>,configurationParams=<null>,configurationParamNames=[],kpis=<null>,id=<null>,name=<null>,description=<null>], de.usu.research.hobbit.gui.rest.beans.BenchmarkBean@5e7da5f6[systems=<null>,configurationParams=<null>,configurationParamNames=[],kpis=<null>,id=<null>,name=<null>,description=<null>], de.usu.research.hobbit.gui.rest.beans.BenchmarkBean@6276a79[systems=<null>,configurationParams=<null>,configurationParamNames=[],kpis=<null>,id=<null>,name=<null>,description=<null>], de.usu.research.hobbit.gui.rest.beans.BenchmarkBean@2d001f43[systems=<null>,configurationParams=<null>,configurationParamNames=[],kpis=<null>,id=<null>,name=<null>,description=<null>], de.usu.research.hobbit.gui.rest.beans.BenchmarkBean@36da0931[systems=<null>,configurationParams=<null>,configurationParamNames=[],kpis=<null>,id=<null>,name=<null>,description=<null>], de.usu.research.hobbit.gui.rest.beans.BenchmarkBean@53b5809[systems=<null>,configurationParams=<null>,configurationParamNames=[],kpis=<null>,id=<null>,name=<null>,description=<null>], de.usu.research.hobbit.gui.rest.beans.BenchmarkBean@38728e75[systems=<null>,configurationParams=<null>,configurationParamNames=[],kpis=<null>,id=<null>,name=<null>,description=<null>], de.usu.research.hobbit.gui.rest.beans.BenchmarkBean@15a5743f[systems=<null>,configurationParams=<null>,configurationParamNames=[],kpis=<null>,id=<null>,name=<null>,description=<null>], de.usu.research.hobbit.gui.rest.beans.BenchmarkBean@7350643b[systems=<null>,configurationParams=<null>,configurationParamNames=[],kpis=<null>,id=<null>,name=<null>,description=<null>], de.usu.research.hobbit.gui.rest.beans.BenchmarkBean@2c748148[systems=<null>,configurationParams=<null>,configurationParamNames=[],kpis=<null>,id=<null>,name=<null>,description=<null>], de.usu.research.hobbit.gui.rest.beans.BenchmarkBean@d9b395[systems=<null>,configurationParams=<null>,configurationParamNames=[],kpis=<null>,id=<null>,name=<null>,description=<null>], de.usu.research.hobbit.gui.rest.beans.BenchmarkBean@3ee33b3d[systems=<null>,configurationParams=<null>,configurationParamNames=[],kpis=<null>,id=<null>,name=<null>,description=<null>], de.usu.research.hobbit.gui.rest.beans.BenchmarkBean@4e62f166[systems=<null>,configurationParams=<null>,configurationParamNames=[],kpis=<null>,id=<null>,name=<null>,description=<null>], de.usu.research.hobbit.gui.rest.beans.BenchmarkBean@46145723[systems=<null>,configurationParams=<null>,configurationParamNames=[],kpis=<null>,id=<null>,name=<null>,description=<null>], de.usu.research.hobbit.gui.rest.beans.BenchmarkBean@b9c116f[systems=<null>,configurationParams=<null>,configurationParamNames=[],kpis=<null>,id=<null>,name=<null>,description=<null>], de.usu.research.hobbit.gui.rest.beans.BenchmarkBean@2c81f9f2[systems=<null>,configurationParams=<null>,configurationParamNames=[],kpis=<null>,id=<null>,name=<null>,description=<null>], de.usu.research.hobbit.gui.rest.beans.BenchmarkBean@75b1d4c5[systems=<null>,configurationParams=<null>,configurationParamNames=[],kpis=<null>,id=<null>,name=<null>,description=<null>], de.usu.research.hobbit.gui.rest.beans.BenchmarkBean@1178281f[systems=<null>,configurationParams=<null>,configurationParamNames=[],kpis=<null>,id=<null>,name=<null>,description=<null>], de.usu.research.hobbit.gui.rest.beans.BenchmarkBean@7a844436[systems=<null>,configurationParams=<null>,configurationParamNames=[],kpis=<null>,id=<null>,name=<null>,description=<null>], de.usu.research.hobbit.gui.rest.beans.BenchmarkBean@59e96cfd[systems=<null>,configurationParams=<null>,configurationParamNames=[],kpis=<null>,id=<null>,name=<null>,description=<null>], de.usu.research.hobbit.gui.rest.beans.BenchmarkBean@22858cf9[systems=<null>,configurationParams=<null>,configurationParamNames=[],kpis=<null>,id=<null>,name=<null>,description=<null>]]>
2018-01-18 09:55:48,167 INFO [de.usu.research.hobbit.gui.rabbitmq.PlatformControllerClient] - <Sending response to GUI...>

Using the branch feature/logfiledownload-issue93 everything works as intended.

@MichaelRoeder Any idea what is broken?

Ennosigaeon commented 6 years ago

@MichaelRoeder Nevermind... I havn't noticed that you have also changed the platform controller.

Ennosigaeon commented 6 years ago

I have implemented a basic version of the status page. However, I have two questions:

  1. In my tests the latestDateToFinish field was never set for a running experiment. Is this behaviour intended?
  2. How can I cancel an experiment?
MichaelRoeder commented 6 years ago
  1. The date was set in my example
    {
    "queuedExperiments":[
    {
    "experimentId":"1516289813663","benchmarkUri":"http://w3id.org/hobbit/platform-benchmark/vocab#PlatformBenchmark","systemUri":"http://w3id.org/hobbit/platform-benchmark/vocab#PlatformBenchSystem_1","systemName":"http://w3id.org/hobbit/platform-benchmark/vocab#PlatformBenchSystem_1","dateOfExecution":0,"canBeCanceled":false
    }],
    "runningExperiment":{
    "experimentId":"1516289800894","benchmarkUri":"http://w3id.org/hobbit/platform-benchmark/vocab#PlatformBenchmark","systemUri":"http://w3id.org/hobbit/platform-benchmark/vocab#PlatformBenchSystem_1","systemName":"HOBBIT Platform Benchmark System 1","dateOfExecution":0,"canBeCanceled":false,"startTimestamp":"2018-01-18T15:36:41Z","latestDateToFinish":"2018-01-18T15:56:42Z","status":"The benchmarking has started."
    }}

    or do you mean "dateOfExecution":0. This date is only set for experiments which are part of a challenge.

I like the visualization of the maximal runtime :smiley: Could you please call it "Max. runtime" or similar? Since it is the maximum amount of time that the experiment might be running.

  1. This part is in a different branch (feature/experimentTermination-issue91). I just merged your changes into this branch.
Ennosigaeon commented 6 years ago
  1. I meant the latestDateToFinish but if it works for you, it's fine by me. I just wanted to test it.
  2. I have seen it right after posting the comment.
  3. If you think the status page is fine the way it is, i am done with this ticket.
Ennosigaeon commented 6 years ago

Another thing I have just noticed: The benchmark name is not set, thats the reason why I am still displaying Test. The benchmark name is also missing in the JSON snippet you have posted. Will you add it or shall I display the benchmark uri?

MichaelRoeder commented 6 years ago

You are right. The missing name is a mistake. I will add it. I think we should always show the name attributes. The URI will be inserted by the backend if it does not know the name (as it currently does not know the names of the systems/benchmarks that are still in the queue).

MichaelRoeder commented 6 years ago

The benchmark name was not correctly set. This has been fixed.

Ennosigaeon commented 6 years ago

@MichaelRoeder Benchmark name for queued experiments is now available, but for the running experiment still missing.

{  
   "queuedExperiments":[  
      {  
         "experimentId":"1516614107397",
         "benchmarkUri":"http://w3id.org/bench#SparqlSNBBenchmark",
         "benchmarkName":"http://w3id.org/bench#SparqlSNBBenchmark",
         "systemUri":"http://w3id.org/bench#virtuoso72",
         "systemName":"http://w3id.org/bench#virtuoso72",
         "dateOfExecution":0,
         "canBeCanceled":false
      }
   ],
   "runningExperiment":{  
      "experimentId":"1516614101887",
      "benchmarkUri":"http://w3id.org/bench#SparqlSNBBenchmark",
      "systemUri":"http://w3id.org/bench#virtuoso",
      "systemName":"OpenLink Virtuoso Opensource",
      "dateOfExecution":0,
      "canBeCanceled":false,
      "startTimestamp":"2018-01-22T09:41:49Z",
      "latestDateToFinish":"2018-01-22T10:05:35Z",
      "status":"Benchmark and system are initializing."
   }
}
MichaelRoeder commented 6 years ago

Yes, there was a small bug regarding that. It has been fixed.

{
"queuedExperiments":[],
"runningExperiment":{
  "experimentId":"1516801679835",
  "benchmarkUri":"http://w3id.org/hobbit/platform-benchmark/vocab#PlatformBenchmark",
  "benchmarkName":"HOBBIT Platform Benchmark",
  "systemUri":"http://w3id.org/hobbit/platform-benchmark/vocab#PlatformBenchSystem_1",
  "systemName":"HOBBIT Platform Benchmark System 1",
  "dateOfExecution":0,
  "canBeCanceled":false,
  "startTimestamp":"2018-01-24T13:48:06Z",
  "latestDateToFinish":"2018-01-24T14:08:14Z",
  "status":"Benchmark and system are initializing."
}}

And it works: hobbit gui 16

Ennosigaeon commented 6 years ago

@MichaelRoeder Can this issue be closed?