summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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-20fix(site): Use correct color for login buttonFabian Mastenbroek
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-09-20ci: Bump actions/configure-pages from 1 to 2 (#99)dependabot[bot]
Bumps [actions/configure-pages](https://github.com/actions/configure-pages) from 1 to 2. - [Release notes](https://github.com/actions/configure-pages/releases) - [Commits](https://github.com/actions/configure-pages/compare/v1...v2) --- updated-dependencies: - dependency-name: actions/configure-pages dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-19ci: Bump mikepenz/action-junit-report from 3.4.0 to 3.5.0 (#98)dependabot[bot]
Bumps [mikepenz/action-junit-report](https://github.com/mikepenz/action-junit-report) from 3.4.0 to 3.5.0. - [Release notes](https://github.com/mikepenz/action-junit-report/releases) - [Commits](https://github.com/mikepenz/action-junit-report/compare/v3.4.0...v3.5.0) --- updated-dependencies: - dependency-name: mikepenz/action-junit-report dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-13merge: Add documentation using Docusaurus (#97)Fabian Mastenbroek
This pull request implements the new OpenDC documentation website using Docusaurus 2. ## Implementation Notes :hammer_and_pick: * Add initial Docusaurus website. * Migrate existing docs to Docusaurus. * Configure Prettier for Docusaurus. * Add tutorials to OpenDC website (#28) * Add deployment workflow via GitHub actions ## External Dependencies :four_leaf_clover: * Docusaurus 2 Closes #28
2022-09-13ci(site): Add GitHub Actions workflow for deploying websiteFabian Mastenbroek
This change adds a new GitHub Actions workflow for building and deploying the OpenDC website (documentation) built using Docusaurus.
2022-09-13feat(site): Add tutorials to OpenDC websiteFabian Mastenbroek
This change adds a new section to the OpenDC website containing tutorials to experiment with the OpenDC web application.
2022-09-13build(site): Use Prettier to format JavaScriptFabian Mastenbroek
This change updates the build configuration for the OpenDC website to use Prettier to format the JavaScript files for that module.
2022-09-13docs: Add initial version of Docusaurus based docsFabian Mastenbroek
This change updates the repository with a new Docusaurus-based documentation website. This allows us to create our documentation using Markdown, MDX and React. This will serve as the main entry point for users visiting https://opendc.org. The actual OpenDC application will be moved to https://app.opendc.org.
2022-09-05ci: Bump mikepenz/action-junit-report from 3.3.3 to 3.4.0 (#96)dependabot[bot]
Bumps [mikepenz/action-junit-report](https://github.com/mikepenz/action-junit-report) from 3.3.3 to 3.4.0. - [Release notes](https://github.com/mikepenz/action-junit-report/releases) - [Commits](https://github.com/mikepenz/action-junit-report/compare/v3.3.3...v3.4.0) --- updated-dependencies: - dependency-name: mikepenz/action-junit-report dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-23ci: Bump mikepenz/action-junit-report from 3.2.0 to 3.3.3 (#95)dependabot[bot]
Bumps [mikepenz/action-junit-report](https://github.com/mikepenz/action-junit-report) from 3.2.0 to 3.3.3. - [Release notes](https://github.com/mikepenz/action-junit-report/releases) - [Commits](https://github.com/mikepenz/action-junit-report/compare/v3.2.0...v3.3.3) --- updated-dependencies: - dependency-name: mikepenz/action-junit-report dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-03merge: Update build and runtime dependencies (#94)Fabian Mastenbroek
This pull request updates the build and runtime dependencies used by OpenDC to their latest version compatible with the project. ## Implementation Notes :hammer_and_pick: * Update to Gradle 7.5 * Update simulator dependency versions * Fix Docker deployment ## Breaking API Changes :warning: * N/A
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): Remove unused Auth0 runner configurationFabian Mastenbroek
This change removes the unused Auth0 runner configuration from the Docker Compose configuration. Currently, it is marked as required, so Docker Compose will fail if these values are not specified.
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-03build: Update simulator dependenciesFabian Mastenbroek
This change updates the simulator dependencies to the latest available version where possible.
2022-08-03build: Update to Gradle 7.5Fabian Mastenbroek
This change updates the build system Gradle to version 7.5, which ships Kotlin 1.6.21. That is the same version currently used by OpenDC and should reduce the warning messages produced by Gradle due to version mismatches.
2022-08-03merge: Simplify OpenDC deployment processFabian Mastenbroek
This pull request attempts to simplify the deployment process necessary for deploying OpenDC locally or using Docker. There was currently not a clear and simple way to deploy OpenDC locally, yet the Docker-based deployment was also out-of-sync. ## Implementation Notes :hammer_and_pick: * Address several bugs in the OpenDC web runner * Fix dependency related issues * Rename `opendc-web-api` to `opendc-web-server` * Create a local distribution of `opendc-web-server`. * Fix Docker deployment * Update deployment guide ## External Dependencies :four_leaf_clover: * Quarkus 2.11.1 * `jandex-gradle-plugin` 0.13.2 ## Breaking API Changes :warning: * `TraceFormat.installedProviders` has been changed to `TraceFormat.getInstalledProviders`. The list of installed providers is now not cached at first access, but queried every time the method is invoked and its results depend on the caller context (e.g., context class loader). * `OpenDCRunner` now requires a `JobManager` as constructor argument, which can be constructed as follows: `JobManager.create(client)` * `opendc-web-api` is now renamed to `opendc-web-server`.
2022-08-03docs: Update deployment guideFabian Mastenbroek
This change updates the deployment guide based on the latest changes to the Quarkus application. Quite a few existing configuration options can be removed now.
2022-08-03ci: Build Docker image for OpenDC web UIFabian Mastenbroek
This change adds a build step for building the OpenDC web UI as Docker image. We forgot this step and found that the image failed to build during previous commits.
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-08-03build: Update to Quarkus 2.11.1Fabian Mastenbroek
This change updates Quarkus to version 2.11.1 which fixes an issue with the Gradle development mode where the working directory was incorrect. This meant that the traces failed to be loaded.
2022-07-29fix(trace/api): Do not cache trace formatsFabian Mastenbroek
This change updates the TraceFormat lookup algorithm to prevent caching the available trace format on first access. Since the result of ServiceLoader depends on the Thread's context ClassLoader, they may differ between different threads. Furthermore, ServiceLoader maintains its own thread-local cache, so we can instead utilize that cache and always use the results returned by it.
2022-07-28ci: Bump mikepenz/action-junit-report from 3.1.0 to 3.2.0 (#92)dependabot[bot]
Bumps [mikepenz/action-junit-report](https://github.com/mikepenz/action-junit-report) from 3.1.0 to 3.2.0. - [Release notes](https://github.com/mikepenz/action-junit-report/releases) - [Commits](https://github.com/mikepenz/action-junit-report/compare/v3.1.0...v3.2.0) --- updated-dependencies: - dependency-name: mikepenz/action-junit-report dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-07build(trace/parquet): Ignore reload4j dependencyFabian Mastenbroek
This change updates the build configuration to ignore the reload4j dependency that was recently added to the hadoop-common module. Reload4j replaces the old unmaintained log4j1 module. However, since we expose this module as a library, we do not want to include a logging implementation in the dependencies. Currently, there are already instances where this new dependency leads to duplicate logging implementations on the classpath.
2022-06-28ci: Bump mikepenz/action-junit-report from 3.0.3 to 3.1.0 (#91)dependabot[bot]
Bumps [mikepenz/action-junit-report](https://github.com/mikepenz/action-junit-report) from 3.0.3 to 3.1.0. - [Release notes](https://github.com/mikepenz/action-junit-report/releases) - [Commits](https://github.com/mikepenz/action-junit-report/compare/v3.0.3...v3.1.0) --- updated-dependencies: - dependency-name: mikepenz/action-junit-report dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-23merge: Update build and runtime dependencies (#90)Fabian Mastenbroek
This pull request updates the build and runtime dependencies used by OpenDC to their latest version compatible with the project. ## Implementation Notes :hammer_and_pick: * Update simulator dependency versions * Fix conversion from UUID to Binary
2022-06-23bug(compute/workload): Fix conversion from UUID to BinaryFabian Mastenbroek
This change fixes an issue with the metric exporting code in OpenDC where a UUID is not converted correctly into a `Binary` object that is consumed by the Apache Parquet library.
2022-06-23build: Update simulator dependenciesFabian Mastenbroek
This change updates the simulator dependencies to the latest available version where possible.
2022-06-16merge: Fix distributed strategy for TensorFlow experiment (#89)Fabian Mastenbroek
This pull request fixes an issue where the distributed strategies for the TensorFlow experiments did not work correctly. ## Implementation Notes :hammer_and_pick: * Limit growth rate for trace construction * Derive device statistics directly from SimMachine * Always recompute power usage when a `SImBareMetalMachine` converges * Add a test case for `MirroredStrategy`
2022-06-15fix(sim/compute): Always recompute power usageFabian Mastenbroek
This change fixes an issue in the `SimBareMetalMachine` implementation where the power usage was only updated after a non-zero duration. However, this would mean that OpenDC would possibly report incorrect power usage values when multiple convergence calls occured at the same timestamp.
2022-06-15fix(exp/tf20): Derive device statistics directly from SimMachineFabian Mastenbroek
This change updates the implementation of SimTFDevice to directly use the metrics provided by the `SimBareMetalMachine` class, instead of computing these metrics itself.
2022-06-09fix(sim/compute): Limit growth rate for trace constructionFabian Mastenbroek
This change fixes an issue where the `SimTrace.Builder` would quickly allocate too much memory when constructing a trace, due to doubling the array sizes each time. Instead, we use the approach used by `ArrayList`, where we increase the array size by 50% every step.
2022-06-09merge: Introduce schema for trace API (#88)Fabian Mastenbroek
This pull request updates the OpenDC trace API to support proper specification of a schema of the tables exposed by the traces. This functionality makes it easier for the API consumer to understand the types exposed by the API. ## Implementation Notes :hammer_and_pick: * Introduce type system for trace API * Add benchmarks for odcvm trace format * Add benchmarks for Azure trace format * Add conformance suite for OpenDC trace API ## External Dependencies :four_leaf_clover: * N/A ## Breaking API Changes :warning: * Removal of typed `TableColumn`. Instead, `TableColumn` instances are now used to describe the columns belonging to some table. * `TableReader` and `TableWriter` do not support accessing arbitrary objects anymore. Instead, only the types supported by the type system are exposed.
2022-06-08test(trace): Add conformance suite for OpenDC trace APIFabian Mastenbroek
This change adds a re-usable test suite for the interface of the OpenDC trace API, so implementors can verify whether they match the specification of the interfaces.