{"id":37127089,"url":"https://github.com/slinkyproject/slurm-client","last_synced_at":"2026-01-14T14:48:05.969Z","repository":{"id":261689007,"uuid":"882070514","full_name":"SlinkyProject/slurm-client","owner":"SlinkyProject","description":"OpenAPI Golang client library for Slurm REST API. A Slinky project.","archived":false,"fork":false,"pushed_at":"2025-12-04T20:46:39.000Z","size":1187,"stargazers_count":18,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-12-08T04:51:49.617Z","etag":null,"topics":["golang","openapi","openapi-client","openapi-codegen","rest-client","schedmd","slinky","slurm","slurm-workload-manager"],"latest_commit_sha":null,"homepage":"https://slinky.ai/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SlinkyProject.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSES/Apache-2.0.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-11-01T20:20:45.000Z","updated_at":"2025-12-04T20:46:43.000Z","dependencies_parsed_at":"2024-11-07T22:32:08.769Z","dependency_job_id":"73f52af9-908d-46a8-bbc7-84f17ccb1c56","html_url":"https://github.com/SlinkyProject/slurm-client","commit_stats":null,"previous_names":["slinkyproject/slurm-client"],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/SlinkyProject/slurm-client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SlinkyProject%2Fslurm-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SlinkyProject%2Fslurm-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SlinkyProject%2Fslurm-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SlinkyProject%2Fslurm-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SlinkyProject","download_url":"https://codeload.github.com/SlinkyProject/slurm-client/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SlinkyProject%2Fslurm-client/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28423994,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T13:30:50.153Z","status":"ssl_error","status_checked_at":"2026-01-14T13:29:08.907Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["golang","openapi","openapi-client","openapi-codegen","rest-client","schedmd","slinky","slurm","slurm-workload-manager"],"created_at":"2026-01-14T14:48:05.268Z","updated_at":"2026-01-14T14:48:05.959Z","avatar_url":"https://github.com/SlinkyProject.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Slurm Client\n\n[OpenAPI] Golang client library for [Slurm REST API][rest-api]. A [Slinky]\nproject.\n\n## Table of Contents\n\n\u003c!-- mdformat-toc start --slug=github --no-anchors --maxlevel=6 --minlevel=1 --\u003e\n\n- [Slurm Client](#slurm-client)\n  - [Table of Contents](#table-of-contents)\n  - [Overview](#overview)\n  - [Features](#features)\n  - [Limitations](#limitations)\n  - [Installation](#installation)\n    - [Usage](#usage)\n      - [Create](#create)\n      - [Delete](#delete)\n      - [Get](#get)\n      - [List](#list)\n      - [Update](#update)\n  - [Upgrades](#upgrades)\n    - [0.X Releases](#0x-releases)\n  - [Support and Development](#support-and-development)\n  - [License](#license)\n\n\u003c!-- mdformat-toc end --\u003e\n\n## Overview\n\nThis repository provides generated [slurmrestd][rest-api] endpoints for Golang\nclients, and client wrapper library inspired by the [controller-runtime] client\nfor Kubernetes.\n\n## Features\n\n- **Multiple Slurm Versions**: can interact with multiple versions of Slurm.\n- **Caching**: client-side caching mechanism to reduce number of server calls.\n\n## Limitations\n\nCurrently, the client wrapper implements a limited amount of Slurm endpoints,\nspecifically only Node and Job endpoints. The number of implemented endpoints\nmay expand in the future, by request or community efforts.\n\n- **Slurm Version**: \u003e=\n  [24.05](https://www.schedmd.com/slurm-version-24-05-0-is-now-available/)\n\n## Installation\n\n```bash\ngo get -v github.com/SlinkyProject/slurm-client\n```\n\n### Usage\n\nCreate a Slurm client handle.\n\n```golang\nconfig := \u0026client.Config{\n\tServer:    \"http://\u003chost\u003e:6820\",\n\tAuthToken: \"\u003c`auth/jwt` token\u003e\",\n}\nslurmClient, err := client.NewClient(config)\nif err != nil {\n\treturn err\n}\n```\n\nStart Slurm client cache.\n\n```golang\nctx := context.Background()\ngo slurmClient.Start(ctx)\n```\n\n#### Create\n\nCreate Slurm resources via client handle.\n\n```golang\n// Create job via V0044 endpoint\njobInfo := \u0026types.V0044JobInfo{}\nreq := v0044.V0044JobSubmitReq{\n\tJob: \u0026v0044.V0044JobDescMsg{\n\t\tCurrentWorkingDirectory: ptr.To(\"/tmp\"),\n\t\tEnvironment: \u0026v0044.V0044StringArray{\n\t\t\t\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin\",\n\t\t},\n\t\tScript: ptr.To(\"#!/usr/bin/env bash\\nsleep 30\"),\n\t},\n}\nif err := slurmClient.Create(ctx, jobInfo, req); err != nil {\n\treturn err\n}\n```\n\n```golang\n// Create job via V0043 endpoint\njobInfo := \u0026types.V0043JobInfo{}\nreq := v0043.V0043JobSubmitReq{\n\tJob: \u0026v0043.V0043JobDescMsg{\n\t\tCurrentWorkingDirectory: ptr.To(\"/tmp\"),\n\t\tEnvironment: \u0026v0043.V0043StringArray{\n\t\t\t\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin\",\n\t\t},\n\t\tScript: ptr.To(\"#!/usr/bin/env bash\\nsleep 30\"),\n\t},\n}\nif err := slurmClient.Create(ctx, jobInfo, req); err != nil {\n\treturn err\n}\n```\n\n#### Delete\n\nDelete Slurm resource via client handle.\n\n```golang\n// Delete job via V0044 endpoint\njobInfo := \u0026types.V0044JobInfo{\n\tV0044JobInfo: v0044.V0044JobInfo{\n\t\tJobId: ptr.To(\"1\"),\n\t},\n}\nif err := slurmClient.Delete(ctx, jobInfo); err != nil {\n\treturn err\n}\n```\n\n```golang\n// Delete job via V0043 endpoint\njobInfo := \u0026types.V0043JobInfo{\n\tV0043JobInfo: v0043.V0043JobInfo{\n\t\tJobId: ptr.To(\"1\"),\n\t},\n}\nif err := slurmClient.Delete(ctx, jobInfo); err != nil {\n\treturn err\n}\n```\n\n#### Get\n\nGet Slurm resource via client handle.\n\n```golang\n// Fetch node via V0044 endpoint\nnode := \u0026types.V0044Node{}\nkey := object.ObjectKey(\"node-0\")\nif err := slurmClient.Get(ctx, key, node); err != nil {\n\treturn err\n}\n```\n\n```golang\n// Fetch node via V0043 endpoint\nnode := \u0026types.V0043Node{}\nkey := object.ObjectKey(\"node-0\")\nif err := slurmClient.Get(ctx, key, node); err != nil {\n\treturn err\n}\n```\n\n#### List\n\nList Slurm resources via client handle.\n\n```golang\n// Fetch list of nodes via V0044 endpoint\nnodeList := \u0026types.V0044NodeList{}\nif err := slurmClient.List(ctx, nodeList); err != nil {\n\treturn err\n}\n```\n\n```golang\n// Fetch list of nodes via V0043 endpoint\nnodeList := \u0026types.V0043NodeList{}\nif err := slurmClient.List(ctx, nodeList); err != nil {\n\treturn err\n}\n```\n\n#### Update\n\nUpdate Slurm resource via client handle.\n\n```golang\n// Update job via V0044 endpoint\njobInfo := \u0026types.V0044JobInfo{}\nreq := \u0026v0044.V0044JobDescMsg{\n\tComment: ptr.To(\"updated comment\")\n}\nif err := slurmClient.Update(ctx, jobInfo, req); err != nil {\n\treturn err\n}\n```\n\n```golang\n// Update job via V0043 endpoint\njobInfo := \u0026types.V0043JobInfo{}\nreq := \u0026v0043.V0043JobDescMsg{\n\tComment: ptr.To(\"updated comment\")\n}\nif err := slurmClient.Update(ctx, jobInfo, req); err != nil {\n\treturn err\n}\n```\n\n## Upgrades\n\n```bash\ngo get -u github.com/SlinkyProject/slurm-client\n```\n\n### 0.X Releases\n\nThe source tree may evolve more aggressively during these release versions, so\nupgrades may require updated paths in addition to the version.\n\n## Support and Development\n\nFeature requests, code contributions, and bug reports are welcome!\n\nGithub/Gitlab submitted issues and PRs/MRs are handled on a best effort basis.\n\nThe SchedMD official issue tracker is at \u003chttps://support.schedmd.com/\u003e.\n\nTo schedule a demo or simply to reach out, please\n[contact SchedMD][contact-schedmd].\n\n## License\n\nCopyright (C) SchedMD LLC.\n\nLicensed under the\n[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0) you\nmay not use project except in compliance with the license.\n\nUnless required by applicable law or agreed to in writing, software distributed\nunder the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\nCONDITIONS OF ANY KIND, either express or implied. See the License for the\nspecific language governing permissions and limitations under the License.\n\n\u003c!-- Links --\u003e\n\n[contact-schedmd]: https://www.schedmd.com/slurm-resources/contact-schedmd/\n[controller-runtime]: https://github.com/kubernetes-sigs/controller-runtime\n[openapi]: https://www.openapis.org/\n[rest-api]: https://slurm.schedmd.com/rest_api.html\n[slinky]: https://slinky.ai/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslinkyproject%2Fslurm-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fslinkyproject%2Fslurm-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslinkyproject%2Fslurm-client/lists"}