You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by of...@apache.org on 2020/04/28 12:53:57 UTC
[incubator-dlab] 05/06: Merge branch 'develop' into
bucket-browser-gcp
This is an automated email from the ASF dual-hosted git repository.
ofuks pushed a commit to branch bucket-browser-gcp
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
commit dcf66f15fd3b625356a357e90a286ac40f9ac738
Merge: e84ca63 915a149
Author: Oleh Fuks <ol...@gmail.com>
AuthorDate: Tue Apr 28 12:42:45 2020 +0300
Merge branch 'develop' into bucket-browser-gcp
# Conflicts:
# infrastructure-provisioning/src/ssn/templates/ssn.yml
# services/dlab-webapp-common/src/main/java/com/epam/dlab/ServiceConfiguration.java
# services/dlab-webapp-common/src/main/java/com/epam/dlab/constants/ServiceConsts.java
# services/dlab-webapp-common/src/main/java/com/epam/dlab/rest/client/RESTService.java
# services/self-service/src/main/java/com/epam/dlab/backendapi/modules/DevModule.java
# services/self-service/src/main/java/com/epam/dlab/backendapi/modules/ProductionModule.java
# services/self-service/src/main/resources/mongo/aws/mongo_roles.json
# services/self-service/src/main/resources/mongo/azure/mongo_roles.json
# services/self-service/src/main/resources/mongo/gcp/mongo_roles.json
README.md | 503 +++++++++++++--------
USER_GUIDE.md | 476 ++++++++++---------
doc/billing_filter.png | Bin 18705 -> 41447 bytes
doc/billing_page.png | Bin 18577 -> 264721 bytes
doc/bin_icon.png | Bin 0 -> 4379 bytes
doc/computational_scheduler.png | Bin 33900 -> 35577 bytes
doc/computational_scheduler_create.png | Bin 3893 -> 3277 bytes
doc/connect_endpoint.png | Bin 0 -> 202030 bytes
doc/create_notebook_from_ami.png | Bin 27066 -> 35594 bytes
doc/dataproc_create.png | Bin 0 -> 129369 bytes
doc/delete_btn.png | Bin 0 -> 4155 bytes
doc/delete_group.png | Bin 34704 -> 45914 bytes
doc/dlab_aws.png | Bin 0 -> 96693 bytes
doc/dlab_azure.png | Bin 0 -> 94589 bytes
doc/dlab_gcp.png | Bin 0 -> 108227 bytes
doc/emr_creating.png | Bin 37126 -> 43196 bytes
doc/emr_terminate_confirm.png | Bin 1760535 -> 14257 bytes
doc/endpoint_list.png | Bin 0 -> 181738 bytes
doc/environment_management.png | Bin 66404 -> 90301 bytes
doc/git_creds_window.png | Bin 7190623 -> 25654 bytes
doc/git_creds_window2.png | Bin 5946035 -> 26511 bytes
doc/main_page.png | Bin 4746590 -> 35533 bytes
doc/main_page2.png | Bin 8157879 -> 49611 bytes
doc/main_page3.png | Bin 8157879 -> 48735 bytes
doc/main_page_filter.png | Bin 62679 -> 79991 bytes
doc/manage_env_confirm.png | Bin 10464 -> 14049 bytes
doc/manage_environment.png | Bin 21334 -> 18263 bytes
doc/manage_role.png | Bin 108456 -> 28068 bytes
doc/managemanage_resource_actions.png | Bin 4997 -> 4976 bytes
doc/notebook_create.png | Bin 41323 -> 33033 bytes
doc/notebook_info.png | Bin 157517 -> 42371 bytes
doc/notebook_libs_status.png | Bin 50720 -> 59233 bytes
doc/notebook_scheduler.png | Bin 36928 -> 39368 bytes
doc/notebook_terminated.png | Bin 38113 -> 56038 bytes
doc/notebook_terminating.png | Bin 39506 -> 56292 bytes
doc/pen_icon.png | Bin 0 -> 4171 bytes
doc/project_menu.png | Bin 0 -> 86667 bytes
doc/project_view.png | Bin 0 -> 234276 bytes
doc/roles.png | Bin 0 -> 198223 bytes
doc/scheduler_by_inactivity.png | Bin 0 -> 22076 bytes
doc/spark_stop_confirm.png | Bin 10920 -> 12767 bytes
doc/upload_or_generate_user_key.png | Bin 17078 -> 37302 bytes
.../files/aws/deeplearning_description.json | 4 +-
.../files/azure/deeplearning_description.json | 4 +-
.../general/files/azure/tensor_description.json | 4 +-
.../files/gcp/deeplearning_description.json | 4 +-
.../src/general/lib/os/debian/ssn_lib.py | 29 +-
.../src/general/scripts/aws/ssn_configure.py | 10 +-
.../src/general/scripts/azure/ssn_configure.py | 30 +-
.../src/general/scripts/gcp/project_prepare.py | 6 +-
.../src/general/scripts/gcp/ssn_configure.py | 11 +-
.../src/ssn/scripts/configure_billing.py | 125 +++--
.../src/ssn/scripts/configure_ui.py | 8 +-
.../src/ssn/templates/ssn.yml | 5 +
.../terraform/aws/endpoint/main/network.tf | 7 +
.../terraform/aws/endpoint/main/variables.tf | 22 +-
.../terraform/azure/endpoint/main/sg.tf | 14 +
.../terraform/azure/endpoint/main/variables.tf | 20 +-
.../terraform/bin/deploy/billing_app_aws.yml | 34 ++
.../terraform/bin/deploy/billing_aws.yml | 35 +-
.../terraform/bin/deploy/billing_azure.yml | 59 +++
.../terraform/bin/deploy/billing_gcp.yml | 38 ++
.../terraform/bin/deploy/endpoint_fab.py | 339 +++++++++++++-
.../bin/deploy/mongo_files/configure_mongo.py | 95 ++++
.../bin/deploy/mongo_files}/gcp/mongo_roles.json | 100 ----
.../deploy/mongo_files/mongod.service_template} | 56 +--
.../terraform/bin/deploy/provisioning.yml | 7 +-
.../terraform/bin/deploy/renew_certificates.sh | 2 +-
.../terraform/bin/deploy/supervisor_svc.conf | 10 +
infrastructure-provisioning/terraform/bin/dlab.py | 22 +
.../terraform/gcp/endpoint/main/network.tf | 2 +-
.../terraform/gcp/endpoint/main/variables.tf | 8 +
.../terraform/gcp/endpoint/provisioning.yml | 2 +-
pom.xml | 2 +-
services/billing-aws/billing.yml | 37 +-
services/billing-aws/pom.xml | 128 +++---
.../java/com/epam/dlab/BillingAwsApplication.java} | 13 +-
.../main/java/com/epam/dlab/BillingScheduler.java | 267 -----------
.../main/java/com/epam/dlab/BillingService.java} | 10 +-
.../java/com/epam/dlab/BillingServiceImpl.java | 128 ++++++
.../src/main/java/com/epam/dlab/BillingTool.java | 20 +-
.../src/main/java/com/epam/dlab/Help.java | 19 +-
.../java/com/epam/dlab/conf/SecurityConfig.java | 66 +++
.../configuration/BillingToolConfiguration.java | 30 --
.../dlab/configuration/SchedulerConfiguration.java | 213 ---------
.../epam/dlab/controller/BillingController.java} | 31 +-
.../main/java/com/epam/dlab/core/AdapterBase.java | 4 +-
.../java/com/epam/dlab/core/parser/ParserBase.java | 22 +-
.../com/epam/dlab/core/parser/ParserByLine.java | 11 +-
.../java/com/epam/dlab/module/AdapterConsole.java | 4 +-
.../java/com/epam/dlab/module/AdapterFile.java | 23 +-
.../com/epam/dlab/module/aws/AdapterS3File.java | 3 +-
.../java/com/epam/dlab/mongo/AdapterMongoDb.java | 63 ++-
.../com/epam/dlab/mongo/DlabResourceTypeDAO.java | 297 +-----------
.../java/com/epam/dlab/mongo/ResourceItem.java | 152 -------
.../java/com/epam/dlab/mongo/ResourceItemList.java | 136 ------
.../billing-aws/src/main/resources/application.yml | 34 ++
.../com/epam/dlab/mongo/ResourceItemListTest.java | 54 ---
services/billing-azure/billing.yml | 111 +++--
services/billing-azure/pom.xml | 109 +++--
.../azure/AzureBillableResourcesService.java | 315 -------------
.../billing/azure/AzureBillingDetailsService.java | 194 --------
.../azure/AzureInvoiceCalculationService.java | 60 +--
.../billing/azure/BillingAzureApplication.java} | 8 +-
.../dlab/billing/azure/BillingSchedulerAzure.java | 314 -------------
.../billing/azure/CalculateBillingService.java} | 9 +-
.../billing/azure/CalculateBillingServiceImpl.java | 245 ++++++++++
.../azure/config/BillingConfigurationAzure.java | 6 +-
.../dlab/billing/azure/config/SecurityConfig.java | 66 +++
.../azure/controller/BillingController.java} | 31 +-
.../azure/model/AzureDailyResourceInvoice.java | 34 +-
.../src/main/resources/application.yml | 59 +++
services/billing-gcp/billing.yml | 34 +-
services/billing-gcp/pom.xml | 30 ++
.../dlab/billing/gcp/BillingGcpApplication.java | 2 -
.../gcp/conf/BillingApplicationConfiguration.java | 2 -
.../epam/dlab/billing/gcp/conf/SecurityConfig.java | 66 +++
.../BillingController.java} | 32 +-
.../com/epam/dlab/billing/gcp/dao/BillingDAO.java | 5 +-
.../billing/gcp/dao/impl/BigQueryBillingDAO.java | 44 +-
.../dlab/billing/gcp/documents/UserInstance.java | 55 ---
.../dlab/billing/gcp/model/GcpBillingData.java | 10 +-
.../billing/gcp/repository/BillingRepository.java | 4 +-
.../gcp/repository/UserInstanceRepository.java | 30 --
.../dlab/billing/gcp/service/BillingService.java | 7 +-
.../billing/gcp/service/BillingServiceImpl.java | 186 --------
.../impl/BillingServiceImpl.java} | 34 +-
.../epam/dlab/billing/gcp/util/BillingUtils.java | 95 ----
.../billing-gcp/src/main/resources/application.yml | 26 +-
.../gcp/service/BillingServiceImplTest.java | 87 ----
.../com/epam/dlab/billing/DlabResourceType.java | 86 ----
.../com/epam/dlab/dto/billing/BillingData.java} | 28 +-
.../dlab/dto/billing/BillingResourceType.java} | 14 +-
.../computational/UserComputationalResource.java | 8 +-
.../java/com/epam/dlab/ServiceConfiguration.java | 9 +
.../com/epam/dlab/constants/ServiceConsts.java | 1 +
services/self-service/pom.xml | 6 +
services/self-service/self-service.yml | 9 +-
.../dlab/backendapi/annotation/ProjectAdmin.java} | 15 +-
.../com/epam/dlab/backendapi/annotation/User.java} | 15 +-
.../epam/dlab/backendapi/dao/BaseBillingDAO.java | 441 +++++-------------
.../java/com/epam/dlab/backendapi/dao/BaseDAO.java | 64 ++-
.../com/epam/dlab/backendapi/dao/BillingDAO.java | 15 +-
.../java/com/epam/dlab/backendapi/dao/EnvDAO.java | 19 -
.../epam/dlab/backendapi/dao/ExploratoryDAO.java | 19 +
.../com/epam/dlab/backendapi/dao/ProjectDAO.java | 2 -
.../epam/dlab/backendapi/dao/ProjectDAOImpl.java | 11 +-
.../com/epam/dlab/backendapi/dao/UserGroupDao.java | 2 -
.../epam/dlab/backendapi/dao/UserGroupDaoImpl.java | 5 -
.../com/epam/dlab/backendapi/dao/UserRoleDao.java | 2 -
.../epam/dlab/backendapi/dao/UserRoleDaoImpl.java | 5 -
.../dlab/backendapi/dao/aws/AwsBillingDAO.java | 74 ---
.../dlab/backendapi/dao/azure/AzureBillingDAO.java | 121 -----
.../dlab/backendapi/dao/gcp/GcpBillingDao.java | 65 ---
.../com/epam/dlab/backendapi/domain/BaseShape.java | 23 -
.../dlab/backendapi/domain/BillingReport.java} | 32 +-
.../dlab/backendapi/domain/BillingReportLine.java} | 52 +--
.../backendapi/domain/DataEngineServiceShape.java | 37 --
.../dlab/backendapi/domain/DataEngineShape.java | 34 --
.../epam/dlab/backendapi/domain/EndpointShape.java | 14 -
.../dlab/backendapi/domain/ExploratoryShape.java | 14 -
.../dlab/backendapi/domain/ProjectManagingDTO.java | 16 -
.../com/epam/dlab/backendapi/domain/SsnShape.java | 14 -
.../interceptor/ProjectAdminInterceptor.java | 74 +++
.../backendapi/modules/AwsSelfServiceModule.java | 83 ----
.../backendapi/modules/AzureSelfServiceModule.java | 81 ----
.../backendapi/modules/CloudProviderModule.java | 34 +-
.../epam/dlab/backendapi/modules/DevModule.java | 30 +-
.../backendapi/modules/GcpSelfServiceModule.java | 84 ----
.../dlab/backendapi/modules/ModuleFactory.java | 13 -
.../dlab/backendapi/modules/ProductionModule.java | 32 +-
.../dlab/backendapi/resources/BillingResource.java | 12 +-
.../backendapi/resources/EnvironmentResource.java | 20 +-
.../resources/InfrastructureInfoResource.java | 13 +-
.../dlab/backendapi/resources/ProjectResource.java | 52 +--
.../backendapi/resources/UserGroupResource.java | 67 +--
.../backendapi/resources/UserRoleResource.java | 6 +-
.../backendapi/resources/dto/BillingFilter.java | 37 +-
.../resources/dto/HealthStatusPageDTO.java | 129 +-----
.../backendapi/resources/dto/ImageInfoRecord.java | 1 +
.../resources/dto/ProjectInfrastructureInfo.java | 3 +
.../com/epam/dlab/backendapi/roles/UserRole.java | 13 +-
.../com/epam/dlab/backendapi/roles/UserRoles.java | 62 ++-
.../schedulers/billing/BillingScheduler.java | 52 +++
.../dlab/backendapi/service/BillingService.java | 77 +---
.../backendapi/service/EnvironmentService.java | 8 +-
.../backendapi/service/ExploratoryService.java | 8 +
.../service/InfrastructureInfoService.java | 4 +-
.../dlab/backendapi/service/ProjectService.java | 13 +-
.../epam/dlab/backendapi/service/ShapeFormat.java | 5 -
.../dlab/backendapi/service/UserGroupService.java | 12 +-
.../backendapi/service/UserRoleServiceImpl.java | 1 +
.../backendapi/service/aws/AwsBillingService.java | 110 -----
.../service/azure/AzureBillingService.java | 116 -----
.../backendapi/service/gcp/GcpBillingService.java | 104 -----
.../service/impl/BillingServiceImpl.java | 338 ++++++++++++++
.../service/impl/EndpointServiceImpl.java | 2 +-
.../service/impl/EnvironmentServiceImpl.java | 81 ++--
.../service/impl/ExploratoryServiceImpl.java | 27 +-
.../impl/InfrastructureInfoServiceImpl.java | 112 +++--
.../service/impl/ProjectServiceImpl.java | 65 +--
.../service/impl/UserGroupServiceImpl.java | 97 ++--
.../epam/dlab/backendapi/util/BillingUtils.java | 228 ++++++++++
.../src/main/resources/mongo/aws/mongo_roles.json | 19 +
.../main/resources/mongo/azure/mongo_roles.json | 19 +
.../src/main/resources/mongo/gcp/mongo_roles.json | 20 +
.../manage-environment-dilog.component.ts | 2 +-
.../management-grid/management-grid.component.html | 30 +-
.../management-grid/management-grid.component.ts | 4 +-
.../management/management.component.ts | 3 +-
.../administration/management/management.model.ts | 1 +
.../administration/project/project.component.html | 8 +-
.../administration/project/project.component.ts | 9 +-
.../app/administration/roles/roles.component.html | 35 +-
.../app/administration/roles/roles.component.scss | 7 +
.../app/administration/roles/roles.component.ts | 58 ++-
.../services/applicationServiceFacade.service.ts | 10 -
.../src/app/core/services/healthStatus.service.ts | 11 +-
.../src/app/core/services/project.service.ts | 18 -
.../reporting-grid/reporting-grid.component.html | 123 ++---
.../reporting-grid/reporting-grid.component.scss | 68 ++-
.../reporting-grid/reporting-grid.component.ts | 44 +-
.../src/app/reporting/reporting.component.ts | 96 ++--
.../app/reporting/toolbar/toolbar.component.html | 4 +-
.../cost-details-dialog.component.html | 22 +-
.../cost-details-dialog.component.scss | 2 +-
.../resources-grid/resources-grid.component.html | 38 +-
.../resources-grid/resources-grid.component.scss | 4 +
.../resources-grid/resources-grid.component.ts | 7 +-
.../resources-grid/resources-grid.model.ts | 62 +--
.../src/app/resources/resources.component.html | 2 +-
.../src/app/resources/resources.component.ts | 17 +-
.../multi-level-select-dropdown.component.html | 26 +-
.../multi-level-select-dropdown.component.scss | 25 +-
.../multi-level-select-dropdown.component.ts | 1 +
.../multi-select-dropdown.component.html | 3 +-
.../confirmation-dialog.component.html | 3 +-
.../confirmation-dialog.model.ts | 6 +-
.../src/app/shared/navbar/navbar.component.html | 2 +-
.../src/app/shared/navbar/navbar.component.ts | 2 +-
.../resources/webapp/src/assets/styles/_theme.scss | 5 +
.../webapp/src/dictionary/gcp.dictionary.ts | 2 +-
.../webapp/src/dictionary/global.dictionary.ts | 20 +-
.../resources/EnvironmentResourceTest.java | 97 +---
.../resources/ImageExploratoryResourceTest.java | 2 +-
.../resources/InfrastructureInfoResourceTest.java | 38 +-
.../backendapi/resources/ProjectResourceTest.java | 24 +-
.../resources/UserGroupResourceTest.java | 206 ++-------
.../backendapi/resources/UserRoleResourceTest.java | 7 +-
.../service/UserRoleServiceImplTest.java | 42 +-
.../service/aws/AwsBillingServiceTest.java | 224 ---------
.../service/azure/AzureBillingServiceTest.java | 208 ---------
.../service/impl/EnvironmentServiceImplTest.java | 71 ---
.../impl/ImageExploratoryServiceImplTest.java | 2 +-
.../service/impl/UserGroupServiceImplTest.java | 156 +++----
255 files changed, 4706 insertions(+), 6955 deletions(-)
diff --cc infrastructure-provisioning/src/ssn/templates/ssn.yml
index 503116f,7b18d26..41a9723
--- a/infrastructure-provisioning/src/ssn/templates/ssn.yml
+++ b/infrastructure-provisioning/src/ssn/templates/ssn.yml
@@@ -62,10 -62,10 +62,15 @@@ provisioningService
timeout: 3s
connectionTimeout: 3s
+bucketService:
+ jerseyClient:
+ timeout: 10m
+ connectionTimeout: 3s
+
+ billingService:
+ jerseyClient:
+ timeout: 4m
+ connectionTimeout: 3s
+
# Log out user on inactivity
inactiveUserTimeoutMillSec: 7200000
diff --cc services/dlab-webapp-common/src/main/java/com/epam/dlab/ServiceConfiguration.java
index 51b0779,3297abd..1ae0afb
--- a/services/dlab-webapp-common/src/main/java/com/epam/dlab/ServiceConfiguration.java
+++ b/services/dlab-webapp-common/src/main/java/com/epam/dlab/ServiceConfiguration.java
@@@ -54,11 -54,11 +54,16 @@@ public class ServiceConfiguration exten
@Valid
@NotNull
+ @JsonProperty(ServiceConsts.BUCKET_SERVICE_NAME)
+ private RESTServiceFactory bucketFactory = new RESTServiceFactory();
+
+ @Valid
+ @NotNull
+ @JsonProperty(ServiceConsts.BILLING_SERVICE_NAME)
+ private RESTServiceFactory billingFactory = new RESTServiceFactory();
+
+ @Valid
+ @NotNull
@JsonProperty(ServiceConsts.SECURITY_SERVICE_NAME)
private RESTServiceFactory securityFactory;
@@@ -90,10 -90,10 +95,14 @@@
return provisioningFactory;
}
+ public RESTServiceFactory getBucketFactory() {
+ return bucketFactory;
+ }
+
+ public RESTServiceFactory getBillingFactory() {
+ return billingFactory;
+ }
+
public RESTServiceFactory getSecurityFactory() {
return securityFactory;
}
diff --cc services/dlab-webapp-common/src/main/java/com/epam/dlab/constants/ServiceConsts.java
index d7d7208,e1bcf23..b04db9f
--- a/services/dlab-webapp-common/src/main/java/com/epam/dlab/constants/ServiceConsts.java
+++ b/services/dlab-webapp-common/src/main/java/com/epam/dlab/constants/ServiceConsts.java
@@@ -20,14 -20,14 +20,15 @@@
package com.epam.dlab.constants;
public final class ServiceConsts {
- public static final String MONGO_NAME = "mongo";
- public static final String PROVISIONING_SERVICE_NAME = "provisioningService";
- public static final String BILLING_SERVICE_NAME = "billingService";
- public static final String MAVEN_SEARCH_API = "mavenSearchService";
- public static final String SECURITY_SERVICE_NAME = "securityService";
- public static final String SELF_SERVICE_NAME = "selfService";
- public static final String PROVISIONING_USER_AGENT = "provisioning-service";
+ public static final String MONGO_NAME = "mongo";
+ public static final String PROVISIONING_SERVICE_NAME = "provisioningService";
++ public static final String BILLING_SERVICE_NAME = "billingService";
+ public static final String BUCKET_SERVICE_NAME = "bucketService";
+ public static final String MAVEN_SEARCH_API = "mavenSearchService";
+ public static final String SECURITY_SERVICE_NAME = "securityService";
+ public static final String SELF_SERVICE_NAME = "selfService";
+ public static final String PROVISIONING_USER_AGENT = "provisioning-service";
- private ServiceConsts() {
- }
+ private ServiceConsts() {
+ }
}
diff --cc services/self-service/src/main/java/com/epam/dlab/backendapi/modules/CloudProviderModule.java
index c4c771d,8b41baf..f75f877
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/modules/CloudProviderModule.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/modules/CloudProviderModule.java
@@@ -21,14 -21,11 +21,12 @@@ package com.epam.dlab.backendapi.module
import com.epam.dlab.backendapi.SelfServiceApplication;
import com.epam.dlab.backendapi.annotation.BudgetLimited;
+ import com.epam.dlab.backendapi.annotation.ProjectAdmin;
import com.epam.dlab.backendapi.conf.SelfServiceApplicationConfiguration;
- import com.epam.dlab.backendapi.dao.BillingDAO;
- import com.epam.dlab.backendapi.dao.aws.AwsBillingDAO;
- import com.epam.dlab.backendapi.dao.azure.AzureBillingDAO;
- import com.epam.dlab.backendapi.dao.gcp.GcpBillingDao;
import com.epam.dlab.backendapi.interceptor.BudgetLimitInterceptor;
+ import com.epam.dlab.backendapi.interceptor.ProjectAdminInterceptor;
import com.epam.dlab.backendapi.resources.BillingResource;
+import com.epam.dlab.backendapi.resources.BucketResource;
import com.epam.dlab.backendapi.resources.aws.ComputationalResourceAws;
import com.epam.dlab.backendapi.resources.azure.ComputationalResourceAzure;
import com.epam.dlab.backendapi.resources.gcp.ComputationalResourceGcp;
diff --cc services/self-service/src/main/java/com/epam/dlab/backendapi/modules/DevModule.java
index f8de46d,9275319..31b4056
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/modules/DevModule.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/modules/DevModule.java
@@@ -132,9 -132,9 +134,12 @@@ public class DevModule extends ModuleBa
bind(RESTService.class).annotatedWith(Names.named(ServiceConsts.PROVISIONING_SERVICE_NAME))
.toInstance(configuration.getProvisioningFactory()
.build(environment, ServiceConsts.PROVISIONING_SERVICE_NAME));
+ bind(RESTService.class).annotatedWith(Names.named(ServiceConsts.BUCKET_SERVICE_NAME))
+ .toInstance(configuration.getBucketFactory()
+ .build(environment, ServiceConsts.BUCKET_SERVICE_NAME));
+ bind(RESTService.class).annotatedWith(Names.named(ServiceConsts.BILLING_SERVICE_NAME))
+ .toInstance(configuration.getBillingFactory()
+ .build(environment, ServiceConsts.BILLING_SERVICE_NAME));
bind(ImageExploratoryService.class).to(ImageExploratoryServiceImpl.class);
bind(ImageExploratoryDao.class).to(ImageExploratoryDaoImpl.class);
bind(BackupService.class).to(BackupServiceImpl.class);
@@@ -156,18 -156,18 +161,19 @@@
bind(ExternalLibraryService.class).to(MavenCentralLibraryService.class);
bind(SystemInfoService.class).to(SystemInfoServiceImpl.class);
bind(UserGroupService.class).to(UserGroupServiceImpl.class);
- bind(UserRoleService.class).to(UserRoleServiceImpl.class);
- bind(UserRoleDao.class).to(UserRoleDaoImpl.class);
- bind(UserGroupDao.class).to(UserGroupDaoImpl.class);
- bind(ApplicationSettingService.class).to(ApplicationSettingServiceImpl.class);
- bind(UserSettingService.class).to(UserSettingServiceImpl.class);
- bind(GuacamoleService.class).to(GuacamoleServiceImpl.class);
- bind(EndpointService.class).to(EndpointServiceImpl.class);
- bind(EndpointDAO.class).to(EndpointDAOImpl.class);
- bind(ProjectService.class).to(ProjectServiceImpl.class);
- bind(ProjectDAO.class).to(ProjectDAOImpl.class);
- bind(BucketService.class).to(BucketServiceImpl.class);
- }
+ bind(UserRoleService.class).to(UserRoleServiceImpl.class);
+ bind(UserRoleDao.class).to(UserRoleDaoImpl.class);
+ bind(UserGroupDao.class).to(UserGroupDaoImpl.class);
+ bind(ApplicationSettingService.class).to(ApplicationSettingServiceImpl.class);
+ bind(UserSettingService.class).to(UserSettingServiceImpl.class);
+ bind(GuacamoleService.class).to(GuacamoleServiceImpl.class);
+ bind(EndpointService.class).to(EndpointServiceImpl.class);
+ bind(EndpointDAO.class).to(EndpointDAOImpl.class);
+ bind(ProjectService.class).to(ProjectServiceImpl.class);
+ bind(ProjectDAO.class).to(ProjectDAOImpl.class);
+ bind(BillingDAO.class).to(BaseBillingDAO.class);
++ bind(BucketService.class).to(BucketServiceImpl.class);
+ }
private void configureCors(Environment environment) {
final FilterRegistration.Dynamic cors =
diff --cc services/self-service/src/main/java/com/epam/dlab/backendapi/modules/ProductionModule.java
index 6896ee7,d20adbf..5fb314d
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/modules/ProductionModule.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/modules/ProductionModule.java
@@@ -123,9 -123,9 +125,12 @@@ public class ProductionModule extends M
bind(RESTService.class).annotatedWith(Names.named(ServiceConsts.PROVISIONING_SERVICE_NAME))
.toInstance(configuration.getProvisioningFactory().build(environment, ServiceConsts
.PROVISIONING_SERVICE_NAME));
+ bind(RESTService.class).annotatedWith(Names.named(ServiceConsts.BUCKET_SERVICE_NAME))
+ .toInstance(configuration.getBucketFactory().build(environment, ServiceConsts
+ .BUCKET_SERVICE_NAME));
+ bind(RESTService.class).annotatedWith(Names.named(ServiceConsts.BILLING_SERVICE_NAME))
+ .toInstance(configuration.getBillingFactory()
+ .build(environment, ServiceConsts.BILLING_SERVICE_NAME));
bind(ImageExploratoryService.class).to(ImageExploratoryServiceImpl.class);
bind(ImageExploratoryDao.class).to(ImageExploratoryDaoImpl.class);
bind(BackupService.class).to(BackupServiceImpl.class);
@@@ -148,17 -148,17 +153,18 @@@
bind(UserRoleDao.class).to(UserRoleDaoImpl.class);
bind(UserGroupDao.class).to(UserGroupDaoImpl.class);
bind(InactivityService.class).to(InactivityServiceImpl.class);
- bind(ApplicationSettingService.class).to(ApplicationSettingServiceImpl.class);
- bind(UserSettingService.class).to(UserSettingServiceImpl.class);
- bind(GuacamoleService.class).to(GuacamoleServiceImpl.class);
- bind(EndpointService.class).to(EndpointServiceImpl.class);
- bind(EndpointDAO.class).to(EndpointDAOImpl.class);
- bind(ProjectService.class).to(ProjectServiceImpl.class);
- bind(ProjectDAO.class).to(ProjectDAOImpl.class);
- bind(TagService.class).to(TagServiceImpl.class);
- bind(SecurityService.class).to(SecurityServiceImpl.class);
- bind(KeycloakService.class).to(KeycloakServiceImpl.class);
- bind(BucketService.class).to(BucketServiceImpl.class);
- bind(Client.class).toInstance(httpClient);
- }
+ bind(ApplicationSettingService.class).to(ApplicationSettingServiceImpl.class);
+ bind(UserSettingService.class).to(UserSettingServiceImpl.class);
+ bind(GuacamoleService.class).to(GuacamoleServiceImpl.class);
+ bind(EndpointService.class).to(EndpointServiceImpl.class);
+ bind(EndpointDAO.class).to(EndpointDAOImpl.class);
+ bind(ProjectService.class).to(ProjectServiceImpl.class);
+ bind(ProjectDAO.class).to(ProjectDAOImpl.class);
+ bind(BillingDAO.class).to(BaseBillingDAO.class);
++ bind(BucketService.class).to(BucketServiceImpl.class);
+ bind(TagService.class).to(TagServiceImpl.class);
+ bind(SecurityService.class).to(SecurityServiceImpl.class);
+ bind(KeycloakService.class).to(KeycloakServiceImpl.class);
+ bind(Client.class).toInstance(httpClient);
+ }
}
diff --cc services/self-service/src/main/resources/mongo/aws/mongo_roles.json
index 076dc75,6a8fd29..942f281
--- a/services/self-service/src/main/resources/mongo/aws/mongo_roles.json
+++ b/services/self-service/src/main/resources/mongo/aws/mongo_roles.json
@@@ -324,54 -324,23 +324,71 @@@
]
},
{
+ "_id": "bucketBrowserView",
+ "description": "Allow to view objects within the bucket",
+ "type": "BUCKET_BROWSER",
+ "cloud": "GCP",
+ "pages": [
+ "/api/bucket/view"
+ ],
+ "groups": [
+ "$anyuser"
+ ]
+ },
+ {
+ "_id": "bucketBrowserUpload",
+ "description": "Allow to upload object to the bucket",
+ "type": "BUCKET_BROWSER",
+ "cloud": "GCP",
+ "pages": [
+ "/api/bucket/upload"
+ ],
+ "groups": [
+ "$anyuser"
+ ]
+ },
+ {
+ "_id": "bucketBrowserDownload",
+ "description": "Allow to download object from the bucket",
+ "type": "BUCKET_BROWSER",
+ "cloud": "GCP",
+ "pages": [
+ "/api/bucket/download"
+ ],
+ "groups": [
+ "$anyuser"
+ ]
+ },
+ {
+ "_id": "bucketBrowserDelete",
+ "description": "Allow to delete object from the bucket",
+ "type": "BUCKET_BROWSER",
+ "cloud": "GCP",
+ "pages": [
+ "/api/bucket/delete"
+ ],
+ "groups": [
+ "$anyuser"
+ ]
+ },
+ {
+ "_id": "projectAdmin",
+ "description": "Allow to execute administration operation per project",
+ "type": "ADMINISTRATION",
+ "cloud": "AWS",
+ "pages": [
+ "environment/*",
+ "/roleManagement",
+ "/api/settings",
+ "/user/settings",
+ "/api/project",
+ "/api/endpoint"
+ ],
+ "groups": [
+ "$anyuser"
+ ]
+ },
+ {
"_id": "admin",
"description": "Allow to execute administration operation",
"type": "ADMINISTRATION",
diff --cc services/self-service/src/main/resources/mongo/azure/mongo_roles.json
index 886b635,86eadff..f05f3d1
--- a/services/self-service/src/main/resources/mongo/azure/mongo_roles.json
+++ b/services/self-service/src/main/resources/mongo/azure/mongo_roles.json
@@@ -264,54 -264,23 +264,71 @@@
]
},
{
+ "_id": "bucketBrowserView",
+ "description": "Allow to view objects within the bucket",
+ "type": "BUCKET_BROWSER",
+ "cloud": "GCP",
+ "pages": [
+ "/api/bucket/view"
+ ],
+ "groups": [
+ "$anyuser"
+ ]
+ },
+ {
+ "_id": "bucketBrowserUpload",
+ "description": "Allow to upload object to the bucket",
+ "type": "BUCKET_BROWSER",
+ "cloud": "GCP",
+ "pages": [
+ "/api/bucket/upload"
+ ],
+ "groups": [
+ "$anyuser"
+ ]
+ },
+ {
+ "_id": "bucketBrowserDownload",
+ "description": "Allow to download object from the bucket",
+ "type": "BUCKET_BROWSER",
+ "cloud": "GCP",
+ "pages": [
+ "/api/bucket/download"
+ ],
+ "groups": [
+ "$anyuser"
+ ]
+ },
+ {
+ "_id": "bucketBrowserDelete",
+ "description": "Allow to delete object from the bucket",
+ "type": "BUCKET_BROWSER",
+ "cloud": "GCP",
+ "pages": [
+ "/api/bucket/delete"
+ ],
+ "groups": [
+ "$anyuser"
+ ]
+ },
+ {
+ "_id": "projectAdmin",
+ "description": "Allow to execute administration operation per project",
+ "type": "ADMINISTRATION",
+ "cloud": "AZURE",
+ "pages": [
+ "environment/*",
+ "/roleManagement",
+ "/api/settings",
+ "/user/settings",
+ "/api/project",
+ "/api/endpoint"
+ ],
+ "groups": [
+ "$anyuser"
+ ]
+ },
+ {
"_id": "admin",
"description": "Allow to execute administration operation",
"type": "ADMINISTRATION",
diff --cc services/self-service/src/main/resources/mongo/gcp/mongo_roles.json
index 1dc61ae,d2ef6dd..8a36ff4
--- a/services/self-service/src/main/resources/mongo/gcp/mongo_roles.json
+++ b/services/self-service/src/main/resources/mongo/gcp/mongo_roles.json
@@@ -300,54 -300,23 +300,71 @@@
]
},
{
+ "_id": "bucketBrowserView",
+ "description": "Allow to view objects within the bucket",
+ "type": "BUCKET_BROWSER",
+ "cloud": "GCP",
+ "pages": [
+ "/api/bucket/view"
+ ],
+ "groups": [
+ "$anyuser"
+ ]
+ },
+ {
+ "_id": "bucketBrowserUpload",
+ "description": "Allow to upload object to the bucket",
+ "type": "BUCKET_BROWSER",
+ "cloud": "GCP",
+ "pages": [
+ "/api/bucket/upload"
+ ],
+ "groups": [
+ "$anyuser"
+ ]
+ },
+ {
+ "_id": "bucketBrowserDownload",
+ "description": "Allow to download object from the bucket",
+ "type": "BUCKET_BROWSER",
+ "cloud": "GCP",
+ "pages": [
+ "/api/bucket/download"
+ ],
+ "groups": [
+ "$anyuser"
+ ]
+ },
+ {
+ "_id": "bucketBrowserDelete",
+ "description": "Allow to delete object from the bucket",
+ "type": "BUCKET_BROWSER",
+ "cloud": "GCP",
+ "pages": [
+ "/api/bucket/delete"
+ ],
+ "groups": [
+ "$anyuser"
+ ]
+ },
+ {
+ "_id": "projectAdmin",
+ "description": "Allow to execute administration operation per project",
+ "type": "ADMINISTRATION",
+ "cloud": "GCP",
+ "pages": [
+ "environment/*",
+ "/roleManagement",
+ "/api/settings",
+ "/user/settings",
+ "/api/project",
+ "/api/endpoint"
+ ],
+ "groups": [
+ "$anyuser"
+ ]
+ },
+ {
"_id": "admin",
"description": "Allow to execute administration operation",
"type": "ADMINISTRATION",
diff --cc services/self-service/src/main/resources/webapp/src/app/resources/resources.component.ts
index 6394d89,2587a62..7933fec
--- a/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.ts
@@@ -24,10 -24,9 +24,10 @@@ import { MatDialog } from '@angular/mat
import { ResourcesGridComponent } from './resources-grid/resources-grid.component';
import { ExploratoryEnvironmentCreateComponent } from './exploratory/create-environment';
import { Exploratory } from './resources-grid/resources-grid.model';
- import { HealthStatusService, ProjectService } from '../core/services';
+ import {ApplicationSecurityService, HealthStatusService} from '../core/services';
import { ManageUngitComponent } from './manage-ungit/manage-ungit.component';
import { Project } from './../administration/project/project.component';
+import {BucketBrowserComponent} from './bucket-browser/bucket-browser.component';
@Component({
selector: 'dlab-resources',
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org