Adding network resource to GCE, removing default inbound ports
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/92ff7e9b Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/92ff7e9b Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/92ff7e9b Branch: refs/heads/master Commit: 92ff7e9b5800d578a37d6aa82551d60fbdd66529 Parents: 897edde Author: Akila Perera <[email protected]> Authored: Fri Aug 21 12:38:43 2015 +0530 Committer: Akila Perera <[email protected]> Committed: Fri Aug 21 12:38:43 2015 +0530 ---------------------------------------------------------------------- .../cloud/controller/iaases/gce/GCEIaas.java | 24 +++++++---- ...licationInstanceCreatedMessageProcessor.java | 42 ++++++++++---------- 2 files changed, 37 insertions(+), 29 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/92ff7e9b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/gce/GCEIaas.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/gce/GCEIaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/gce/GCEIaas.java index 7b60b71..5cb2934 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/gce/GCEIaas.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/gce/GCEIaas.java @@ -64,6 +64,7 @@ import static org.jclouds.util.Predicates2.retry; public class GCEIaas extends JcloudsIaas { private static final Log log = LogFactory.getLog(GCEIaas.class); public static final int MAX_WAIT_TIME = 60; // seconds + public static final String GCE_NETWORK_PROPERTY = "networkURI"; public GCEIaas(IaasProvider iaasProvider) { super(iaasProvider); @@ -134,9 +135,6 @@ public class GCEIaas extends JcloudsIaas { boolean blockUntilRunning = Boolean.parseBoolean(iaasInfo.getProperty("autoAssignIp")); template.getOptions().as(GoogleComputeEngineTemplateOptions.class).blockUntilRunning(blockUntilRunning); - // this is required in order to avoid creation of additional security groups by Jclouds. - template.getOptions().as(GoogleComputeEngineTemplateOptions.class).inboundPorts(22, 80, 8080, 443, 8243); - if (zone != null) { templateBuilder.locationId(zone); log.debug("setting location to " + zone); @@ -151,19 +149,29 @@ public class GCEIaas extends JcloudsIaas { .length()), iaasInfo.getProperties().get(propertyKey)); template.getOptions().as(GoogleComputeEngineTemplateOptions.class).userMetadata(keyValuePairTagsMap); } - log.info("usermeta data key:" + propertyKey + " value: " + iaasInfo.getProperties().get(propertyKey)); + log.info("User defined property [key]" + propertyKey + ", [value] " + + iaasInfo.getProperties().get(propertyKey)); } if (iaasInfo.getNetworkInterfaces() != null) { List<String> networks = new ArrayList<String>(iaasInfo.getNetworkInterfaces().length); for (NetworkInterface ni : iaasInfo.getNetworkInterfaces()) { networks.add(ni.getNetworkUuid()); - log.info("using network interface " + ni.getNetworkUuid()); } template.getOptions().as(GoogleComputeEngineTemplateOptions.class).networks(networks); - log.info("using network interface " + networks); + log.info("Using network interfaces: " + networks); } + if (iaasInfo.getProperty(GCEIaas.GCE_NETWORK_PROPERTY) != null) { + try { + URI networkURI = new URI(iaasInfo.getProperty(GCEIaas.GCE_NETWORK_PROPERTY)); + template.getOptions().as(GoogleComputeEngineTemplateOptions.class).network(networkURI); + log.info("Using GCE network: " + networkURI.toString()); + } + catch (Exception e) { + log.error("Error while adding the network", e); + } + } // set Template iaasInfo.setTemplate(template); } @@ -408,10 +416,10 @@ public class GCEIaas extends JcloudsIaas { } @Override - public String getGroupName(MemberContext memberContext, byte[] payload){ + public String getGroupName(MemberContext memberContext, byte[] payload) { String clusterId = memberContext.getClusterId(); String str = clusterId.length() > 10 ? clusterId.substring(0, 10) : clusterId.substring(0, clusterId.length()); - String group = getIaasProvider().getName().substring(0, 4) + "-" + str.replaceAll("[^a-z0-9-]", ""); + String group = "stratos-" + str.replaceAll("[^a-z0-9-]", ""); return group.toLowerCase(); } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/stratos/blob/92ff7e9b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceCreatedMessageProcessor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceCreatedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceCreatedMessageProcessor.java index 314a915..e56d7bf 100644 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceCreatedMessageProcessor.java +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceCreatedMessageProcessor.java @@ -40,18 +40,14 @@ public class ApplicationInstanceCreatedMessageProcessor extends MessageProcessor @Override public boolean process(String type, String message, Object object) { - Applications applications = (Applications) object; - if (ApplicationInstanceCreatedEvent.class.getName().equals(type)) { - if (!applications.isInitialized()) { return false; } - - - ApplicationInstanceCreatedEvent event = (ApplicationInstanceCreatedEvent) MessagingUtil.jsonToObject(message, - ApplicationInstanceCreatedEvent.class); + ApplicationInstanceCreatedEvent event = + (ApplicationInstanceCreatedEvent) MessagingUtil.jsonToObject(message, + ApplicationInstanceCreatedEvent.class); if (event == null) { log.error("Unable to convert the JSON message to ApplicationInstanceCreatedEvent"); return false; @@ -60,17 +56,18 @@ public class ApplicationInstanceCreatedMessageProcessor extends MessageProcessor ApplicationsUpdater.acquireWriteLockForApplications(); try { return doProcess(event, applications); - - } finally { + } + finally { ApplicationsUpdater.releaseWriteLockForApplications(); } - } else { if (nextProcessor != null) { // ask the next processor to take care of the message. return nextProcessor.process(type, message, applications); } else { - throw new RuntimeException(String.format("Failed to process message using available message processors: [type] %s [body] %s", type, message)); + throw new RuntimeException(String.format( + "Failed to process message using available message processors: [type] %s [body] %s", type, + message)); } } } @@ -78,13 +75,18 @@ public class ApplicationInstanceCreatedMessageProcessor extends MessageProcessor private boolean doProcess(ApplicationInstanceCreatedEvent event, Applications applications) { // check if required properties are available - if (event.getApplicationInstance() == null) { - String errorMsg = "Application instance object of application instance created event is invalid"; + if (event.getApplicationInstance() == null || event.getApplicationId() == null) { + String errorMsg = "Application instance object of ApplicationInstanceCreatedEvent is invalid. " + + "[ApplicationId] " + event.getApplicationId() + ", [ApplicationInstance] " + + event.getApplicationInstance(); + log.error(errorMsg); + throw new RuntimeException(errorMsg); + } + if (applications == null) { + String errorMsg = "Error! Applications object is null"; log.error(errorMsg); throw new RuntimeException(errorMsg); - } - ApplicationInstance applicationInstance = event.getApplicationInstance(); if (applicationInstance.getInstanceId() == null || applicationInstance.getInstanceId().isEmpty()) { @@ -97,15 +99,13 @@ public class ApplicationInstanceCreatedMessageProcessor extends MessageProcessor // check if an Application instance with same name exists in applications instance if (null != applications.getApplication(event.getApplicationId()). getInstanceByNetworkPartitionId(applicationInstance.getNetworkPartitionId())) { - - log.warn("Application instance with id [ " + applicationInstance.getInstanceId() + " ] already exists"); - + log.warn("Application instance [AppInstanceId] " + applicationInstance.getInstanceId() + " already exists"); } else { // add application instance to Application Topology - applications.getApplication(event.getApplicationId()).addInstance(applicationInstance.getInstanceId(), applicationInstance); + applications.getApplication(event.getApplicationId()) + .addInstance(applicationInstance.getInstanceId(), applicationInstance); } - notifyEventListeners(event); return true; } -} +} \ No newline at end of file
