brooklyn-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From aledsage <...@git.apache.org>
Subject [GitHub] incubator-brooklyn pull request: On stop Application, unmanage loc...
Date Tue, 05 Jan 2016 17:49:45 GMT
Github user aledsage commented on a diff in the pull request:

    https://github.com/apache/incubator-brooklyn/pull/1124#discussion_r48873141
  
    --- Diff: brooklyn-server/core/src/main/java/org/apache/brooklyn/core/entity/AbstractApplication.java
---
    @@ -220,13 +221,37 @@ public void stop() {
                     //but that could be handled by the impl at management
                     //(keeping recently unmanaged things)  
                     //  however unmanaging must be done last, _after_ we stop children and
set attributes 
    +                Location machineProvisioningLocation = Iterables.getFirst(getLocations(),
null);
                     getEntityManager().unmanage(this);
    +                if (machineProvisioningLocation != null) {
    +                    unmanageProvisionerIfNotUsed(machineProvisioningLocation);
    +                }
                 }
             }
     
             logApplicationLifecycle("Stopped");
         }
     
    +    //TODO Think of general approach for expunging location provisioners.
    +    // I left a code which could be a possible general approach. However it needs tests.
    +    protected boolean unmanageProvisionerIfNotUsed(/*MachineProvisioningLocation<MachineLocation>*/Location
machineProvisioningLocation) {
    +        if (machineProvisioningLocation.getChildren().isEmpty()) {
    +            Entity parentEntity = getParent();
    +            if (parentEntity == null) {
    +                getManagementContext().getLocationManager().unmanage(machineProvisioningLocation);
    --- End diff --
    
    This doesn't feel right - it wasn't the application that created the location, so should
it be the application that unmanages the location? If we do this, it would be good to have
some of indicating that the location is "owned" by the app, rather than it just having been
passed to the new application when calling `start(location)`.


---
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.
---

Mime
View raw message