-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Reconfigure Gson to parse more complex theia preference object #14442
Conversation
@vzhukovskii what was the reason to save json in json? |
...eclipse/che/workspace/infrastructure/kubernetes/provision/GitUserProfileProvisionerTest.java
Outdated
Show resolved
Hide resolved
...org/eclipse/che/workspace/infrastructure/kubernetes/provision/GitUserProfileProvisioner.java
Outdated
Show resolved
Hide resolved
@skabashnyuk you mean json object of preferences in |
yes |
That comes from https://github.com/eclipse/che-theia/blob/master/extensions/eclipse-che-theia-user-preferences/src/node/che-theia-preferences-synchronizer.ts#L87 and I think, that @mmorhun can clarify this. |
Looking from the code, that json object in |
ok |
...eclipse/che/workspace/infrastructure/kubernetes/provision/GitUserProfileProvisionerTest.java
Outdated
Show resolved
Hide resolved
|
||
return new Gson().fromJson(json, stringMapType); | ||
return new Gson().fromJson(json, typeToken); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure about how this is done; it looks like an implicit cast to Map<String, String>
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, it's implicit, when we get parsed and implicitly casted map, we will look for two specific properties, that we're 100% sure that have string value. We can add additional checking for a string type, but it will reduce code readability. Wdyt?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's up to you. It's not clear to me from reading the code that we can be 100% it's a string value, but I'm also not familiar with all the details here.
Is it possible for me to set my git.user.name
to false
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Theoretically - yes, but it's hard to do, you need to update preferences by hand and escape the whole json object to place it as string value in user preferences. But when eclipse-che/che-theia#424 will be merged, these two properties will be configured through the UI and there will be an only option to setup them as string value.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll add a comment, describes the idea of this hack
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please make that any error in this class does not prevent workspace from starting.
To notify a user about an error you can provision a warning into k8s Environment, not sure if it's handled by Theia - if no - feel free to register an issue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks I got updates this morning with nightly image.
Everything's working fine after restarting my minikube and workspace.
I'm afraid it's hardly possible to get PR changes with a nightly image |
@sleshchenko ah, yes. I confused a bit :D |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please also remember to add the GitUserProfileProvisioner to the OpenShift environment provisioning (or add it in a follow-up PR).
Done. Checked on minishift, everything works now. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM apart from the fact that the OpenShift support infra registration should maybe warrant its own PR.
@@ -86,7 +88,8 @@ public OpenShiftEnvironmentProvisioner( | |||
ProxySettingsProvisioner proxySettingsProvisioner, | |||
ServiceAccountProvisioner serviceAccountProvisioner, | |||
CertificateProvisioner certificateProvisioner, | |||
VcsSshKeysProvisioner vcsSshKeysProvisioner) { | |||
VcsSshKeysProvisioner vcsSshKeysProvisioner, | |||
GitUserProfileProvisioner gitUserProfileProvisioner) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These changes seem unrelated to the bug this PR is fixing. They seem add support for the git prefs provisioning to Openshift which IMHO is a whole another issue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good, I'll provide dedicate PR for this registration. @amisevsk fyi.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
E2E Happy path tests of Eclipse Che Single User on K8S (minikube v1.1.1) has failed:
|
E2E tests of Eclipse Che Multiuser on OCP has been successful:
|
crw-ci-test |
E2E Happy path tests of Eclipse Che Single User on K8S (minikube v1.1.1) has failed:
|
@vkuznyetsov: you need to take latest changes of Happy path tests from master branch to fix crw-ci-e2e-happy-path-tests PR check build. |
E2E Happy path tests of Eclipse Che Single User on K8S (minikube v1.1.1) has been successful:
|
E2E tests of Eclipse Che Multiuser on OCP has been successful:
|
Signed-off-by: Vlad Zhukovskyi <vzhukovs@redhat.com>
E2E Happy path tests of Eclipse Che Single User on K8S (minikube v1.1.1) has been successful:
|
E2E tests of Eclipse Che Multiuser on OCP has failed:
|
What does this PR do?
This changes proposal edits the rule which configure Gson parser to parse theia specific preferences. This mean that theia preferences not always contains simple structure
string:string
, but sometimes can be look likestring:object
. And could sometimes cause problem when workspace tried to start.Signed-off-by: Vlad Zhukovskyi vzhukovs@redhat.com
What issues does this PR fix or reference?
#14436
Release Notes
N/A
Docs PR
N/A