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

Cockpit support #140

Closed
6 tasks done
agrover opened this issue Dec 4, 2018 · 10 comments
Closed
6 tasks done

Cockpit support #140

agrover opened this issue Dec 4, 2018 · 10 comments
Assignees
Labels
omnibus aggregator for other issues
Projects

Comments

@mulkieran mulkieran self-assigned this Jan 31, 2020
@mulkieran mulkieran transferred this issue from stratis-storage/stratisd Jan 31, 2020
@mulkieran mulkieran removed this from In progress (long term) in 2020January Jan 31, 2020
@mulkieran mulkieran added this to To do in 2020February via automation Jan 31, 2020
@mulkieran mulkieran moved this from To do to In progress (long term) in 2020February Jan 31, 2020
@mulkieran mulkieran removed this from In progress (long term) in 2020February Feb 26, 2020
@mulkieran mulkieran added this to To do in 2020March via automation Feb 26, 2020
@mulkieran mulkieran moved this from To do to In progress (long term) in 2020March Feb 26, 2020
@mulkieran mulkieran removed this from In progress (long term) in 2020March Feb 28, 2020
@mvollmer
Copy link

I have this now: cockpit-project/cockpit#14109

The main issue I found is that there don't seem to be any D-Bus signals coming out of the org.storage.stratis2 API. Indeed, the introspection data returned by stratisd does not mention any signals at all, not even the signals of the standard ObjectManager and Properties interfaces. Right now, I'd call this is a blocker, but maybe I am misunderstanding things.

Other issues:

  • The symlinks in /stratis/ are not managed by udev, and are for example unknown to UDisks2. This complicates processing slightly since Cockpit needs to read them explicitly in order to match Stratis blockdevs to UDisks2 objects. I hear that you are moving away from this, true?

  • I don't clearly see the motivation for the FetchProperties interface. It looks like a weaker version of the standard Properties interface with no added value but some drawbacks (like no change notifications, and not allowing per-interface properties). Could I convince you to just use the Properties interface?

  • Method calls don't use the standard D-Bus error replies but include codes and messages in their result signature. That also looks unmotivated to me, but we can of course easily work with either style.

@jbaublitz
Copy link
Member

The symlinks in /stratis/ are not managed by udev, and are for example unknown to UDisks2. This complicates processing slightly since Cockpit needs to read them explicitly in order to match Stratis blockdevs to UDisks2 objects. I hear that you are moving away from this, true?

I can at least comment on the udev-managed symlinks. There is a PR with proposed changes here stratis-storage/stratisd#2020. This would move management mostly into a udev rule and the symlinks would be under /dev/stratis.

@jbaublitz
Copy link
Member

I don't clearly see the motivation for the FetchProperties interface. It looks like a weaker version of the standard Properties interface with no added value but some drawbacks (like no change notifications, and not allowing per-interface properties). Could I convince you to just use the Properties interface?

@mvollmer I have a question for you on this point. The rationale for this is primarily that we need to expose some properties where fetching them can fail. If fetching them fails, the whole call to GetManagedObjects() will also fail and stratisd becomes essentially unusable. Users can no longer list any information about the resources that they have created. I've been curious if there's a better way to handle this using existing D-Bus infrastructure but I have been unable to find any mention of how to handle this case in the D-Bus specification docs or in other articles that I've read on D-Bus. Is there an alternative that you've seen given how much you've worked with D-Bus that protects us from getting into a completely unusable state simply because a property gets into a failure state?

@agrover
Copy link
Author

agrover commented May 20, 2020

Be easier to just not fail getting property values. Maybe cache prop vals and return cached if fetch fails. Stale is better than nothing. Or, one value missing is better than the whole thing missing.

@mvollmer
Copy link

I don't clearly see the motivation for the FetchProperties interface. [...]

@mvollmer I have a question for you on this point. The rationale for this is primarily that we need to expose some properties where fetching them can fail. [...]

With FetchProperties, you encode the failure to compute a value into the value of the property, as (False, "message"). You can just do the same with the standard Properties interface.

@mulkieran
Copy link
Member

Since this is an issue that really requires in-depth discussion, I'm considering it blocked by the other significant work that we need to complete in the next couple of weeks.

@mulkieran
Copy link
Member

Blocked by #171.

@mulkieran mulkieran added this to To do in 2020October via automation May 21, 2020
@mulkieran mulkieran removed the blocked label Jun 17, 2020
@mulkieran mulkieran added this to To do in 2020June via automation Jun 17, 2020
@mulkieran mulkieran removed this from To do in 2020October Jun 17, 2020
@mulkieran mulkieran moved this from To do to In progress (long term) in 2020June Jun 17, 2020
@mulkieran
Copy link
Member

We should all take a look at the prototype and video; then it'll be time to meet.

@mulkieran mulkieran removed this from In progress (long term) in 2020June Jul 2, 2020
@mulkieran mulkieran added this to To do in 2020July via automation Jul 2, 2020
@mulkieran mulkieran moved this from To do to In progress (long term) in 2020July Jul 2, 2020
@mulkieran mulkieran removed this from In progress (long term) in 2020July Aug 9, 2020
@mulkieran mulkieran added this to To do in 2020August via automation Aug 9, 2020
@mulkieran mulkieran moved this from To do to In progress (long term) in 2020August Aug 9, 2020
@mulkieran mulkieran added the omnibus aggregator for other issues label Aug 26, 2020
@mulkieran mulkieran removed this from In progress (long term) in 2020August Aug 27, 2020
@mulkieran mulkieran added this to To do in 2020September via automation Aug 27, 2020
@mulkieran mulkieran moved this from To do to In progress (long term) in 2020September Aug 27, 2020
@mulkieran mulkieran removed this from In progress (long term) in 2020September Oct 1, 2020
@mulkieran mulkieran added this to To do in 2020October via automation Oct 1, 2020
@mulkieran mulkieran moved this from To do to In progress (long term) in 2020October Oct 1, 2020
@mulkieran mulkieran removed this from In progress (long term) in 2020October Nov 6, 2020
@mulkieran mulkieran added this to To do in 2020November via automation Nov 6, 2020
@mulkieran mulkieran removed this from To do in 2020November Nov 25, 2020
@mulkieran mulkieran added this to To do in 2021January via automation Nov 25, 2020
@mulkieran mulkieran removed this from To do in 2021January Nov 25, 2020
@mulkieran mulkieran added this to To do in 2020December via automation Nov 25, 2020
@mulkieran mulkieran removed this from To do in 2020December Jan 4, 2021
@mulkieran mulkieran added this to To do in 2021February via automation Jan 4, 2021
@mulkieran mulkieran removed this from To do in 2021February Feb 15, 2021
@mulkieran mulkieran added this to To do in 2021March via automation Feb 15, 2021
@mulkieran mulkieran removed this from To do in 2021March Feb 17, 2021
@mulkieran mulkieran added this to To do in 2021February via automation Feb 17, 2021
@mulkieran mulkieran removed this from To do in 2021February Feb 26, 2021
@mulkieran mulkieran added this to To do in 2021March via automation Feb 26, 2021
@mulkieran mulkieran removed this from To do in 2021March Mar 16, 2021
@mulkieran mulkieran added this to To do in 2021April via automation Mar 16, 2021
@mulkieran
Copy link
Member

Just one left, but definitely won't be working on that until April.

@mulkieran
Copy link
Member

Closing this, since there is only one sub-issue left.

2021April automation moved this from To do to Done May 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
omnibus aggregator for other issues
Projects
No open projects
Development

No branches or pull requests

4 participants