Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fluxion go bindings: job info and resource graph summary #1134

Open
vsoch opened this issue Jan 22, 2024 · 4 comments
Open

Fluxion go bindings: job info and resource graph summary #1134

vsoch opened this issue Jan 22, 2024 · 4 comments

Comments

@vsoch
Copy link
Member

vsoch commented Jan 22, 2024

We need to expose additional functionality with our Go bindings to make it easier to work on fluence and debug. Specifically I'd like to be able to:

  • Ask for full info on a job from the id. Right now the info function returns a few booleans, time since allocated, and metrics, but really we'd like to see the details of the allocation
  • Tag a match allocate request with a string of interest, in our case a group id, so it could be queried later to look up a jobid. The use case is that we should be able to get a jobid from fluence via the group name to then see the state.
  • Get a full listing of current jobs and allocation summary (e.g., akin to flux jobs)

We need to have #1120 merged first, and then better error messages added here via formal PR (#1128) and then we can work on these endpoints. Having them will make it much easier to debug fluence, primarily being able to generate views with our kubectl plugin that show the total resources that fluence has against what is allocated (and then calculate available). Right now we are grepping logs and it's very arduous, and can only get the original resource graph, and we would have to save the result of match allocate + pair with a cancel request to (at best estimate) the current state. I'd rather not do that because it's error prone.

@vsoch vsoch changed the title Fluxion go bindings: handles needed for job info and resource graph summary Fluxion go bindings: job info and resource graph summary Jan 22, 2024
@vsoch
Copy link
Member Author

vsoch commented Jan 28, 2024

Also todo: we should add description about the difference between the go client and module, details in this comment: #1133 (comment)

@garlick
Copy link
Member

garlick commented Jan 28, 2024

It would be cool to have go bindings for flux-core, especially if it worked "natively" with goroutines and so on.

I'd like to propose that, while flux-core is still undergoing pre-1.0 API churn, this should be developed (prototyped?) in an external repo, and that changes in flux-core would not be held back by flux-golang breakage. IOW it would incumbent on the flux-golang developers to track flux-core not on the flux-core developers to ensure that any change doesn't break flux-golang.

@vsoch
Copy link
Member Author

vsoch commented Jan 28, 2024

Yep I'm happy to do that! I would just have flux as a submodule or similar and then fwoop it in. Does it matter where I put it (I can't make repos under flux-framework so likely I'll work on it over in https://github.com/converged-computing.

And side note - I really like the separate design, regardless of the reason for it. I understand it's easier to move things in sync, but for maintaining, and especially with a ton of bindings over time, I think modularity is king. Of course understanding the need to keep things in sync. But usually there are ways to do that with automation.

@vsoch
Copy link
Member Author

vsoch commented Jan 28, 2024

That said, the python bindings for flux core are pretty essential, so I think they belong in tree. Also, I realized just now this discussion is in the wrong place - I'm going to link it to the issue I opened flux-framework/flux-core#5709. If we have more discussion specific to flux-core let's pick up there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants