mirror of
https://github.com/ClusterCockpit/cc-backend
synced 2024-12-25 21:09:05 +01:00
Add frontend as submodule; Update README.md
This commit is contained in:
parent
61cdcf4ead
commit
c61a5a8e77
17
.github/workflows/test.yml
vendored
Normal file
17
.github/workflows/test.yml
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
name: Build & Test
|
||||||
|
on: [push, pull_request]
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Install Go
|
||||||
|
uses: actions/setup-go@v2
|
||||||
|
with:
|
||||||
|
go-version: 1.16.x
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Build, Vet & Test
|
||||||
|
run: |
|
||||||
|
go build ./...
|
||||||
|
go vet ./...
|
||||||
|
go test -v ./...
|
8
.gitignore
vendored
8
.gitignore
vendored
@ -1,4 +1,6 @@
|
|||||||
job.db
|
# executable:
|
||||||
job-data
|
|
||||||
cc-jobarchive
|
cc-jobarchive
|
||||||
clusters
|
|
||||||
|
/var/job-archive
|
||||||
|
/var/*.db
|
||||||
|
|
||||||
|
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[submodule "frontend"]
|
||||||
|
path = frontend
|
||||||
|
url = git@github.com:ClusterCockpit/cc-svelte-datatable.git
|
72
README.md
72
README.md
@ -1,49 +1,39 @@
|
|||||||
# Run server
|
# ClusterCockpit with a Golang backend (Only supports archived jobs)
|
||||||
|
|
||||||
* The server expects the SQLite Job database in `./job.db`.
|
[![Build](https://github.com/ClusterCockpit/cc-metric-store/actions/workflows/test.yml/badge.svg)](https://github.com/ClusterCockpit/cc-metric-store/actions/workflows/test.yml)
|
||||||
* The metric data as JSON is expected in `./job-data/<clusterId>/.../data.json`.
|
|
||||||
* A JSON-description of the clusters is expected in `./job-data/<clusterId>/cluster.json`.
|
|
||||||
* Run `go run server.go`
|
|
||||||
* The GraphQL backend is located at http://localhost:8080/query .
|
|
||||||
|
|
||||||
# Debugging and Testing
|
### Run server
|
||||||
|
|
||||||
There is a GraphQL PLayground for testing queries at http://localhost:8080/ .
|
```sh
|
||||||
|
# The frontend is a submodule, so use `--recursive`
|
||||||
|
git clone --recursive git@github.com:ClusterCockpit/cc-jobarchive.git
|
||||||
|
|
||||||
Example Query:
|
# Prepare frontend
|
||||||
```
|
cd ./cc-jobarchive/frontend
|
||||||
query($filter: JobFilterList!, $sorting: OrderByInput!, $paging: PageRequest!) {
|
yarn install
|
||||||
jobs(
|
yarn build
|
||||||
filter: $filter
|
|
||||||
order: $sorting
|
cd ..
|
||||||
page: $paging
|
go get
|
||||||
) {
|
go build
|
||||||
count
|
|
||||||
items {
|
# The job-archive directory must be organised the same way as
|
||||||
id
|
# as for the regular ClusterCockpit.
|
||||||
jobId
|
ln -s <your-existing-job-archive> ./var/job-archive
|
||||||
userId
|
|
||||||
startTime
|
# Create empty job.db (Will be initialized as SQLite3 database)
|
||||||
duration
|
touch ./var/job.db
|
||||||
}
|
|
||||||
}
|
# This will first initialize the job.db database by traversing all
|
||||||
}
|
# `meta.json` files in the job-archive. After that, a HTTP server on
|
||||||
|
# the port 8080 will be running. The `--init-db` is only needed the first time.
|
||||||
|
./cc-jobarchive --init-db
|
||||||
|
|
||||||
|
# Show other options:
|
||||||
|
./cc-jobarchive --help
|
||||||
```
|
```
|
||||||
|
|
||||||
Using the Query variables:
|
### Update GraphQL schema
|
||||||
```
|
|
||||||
{
|
|
||||||
"filter": { "list": [
|
|
||||||
{"userId": {"contains": "unrz"}},
|
|
||||||
{"duration": {"from": 60, "to": 1000}},
|
|
||||||
{"startTime": {"from": "2019-06-01T00:00:00.00Z", "to": "2019-10-01T00:00:00.00Z"}}]},
|
|
||||||
"sorting": { "field": "start_time", "order": "ASC" },
|
|
||||||
"paging": { "itemsPerPage": 20, "page": 1 }
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
# Changing the GraphQL schema
|
This project uses [gqlgen](https://github.com/99designs/gqlgen) for the GraphQL API. The schema can be found in `./graph/schema.graphqls`. After changing it, you need to run `go run github.com/99designs/gqlgen` which will update `graph/model`. In case new resolvers are needed, they will be inserted into `graph/schema.resolvers.go`, where you will need to implement them.
|
||||||
|
|
||||||
* Edit ```./graph/schema.graphqls```
|
|
||||||
* Regenerate code: ```gqlgen generate```
|
|
||||||
* Implement callbacks in ```graph/resolvers.go```
|
|
||||||
|
1
frontend
Submodule
1
frontend
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit b487af3496b46942d9848337bc2821575a1390b2
|
1
var/ui.config.json
Normal file
1
var/ui.config.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"analysis_view_histogramMetrics":["flops_any","mem_bw","mem_used"],"analysis_view_scatterPlotMetrics":[["flops_any","mem_bw"],["flops_any","cpu_load"],["cpu_load","mem_bw"]],"job_view_nodestats_selectedMetrics":["flops_any","mem_bw","mem_used"],"job_view_polarPlotMetrics":["flops_any","mem_bw","mem_used","net_bw","file_bw"],"job_view_selectedMetrics":["flops_any","mem_bw","mem_used"],"plot_general_colorBackground":true,"plot_general_colorscheme":["#00bfff","#0000ff","#ff00ff","#ff0000","#ff8000","#ffff00","#80ff00"],"plot_general_lineWidth":1,"plot_list_jobsPerPage":10,"plot_list_selectedMetrics":["cpu_load","mem_used","flops_any","mem_bw","clock"],"plot_view_plotsPerRow":4,"plot_view_showPolarplot":true,"plot_view_showRoofline":true,"plot_view_showStatTable":true}
|
Loading…
Reference in New Issue
Block a user