Return-Path: X-Original-To: apmail-brooklyn-dev-archive@minotaur.apache.org Delivered-To: apmail-brooklyn-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 44CE118AC6 for ; Wed, 14 Oct 2015 21:26:00 +0000 (UTC) Received: (qmail 72659 invoked by uid 500); 14 Oct 2015 21:26:00 -0000 Delivered-To: apmail-brooklyn-dev-archive@brooklyn.apache.org Received: (qmail 72624 invoked by uid 500); 14 Oct 2015 21:26:00 -0000 Mailing-List: contact dev-help@brooklyn.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@brooklyn.incubator.apache.org Delivered-To: mailing list dev@brooklyn.incubator.apache.org Received: (qmail 72610 invoked by uid 99); 14 Oct 2015 21:25:59 -0000 Received: from Unknown (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Oct 2015 21:25:59 +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 61579C44F5 for ; Wed, 14 Oct 2015 21:25:59 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 0.971 X-Spam-Level: X-Spam-Status: No, score=0.971 tagged_above=-999 required=6.31 tests=[KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, T_RP_MATCHES_RCVD=-0.01, URIBL_BLOCKED=0.001] autolearn=disabled Received: from mx1-us-east.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id 9MB8OH4daJVX for ; Wed, 14 Oct 2015 21:25:59 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-us-east.apache.org (ASF Mail Server at mx1-us-east.apache.org) with SMTP id 88F4D42B30 for ; Wed, 14 Oct 2015 21:25:58 +0000 (UTC) Received: (qmail 72601 invoked by uid 99); 14 Oct 2015 21:25:58 -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, 14 Oct 2015 21:25:58 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id EC122DFFC2; Wed, 14 Oct 2015 21:25:57 +0000 (UTC) From: sjcorbett To: dev@brooklyn.incubator.apache.org Reply-To: dev@brooklyn.incubator.apache.org References: In-Reply-To: Subject: [GitHub] incubator-brooklyn pull request: Added basic migration capability ... Content-Type: text/plain Message-Id: <20151014212557.EC122DFFC2@git1-us-west.apache.org> Date: Wed, 14 Oct 2015 21:25:57 +0000 (UTC) Github user sjcorbett commented on a diff in the pull request: https://github.com/apache/incubator-brooklyn/pull/924#discussion_r42055614 --- Diff: software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/JavaWebAppSoftwareProcessImpl.java --- @@ -202,4 +208,75 @@ public String getHttpsSslKeystorePassword() { return (config == null) ? "" : config.getKeystorePassword(); } + @Override + public void migrate(@EffectorParam(name = "locationSpec", description = "Location Spec", nullable = false) String locationSpec) { + + if (ServiceStateLogic.getExpectedState(this) != Lifecycle.RUNNING) { + // Is it necessary to check if the whole application is healthy? + throw new RuntimeException("The entity needs to be healthy before the migration starts"); + } + + if (getParent() != null && !getParent().equals(getApplication())) { + /* + * TODO: Allow nested entites to be migrated + * If the entity has a parent different to the application root the migration cannot be done right now, + * as it could lead into problems to deal with hierarchies like SameServerEntity -> Entity + */ + + throw new RuntimeException("Nested entities cannot be migrated right now"); + } + + // Retrieving the location from the catalog. + Location newLocation = getManagementContext().getLocationRegistry().resolve(locationSpec); + + // TODO: Find a better way to check if you're migrating an entity to the exactly same VM. This not always works. + for(Location oldLocation : getLocations()){ + if(oldLocation.containsLocation(newLocation)) + throw new RuntimeException("You cannot migrate an entity to the same location"); --- End diff -- Simpler than throwing an exception would be to log and return immediately. --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastructure@apache.org or file a JIRA ticket with INFRA. ---