Commit Graph

87 Commits (ec77e2204666bed3b3ebfca2b2bc3cf528cd363a)

Author SHA1 Message Date
Sun Tan ec77e22046 Adding identity_id from keycloak to the logs through MDC Context
Signed-off-by: Sun Tan <sutan@redhat.com>
2018-01-05 13:46:28 +01:00
Oleksandr Garagatyi 9e0a4f2095
Add continuous servers liveness checks (#8088)
Signed-off-by: Oleksandr Garagatyi <ogaragat@redhat.com>
2018-01-04 17:33:14 +02:00
Roman Iuvshyn 71704ab3a7
RELEASE: Set next development version (#8135) 2018-01-03 14:13:25 +02:00
Mykhailo Kuznietsov 93b974d1e0
Change worskpace project files storage path (#7844)
- Workspace projects are now stored in folders, named after their workspace id, rather than name,
to prevent issues with workspace renaming. Applies to Docker infrastructure only.
- Add migration, that would move workspace projects to their new location. Occurs on Che startup.
- Added configuration property to enable/disable this migration.
- Improved Workspace DAO/Manager to use pagination for methods, that return lists of workspaces
2017-12-22 15:55:28 +02:00
Max Shaposhnik 8ff1be36f5
Added support of Idenvity brokering mechanism of Keycloak for Multi-user Che 2017-12-21 17:50:03 +02:00
Max Shaposhnik db9b1667d4
Reflect changing user email on Keycloak to the Che database (#7895)
* Add check for user email if tokens does not match
* Add tests
2017-12-15 15:21:25 +02:00
Roman Iuvshyn 5a6d3910b2
RELEASE: set next dev version (#7882) 2017-12-14 15:51:34 +02:00
Oleksandr Garagatyi 6b7b1c6468 CHE-7561: add internal server concept into workspace API
Signed-off-by: Oleksandr Garagatyi <ogaragat@redhat.com>
2017-12-11 11:41:11 +02:00
Sergii Leshchenko 6f0ab7894b
CHE-7502 Make it possible to bind only one RuntimeInfrastructure (#7655) 2017-12-01 12:01:44 +02:00
Roman Iuvshyn 506210325a
RELEASE: set next dev version (#7523) 2017-11-23 12:50:56 +02:00
Oleksandr Garagatyi ba7a1e2e51 CHE-7010: Add volumes into machine model object
Signed-off-by: Oleksandr Garagatyi <ogaragat@redhat.com>
2017-11-20 16:14:47 +02:00
Sergii Leshchenko e7843db2de Add tests for new classes and fix existing tests in api-workspace module 2017-11-20 11:02:48 +02:00
Sergii Leshchenko 0f1ca700df Move objects related to InternalEnvironment into separate package 2017-11-20 11:02:48 +02:00
Gennady Azarenkov eb90e43cf3 Replace RuntimeInfrastructure#estimate with InternalEnvironmentFactory
It is done for decoupling runtime from environment configuration
2017-11-20 11:02:47 +02:00
Artem Zatsarynnyi 1e4a702724
Make it possible to tell IDE to use a different "wsagent" server (#7392)
* Make it possible to tell IDE to use a different "wsagent" server passing server's ref prefix through query parameter

Signed-off-by: Artem Zatsarynnyi <azatsary@redhat.com>
2017-11-17 10:27:30 +02:00
Anton Korneta f8d8511641 Fixed domain in set stack permissions while 'manageSystem' action check 2017-11-15 13:54:38 +02:00
Max Shaposhnik c74bad367c
Remove snapshotting mechanism; 2017-11-13 14:25:40 +02:00
Max Shaposhnik 7474054027
Build fix 2017-11-07 12:45:58 +02:00
Max Shaposhnik ea7e071b3a
Use same assembly for single- and multiuser Che 2017-11-07 12:27:02 +02:00
Roman Iuvshyn 19f5fd1f5a
RELEASE: Set next development version (#7112) 2017-10-31 16:46:30 +02:00
Artem Zatsarynnyi f15fbf1cb1
IDE agnostic way to launch GWT Super DevMode (#7084)
Adapted modules to gwt-lib/gwt-app lifecycle;
shared libs have been cleaned up from the GWT related stuff;
enabled launching Super DevMode with a reactor goal gwt:codeserver;
enabled launching Super DevMode inside a dev-machine (for Che in Che development);
separate compiling IDE GWT app from packaging IDE Web app.

Signed-off-by: Artem Zatsarynnyi <azatsary@redhat.com>
2017-10-31 15:27:22 +02:00
Sergii Leshchenko 4a4a4eb271 CHE-6577 Add usage of machine token while connecting to exec, terminal, workspace agents via websocket 2017-10-30 17:50:12 +02:00
Max Shaposhnik 57aa4400e4 Make /system/status service public to allow liveness checks by it 2017-10-25 12:53:43 +03:00
Max Shaposhnik c1bb1621a0 Group all DB migrations related to Che6 into 6.0.0 version; (#6945) 2017-10-24 15:37:00 +03:00
Florent BENOIT 3f262e620e Cleanup some Mockito deprecated usage (che6) (#6864)
* Cleanup some Mockito deprecated usage
org.mockito.Matchers —> org.mockito.ArgumentMatchers
org.mockito.runners.MockitoJUnitRunner —> org.mockito.junit.MockitoJUnitRunner

Change-Id: Icf7351cb58e0f42fa95885c2d2cf6b5e98206c35
Signed-off-by: Florent BENOIT <fbenoit@redhat.com>
2017-10-21 09:07:43 +02:00
Florent BENOIT 6a95b6d74a Apply google format v1.4 https://github.com/google/google-java-format/releases/tag/google-java-format-1.4
Change-Id: I5df30c23165df1fd39eef4c57893bebd1d681c1d
Signed-off-by: Florent BENOIT <fbenoit@redhat.com>
2017-10-19 22:23:04 +02:00
Max Shaposhnik 42e56b399c Fix workpsace-permissions module dependencies; 2017-10-19 14:52:41 +03:00
Sergii Kabashniuk 3258a4bb3f Remove unexisted artifact 2017-10-19 14:10:25 +03:00
Sergii Kabashniuk f4cc97acce Set next version 6.0.0-M1-SNAPSHOT 2017-10-19 13:53:40 +03:00
Oleksandr Garagatyi 90142e268c Move Docker client to Docker infrastructure packaging (#6779)
Also, remove OpenShiftConnector as it is replaced with OpenShift
infrastructure.
Signed-off-by: Oleksandr Garagatyi <ogaragat@redhat.com>
2017-10-18 15:08:55 +03:00
Max Shaposhnik 4c5566ce94 Migration script license & version fixes; (#6797) 2017-10-18 14:48:38 +03:00
Max Shaposhnik 6d0a659e63 Remove usage of deprecated Recipe API (#6729) 2017-10-18 12:58:30 +03:00
Florent BENOIT 7a3bb3f5b7 Apply fixes to update maven plugins
- errorprone : ignore test methods that are using testxyz() pattern but are not annotated by @Test
- Remove  deprecated stuff (for example use descriptors/descriptor for maven-assembly plugin
- Remove unnecessary stubbing
- fix dependencies

Change-Id: I16f512fc3bfd542463d3b0d3c062f45ceb5ac6b2
Signed-off-by: Florent BENOIT <fbenoit@redhat.com>
2017-10-17 21:44:00 +02:00
Sergii Kabashniuk ba04245aff Merge Mockito 2017-10-15 15:24:12 +03:00
Sergii Kabashniuk e321ab00b1 Merge with master 2017-10-15 14:33:47 +03:00
Florent BENOIT 70e3834356 Move to mockito 2.10
Some changes are required like
 - anyString() --> nullable(String.class) for many tests as in fact we provide null values
 - add class for VerificationMode as there are more than one method now (can't use lambdas)
 - remove cast on ArgumentMatcher (now we can use lambdas as there is generics)
 - remove unecessary stubbing (mockito is now reporting un-needed stubs)

Change-Id: I69c7ccc86bc85a4401d5e33671229ae0ce560dbb
Signed-off-by: Florent BENOIT <fbenoit@redhat.com>
2017-10-15 10:45:04 +02:00
Florent BENOIT 9581a9bbef Move to mockito 2.10
Some changes are required like
 - anyString() --> nullable(String.class) for many tests as in fact we provide null values
 - add class for VerificationMode as there are more than one method now (can't use lambdas)
 - remove cast on ArgumentMatcher (now we can use lambdas as there is generics)
 - remove unecessary stubbing (mockito is now reporting un-needed stubs)

Change-Id: I69c7ccc86bc85a4401d5e33671229ae0ce560dbb
Signed-off-by: Florent BENOIT <fbenoit@redhat.com>
2017-10-15 10:34:15 +02:00
Roman Iuvshyn 891b619a5f fix dto versions that broke release, fix os scripts (#6743)
* Fix plugin version
2017-10-14 20:46:33 +03:00
Roman Iuvshyn abe3271908 RELEASE: Set next development version (#6692)
* RELEASE: Set next development version
2017-10-14 20:17:04 +03:00
Sergii Leshchenko 65562d857d CHE-6587 Add generating of user token before start of runtime 2017-10-13 14:45:22 +03:00
Sergii Leshchenko 52e43115b3 Remove deprecated jpa test classes 2017-10-13 14:45:21 +03:00
Sergii Leshchenko 5ef55f5993 CHE-6587 Add MachineTokenProvider interface
It is implemented in different ways for single and multiuser packaging
2017-10-13 14:45:21 +03:00
Oleksandr Garagatyi 0c77efc2b3 Workspace start code cleanup
Moved async operations from WorkspaceManager to WorkspaceRuntimes
to have async facility in one place instead of two.
Moved workspace start/stop logging from WorkspaceManager
to WorkspaceRuntimes since WorkspaceManager can not correctly log
them.
Improved logging of workspace start/stop including addition of new logs.
Fixed logging of exception thrown by RuntimeInfrastructure on runtime
start/stop.
Fix docker image deletion bug on stop of a workspace.
Signed-off-by: Oleksandr Garagatyi <ogaragat@redhat.com>
2017-10-12 17:37:28 +03:00
Sergii Kabashniuk 70ac13c008 Merge remote-tracking branch 'origin/master' into che6 2017-10-12 16:14:51 +03:00
Sergii Kabashniuk 14061f5a2e Fixed concurrent user registration (#6703)
Signed-off-by: Sergii Kabashniuk <skabashniuk@redhat.com>
2017-10-12 15:57:46 +03:00
Artem Zatsarynnyi 5041b59e6e Merge branch 'master' into spi 2017-10-12 11:54:46 +03:00
Sergii Kabashniuk 1bea871d0a Fixed possible constraint violation with an existed organization. (#6674)
* Fixed possible constraint violation with an existed organization.

Usecase is following:
If we have already an organization with name, let's say "org"  and the new user also has name "org" then we will have constraint violation.
 In this case, we will try to create the user with name "org"+random string.
2017-10-11 16:21:59 +03:00
Sergii Leshchenko 03934a0804 Merge remote-tracking branch 'origin/master' into spi
# Conflicts:
#	assembly-multiuser/assembly-wsmaster-war/pom.xml
#	assembly-multiuser/assembly-wsmaster-war/src/main/java/org/eclipse/che/api/deploy/MachineAuthModule.java
#	assembly-multiuser/assembly-wsmaster-war/src/main/java/org/eclipse/che/api/deploy/MultiUserCheWsMasterModule.java
#	assembly-multiuser/assembly-wsmaster-war/src/main/resources/META-INF/persistence.xml
#	assembly/assembly-wsmaster-war/src/main/java/org/eclipse/che/api/deploy/CheWsMasterModule.java
#	assembly/assembly-wsmaster-war/src/main/java/org/eclipse/che/api/deploy/WsMasterModule.java
#	dashboard/src/app/admin/user-management/user-details/user-details.html
#	dashboard/src/app/organizations/organization-details/organization-details.html
#	dashboard/src/app/teams/team-details/team-details.html
#	dashboard/src/components/api/workspace/che-workspace.factory.ts
#	dockerfiles/init/manifests/che.env
#	dockerfiles/init/modules/openshift/files/scripts/deploy_che.sh
#	dockerfiles/init/modules/openshift/files/scripts/multi-user/wait_until_postgres_is_available.sh
#	ide/che-core-ide-api/src/main/java/org/eclipse/che/ide/api/jsonrpc/WorkspaceMasterJsonRpcInitializer.java
#	ide/che-core-ide-stacks/src/main/resources/stacks.json
#	ide/che-core-orion-editor/src/main/java/org/eclipse/che/ide/editor/orion/client/OrionEditorPresenter.java
#	multiuser/api/che-multiuser-api-resource/pom.xml
#	multiuser/api/che-multiuser-api-resource/src/main/java/org/eclipse/che/multiuser/resource/api/usage/tracker/EnvironmentRamCalculator.java
#	multiuser/api/che-multiuser-api-resource/src/main/java/org/eclipse/che/multiuser/resource/api/usage/tracker/RamResourceUsageTracker.java
#	multiuser/api/che-multiuser-api-resource/src/main/java/org/eclipse/che/multiuser/resource/api/workspace/LimitsCheckingWorkspaceManager.java
#	multiuser/api/che-multiuser-api-resource/src/test/java/org/eclipse/che/multiuser/resource/api/usage/tracker/EnvironmentRamCalculatorTest.java
#	multiuser/api/che-multiuser-api-resource/src/test/java/org/eclipse/che/multiuser/resource/api/usage/tracker/RamResourceUsageTrackerTest.java
#	multiuser/api/che-multiuser-api-resource/src/test/java/org/eclipse/che/multiuser/resource/api/workspace/LimitsCheckingWorkspaceManagerTest.java
#	multiuser/api/che-multiuser-api-resource/src/test/java/org/eclipse/che/multiuser/resource/api/workspace/TestObjects.java
#	multiuser/integration-tests/che-multiuser-cascade-removal/pom.xml
#	multiuser/integration-tests/che-multiuser-cascade-removal/src/test/java/org/eclipse/che/multiuser/integration/jpa/cascaderemoval/JpaEntitiesCascadeRemovalTest.java
#	multiuser/integration-tests/che-multiuser-cascade-removal/src/test/java/org/eclipse/che/multiuser/integration/jpa/cascaderemoval/TestObjectsFactory.java
#	multiuser/integration-tests/che-multiuser-cascade-removal/src/test/resources/META-INF/persistence.xml
#	multiuser/integration-tests/che-multiuser-postgresql-tck/pom.xml
#	multiuser/integration-tests/che-multiuser-postgresql-tck/src/test/java/MultiuserPostgresqlTckModule.java
#	multiuser/integration-tests/che-multiuser-postgresql-tck/src/test/resources/META-INF/persistence.xml
#	multiuser/keycloak/che-multiuser-keycloak-ide/src/main/java/org/eclipse/che/multiuser/keycloak/ide/KeycloakProvider.java
#	multiuser/machine-auth/che-multiuser-machine-authentication-ide/pom.xml
#	multiuser/machine-auth/che-multiuser-machine-authentication-ide/src/main/java/org/eclipse/che/multiuser/machine/authentication/ide/MachineAsyncRequestFactory.java
#	multiuser/machine-auth/che-multiuser-machine-authentication-ide/src/main/java/org/eclipse/che/multiuser/machine/authentication/ide/MachineTokenServiceClientImpl.java
#	multiuser/machine-auth/che-multiuser-machine-authentication-ide/src/main/java/org/eclipse/che/multiuser/machine/authentication/ide/inject/MachineAuthGinModule.java
#	multiuser/machine-auth/che-multiuser-machine-authentication/src/main/java/org/eclipse/che/multiuser/machine/authentication/server/MachineSessionInvalidator.java
#	multiuser/permission/che-multiuser-permission-machine/pom.xml
#	multiuser/permission/che-multiuser-permission-machine/src/main/java/org/eclipse/che/multiuser/permission/machine/filters/RecipePermissionsFilter.java
#	multiuser/permission/che-multiuser-permission-machine/src/main/java/org/eclipse/che/multiuser/permission/machine/jpa/JpaRecipePermissionsDao.java
#	multiuser/permission/che-multiuser-permission-machine/src/main/java/org/eclipse/che/multiuser/permission/machine/jpa/MultiuserJpaRecipeDao.java
#	multiuser/permission/che-multiuser-permission-machine/src/main/java/org/eclipse/che/multiuser/permission/machine/jpa/MultiuserMachineJpaModule.java
#	multiuser/permission/che-multiuser-permission-machine/src/main/java/org/eclipse/che/multiuser/permission/machine/jpa/listener/RemoveRecipeOnLastUserRemovedEventSubscriber.java
#	multiuser/permission/che-multiuser-permission-machine/src/main/java/org/eclipse/che/multiuser/permission/machine/recipe/RecipeCreatorPermissionsProvider.java
#	multiuser/permission/che-multiuser-permission-machine/src/main/java/org/eclipse/che/multiuser/permission/machine/recipe/RecipePermissionsImpl.java
#	multiuser/permission/che-multiuser-permission-machine/src/test/java/org/eclipse/che/multiuser/permission/machine/filters/RecipePermissionsFilterTest.java
#	multiuser/permission/che-multiuser-permission-machine/src/test/java/org/eclipse/che/multiuser/permission/machine/jpa/JpaRecipePermissionsDaoTest.java
#	multiuser/permission/che-multiuser-permission-machine/src/test/java/org/eclipse/che/multiuser/permission/machine/jpa/JpaTestModule.java
#	multiuser/permission/che-multiuser-permission-machine/src/test/java/org/eclipse/che/multiuser/permission/machine/jpa/MultiuserJpaRecipeDaoTest.java
#	multiuser/permission/che-multiuser-permission-machine/src/test/java/org/eclipse/che/multiuser/permission/machine/jpa/RemovePermissionsBeforeRecipeRemovedEventSubscriberTest.java
#	multiuser/permission/che-multiuser-permission-machine/src/test/java/org/eclipse/che/multiuser/permission/machine/jpa/TestWorkspaceEntity.java
#	multiuser/permission/che-multiuser-permission-machine/src/test/java/org/eclipse/che/multiuser/permission/machine/recipe/RecipeCreatorPermissionsProviderTest.java
#	multiuser/permission/che-multiuser-permission-machine/src/test/java/org/eclipse/che/multiuser/permission/machine/spi/tck/RecipePermissionsDaoTest.java
#	multiuser/permission/che-multiuser-permission-workspace/pom.xml
#	multiuser/permission/che-multiuser-permission-workspace/src/main/java/org/eclipse/che/multiuser/permission/workspace/server/WorkspaceCreatorPermissionsProvider.java
#	multiuser/permission/che-multiuser-permission-workspace/src/main/java/org/eclipse/che/multiuser/permission/workspace/server/filters/WorkspacePermissionsFilter.java
#	multiuser/permission/che-multiuser-permission-workspace/src/main/java/org/eclipse/che/multiuser/permission/workspace/server/jpa/MultiuserWorkspaceJpaModule.java
#	multiuser/permission/che-multiuser-permission-workspace/src/main/java/org/eclipse/che/multiuser/permission/workspace/server/spi/jpa/MultiuserJpaWorkspaceDao.java
#	multiuser/permission/che-multiuser-permission-workspace/src/test/java/org/eclipse/che/multiuser/permission/workspace/server/filters/WorkspacePermissionsFilterTest.java
#	multiuser/permission/che-multiuser-permission-workspace/src/test/java/org/eclipse/che/multiuser/permission/workspace/server/jpa/WorkspaceTckModule.java
#	multiuser/permission/che-multiuser-permission-workspace/src/test/java/org/eclipse/che/multiuser/permission/workspace/server/spi/jpa/JpaTckModule.java
#	multiuser/permission/che-multiuser-permission-workspace/src/test/java/org/eclipse/che/multiuser/permission/workspace/server/spi/jpa/RemovePermissionsBeforeStackRemovedEventSubscriberTest.java
#	multiuser/pom.xml
#	plugins/plugin-docker/che-plugin-docker-machine/src/test/java/org/eclipse/che/plugin/docker/machine/MachineProviderImplTest.java
#	plugins/plugin-docker/pom.xml
#	plugins/plugin-github/che-plugin-github-pullrequest/src/main/java/org/eclipse/che/plugin/pullrequest/client/GitHubHostingService.java
#	pom.xml
#	selenium/che-selenium-core/src/main/java/org/eclipse/che/selenium/core/workspace/TestWorkspaceProviderImpl.java
#	selenium/che-selenium-test/README.md
#	selenium/che-selenium-test/pom.xml
#	selenium/che-selenium-test/src/main/java/org/eclipse/che/selenium/pageobject/CodenvyEditor.java
#	selenium/che-selenium-test/src/test/java/org/eclipse/che/selenium/workspaces/CreateWorkspaceOnDashboardTest.java
#	selenium/che-selenium-test/src/test/java/org/eclipse/che/selenium/workspaces/WorkingWithNodeWsTest.java
#	selenium/che-selenium-test/src/test/resources/conf/selenium.properties
#	wsagent/agent/src/main/java/org/eclipse/che/api/agent/WsAgentLauncher.java
#	wsagent/agent/src/test/java/org/eclipse/che/api/agent/WsAgentLauncherTest.java
#	wsmaster/che-core-api-user/pom.xml
#	wsmaster/che-core-api-workspace/src/main/java/org/eclipse/che/api/environment/server/MachineLinksInjector.java
#	wsmaster/che-core-api-workspace/src/main/java/org/eclipse/che/api/workspace/server/WorkspaceServiceLinksInjector.java
#	wsmaster/che-core-api-workspace/src/main/java/org/eclipse/che/api/workspace/server/model/impl/EnvironmentImpl.java
#	wsmaster/integration-tests/postgresql-tck/pom.xml
2017-10-09 14:51:25 +03:00
Artem Zatsarynnyi ba47c0b825 Port AppStatesPreferenceCleaner to spi branch (#6611)
* Port AppStatesPreferenceCleaner from master branch. Class has been missed as a result of previous merges.

* Move AppStatesPreferenceCleaner to che-core-api-workspace.

* Move WorkspaceRemovedEvent and WorkspaceCreatedEvent to che-core-api-workspace-shared;
Move AppStatesPreferenceCleaner to che-core-api-user
2017-10-07 09:56:03 +03:00
Sergii Kabashniuk ee01b2998f Multi-user Eclipse Che (#6441)
Multi-user Eclipse Che (#6441)
#### How to run it.
```docker run -it -e CHE_MULTIUSER=true -e CHE_HOST=<your ip> -e CHE_KEYCLOAK_AUTH-SERVER-URL=http://<your ip>:5050/auth -v /var/run/docker.sock:/var/run/docker.sock -v ~/.che-multiuser:/data eclipse/che:nightly start --skip:pull --skip:nightly```
#### How to manage it
 - Keycloak configured with two realms. ```Master``` and ```che```. Also we have one user admin/admin in both realm. Admin user in master realm is  - super admin. 
-  Eclipse Che configured for che realm
- We enabled user registration in ```Che``` realm
#### Known limitation
 - swagger would not work. We need to upgrade a version. to support openid authentification https://github.com/eclipse/che/issues/6015
- It's working on local docker. We are going to provide scalable version based on OpenShift on next versions.
- Invitation of non-existent users to Eclipse Che organization https://github.com/eclipse/che/issues/6335
#### How to run it when it is in a branch


To run an multiuser Che version, the following steps are required after building the branch:
 - Rebuild init, cli and che images (in the given sequence). To do that, proceed to folder _dockerfiles/<image_name>_ and run _build.sh_
 - Run Che in a  usual way using cli, with additional parameters:  `-e CHE_MULTIUSER=true` and `--skip:pull --skip:nightly`  
   Full command example:
   `docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock -v /home/user/.che:/data -e CHE_MULTIUSER=true eclipse/che-cli:nightly start --skip:pull --skip:nightly`
 - MacOS users may need to edit _che.env_ file in the data folder, changing `CHE_HOST` and `CHE_KEYCLOAK_AUTH__SERVER__URL` values to their specific IP.
 
When start is succeeded, the following docker containers should be created:  
 - che, exposing 8080 port;
 - che_keycloak, exposing 5050 port;  
 - che_postgres, exposing 5432 port;
2017-10-06 17:27:27 +03:00