mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Fix application release update method
This commit is contained in:
parent
68b9795201
commit
eb6998f297
@ -1,4 +1,5 @@
|
|||||||
package org.wso2.carbon.device.application.mgt.common;/* Copyright (c) 2019, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
|
package org.wso2.carbon.device.application.mgt.common;
|
||||||
|
/* Copyright (c) 2019, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
|
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
|
||||||
* Version 2.0 (the "License"); you may not use this file except
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
|||||||
@ -175,16 +175,16 @@ public interface ApplicationManager {
|
|||||||
* @param applicationId ID of the application
|
* @param applicationId ID of the application
|
||||||
* @param releaseUuid UUID of the application release
|
* @param releaseUuid UUID of the application release
|
||||||
* @param deviceType Supported device type of the application
|
* @param deviceType Supported device type of the application
|
||||||
* @param applicationRelease {@link ApplicationReleaseDTO}
|
* @param applicationReleaseWrapper {@link ApplicationReleaseDTO}
|
||||||
* @param binaryFileStram {@link InputStream} of the binary file
|
* @param binaryFileStram {@link InputStream} of the binary file
|
||||||
* @param iconFileStream {@link InputStream} of the icon
|
* @param iconFileStream {@link InputStream} of the icon
|
||||||
* @param bannerFileStream {@link InputStream} of the banner
|
* @param bannerFileStream {@link InputStream} of the banner
|
||||||
* @param attachments {@link List} of {@link InputStream} of attachments
|
* @param attachments {@link List} of {@link InputStream} of attachments
|
||||||
* @return If the application release is updated correctly True returns, otherwise retuen False
|
* @return If the application release is updated correctly True returns, otherwise retuen False
|
||||||
*/
|
*/
|
||||||
boolean updateRelease(int applicationId, String releaseUuid, String deviceType, ApplicationReleaseDTO applicationRelease,
|
boolean updateRelease(String deviceType, String applicationType, String releaseUuid,
|
||||||
InputStream binaryFileStram, InputStream iconFileStream, InputStream bannerFileStream,
|
ApplicationReleaseWrapper applicationReleaseWrapper, ApplicationArtifact applicationArtifact)
|
||||||
List<InputStream> attachments) throws ApplicationManagementException;
|
throws ApplicationManagementException;
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* To validate the application creating request
|
* To validate the application creating request
|
||||||
|
|||||||
@ -22,7 +22,6 @@ package org.wso2.carbon.device.application.mgt.common.services;
|
|||||||
import org.wso2.carbon.device.application.mgt.common.ApplicationInstaller;
|
import org.wso2.carbon.device.application.mgt.common.ApplicationInstaller;
|
||||||
import org.wso2.carbon.device.application.mgt.common.dto.ApplicationReleaseDTO;
|
import org.wso2.carbon.device.application.mgt.common.dto.ApplicationReleaseDTO;
|
||||||
import org.wso2.carbon.device.application.mgt.common.exception.ApplicationStorageManagementException;
|
import org.wso2.carbon.device.application.mgt.common.exception.ApplicationStorageManagementException;
|
||||||
import org.wso2.carbon.device.application.mgt.common.exception.RequestValidatingException;
|
|
||||||
import org.wso2.carbon.device.application.mgt.common.exception.ResourceManagementException;
|
import org.wso2.carbon.device.application.mgt.common.exception.ResourceManagementException;
|
||||||
|
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
|||||||
@ -1,20 +1,18 @@
|
|||||||
/*
|
/* Copyright (c) 2019, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
|
||||||
* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
|
||||||
*
|
*
|
||||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
|
||||||
* Version 2.0 (the "License"); you may not use this file except
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
* in compliance with the License.
|
* in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing,
|
|
||||||
* software distributed under the License is distributed on an
|
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
* KIND, either express or implied. See the License for the
|
|
||||||
* specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
*/
|
*/
|
||||||
package org.wso2.carbon.device.application.mgt.common.wrapper;
|
package org.wso2.carbon.device.application.mgt.common.wrapper;
|
||||||
|
|
||||||
|
|||||||
@ -1,20 +1,18 @@
|
|||||||
/*
|
/* Copyright (c) 2019, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
|
||||||
* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
|
||||||
*
|
*
|
||||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
|
||||||
* Version 2.0 (the "License"); you may not use this file except
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
* in compliance with the License.
|
* in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing,
|
|
||||||
* software distributed under the License is distributed on an
|
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
* KIND, either express or implied. See the License for the
|
|
||||||
* specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
*/
|
*/
|
||||||
package org.wso2.carbon.device.application.mgt.common.wrapper;
|
package org.wso2.carbon.device.application.mgt.common.wrapper;
|
||||||
|
|
||||||
|
|||||||
@ -1,20 +1,18 @@
|
|||||||
/*
|
/* Copyright (c) 2019, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
|
||||||
* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
|
||||||
*
|
*
|
||||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
|
||||||
* Version 2.0 (the "License"); you may not use this file except
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
* in compliance with the License.
|
* in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing,
|
|
||||||
* software distributed under the License is distributed on an
|
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
* KIND, either express or implied. See the License for the
|
|
||||||
* specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
*/
|
*/
|
||||||
package org.wso2.carbon.device.application.mgt.common.wrapper;
|
package org.wso2.carbon.device.application.mgt.common.wrapper;
|
||||||
|
|
||||||
|
|||||||
@ -207,5 +207,7 @@ public interface ApplicationDAO {
|
|||||||
* @throws ApplicationManagementDAOException if unable to fetch the ApplicationDTO from the data store.
|
* @throws ApplicationManagementDAOException if unable to fetch the ApplicationDTO from the data store.
|
||||||
*/
|
*/
|
||||||
ApplicationDTO getApplicationByRelease(String appReleaseUUID, int tenantId) throws ApplicationManagementDAOException;
|
ApplicationDTO getApplicationByRelease(String appReleaseUUID, int tenantId) throws ApplicationManagementDAOException;
|
||||||
|
|
||||||
|
String getApplicationSubTypeByUUID(String uuid, int tenantId) throws ApplicationManagementDAOException;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1095,4 +1095,41 @@ public class GenericApplicationDAOImpl extends AbstractDAOImpl implements Applic
|
|||||||
Util.cleanupResources(stmt, rs);
|
Util.cleanupResources(stmt, rs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getApplicationSubTypeByUUID(String uuid, int tenantId) throws ApplicationManagementDAOException {
|
||||||
|
Connection conn;
|
||||||
|
String sql;
|
||||||
|
try {
|
||||||
|
conn = this.getDBConnection();
|
||||||
|
sql = "SELECT AP_APP.SUB_TYPE AS SUB_TYPE "
|
||||||
|
+ "FROM AP_APP "
|
||||||
|
+ "WHERE "
|
||||||
|
+ "AP_APP.ID = (SELECT AP_APP_RELEASE.AP_APP_ID "
|
||||||
|
+ " FROM AP_APP_RELEASE "
|
||||||
|
+ " WHERE AP_APP_RELEASE.UUID = ?) "
|
||||||
|
+ "AND AP_APP.TENANT_ID = ?";
|
||||||
|
try (PreparedStatement stmt = conn.prepareStatement(sql)){
|
||||||
|
stmt.setString(1, uuid);
|
||||||
|
stmt.setInt(2, tenantId);
|
||||||
|
try(ResultSet rs = stmt.executeQuery()){
|
||||||
|
if (rs.next()){
|
||||||
|
return rs.getString("SUB_TYPE");
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (DBConnectionException e) {
|
||||||
|
String msg = "Error occurred while obtaining the DB connection to get subscription type of the application "
|
||||||
|
+ "for given application release uuid. UUID:." + uuid;
|
||||||
|
log.error(msg);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
String msg = "Error occurred while getting application subscribe type for given application release UUID: "
|
||||||
|
+ uuid + " from database.";
|
||||||
|
log.error(msg);
|
||||||
|
throw new ApplicationManagementDAOException(msg, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -241,7 +241,8 @@ public class GenericApplicationReleaseDAOImpl extends AbstractDAOImpl implements
|
|||||||
+ "AR.APP_META_INFO AS RELEASE_META_INFO, "
|
+ "AR.APP_META_INFO AS RELEASE_META_INFO, "
|
||||||
+ "AR.SUPPORTED_OS_VERSIONS AS RELEASE_SUP_OS_VERSIONS, "
|
+ "AR.SUPPORTED_OS_VERSIONS AS RELEASE_SUP_OS_VERSIONS, "
|
||||||
+ "AR.RATING AS RELEASE_RATING, "
|
+ "AR.RATING AS RELEASE_RATING, "
|
||||||
+ "AR.CURRENT_STATE AS RELEASE_CURRENT_STATE, AR.RATED_USERS AS RATED_USER_COUNT "
|
+ "AR.CURRENT_STATE AS RELEASE_CURRENT_STATE, "
|
||||||
|
+ "AR.RATED_USERS AS RATED_USER_COUNT "
|
||||||
+ "FROM AP_APP_RELEASE AS AR "
|
+ "FROM AP_APP_RELEASE AS AR "
|
||||||
+ "WHERE AR.UUID = ? AND AR.TENAT_ID = ?";
|
+ "WHERE AR.UUID = ? AND AR.TENAT_ID = ?";
|
||||||
|
|
||||||
|
|||||||
@ -416,6 +416,91 @@ public class ApplicationManagerImpl implements ApplicationManager {
|
|||||||
return applicationReleaseDTO;
|
return applicationReleaseDTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private ApplicationReleaseDTO updateApplicationReleaseArtifacts(String applicationType, String deviceType,
|
||||||
|
ApplicationReleaseDTO applicationReleaseDTO, ApplicationArtifact applicationArtifact)
|
||||||
|
throws ResourceManagementException, ApplicationManagementException {
|
||||||
|
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true);
|
||||||
|
ApplicationStorageManager applicationStorageManager = Util.getApplicationStorageManager();
|
||||||
|
|
||||||
|
// The application executable artifacts such as apks are uploaded.
|
||||||
|
if (ApplicationType.ENTERPRISE.toString().equals(applicationType)) {
|
||||||
|
try {
|
||||||
|
byte[] content = IOUtils.toByteArray(applicationArtifact.getInstallerStream());
|
||||||
|
|
||||||
|
try(ByteArrayInputStream binaryClone = new ByteArrayInputStream(content)){
|
||||||
|
String md5OfApp = StorageManagementUtil.getMD5(binaryClone);
|
||||||
|
|
||||||
|
if (md5OfApp == null) {
|
||||||
|
String msg = "Error occurred while md5sum value retrieving process: application UUID "
|
||||||
|
+ applicationReleaseDTO.getUuid();
|
||||||
|
log.error(msg);
|
||||||
|
throw new ApplicationStorageManagementException(msg);
|
||||||
|
}
|
||||||
|
if (!applicationReleaseDTO.getAppHashValue().equals(md5OfApp)){
|
||||||
|
applicationReleaseDTO.setInstallerName(applicationArtifact.getInstallerName());
|
||||||
|
|
||||||
|
try (ByteArrayInputStream binary = new ByteArrayInputStream(content)) {
|
||||||
|
ApplicationInstaller applicationInstaller = applicationStorageManager
|
||||||
|
.getAppInstallerData(binary, deviceType);
|
||||||
|
String packagename = applicationInstaller.getPackageName();
|
||||||
|
|
||||||
|
ConnectionManagerUtil.getDBConnection();
|
||||||
|
if (applicationReleaseDAO.isActiveReleaseExisitForPackageName(packagename, tenantId,
|
||||||
|
lifecycleStateManager.getEndState())) {
|
||||||
|
String msg = "Application release is already exist for the package name: " + packagename +
|
||||||
|
". Either you can delete all application releases for package " + packagename + " or "
|
||||||
|
+ "you can add this app release as an new application release, under the existing "
|
||||||
|
+ "application.";
|
||||||
|
log.error(msg);
|
||||||
|
throw new ApplicationManagementException(msg);
|
||||||
|
}
|
||||||
|
applicationReleaseDTO.setVersion(applicationInstaller.getVersion());
|
||||||
|
applicationReleaseDTO.setPackageName(packagename);
|
||||||
|
|
||||||
|
if (this.applicationReleaseDAO
|
||||||
|
.verifyReleaseExistenceByHash(md5OfApp, tenantId)) {
|
||||||
|
throw new BadRequestException(
|
||||||
|
"Application release exists for the uploaded binary file. Application Type: "
|
||||||
|
+ applicationType + " Device Tyep: " + deviceType);
|
||||||
|
}
|
||||||
|
|
||||||
|
applicationReleaseDTO.setAppHashValue(md5OfApp);
|
||||||
|
try (ByteArrayInputStream binaryDuplicate = new ByteArrayInputStream(content)) {
|
||||||
|
applicationReleaseDTO = applicationStorageManager
|
||||||
|
.uploadReleaseArtifact(applicationReleaseDTO,applicationType,
|
||||||
|
deviceType, binaryDuplicate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} catch (IOException e) {
|
||||||
|
String msg =
|
||||||
|
"Error occurred when getting byte array of binary file. Installer name: " + applicationArtifact
|
||||||
|
.getInstallerName();
|
||||||
|
log.error(msg);
|
||||||
|
throw new ApplicationStorageManagementException(msg);
|
||||||
|
} catch (DBConnectionException e) {
|
||||||
|
String msg = "Error occurred when getting database connection for verifying application package existence.";
|
||||||
|
log.error(msg);
|
||||||
|
throw new ApplicationManagementException(msg, e);
|
||||||
|
} catch (ApplicationManagementDAOException e) {
|
||||||
|
String msg = "Error occurred when executing the query for verifying application release existence for "
|
||||||
|
+ "the package.";
|
||||||
|
log.error(msg);
|
||||||
|
throw new ApplicationManagementException(msg, e);
|
||||||
|
} finally {
|
||||||
|
ConnectionManagerUtil.closeDBConnection();
|
||||||
|
}
|
||||||
|
} else if (ApplicationType.WEB_CLIP.toString().equals(applicationType)) {
|
||||||
|
applicationReleaseDTO.setVersion(Constants.DEFAULT_VERSION);
|
||||||
|
applicationReleaseDTO.setInstallerName(applicationReleaseDTO.getUrl());
|
||||||
|
}
|
||||||
|
return applicationReleaseDTO;
|
||||||
|
}
|
||||||
|
|
||||||
private ApplicationReleaseDTO addImageArtifacts(ApplicationReleaseDTO applicationReleaseDTO,
|
private ApplicationReleaseDTO addImageArtifacts(ApplicationReleaseDTO applicationReleaseDTO,
|
||||||
ApplicationArtifact applicationArtifact) throws ResourceManagementException {
|
ApplicationArtifact applicationArtifact) throws ResourceManagementException {
|
||||||
ApplicationStorageManager applicationStorageManager = Util.getApplicationStorageManager();
|
ApplicationStorageManager applicationStorageManager = Util.getApplicationStorageManager();
|
||||||
@ -432,7 +517,6 @@ public class ApplicationManagerImpl implements ApplicationManager {
|
|||||||
applicationReleaseDTO.setScreenshotName1(scName);
|
applicationReleaseDTO.setScreenshotName1(scName);
|
||||||
} else if (counter == 2) {
|
} else if (counter == 2) {
|
||||||
applicationReleaseDTO.setScreenshotName2(scName);
|
applicationReleaseDTO.setScreenshotName2(scName);
|
||||||
|
|
||||||
} else if (counter == 3) {
|
} else if (counter == 3) {
|
||||||
applicationReleaseDTO.setScreenshotName3(scName);
|
applicationReleaseDTO.setScreenshotName3(scName);
|
||||||
}
|
}
|
||||||
@ -446,6 +530,43 @@ public class ApplicationManagerImpl implements ApplicationManager {
|
|||||||
return applicationReleaseDTO;
|
return applicationReleaseDTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private ApplicationReleaseDTO updateImageArtifacts(ApplicationReleaseDTO applicationReleaseDTO,
|
||||||
|
ApplicationArtifact applicationArtifact) throws ResourceManagementException{
|
||||||
|
ApplicationStorageManager applicationStorageManager = Util.getApplicationStorageManager();
|
||||||
|
|
||||||
|
applicationReleaseDTO.setIconName(applicationArtifact.getIconName());
|
||||||
|
applicationReleaseDTO.setBannerName(applicationArtifact.getBannerName());
|
||||||
|
|
||||||
|
Map<String, InputStream> screenshots = applicationArtifact.getScreenshots();
|
||||||
|
List<String> screenshotNames = new ArrayList<>(screenshots.keySet());
|
||||||
|
|
||||||
|
int counter = 1;
|
||||||
|
for (String scName : screenshotNames) {
|
||||||
|
if (counter == 1) {
|
||||||
|
applicationReleaseDTO.setScreenshotName1(scName);
|
||||||
|
} else if (counter == 2) {
|
||||||
|
applicationReleaseDTO.setScreenshotName2(scName);
|
||||||
|
} else if (counter == 3) {
|
||||||
|
applicationReleaseDTO.setScreenshotName3(scName);
|
||||||
|
}
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
|
||||||
|
int numOfScreenshots = screenshotNames.size();
|
||||||
|
if (numOfScreenshots == 1) {
|
||||||
|
applicationReleaseDTO.setScreenshotName2(null);
|
||||||
|
applicationReleaseDTO.setScreenshotName3(null);
|
||||||
|
} else if (numOfScreenshots == 2) {
|
||||||
|
applicationReleaseDTO.setScreenshotName3(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Upload images
|
||||||
|
applicationReleaseDTO = applicationStorageManager
|
||||||
|
.uploadImageArtifacts(applicationReleaseDTO, applicationArtifact.getIconStream(),
|
||||||
|
applicationArtifact.getBannerStream(), new ArrayList<>(screenshots.values()));
|
||||||
|
return applicationReleaseDTO;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ApplicationList getApplications(Filter filter) throws ApplicationManagementException {
|
public ApplicationList getApplications(Filter filter) throws ApplicationManagementException {
|
||||||
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true);
|
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true);
|
||||||
@ -1683,132 +1804,75 @@ public class ApplicationManagerImpl implements ApplicationManager {
|
|||||||
return lifecycleState;
|
return lifecycleState;
|
||||||
}
|
}
|
||||||
|
|
||||||
//todo check whether package names are same
|
|
||||||
@Override
|
@Override
|
||||||
public boolean updateRelease(int applicationId, String releaseUuid, String deviceType,
|
public boolean updateRelease(String deviceType, String applicationType, String releaseUuid,
|
||||||
ApplicationReleaseDTO updateRelease, InputStream binaryFileStram, InputStream iconFileStream,
|
ApplicationReleaseWrapper applicationReleaseWrapper, ApplicationArtifact applicationArtifact)
|
||||||
InputStream bannerFileStream, List<InputStream> attachments) throws ApplicationManagementException {
|
throws ApplicationManagementException {
|
||||||
|
|
||||||
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true);
|
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true);
|
||||||
String userName = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername();
|
|
||||||
ApplicationReleaseDTO release;
|
|
||||||
ApplicationDTO app = null;
|
|
||||||
ApplicationStorageManager applicationStorageManager = Util.getApplicationStorageManager();
|
|
||||||
DeviceType deviceTypeObj;
|
|
||||||
boolean isAdminUser;
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Getting the device type details to get device type ID for internal mappings
|
|
||||||
deviceTypeObj = Util.getDeviceManagementService().getDeviceType(deviceType);
|
|
||||||
isAdminUser = isAdminUser(userName, tenantId, CarbonConstants.UI_ADMIN_PERMISSION_COLLECTION);
|
|
||||||
|
|
||||||
ConnectionManagerUtil.beginDBTransaction();
|
ConnectionManagerUtil.beginDBTransaction();
|
||||||
app = this.applicationDAO.getApplicationById(applicationId, tenantId);
|
ApplicationReleaseDTO applicationReleaseDTO = this.applicationReleaseDAO
|
||||||
release = this.applicationReleaseDAO.getReleaseByIds(applicationId, releaseUuid, tenantId);
|
.getReleaseByUUID(releaseUuid, tenantId);
|
||||||
|
|
||||||
if (app == null) {
|
if (applicationReleaseDTO == null) {
|
||||||
ConnectionManagerUtil.rollbackDBTransaction();
|
String msg = "Couldn't found an application release for updating. Application release UUID: " + releaseUuid;
|
||||||
throw new NotFoundException(
|
log.error(msg);
|
||||||
"Couldn't found an application for updating. ApplicationDTO id: " + applicationId);
|
throw new NotFoundException(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (deviceTypeObj == null || deviceTypeObj.getId() != app.getDeviceTypeId()) {
|
if (!lifecycleStateManager.isUpdatableState(applicationReleaseDTO.getCurrentState())) {
|
||||||
ConnectionManagerUtil.rollbackDBTransaction();
|
String msg = "Application release in " + applicationReleaseDTO.getCurrentState()
|
||||||
throw new BadRequestException(
|
+ " state. Therefore you are not allowed to update the application release. Hence, "
|
||||||
"Request to update application release for Invalid device type. Device type: " + deviceType
|
+ "please move application release from " + applicationReleaseDTO.getCurrentState()
|
||||||
+ " application ID " + applicationId + " ApplicationDTO Release UUID " + releaseUuid);
|
+ " to updatable state.";
|
||||||
}
|
log.error(msg);
|
||||||
if (release == null) {
|
throw new ForbiddenException(msg);
|
||||||
ConnectionManagerUtil.rollbackDBTransaction();
|
|
||||||
throw new NotFoundException(
|
|
||||||
"Couldn't found an application realise for updating. ApplicationDTO id: " + applicationId
|
|
||||||
+ " and application release UUID: " + releaseUuid);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
String releaseType = updateRelease.getReleaseType();
|
DeviceType deviceTypeObj = getDeviceTypeData(deviceType);
|
||||||
Double price = updateRelease.getPrice();
|
String releaseType = applicationReleaseWrapper.getReleaseType();
|
||||||
String metaData = updateRelease.getMetaData();
|
Double price = applicationReleaseWrapper.getPrice();
|
||||||
|
String metaData = applicationReleaseWrapper.getMetaData();
|
||||||
|
|
||||||
if (price < 0.0 || (price == 0.0 && ApplicationSubscriptionType.PAID.toString().equals(app.getSubType()))
|
String applicationSubType = this.applicationDAO.getApplicationSubTypeByUUID(releaseUuid, tenantId);
|
||||||
|| (price > 0.0 && ApplicationSubscriptionType.FREE.toString().equals(app.getSubType()))) {
|
if (applicationSubType == null) {
|
||||||
ConnectionManagerUtil.rollbackDBTransaction();
|
String msg = "Couldn't find an application subscription type for the application release UUID: " + releaseUuid;
|
||||||
|
log.error(msg);
|
||||||
|
throw new ApplicationManagementException(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (price < 0.0 || (price == 0.0 && ApplicationSubscriptionType.PAID.toString().equals(applicationSubType))
|
||||||
|
|| (price > 0.0 && ApplicationSubscriptionType.FREE.toString().equals(applicationSubType))) {
|
||||||
throw new BadRequestException(
|
throw new BadRequestException(
|
||||||
"Invalid app release payload for updating application release. ApplicationDTO price is " + price
|
"Invalid app release payload for updating application release. ApplicationDTO price is " + price
|
||||||
+ " for " + app.getSubType() + " application. ApplicationDTO ID: " + applicationId
|
+ " for " + applicationSubType + " application., Application Release UUID "
|
||||||
+ ", ApplicationDTO Release UUID " + releaseUuid + " and supported device type is "
|
+ releaseUuid + " and supported device type is " + deviceType);
|
||||||
+ deviceType);
|
|
||||||
}
|
}
|
||||||
release.setPrice(price);
|
applicationReleaseDTO.setPrice(price);
|
||||||
if (releaseType != null) {
|
if (!StringUtils.isEmpty(releaseType)) {
|
||||||
release.setReleaseType(releaseType);
|
applicationReleaseDTO.setReleaseType(releaseType);
|
||||||
}
|
}
|
||||||
if (metaData != null) {
|
if (!StringUtils.isEmpty(metaData)) {
|
||||||
release.setMetaData(metaData);
|
applicationReleaseDTO.setMetaData(metaData);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<String> unrestrictedRoles = app.getUnrestrictedRoles();
|
applicationReleaseDTO = updateApplicationReleaseArtifacts(applicationType, deviceTypeObj.getName(),
|
||||||
|
applicationReleaseDTO, applicationArtifact);
|
||||||
String applicationReleaseCreatedUser = lifecycleStateDAO
|
applicationReleaseDTO = updateImageArtifacts(applicationReleaseDTO, applicationArtifact);
|
||||||
.getAppReleaseCreatedUsername(applicationId, releaseUuid, tenantId);
|
return applicationReleaseDAO.updateRelease(applicationReleaseDTO, tenantId) != null;
|
||||||
|
|
||||||
if (!isAdminUser && !(!unrestrictedRoles.isEmpty() && hasUserRole(unrestrictedRoles, userName))
|
|
||||||
&& !userName.equals(applicationReleaseCreatedUser)) {
|
|
||||||
ConnectionManagerUtil.rollbackDBTransaction();
|
|
||||||
throw new ForbiddenException("You are not authorized user to update application");
|
|
||||||
}
|
|
||||||
|
|
||||||
//todo try to remove this DB call and get it when getting application release
|
|
||||||
LifecycleStateDTO lifecycleState = this.lifecycleStateDAO.getLatestLifeCycleState(applicationId, releaseUuid);
|
|
||||||
if (!AppLifecycleState.CREATED.toString().equals(lifecycleState.getCurrentState())
|
|
||||||
&& !AppLifecycleState.IN_REVIEW.toString().equals(lifecycleState.getCurrentState())
|
|
||||||
&& !AppLifecycleState.REJECTED.toString().equals(lifecycleState.getCurrentState())) {
|
|
||||||
ConnectionManagerUtil.rollbackDBTransaction();
|
|
||||||
throw new ForbiddenException(
|
|
||||||
"You can't update application release which is in " + lifecycleState.getCurrentState()
|
|
||||||
+ " State");
|
|
||||||
}
|
|
||||||
|
|
||||||
// release = applicationStorageManager
|
|
||||||
// .deleteImageArtifacts(release, iconFileStream, bannerFileStream, attachments);
|
|
||||||
// release = applicationStorageManager
|
|
||||||
// .copyImageArtifactsAndDeleteInstaller(release, app.getType(), deviceType, binaryFileStram);
|
|
||||||
return applicationReleaseDAO.updateRelease(release, tenantId) != null;
|
|
||||||
} catch (DeviceManagementException e) {
|
|
||||||
throw new ApplicationManagementException("Error occured when validating the device type " + deviceType, e);
|
|
||||||
} catch (UserStoreException e) {
|
|
||||||
throw new ApplicationManagementException(
|
|
||||||
"Error occured while verifying whether user is admin user or not. Username " + userName
|
|
||||||
+ " tenant id " + tenantId, e);
|
|
||||||
} catch (LifeCycleManagementDAOException e) {
|
|
||||||
ConnectionManagerUtil.rollbackDBTransaction();
|
|
||||||
throw new ApplicationManagementException(
|
|
||||||
"Error Occured when getting lifecycle state of the application release of application UUID: "
|
|
||||||
+ releaseUuid, e);
|
|
||||||
} catch (ApplicationManagementDAOException e) {
|
} catch (ApplicationManagementDAOException e) {
|
||||||
ConnectionManagerUtil.rollbackDBTransaction();
|
ConnectionManagerUtil.rollbackDBTransaction();
|
||||||
throw new ApplicationManagementException(
|
String msg = "Error occured when updating Application release. ApplicationDTO ID ApplicationDTO Release "
|
||||||
"Error occured when updating ApplicationDTO release. ApplicationDTO ID " + applicationId
|
+ "UUID: " + releaseUuid;
|
||||||
+ " ApplicationDTO Release UUID: " + releaseUuid, e);
|
log.error(msg);
|
||||||
|
throw new ApplicationManagementException(msg, e);
|
||||||
|
} catch (ResourceManagementException e) {
|
||||||
|
String msg = "Error occured when updating application release artifact in the file system. Application "
|
||||||
|
+ "release UUID:" + releaseUuid;
|
||||||
|
log.error(msg);
|
||||||
|
throw new ApplicationManagementException(msg, e);
|
||||||
}
|
}
|
||||||
// catch (ApplicationStorageManagementException e) {
|
|
||||||
// ConnectionManagerUtil.rollbackDBTransaction();
|
|
||||||
// throw new ApplicationManagementException(
|
|
||||||
// "Error occured when updating application release artifact. ApplicationDTO ID " + applicationId
|
|
||||||
// + " ApplicationDTO release UUID: " + releaseUuid, e);
|
|
||||||
// }
|
|
||||||
// catch (ResourceManagementException e) {
|
|
||||||
// // updating images
|
|
||||||
// ConnectionManagerUtil.rollbackDBTransaction();
|
|
||||||
// throw new ApplicationManagementException(
|
|
||||||
// "Error occured when updating image artifact of the application release. ApplicationDTO ID: "
|
|
||||||
// + applicationId + " ApplicationDTO release UUID: " + releaseUuid, e);
|
|
||||||
// } catch (RequestValidatingException e) {
|
|
||||||
// ConnectionManagerUtil.rollbackDBTransaction();
|
|
||||||
// throw new ApplicationManagementException(
|
|
||||||
// "Error occured when validating application release artifact for device type " + deviceType
|
|
||||||
// + " And application type " + app.getType() + ". Applicationn ID: " + applicationId
|
|
||||||
// + " ApplicationDTO release UUID: " + releaseUuid);
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -78,7 +78,6 @@ public class ApplicationStorageManagerImpl implements ApplicationStorageManager
|
|||||||
public ApplicationReleaseDTO uploadImageArtifacts(ApplicationReleaseDTO applicationRelease, InputStream iconFileStream,
|
public ApplicationReleaseDTO uploadImageArtifacts(ApplicationReleaseDTO applicationRelease, InputStream iconFileStream,
|
||||||
InputStream bannerFileStream, List<InputStream> screenShotStreams)
|
InputStream bannerFileStream, List<InputStream> screenShotStreams)
|
||||||
throws ResourceManagementException {
|
throws ResourceManagementException {
|
||||||
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true);
|
|
||||||
String artifactDirectoryPath;
|
String artifactDirectoryPath;
|
||||||
String iconStoredLocation;
|
String iconStoredLocation;
|
||||||
String bannerStoredLocation;
|
String bannerStoredLocation;
|
||||||
@ -122,10 +121,6 @@ public class ApplicationStorageManagerImpl implements ApplicationStorageManager
|
|||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new ApplicationStorageManagementException("IO Exception while saving the screens hots for " +
|
throw new ApplicationStorageManagementException("IO Exception while saving the screens hots for " +
|
||||||
"the application " + applicationRelease.getUuid(), e);
|
"the application " + applicationRelease.getUuid(), e);
|
||||||
} catch (ApplicationStorageManagementException e) {
|
|
||||||
throw new ApplicationStorageManagementException("ApplicationDTO Management DAO exception while trying to "
|
|
||||||
+ "update the screen-shot count for the application " + applicationRelease.getUuid() +
|
|
||||||
" for the tenant id " + tenantId, e);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -535,7 +535,7 @@ public interface ApplicationManagementPublisherAPI {
|
|||||||
);
|
);
|
||||||
|
|
||||||
@PUT
|
@PUT
|
||||||
@Path("/{deviceType}/{appId}/{uuid}")
|
@Path("/app-release/{deviceType}/{appType}/{uuid}")
|
||||||
@Produces(MediaType.APPLICATION_JSON)
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
@Consumes(MediaType.MULTIPART_FORM_DATA)
|
@Consumes(MediaType.MULTIPART_FORM_DATA)
|
||||||
@ApiOperation(
|
@ApiOperation(
|
||||||
@ -567,21 +567,56 @@ public interface ApplicationManagementPublisherAPI {
|
|||||||
response = ErrorResponse.class)
|
response = ErrorResponse.class)
|
||||||
})
|
})
|
||||||
Response updateApplicationRelease(
|
Response updateApplicationRelease(
|
||||||
@ApiParam(name = "deviceType", value = "Supported device type of the application", required = true)
|
@ApiParam(
|
||||||
|
name = "deviceType",
|
||||||
|
value = "Supported device type of the application",
|
||||||
|
required = true)
|
||||||
@PathParam("deviceType") String deviceType,
|
@PathParam("deviceType") String deviceType,
|
||||||
@ApiParam(name = "appId", value = "Identifier of the ApplicationDTO", required = true)
|
@ApiParam(
|
||||||
@PathParam("appId") int applicationId,
|
name = "appType",
|
||||||
@ApiParam(name = "UUID", value = "Unique identifier of the ApplicationDTO Release", required = true)
|
value = "Type of the application",
|
||||||
|
required = true)
|
||||||
|
@PathParam("appType") String appType,
|
||||||
|
@ApiParam(
|
||||||
|
name = "UUID",
|
||||||
|
value = "Unique identifier of the ApplicationDTO Release",
|
||||||
|
required = true)
|
||||||
@PathParam("uuid") String applicationUUID,
|
@PathParam("uuid") String applicationUUID,
|
||||||
@Multipart(value = "applicationRelease", required = false, type = "application/json") ApplicationReleaseDTO applicationRelease,
|
@ApiParam(
|
||||||
@Multipart(value = "binaryFile", required = false) Attachment binaryFile,
|
name = "applicationReleaseWrapper",
|
||||||
@Multipart(value = "icon", required = false) Attachment iconFile,
|
value = "Application release wrapper which is going to update.",
|
||||||
@Multipart(value = "banner", required = false) Attachment bannerFile,
|
required = true)
|
||||||
@ApiParam(name = "screenshot1", value = "Screen Shots of the uploading application", required = true)
|
@Multipart(
|
||||||
|
value = "applicationReleaseWrapper",
|
||||||
|
type = "application/json")
|
||||||
|
ApplicationReleaseWrapper applicationReleaseWrapper,
|
||||||
|
@ApiParam(
|
||||||
|
name = "binaryFile",
|
||||||
|
value = "Application installer file.",
|
||||||
|
required = true)
|
||||||
|
@Multipart(value = "binaryFile") Attachment binaryFile,
|
||||||
|
@ApiParam(
|
||||||
|
name = "icon",
|
||||||
|
value = "Icon file of the application release.",
|
||||||
|
required = true)
|
||||||
|
@Multipart(value = "icon") Attachment iconFile,
|
||||||
|
@ApiParam(
|
||||||
|
name = "banner",
|
||||||
|
value = "banner file of the application release.",
|
||||||
|
required = true)
|
||||||
|
@Multipart(value = "banner") Attachment bannerFile,
|
||||||
|
@ApiParam(
|
||||||
|
name = "screenshot1",
|
||||||
|
value = "First screenshot of the uploading application",
|
||||||
|
required = true)
|
||||||
@Multipart(value = "screenshot1") Attachment screenshot1,
|
@Multipart(value = "screenshot1") Attachment screenshot1,
|
||||||
@ApiParam(name = "screenshot2", value = "Screen Shots of the uploading application")
|
@ApiParam(
|
||||||
|
name = "screenshot2",
|
||||||
|
value = "Second screenshot 2 of the uploading application")
|
||||||
@Multipart(value = "screenshot2") Attachment screenshot2,
|
@Multipart(value = "screenshot2") Attachment screenshot2,
|
||||||
@ApiParam(name = "screenshot3", value = "Screen Shots of the uploading application")
|
@ApiParam(
|
||||||
|
name = "screenshot3",
|
||||||
|
value = "Third screenshot of the uploading application")
|
||||||
@Multipart(value = "screenshot3") Attachment screenshot3);
|
@Multipart(value = "screenshot3") Attachment screenshot3);
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
|
|||||||
@ -288,6 +288,7 @@ public class ApplicationManagementPublisherAPIImpl implements ApplicationManagem
|
|||||||
try {
|
try {
|
||||||
ApplicationManager applicationManager = APIUtil.getApplicationManager();
|
ApplicationManager applicationManager = APIUtil.getApplicationManager();
|
||||||
|
|
||||||
|
applicationManager.validateBinaryArtifact(binaryFile, appType);
|
||||||
if (!ApplicationType.ENTERPRISE.toString().equals(appType)) {
|
if (!ApplicationType.ENTERPRISE.toString().equals(appType)) {
|
||||||
String msg = "If ApplicationDTO type is " + appType
|
String msg = "If ApplicationDTO type is " + appType
|
||||||
+ ", therefore you don't have application release artifact to update for application release UUID: "
|
+ ", therefore you don't have application release artifact to update for application release UUID: "
|
||||||
@ -295,7 +296,7 @@ public class ApplicationManagementPublisherAPIImpl implements ApplicationManagem
|
|||||||
log.error(msg);
|
log.error(msg);
|
||||||
return Response.status(Response.Status.BAD_REQUEST).entity(msg).build();
|
return Response.status(Response.Status.BAD_REQUEST).entity(msg).build();
|
||||||
}
|
}
|
||||||
applicationManager.validateBinaryArtifact(binaryFile, appType);
|
|
||||||
applicationManager.updateApplicationArtifact(deviceType, appType, applicationReleaseUuid,
|
applicationManager.updateApplicationArtifact(deviceType, appType, applicationReleaseUuid,
|
||||||
constructApplicationArtifact(binaryFile, null, null, null));
|
constructApplicationArtifact(binaryFile, null, null, null));
|
||||||
return Response.status(Response.Status.OK)
|
return Response.status(Response.Status.OK)
|
||||||
@ -341,18 +342,14 @@ public class ApplicationManagementPublisherAPIImpl implements ApplicationManagem
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
//todo ----------------------
|
|
||||||
*/
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@PUT
|
@PUT
|
||||||
@Path("/{deviceType}/{appId}/{uuid}")
|
@Path("/app-release/{deviceType}/{appType}/{uuid}")
|
||||||
public Response updateApplicationRelease(
|
public Response updateApplicationRelease(
|
||||||
@PathParam("deviceType") String deviceType,
|
@PathParam("deviceType") String deviceType,
|
||||||
@PathParam("appId") int applicationId,
|
@PathParam("appType") String appType,
|
||||||
@PathParam("uuid") String applicationUUID,
|
@PathParam("uuid") String applicationUUID,
|
||||||
@Multipart("applicationRelease") ApplicationReleaseDTO applicationRelease,
|
@Multipart("applicationRelease") ApplicationReleaseWrapper applicationReleaseWrapper,
|
||||||
@Multipart("binaryFile") Attachment binaryFile,
|
@Multipart("binaryFile") Attachment binaryFile,
|
||||||
@Multipart("icon") Attachment iconFile,
|
@Multipart("icon") Attachment iconFile,
|
||||||
@Multipart("banner") Attachment bannerFile,
|
@Multipart("banner") Attachment bannerFile,
|
||||||
@ -360,50 +357,35 @@ public class ApplicationManagementPublisherAPIImpl implements ApplicationManagem
|
|||||||
@Multipart("screenshot2") Attachment screenshot2,
|
@Multipart("screenshot2") Attachment screenshot2,
|
||||||
@Multipart("screenshot3") Attachment screenshot3) {
|
@Multipart("screenshot3") Attachment screenshot3) {
|
||||||
ApplicationManager applicationManager = APIUtil.getApplicationManager();
|
ApplicationManager applicationManager = APIUtil.getApplicationManager();
|
||||||
InputStream iconFileStream;
|
List<Attachment> screenshots = new ArrayList<>();
|
||||||
InputStream bannerFileStream;
|
|
||||||
InputStream binaryFileStram;
|
|
||||||
List<InputStream> attachments = new ArrayList<>();
|
|
||||||
List<Attachment> attachmentList = new ArrayList<>();
|
|
||||||
if (screenshot1 != null){
|
if (screenshot1 != null){
|
||||||
attachmentList.add(screenshot1);
|
screenshots.add(screenshot1);
|
||||||
}
|
}
|
||||||
if (screenshot2 != null) {
|
if (screenshot2 != null) {
|
||||||
attachmentList.add(screenshot2);
|
screenshots.add(screenshot2);
|
||||||
}
|
}
|
||||||
if (screenshot3 != null) {
|
if (screenshot3 != null) {
|
||||||
attachmentList.add(screenshot3);
|
screenshots.add(screenshot3);
|
||||||
}
|
}
|
||||||
if (iconFile == null || bannerFile == null || binaryFile == null || attachmentList.isEmpty()){
|
|
||||||
String msg = "Invalid data is received for application release updating. application id: " + applicationId
|
|
||||||
+ " and application release UUID: " + applicationUUID;
|
|
||||||
return Response.status(Response.Status.BAD_REQUEST).entity(msg).build();
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
binaryFileStram = binaryFile.getDataHandler().getInputStream();
|
applicationManager.validateBinaryArtifact(binaryFile, appType);
|
||||||
iconFileStream = iconFile.getDataHandler().getInputStream();
|
applicationManager.validateImageArtifacts(iconFile, bannerFile, screenshots);
|
||||||
bannerFileStream = bannerFile.getDataHandler().getInputStream();
|
if (!applicationManager.updateRelease(deviceType, appType, applicationUUID, applicationReleaseWrapper,
|
||||||
for (Attachment screenshot : attachmentList) {
|
constructApplicationArtifact(binaryFile, iconFile, bannerFile, screenshots))) {
|
||||||
attachments.add(screenshot.getDataHandler().getInputStream());
|
log.error("Application release updating is failed. Please contact the administrator. "
|
||||||
|
+ "ApplicationDTO release UUID: " + applicationUUID + ", Supported device type: " + deviceType);
|
||||||
|
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(applicationReleaseWrapper).build();
|
||||||
}
|
}
|
||||||
boolean status = applicationManager
|
|
||||||
.updateRelease(applicationId, applicationUUID, deviceType, applicationRelease, binaryFileStram,
|
return Response.status(Response.Status.OK).entity("Application release is successfully updated.").build();
|
||||||
iconFileStream, bannerFileStream, attachments);
|
} catch (BadRequestException e) {
|
||||||
if (!status){
|
String msg =
|
||||||
log.error("ApplicationDTO release updating is failed. Please contact the administrator. ApplicationDTO id: "
|
"Invalid request to update application release for application release UUID " + applicationUUID;
|
||||||
+ applicationId + ", ApplicationDTO release UUID: " + applicationUUID + ", Supported device type: "
|
|
||||||
+ deviceType);
|
|
||||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(applicationRelease).build();
|
|
||||||
}
|
|
||||||
return Response.status(Response.Status.OK).entity("ApplicationDTO release is successfully updated.").build();
|
|
||||||
} catch(BadRequestException e){
|
|
||||||
String msg = "Invalid request to update application release for application release UUID " + applicationUUID;
|
|
||||||
log.error(msg, e);
|
log.error(msg, e);
|
||||||
return Response.status(Response.Status.BAD_REQUEST).entity(msg).build();
|
return Response.status(Response.Status.BAD_REQUEST).entity(msg).build();
|
||||||
} catch (NotFoundException e) {
|
} catch (NotFoundException e) {
|
||||||
String msg = "Couldn't found application or application release for application id: " + applicationId
|
String msg =
|
||||||
+ " and application release UUID " + applicationUUID;
|
"Couldn't found application or application release for application release UUID " + applicationUUID;
|
||||||
log.error(msg, e);
|
log.error(msg, e);
|
||||||
return Response.status(Response.Status.NOT_FOUND).entity(msg).build();
|
return Response.status(Response.Status.NOT_FOUND).entity(msg).build();
|
||||||
} catch (ForbiddenException e) {
|
} catch (ForbiddenException e) {
|
||||||
@ -411,18 +393,20 @@ public class ApplicationManagementPublisherAPIImpl implements ApplicationManagem
|
|||||||
+ applicationUUID;
|
+ applicationUUID;
|
||||||
log.error(msg, e);
|
log.error(msg, e);
|
||||||
return Response.status(Response.Status.FORBIDDEN).entity(msg).build();
|
return Response.status(Response.Status.FORBIDDEN).entity(msg).build();
|
||||||
}
|
} catch (ApplicationManagementException e) {
|
||||||
catch (ApplicationManagementException e) {
|
|
||||||
String msg = "Error while updating the application release of the application with UUID " + applicationUUID;
|
String msg = "Error while updating the application release of the application with UUID " + applicationUUID;
|
||||||
log.error(msg, e);
|
log.error(msg, e);
|
||||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
|
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
|
||||||
} catch (IOException e) {
|
} catch (RequestValidatingException e) {
|
||||||
String msg = "Error while updating the release artifacts of the application with UUID " + applicationUUID;
|
String msg = "Error occurred while updating the application release in the file system";
|
||||||
log.error(msg, e);
|
log.error(msg);
|
||||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
|
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
//todo ----------------------
|
||||||
|
*/
|
||||||
@DELETE
|
@DELETE
|
||||||
@Path("/{appid}")
|
@Path("/{appid}")
|
||||||
public Response deleteApplication(
|
public Response deleteApplication(
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user