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

Updated policy of installers update #8406

Merged

Conversation

sleshchenko
Copy link
Member

@sleshchenko sleshchenko commented Jan 22, 2018

What does this PR do?

Updates policy of installers update.
Now existing Che installers (exec, wsagent, etc.) must not be modified because they won't be applied to existing instances. Instead of updating new version must be added and them all workspace will pick it up if they use latest version.

With these changes, existing installers can be modified and they will be picked up by existing Che instances when it will be upgraded.
So, InstallerRegistry will do the following action when tomcat will be started:

Check if installer from resources is already present in database
| +  if yes, check if installer in database and in resources are the same:
      | + if yes, log a message that latest version of an installer is already present.
      | - if no, update an installer in a database and log a message that an installer is updated.
| -  if no, insert an installer in a database and log a message that an installer is created.

Why it is important?

Now there is no a centralized ability to update installers that are already initialized. But IMHO it is so useful in the following cases:

  • when it is needed to fix API incompatibility in an existing installer;
  • when it is needed to fix minor bug or typo in an existing installer;

Now in the described cases, we have to create new installer version even when old one becomes broken.
And Dashboard will propose a user to installer broken installer, see example:
screenshot_20180122_175332
The actual difference between these two installers is - new installer is able to use environment variable with a free port for its server while old one always uses default port and will fail if any ports conflicts occur.
For End Users, it's not clear enough what is really a difference between installers and which one they should use. Actually, there is no sense to use an older version.

One of the use cases when It makes sense to have different installers version if they really provide different agents or install different software.
screenshot_20180122_180046

As additional benefit developer life become easier:

  • because now PR doesn't show really changes, because always new file is added;
  • if a developer wants to check his changes - he doesn't have an ability to build new binaries and check it on an existing instance because his changes won't be applied. He has to test it on new instance after destroying existing one or update installer manually via swagger (it is not so easy while original installer script should be processed each time to be JSON String compatible, like escaping all new lines and " characters).

What issues does this PR fix or reference?

Release Notes

Updated policy of installers update.

Docs PR

N/A

@sleshchenko sleshchenko self-assigned this Jan 22, 2018
@benoitf benoitf added kind/enhancement A feature request - must adhere to the feature request template. status/code-review This issue has a pull request posted for it and is awaiting code review completion by the community. labels Jan 22, 2018
@sleshchenko
Copy link
Member Author

Dear Reviewers, please review my PR and share your opinion about it.

Copy link

@garagatyi garagatyi left a comment

Choose a reason for hiding this comment

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

Looks good!

Copy link
Contributor

@akorneta akorneta left a comment

Choose a reason for hiding this comment

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

👍

@sleshchenko sleshchenko merged commit 67dc149 into eclipse-che:master Jan 31, 2018
@sleshchenko sleshchenko deleted the updatePolicyOfInstallerInits branch January 31, 2018 07:39
@benoitf benoitf added this to the 6.0.0-M5 milestone Jan 31, 2018
@benoitf benoitf removed the status/code-review This issue has a pull request posted for it and is awaiting code review completion by the community. label Jan 31, 2018
hkolvenbach pushed a commit to hkolvenbach/che that referenced this pull request Mar 2, 2018
…3613 to master

* commit 'd800fb816af6ed6f2d67702ac55ff5f8a8be3630': (34 commits)
  fixed version
  added new aws run script
  Prevents displaying installers with empty names and descriptions (eclipse-che#8536)
  adapt selenium tests according to changes with workspace config updating (eclipse-che#8561)
  Fix docs link. Dash instead underscore (eclipse-che#8548)
  fix aws
  ST-3613 custom keycloak image
  Dashboard: allow to update workspace config without workpace restarting (eclipse-che#8505)
  eclipse-che#8509 handle keybinding inside FileStructure Window (eclipse-che#8528)
  RELEASE: Set next development version (eclipse-che#8496)
  Add extra steps in the 'prepare()' to increase stability
  Renew URLs of CI servers to compare local selenium testing results (eclipse-che#8541)
  Selenium: Add ability to catch Chrome browser`s console logs (eclipse-che#8502)
  CHE-6923: Provide more space for committer fields in Preferences dialog. (eclipse-che#8480)
  Restore support of single-port Che mode (on docker infra)
  Factories links (eclipse-che#8530)
  CHE-7555 fix resolve factory flow
  Update policy of installers update (eclipse-che#8406)
  Improves debug panel, fixes UI of configure breakpoints popup (eclipse-che#8520)
  Update ProjectExplorerPresenter.java
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/enhancement A feature request - must adhere to the feature request template.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants