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

Reconfigure Gson to parse more complex theia preference object #14442

Merged
merged 1 commit into from
Sep 10, 2019

Conversation

vzhukovs
Copy link
Contributor

@vzhukovs vzhukovs commented Sep 5, 2019

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 like string: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

@vzhukovs vzhukovs added kind/bug Outline of a bug - must adhere to the bug report template. status/code-review This issue has a pull request posted for it and is awaiting code review completion by the community. team/ide labels Sep 5, 2019
@vzhukovs vzhukovs added this to the 7.2.0 milestone Sep 5, 2019
@vzhukovs vzhukovs self-assigned this Sep 5, 2019
@skabashnyuk
Copy link
Contributor

@vzhukovskii what was the reason to save json in json?

@vzhukovs
Copy link
Contributor Author

vzhukovs commented Sep 5, 2019

@skabashnyuk you mean json object of preferences in theia-user-preferences ?

@skabashnyuk
Copy link
Contributor

yes

@vzhukovs
Copy link
Contributor Author

vzhukovs commented Sep 5, 2019

@vzhukovs
Copy link
Contributor Author

vzhukovs commented Sep 5, 2019

Looking from the code, that json object in theia-user-preferences is mirror of ~/.theia/settings.json, which is restoring on each workspace startup.

@skabashnyuk
Copy link
Contributor

ok


return new Gson().fromJson(json, stringMapType);
return new Gson().fromJson(json, typeToken);
Copy link
Contributor

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>.

Copy link
Contributor Author

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?

Copy link
Contributor

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?

Copy link
Contributor Author

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.

Copy link
Contributor Author

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

Copy link
Member

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.

Copy link
Contributor

@vitaliy-guliy vitaliy-guliy left a 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.

@sleshchenko
Copy link
Member

It looks I got updates this morning with nightly image.

I'm afraid it's hardly possible to get PR changes with a nightly image

@vitaliy-guliy
Copy link
Contributor

@sleshchenko ah, yes. I confused a bit :D

Copy link
Contributor

@amisevsk amisevsk left a 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).

@vzhukovs
Copy link
Contributor Author

vzhukovs commented Sep 9, 2019

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.

Copy link
Contributor

@metlos metlos left a 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) {
Copy link
Contributor

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.

Copy link
Contributor Author

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.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@che-bot
Copy link
Contributor

che-bot commented Sep 9, 2019

E2E Happy path tests of Eclipse Che Single User on K8S (minikube v1.1.1) has failed:

@che-bot
Copy link
Contributor

che-bot commented Sep 9, 2019

E2E tests of Eclipse Che Multiuser on OCP has been successful:

@vzhukovs
Copy link
Contributor Author

crw-ci-test

@eclipse-che eclipse-che deleted a comment from che-bot Sep 10, 2019
@eclipse-che eclipse-che deleted a comment from che-bot Sep 10, 2019
@eclipse-che eclipse-che deleted a comment from che-bot Sep 10, 2019
@eclipse-che eclipse-che deleted a comment from che-bot Sep 10, 2019
@eclipse-che eclipse-che deleted a comment from che-bot Sep 10, 2019
@eclipse-che eclipse-che deleted a comment from che-bot Sep 10, 2019
@eclipse-che eclipse-che deleted a comment from che-bot Sep 10, 2019
@eclipse-che eclipse-che deleted a comment from che-bot Sep 10, 2019
@eclipse-che eclipse-che deleted a comment from che-bot Sep 10, 2019
@eclipse-che eclipse-che deleted a comment from che-bot Sep 10, 2019
@eclipse-che eclipse-che deleted a comment from che-bot Sep 10, 2019
@eclipse-che eclipse-che deleted a comment from che-bot Sep 10, 2019
@eclipse-che eclipse-che deleted a comment from che-bot Sep 10, 2019
@eclipse-che eclipse-che deleted a comment from che-bot Sep 10, 2019
@eclipse-che eclipse-che deleted a comment from che-bot Sep 10, 2019
@che-bot
Copy link
Contributor

che-bot commented Sep 10, 2019

E2E Happy path tests of Eclipse Che Single User on K8S (minikube v1.1.1) has failed:

@dmytro-ndp
Copy link
Contributor

@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.

@che-bot
Copy link
Contributor

che-bot commented Sep 10, 2019

E2E Happy path tests of Eclipse Che Single User on K8S (minikube v1.1.1) has been successful:

  • build details
  • "che-server" docker image: maxura/che-server:14442

@che-bot
Copy link
Contributor

che-bot commented Sep 10, 2019

E2E tests of Eclipse Che Multiuser on OCP has been successful:

Signed-off-by: Vlad Zhukovskyi <vzhukovs@redhat.com>
@che-bot
Copy link
Contributor

che-bot commented Sep 10, 2019

E2E Happy path tests of Eclipse Che Single User on K8S (minikube v1.1.1) has been successful:

  • build details
  • "che-server" docker image: maxura/che-server:14442

@che-bot
Copy link
Contributor

che-bot commented Sep 10, 2019

E2E tests of Eclipse Che Multiuser on OCP has failed:

@vzhukovs vzhukovs merged commit 8c6ba05 into master Sep 10, 2019
@vzhukovs vzhukovs deleted the che#14436 branch September 10, 2019 13:17
@che-bot che-bot removed the status/code-review This issue has a pull request posted for it and is awaiting code review completion by the community. label Sep 10, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Outline of a bug - must adhere to the bug report template.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants