Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 6F646200BC8 for ; Wed, 19 Oct 2016 05:27:24 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 6DD1B160B00; Wed, 19 Oct 2016 03:27:24 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 6587F160AF7 for ; Wed, 19 Oct 2016 05:27:23 +0200 (CEST) Received: (qmail 33649 invoked by uid 500); 19 Oct 2016 03:27:22 -0000 Mailing-List: contact commits-help@eagle.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@eagle.incubator.apache.org Delivered-To: mailing list commits@eagle.incubator.apache.org Received: (qmail 33640 invoked by uid 99); 19 Oct 2016 03:27:22 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 19 Oct 2016 03:27:22 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 24498C0EC2 for ; Wed, 19 Oct 2016 03:27:22 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -6.219 X-Spam-Level: X-Spam-Status: No, score=-6.219 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.999] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id tWGYBxfUY6Ys for ; Wed, 19 Oct 2016 03:27:21 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with SMTP id 6B9C45FC2D for ; Wed, 19 Oct 2016 03:27:17 +0000 (UTC) Received: (qmail 33049 invoked by uid 99); 19 Oct 2016 03:27:17 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 19 Oct 2016 03:27:17 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 2E59AE5724; Wed, 19 Oct 2016 03:27:17 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: hao@apache.org To: commits@eagle.incubator.apache.org Date: Wed, 19 Oct 2016 03:27:29 -0000 Message-Id: <01e7865972c749ad9b387cdef334688f@git.apache.org> In-Reply-To: <679f7884b2ff4acc87cbf4e51a1de5db@git.apache.org> References: <679f7884b2ff4acc87cbf4e51a1de5db@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [14/50] incubator-eagle git commit: [EAGLE-613] Support modify ApplicationEntity through POST /rest/apps/{UUID}/ archived-at: Wed, 19 Oct 2016 03:27:24 -0000 [EAGLE-613] Support modify ApplicationEntity through POST /rest/apps/{UUID}/ Support modify ApplicationEntity through ~~~ POST /rest/apps/{UUID}/ ~~~ * REQUEST BODY* (UpdateOperation) ~~~ { "configuration": { "spout.stormKafkaUseSameZkQuorumWithKafkaBroker": "true", "metadataService.port": "9090", "spout.stormKafkaEagleConsumer": "eagle_consumer", "topology.numOfSpoutTasks": "1", "jarPath": "incubator-eagle/eagle-core/eagle-alert-parent/eagle-alert-app/target/classes/org/apache/eagle/alert/app/AlertUnitTopologyApp.class", "topology.numOfRouterBolts": "4", "topology.numOfAlertBolts": "10", "zkConfig.zkRoot": "/alert", "zkConfig.zkQuorum": "localhost:2181", "mode": "LOCAL", "metadataService.context": "/rest", "metadataService.host": "localhost", "topology.messageTimeoutSecs": "3600", "spout.kafkaBrokerZkQuorum": "localhost:2181", "appId": "ALERTUNITTOPOLOGYAPP_SANDBOX", "topology.numOfTotalWorkers": "2", "siteId": "sandbox", "topology.numOfPublishTasks": "1", "spout.stormKafkaTransactionZkPath": "/consumers", "spout.kafkaBrokerZkBasePath": "/brokers" }, "mode": "CLUSTER", "jarPath": "incubator-eagle/eagle-core/eagle-alert-parent/eagle-alert-app/target/classes/org/apache/eagle/alert/app/AlertUnitTopologyApp.class" } ~~~ Author: Hao Chen Closes #495 from haoch/EAGLE-613. Project: http://git-wip-us.apache.org/repos/asf/incubator-eagle/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-eagle/commit/6823410f Tree: http://git-wip-us.apache.org/repos/asf/incubator-eagle/tree/6823410f Diff: http://git-wip-us.apache.org/repos/asf/incubator-eagle/diff/6823410f Branch: refs/heads/master Commit: 6823410fc85fe13d9295125d9093754d38e4f0ac Parents: 279bc01 Author: Hao Chen Authored: Wed Oct 12 18:01:08 2016 +0800 Committer: Hao Chen Committed: Wed Oct 12 18:01:08 2016 +0800 ---------------------------------------------------------------------- .../eagle/app/resource/ApplicationResource.java | 14 ++++++++ .../app/service/ApplicationOperations.java | 35 ++++++++++++++++++++ .../eagle/metadata/model/ApplicationEntity.java | 11 ++++++ .../service/ApplicationEntityService.java | 1 + .../ApplicationEntityServiceMemoryImpl.java | 9 +++++ .../ApplicationEntityServiceJDBCImpl.java | 9 ++++- 6 files changed, 78 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/6823410f/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/resource/ApplicationResource.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/resource/ApplicationResource.java b/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/resource/ApplicationResource.java index 717f7c0..b493b2b 100644 --- a/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/resource/ApplicationResource.java +++ b/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/resource/ApplicationResource.java @@ -91,6 +91,20 @@ public class ApplicationResource { } @POST + @Path("/{appUuid}") + @Produces(MediaType.APPLICATION_JSON) + public RESTResponse updateApplicationEntity(@PathParam("appUuid") String appUuid, ApplicationOperations.UpdateOperation updateOperation) { + return RESTResponse.async(() -> { + ApplicationEntity applicationEntity = new ApplicationEntity(); + applicationEntity.setUuid(appUuid); + applicationEntity.setJarPath(updateOperation.getJarPath()); + applicationEntity.setMode(updateOperation.getMode()); + applicationEntity.setConfiguration(updateOperation.getConfiguration()); + return entityService.update(applicationEntity); + }).get(); + } + + @POST @Path("/status") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/6823410f/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/service/ApplicationOperations.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/service/ApplicationOperations.java b/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/service/ApplicationOperations.java index 36c08b8..52e25be 100644 --- a/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/service/ApplicationOperations.java +++ b/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/service/ApplicationOperations.java @@ -113,6 +113,41 @@ public final class ApplicationOperations { } } + public static class UpdateOperation implements Operation { + private ApplicationEntity.Mode mode = ApplicationEntity.Mode.LOCAL; + private String jarPath; + private Map configuration; + + public Map getConfiguration() { + return configuration; + } + + public void setConfiguration(Map configuration) { + this.configuration = configuration; + } + + public ApplicationEntity.Mode getMode() { + return mode; + } + + public void setMode(ApplicationEntity.Mode mode) { + this.mode = mode; + } + + public String getJarPath() { + return jarPath; + } + + public void setJarPath(String jarPath) { + this.jarPath = jarPath; + } + + @Override + public String getType() { + return INSTALL; + } + } + public static class UninstallOperation implements Operation { private String uuid; private String appId; http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/6823410f/eagle-core/eagle-metadata/eagle-metadata-base/src/main/java/org/apache/eagle/metadata/model/ApplicationEntity.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-metadata/eagle-metadata-base/src/main/java/org/apache/eagle/metadata/model/ApplicationEntity.java b/eagle-core/eagle-metadata/eagle-metadata-base/src/main/java/org/apache/eagle/metadata/model/ApplicationEntity.java index c6d01f4..952b5a8 100644 --- a/eagle-core/eagle-metadata/eagle-metadata-base/src/main/java/org/apache/eagle/metadata/model/ApplicationEntity.java +++ b/eagle-core/eagle-metadata/eagle-metadata-base/src/main/java/org/apache/eagle/metadata/model/ApplicationEntity.java @@ -180,6 +180,17 @@ public class ApplicationEntity extends PersistenceEntity { } } + /** + * Update mutable fields from another ApplicationEntity + */ + public void updateMutable(ApplicationEntity entityToUpdate){ + this.ensureDefault(); + + this.setJarPath(entityToUpdate.getJarPath()); + this.setMode(entityToUpdate.getMode()); + this.setConfiguration(entityToUpdate.getConfiguration()); + } + public static enum Mode { LOCAL("LOCAL"), CLUSTER("CLUSTER"); http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/6823410f/eagle-core/eagle-metadata/eagle-metadata-base/src/main/java/org/apache/eagle/metadata/service/ApplicationEntityService.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-metadata/eagle-metadata-base/src/main/java/org/apache/eagle/metadata/service/ApplicationEntityService.java b/eagle-core/eagle-metadata/eagle-metadata-base/src/main/java/org/apache/eagle/metadata/service/ApplicationEntityService.java index 9e05f9b..69dc921 100644 --- a/eagle-core/eagle-metadata/eagle-metadata-base/src/main/java/org/apache/eagle/metadata/service/ApplicationEntityService.java +++ b/eagle-core/eagle-metadata/eagle-metadata-base/src/main/java/org/apache/eagle/metadata/service/ApplicationEntityService.java @@ -27,4 +27,5 @@ public interface ApplicationEntityService extends PersistenceService findAll() { List results = new ArrayList<>(); @@ -144,7 +152,6 @@ public class ApplicationEntityServiceJDBCImpl implements ApplicationEntityServic @Override public ApplicationEntity create(ApplicationEntity entity) { - entity.ensureDefault(); if (getBySiteIdAndAppType(entity.getSite().getSiteId(), entity.getDescriptor().getType()) != null) { throw new IllegalArgumentException("Duplicated appId: " + entity.getAppId());