summaryrefslogtreecommitdiff
path: root/opendc-web
AgeCommit message (Collapse)Author
2022-10-27refactor(web/ui): Drop dependency on FontAwesomeFabian Mastenbroek
This change removes the explicit dependency on FontAwesome. PatternFly also ships with the FontAwesome icons, so use these icons instead to reduce the footprint of the application.
2022-10-21fix: Add log4j-core dependencyFabian Mastenbroek
This change adds the log4j-core dependency to various modules of OpenDC using log4j2, to ensure logging keeps working. The upgrade to SLF4J 2.0 broke the Log4j2 functionality, since the log4j-core artifact is not automatically shipped with the SLF4J implementation.
2022-10-21refactor(sim/compute): Re-implement using flow2Fabian Mastenbroek
This change re-implements the OpenDC compute simulator framework using the new flow2 framework for modelling multi-edge flow networks. The re-implementation is written in Java and focusses on performance and clean API surface.
2022-10-10fix(web/ui): Fix UnitInfo popoverFabian Mastenbroek
This change addresses an issue with the topology sidebar where hovering a CPU or GPU would not present the correct information due to bug.
2022-10-10fix(web/runner): Increase default job timeoutFabian Mastenbroek
This change fixes an issue with the OpenDC web runner where the default job timeout was set to 10 ms instead of 10 minutes. For longer simulations, this would cause the job to be terminated.
2022-10-10fix(web/runner): Fix service metric reportingFabian Mastenbroek
This change resolves an issue in the web runner where the finished VMs would always be reported as zero.
2022-10-10feat(web/ui): Show monthly simulation budget in UIFabian Mastenbroek
This change updates the OpenDC web UI to show the monthly simulation budget of the user in the user dropdown. This provides the user with a progress bar of the used simulation minutes.
2022-10-10feat(web/server): Add API for querying user accounting dataFabian Mastenbroek
This change updates the Quarkus-based web server with a new endpoint for querying data about the active user including accounting data.
2022-10-10feat(web/server): Add support for accounting simulation timeFabian Mastenbroek
This change updates the Quarkus-based web server to add support for tracking and limiting the simulation minutes used by the user in order to prevent misuse of shared resources.
2022-10-07fix(web/server): Limit exception mapper to WebApplicationExceptionFabian Mastenbroek
This change updates the Quarkus-based web server to limit the default exception mapper to just WebApplicationException. Other exceptions should be considered internal server errors and must not be shared with users.
2022-10-06build: Switch to Spotless for formattingFabian Mastenbroek
This change updates the build configuration to use Spotless for code formating of both Kotlin and Java.
2022-10-06style: Eliminate use of wildcard importsFabian Mastenbroek
This change updates the repository to remove the use of wildcard imports everywhere. Wildcard imports are not allowed by default by Ktlint as well as Google's Java style guide.
2022-10-06build: Update next version to 3.0Fabian Mastenbroek
This change updates the build script in preparation for the OpenDC v3.0 release changing the version numbers to the appropriate values.
2022-10-05refactor(sim/core): Rename runBlockingSimulation to runSimulationFabian Mastenbroek
This change renames the method `runBlockingSimulation` to `runSimulation` to put more emphasis on the simulation part of the method. The blocking part is not that important, but this behavior is still described in the method documentation.
2022-10-05refactor(sim/core): Use SimulationScheduler in coroutine dispatcherFabian Mastenbroek
This change updates the implementation of `SimulationDispatcher` to use a (possibly user-provided) `SimulationScheduler` for managing the execution of the simulation and future tasks.
2022-10-03refactor(exp/compute): Remove Topology interfaceFabian Mastenbroek
This change removes the Topology interface from the `opendc-experiments-compute` module, which was meant for provisioning the experimental topology. Howerver, with the stateless `HostSpec` class, it is not needed to resolve the topology everytime.
2022-10-03refactor(exp/compute): Integrate compute workload classesFabian Mastenbroek
This change integrates the classes from the old `opendc-compute-workload` module into the `opendc-experiments-compute` module. This new module contains helper classes for setting up experiments with the OpenDC compute service.
2022-10-03refactor(web/runner): Use experiment base for web runnerFabian Mastenbroek
This change updates the OpenDC web runner to use the new `opendc-experiments-base` module for setting up the experimental environment and simulate the workload.
2022-09-23refactor(compute): Provide access to instances in compute serviceFabian Mastenbroek
This change updates the interface of `ComputeService` to provide access to the instances (servers) that have been registered with the compute service. This allows metric collectors to query the metrics of the servers that are currently running.
2022-09-22refactor(compute): Pass failure model during workload evaluationFabian Mastenbroek
This change updates the `ComputeServiceHelper` class to provide the failure model via a parameter to the `run` method instead of constructor parameter. This separates the construction of the topology from the simulation of the workload.
2022-09-22refactor(sim/compute): Make interference domain independent of profileFabian Mastenbroek
This change updates the virtual machine performance interference model so that the interference domain can be constructed independently of the interference profile. As a consequence, the construction of the topology now does not depend anymore on the interference profile.
2022-09-22refactor(sim/compute): Extract Random dependency from interference modelFabian Mastenbroek
This change moves the Random dependency outside the interference model, to allow the interference model to be completely immutable and passable between different simulations.
2022-09-20refactor(web/ui): Migrate to composable tableFabian Mastenbroek
This change updates the web interface to use the composable table API offered by PatternFly 4. This has replaced the legacy table API which will be removed in the next major version of PatternFly.
2022-09-20fix(web/server): Fix deletion of portfoliosFabian Mastenbroek
This change fixes an issue where the deletion of portfolios would fail due to no transaction context being active.
2022-09-20fix(web/ui): Fix overflow of topology sidebarFabian Mastenbroek
This change fixes an issue with the web interface where the sidebar would overflow due to the large number of rack slots that are displayed in the sidebar.
2022-09-20fix(web/ui): Do not fail on stale Redux stateFabian Mastenbroek
This change fixes an issue where switching between different topologies would fail due to stale Redux state. We have updated the components to take into account that ids may not exist in the Redux store.
2022-09-20refactor(web/ui): Use PatternFly Charts for plotsFabian Mastenbroek
This change updates the OpenDC web interface to use the PatternFly Charts package to render the results of a portfolio. Previously, we used Recharts, but this package does not support SSR, whereas the PatternFly Charts package matches our design framework.
2022-09-20feat(web/ui): Redesign projects pageFabian Mastenbroek
This change updates the design of the projects page to use a gallery overview.
2022-09-20feat(web/ui): Reduce height of application headerFabian Mastenbroek
This change reduces the height of the application header to 3.5rem to increase the screen real-estate that we can use for the application content.
2022-09-20refactor(web/ui): Move project selector into mastheadFabian Mastenbroek
This change moves the project selector into the masthead since it affects the whole application. This follows the PatternFly guidelines.
2022-09-20fix(web/ui): Fix z-index of context selector componentFabian Mastenbroek
This change addresses an issue with the context selector component where the dropdown would fall behind a sticky tab bar in the main content.
2022-09-20build(web/ui): Use clsx instead of classnamesFabian Mastenbroek
This change replaces the classnames dependency for the clsx dependency, which uses less code and is in general faster than the classnames dependency.
2022-09-20fix(web/ui): Only display selected metricsFabian Mastenbroek
This change fixes an issue with the web interface where all available metrics were shown to the user, instead of the metrics belonging to the portfolio.
2022-09-20fix(web/ui): Fix duplication of topologyFabian Mastenbroek
This change addresses an issue where a new topology did not correctly clone an existing topology.
2022-09-20fix(web/ui): Fix deletion of topologyFabian Mastenbroek
This change fixes an issue with the OpenDC web interface where the user cannot remove an existing topology from the topology table due to a programming mistake.
2022-09-20build(web/ui): Update dependenciesFabian Mastenbroek
This change updates the dependencies of the OpenDC web interface were possible. We remain on React 17 until PatternFly adds support for the new React version.
2022-08-03build(web/server): Include sample traces in distributionFabian Mastenbroek
This change updates the build script of the OpenDC web server to include the sample traces in the repository.
2022-08-03fix(web/server): Customize Auth0 settings during build timeFabian Mastenbroek
This change fixes the Dockerfile for the OpenDC web server by also providing the custom Auth0 configuration values during build time of the image. These settings cannot be changed during runtime, so we need to declare them in the Dockerfile.
2022-08-03fix(web/ui): Fix Docker deploymentFabian Mastenbroek
This change fixes the Docker deployment of the OpenDC web UI. There have been several updates to the build process of the web UI, which have not taken into account the Docker deployment process. This change addresses these discrepancies.
2022-08-03feat(web/server): Implement database migrations using FlywayFabian Mastenbroek
This change updates the Quarkus-based web server to use Flyway for migrating between schema versions. This enables us to evolve the schema and denote it in SQL.
2022-08-03refactor(web/server): Create standalone OpenDC distributionFabian Mastenbroek
This change updates the Quarkus configuration of the OpenDC web server to serve as a fully standalone distribution that is capable of serving the web UI, web API, and experiment runner. Such an approach vastly simplifies local deployments. For Docker deployments, we create a custom Quarkus profile that uses PostgreSQL and disables the web UI.
2022-08-03fix(web/server): Reduce logging output from web runnerFabian Mastenbroek
This change updates the web server configuration to reduce the logging output produced by simulation runs.
2022-08-03feat(web/runner): Avoid REST layer if possibleFabian Mastenbroek
This change updates the Quarkus extension for the OpenDC runner to avoid the REST layer if possible, by providing an implementation of `JobManager` that directly communicates with the `JobService`. This means the runner does not have to traverse the authentication layer.
2022-08-03refactor(web/runner): Support pluggable job managerFabian Mastenbroek
This change introduces a new interface `JobManager` that is responsible for communicating with the backend about the available jobs and updating their status when the runner is simulating a job. This manager can be injected into the `OpenDCRunner` class and allows users to provide different sources for the jobs, not only the current REST API.
2022-08-03feat(web/runner): Automatically compute experiment parallelismFabian Mastenbroek
This change updates the runner configuration to support specifying the parallelism as zero to let the runtime decide the appropriate number of threads based on the available CPU cores on the machine.
2022-08-03fix(web/runner): Prevent reporting NaN valuesFabian Mastenbroek
This change fixes an issue with the OpenDC web runner where it would report NaN values for some of the metrics due to the topology being empty. This in turn causes issues in the frontend.
2022-08-03fix(web/runner): Gracefully exit on interruptFabian Mastenbroek
This change updates the web runner implementation to gracefully exit the current thread when interrupted.
2022-08-03fix(web/runner): Use correct context ClassLoader for ForkJoinPoolFabian Mastenbroek
This change updates the OpenDC web runner implementation to use the correct context ClassLoader for simulation jobs running inside a ForkJoinPool. By default, the ForkJoinPool will use the system class loader which does not have access to the services needed by the web runner.
2022-08-03fix(web/runner): Register all available trace formatsFabian Mastenbroek
This change updates the Quarkus extension to register all the available trace formats that are on the class path during processing time. Without this change, the OpenDC web runner is unable to load any of the available trace formats via Quarkus.
2022-06-23build: Update simulator dependenciesFabian Mastenbroek
This change updates the simulator dependencies to the latest available version where possible.