You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ud...@apache.org on 2014/08/15 12:51:57 UTC
[50/51] [abbrv] Merge branch '400'
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/endpoint/TenantAwareLoadBalanceEndpoint.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/endpoint/TenantAwareLoadBalanceEndpoint.java
index 02ed6e6,884d5f6..395cd9a
--- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/endpoint/TenantAwareLoadBalanceEndpoint.java
+++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/endpoint/TenantAwareLoadBalanceEndpoint.java
@@@ -237,16 -238,18 +237,18 @@@ public class TenantAwareLoadBalanceEndp
}
String url = extractUrl(synCtx);
int tenantId = scanUrlForTenantId(url);
- if (tenantExists(tenantId)) {
++
+ if(tenantId == -1) {
+ // If there is no tenant involves in the URL, Find next member from host name
+ member = requestDelegator.findNextMemberFromHostName(targetHost);
+ } else if (tenantExists(tenantId)) {
// Tenant found, find member from hostname and tenant id
member = requestDelegator.findNextMemberFromTenantId(targetHost, tenantId);
} else {
- // Tenant id not found in URL, find member from host name
- member = requestDelegator.findNextMemberFromHostName(targetHost);
+ // Tenant id not found in the subscription for the URL which has tenant domain.
+ throwSynapseException(synCtx, 403, String.format("You are unauthorized to access"));
}
} else {
- // Find next member from host name
- member = requestDelegator.findNextMemberFromHostName(targetHost);
-
}
if (member == null)
@@@ -357,6 -360,6 +359,7 @@@
}
/**
++>>>>>>> 400
* Find topology member from axis2 member using cluster id and member id defined in axis2 member properties.
*
* @param synCtx
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.load.balancer/src/test/java/org/apache/stratos/load/balancer/test/LoadBalancerConfigurationTest.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.manager.console/console/cartridge_info.jag
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.manager.console/console/cartridge_info.jag
index ad4d4c2,6f3ea86..653e31a
--- a/components/org.apache.stratos.manager.console/console/cartridge_info.jag
+++ b/components/org.apache.stratos.manager.console/console/cartridge_info.jag
@@@ -44,6 -52,7 +52,9 @@@ if(cartridgeInfo.Error != undefined)
error.push(clusterInfo.Error);
}
}
++
+ var bamInfo ={bamip:process.getProperty('bam.ip'),bamport:process.getProperty('bam.port')};
++
caramel.render({
cartridgeInfo:cartridgeInfo,
lbCluster:lbCluster,
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.manager.console/console/controllers/cartridgeSubscribeSubmit.jag
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.manager.console/console/controllers/router.jag
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.manager.console/console/controllers/router.jag
index 46bee99,46bee99..f49b165
--- a/components/org.apache.stratos.manager.console/console/controllers/router.jag
+++ b/components/org.apache.stratos.manager.console/console/controllers/router.jag
@@@ -115,6 -115,6 +115,7 @@@
};
var permissionObject = acl.authorizationUtil.getPermissionObj(tenantDomain,roleArray);
request.permissions = permissionObject;
++ print(includePath);
include(includePath);
return;
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.manager.console/console/themes/theme1/partials/configure_stratos_wizard.hbs
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.manager.console/console/themes/theme1/partials/configure_stratos_wizard.hbs
index 5f9ea27,8b04c22..f34775a
mode 100644,100755..100755
--- a/components/org.apache.stratos.manager.console/console/themes/theme1/partials/configure_stratos_wizard.hbs
+++ b/components/org.apache.stratos.manager.console/console/themes/theme1/partials/configure_stratos_wizard.hbs
@@@ -303,24 -303,22 +303,21 @@@
<i class="icons-help"></i>
Example configuration:
<pre>
- {
- "id": "economyPolicy",
- "loadThresholds": {
- "requestsInFlight": {
- "upperLimit": "80",
- "lowerLimit": "20"
- },
- "memoryConsumption": {
- "upperLimit": "80",
- "lowerLimit": "20"
- },
- "loadAverage": {
- "upperLimit": "80",
- "lowerLimit": "20"
- }
- }
- }
+ {
+ "id": "autoscale-policy-1",
+ "loadThresholds": {
+ "requestsInFlight": {
+ "average": 50
+ },
+ "memoryConsumption": {
+ "average": 70
+ },
+ "loadAverage": {
+ "average": 100
+ }
+ }
+ }
-
</pre>
</div>
{{/ifCond}}
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.manager.console/console/themes/theme1/partials/mycartridges.hbs
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.manager.console/console/themes/theme1/partials/mycartridges.hbs
index 2f4e25f,ee49e3b..fb93c9c
mode 100644,100755..100755
--- a/components/org.apache.stratos.manager.console/console/themes/theme1/partials/mycartridges.hbs
+++ b/components/org.apache.stratos.manager.console/console/themes/theme1/partials/mycartridges.hbs
@@@ -42,10 -42,10 +42,10 @@@
</div>
<div class="col-lg-9">
{{#unless loadBalancer}}
- <div class="un-subscribe-container"><a class="un-subscribe un-subscribe-btn" data-alias="{{cartridgeAlias}}">Un-subscribe <i class=" icons-circle-close"></i></a></div>
- {{/unless}}
+
- <a href="{{url "/cartridge_info.jag?alias="}}{{cartridgeAlias}}&serviceGroup={{serviceGroup}}"><h3>{{serviceGroup}}</h3></a>
+ <div class="un-subscribe-container"><a class="un-subscribe un-subscribe-btn" service-group="{{serviceGroup}}" data-alias="{{cartridgeAlias}}">Un-subscribe <i class=" icons-circle-close"></i></a></div>
+ {{/unless}}
-
+ <a href="{{url "/cartridge_info_sg.jag?"}}serviceGroup={{serviceGroup}}"><h3>{{serviceGroup}}</h3></a>
{{#each items}}
<div class="serviceGroup-child-wrapper">
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/cartridge_info.js
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.manager.console/console/themes/theme1/renderers/cartridge_info.js
index a4b3cb9,beee3a3..600c6fd
mode 100644,100755..100755
--- a/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/cartridge_info.js
+++ b/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/cartridge_info.js
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/cartridges.js
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.manager.console/console/themes/theme1/renderers/cartridges.js
index 342639e,9555101..9da9776
mode 100644,100755..100755
--- a/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/cartridges.js
+++ b/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/cartridges.js
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/dashboard.js
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.manager.console/console/themes/theme1/renderers/dashboard.js
index 2fe10ce,4d6ca5e..2fe10ce
mode 100644,100755..100755
--- a/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/dashboard.js
+++ b/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/dashboard.js
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/index.js
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.manager.console/console/themes/theme1/renderers/index.js
index cfc9c35,f833e53..47aaf53
mode 100644,100755..100755
--- a/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/index.js
+++ b/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/index.js
@@@ -125,7 -125,8 +125,8 @@@ var render = function (theme, data, met
name: 'Subscribe to Cartridge',
class_name: 'btn-important'
},
+ has_help:false,
+ bamInfo:data.bamInfo,
- has_help: true,
help: 'Create cartridges like PHP, Python, Ruby etc.. Or create data cartridges with mySql, PostgreSQL. Directly install applications like Drupal, Wordpress etc..'
}
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/subscribe_cartridge.js
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.manager.console/console/themes/theme1/renderers/subscribe_cartridge.js
index 433baf0,a06af06..92ec3f3
mode 100644,100755..100755
--- a/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/subscribe_cartridge.js
+++ b/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/subscribe_cartridge.js
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/tenant_management.js
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.manager.console/console/themes/theme1/renderers/tenant_management.js
index 0f8e511,8c8de86..7be977a
mode 100644,100755..100755
--- a/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/tenant_management.js
+++ b/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/tenant_management.js
@@@ -83,7 -84,8 +84,12 @@@ var render = function (theme, data, met
name: 'Subscribe to Cartridge',
class_name: 'btn-important'
},
++<<<<<<< HEAD
+ has_help:false,
++=======
+ bamInfo:data.bamInfo,
+ has_help: true,
++>>>>>>> 400
help: 'Create cartridges like PHP, Python, Ruby etc.. Or create data cartridges with mySql, PostgreSQL. Directly install applications like Drupal, Wordpress etc..'
}
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/tenant_new.js
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.manager.console/console/themes/theme1/renderers/tenant_new.js
index 8e678f5,a7c9bc2..e2c0828
mode 100644,100755..100755
--- a/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/tenant_new.js
+++ b/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/tenant_new.js
@@@ -45,7 -45,8 +45,9 @@@ var render = function (theme, data, met
class_name: create_btn_class,
class_icon: 'icons-arrow-left'
},
++
+ has_help:false,
+ bamInfo:data.bamInfo,
- has_help: true,
help: "Tenants you create has permission to view and subscribe to Cartridges. Tenants don't have permission to do Partition deployment, Policy deployment, LB Creation, and MT service deployment.",
tenant_mgt: true
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/behaviour/CartridgeMgtBehaviour.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/TemporyClass.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/TemporyClass.java
index 0000000,0000000..aadec5e
new file mode 100644
--- /dev/null
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/TemporyClass.java
@@@ -1,0 -1,0 +1,7 @@@
++package org.apache.stratos.manager.composite.application;
++
++/**
++ * Created by udara on 7/23/14.
++ */
++public class TemporyClass {
++}
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/Service.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/Service.java
index b73ccf6,6281ec3..1a9c76c
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/Service.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/Service.java
@@@ -79,9 -79,14 +79,14 @@@ public abstract class Service extends C
return clusterId;
}
+ protected String generateHostName (String alias, String cartridgeDefinitionHostName) {
+
+ return cartridgeDefinitionHostName;
+ }
+
public void deploy (Properties properties) throws ADCException, UnregisteredCartridgeException {
- register(getCartridgeInfo(), getCluster(), getPayloadData(), getAutoscalingPolicyName(), getDeploymentPolicyName(), properties);
+ register(getCartridgeInfo(), getCluster(), getPayloadData(), getAutoscalingPolicyName(), getDeploymentPolicyName(), properties, null);
}
public void undeploy () throws ADCException, NotSubscribedException {
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/ServiceDeploymentManager.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/multitenant/lb/DefaultLBService.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/multitenant/lb/DefaultLBService.java
index 0000000,580186e..563d95c
mode 000000,100644..100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/multitenant/lb/DefaultLBService.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/multitenant/lb/DefaultLBService.java
@@@ -1,0 -1,110 +1,110 @@@
+ /*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * 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.
+ */
+
+ package org.apache.stratos.manager.deploy.service.multitenant.lb;
+
+ import org.apache.commons.logging.Log;
+ import org.apache.commons.logging.LogFactory;
+ import org.apache.stratos.cloud.controller.stub.pojo.CartridgeInfo;
+ import org.apache.stratos.cloud.controller.stub.pojo.ClusterContext;
+ import org.apache.stratos.cloud.controller.stub.pojo.Properties;
+ import org.apache.stratos.manager.client.AutoscalerServiceClient;
+ import org.apache.stratos.manager.client.CloudControllerServiceClient;
+ import org.apache.stratos.manager.dao.Cluster;
+ import org.apache.stratos.manager.exception.ADCException;
+ import org.apache.stratos.manager.exception.AlreadySubscribedException;
+ import org.apache.stratos.manager.exception.UnregisteredCartridgeException;
+ import org.apache.stratos.manager.payload.PayloadData;
+ import org.apache.stratos.manager.repository.Repository;
+ import org.apache.stratos.manager.subscriber.Subscriber;
+
+ import java.rmi.RemoteException;
+ import java.util.Map;
+
+ public class DefaultLBService extends LBService {
+
+ private static Log log = LogFactory.getLog(DefaultLBService.class);
+ private boolean defaultLBServiceExists = false;
+
+ public DefaultLBService (String type, String autoscalingPolicyName, String deploymentPolicyName, int tenantId,
+ CartridgeInfo cartridgeInfo, String tenantRange) {
+
+ super(type, autoscalingPolicyName, deploymentPolicyName, tenantId, cartridgeInfo, tenantRange);
+ }
+
+ public PayloadData create(String alias, Cluster cluster, Subscriber subscriber, Repository repository, CartridgeInfo cartridgeInfo,
+ String subscriptionKey, Map<String, String> customPayloadEntries)
+ throws ADCException, AlreadySubscribedException {
+
+ // call the relevant method to get the cluster id, using deployment policy
+ String clusterId = null;
+ try {
+ clusterId = AutoscalerServiceClient.getServiceClient().getDefaultLBClusterId(getDeploymentPolicyName());
+ } catch (Exception e) {
+ log.error("Error occurred in retrieving default LB cluster id" + e.getMessage());
+ throw new ADCException(e);
+ }
+
+ if (clusterId != null) {
+ //set the cluster id to Cluster object
+ cluster.setClusterDomain(clusterId);
+ if (log.isDebugEnabled()) {
+ log.debug("Set existing default LB cluster id " + clusterId);
+ }
+ defaultLBServiceExists = true;
+
+ //get the hostname for this cluster and set it
+ ClusterContext clusterContext;
+ try {
+ clusterContext = CloudControllerServiceClient.getServiceClient().getClusterContext(clusterId);
+
+ } catch (RemoteException e) {
+ log.error("Error occurred in retrieving Cluster Context for default LB ", e);
+ throw new ADCException(e);
+ }
+
+ if (clusterContext != null) {
+ cluster.setHostName(clusterContext.getHostName());
+ if (log.isDebugEnabled()) {
+ log.debug("Set existing default LB hostname " + clusterContext.getHostName());
+ }
+ }
+
+ return null;
+
+ } else {
+ // set cluster domain
+ cluster.setClusterDomain(generateClusterId(null, cartridgeInfo.getType()));
+ // set hostname
+ cluster.setHostName(generateHostName(null, cartridgeInfo.getHostName()));
+
+ return createPayload(cartridgeInfo, subscriptionKey, subscriber, cluster, repository, alias, customPayloadEntries);
+ }
+ }
+
+ public void register(CartridgeInfo cartridgeInfo, Cluster cluster, PayloadData payloadData, String autoscalePolicyName, String deploymentPolicyName, Properties properties) throws ADCException, UnregisteredCartridgeException {
+
+ //log.info("Register service with payload data ["+payloadData+"] ");
+ if (!defaultLBServiceExists) {
- super.register(cartridgeInfo, cluster, payloadData, autoscalePolicyName, deploymentPolicyName, properties);
++ super.register(cartridgeInfo, cluster, payloadData, autoscalePolicyName, deploymentPolicyName, properties, null);
+ }else {
+ log.info("Default LB already exists for deployment policy: " + getDeploymentPolicyName());
+ }
+ }
+ }
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/multitenant/lb/LBService.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/multitenant/lb/LBService.java
index 0000000,52c33d3..27f2a5c
mode 000000,100644..100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/multitenant/lb/LBService.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/multitenant/lb/LBService.java
@@@ -1,0 -1,69 +1,69 @@@
+ /*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * 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.
+ */
+
+ package org.apache.stratos.manager.deploy.service.multitenant.lb;
+
+ import org.apache.commons.logging.Log;
+ import org.apache.commons.logging.LogFactory;
+ import org.apache.stratos.cloud.controller.stub.pojo.CartridgeInfo;
+ import org.apache.stratos.cloud.controller.stub.pojo.Properties;
+ import org.apache.stratos.manager.deploy.service.Service;
+ import org.apache.stratos.manager.exception.ADCException;
+ import org.apache.stratos.manager.exception.AlreadySubscribedException;
+ import org.apache.stratos.manager.exception.UnregisteredCartridgeException;
+ import org.apache.stratos.manager.lb.category.LoadBalancerCategory;
+
+ public class LBService extends Service {
+
+ private static Log log = LogFactory.getLog(LBService.class);
+
+ private String loadBalancedServiceType;
+
+ public LBService(String type, String autoscalingPolicyName, String deploymentPolicyName, int tenantId,
+ CartridgeInfo cartridgeInfo, String tenantRange) {
+
+ super(type, autoscalingPolicyName, deploymentPolicyName, tenantId, cartridgeInfo, tenantRange);
+ }
+
+ public void create () throws ADCException {
+
+ try {
+ setPayloadData(create(null, getCluster(), null, null, getCartridgeInfo(), getSubscriptionKey(), null));
+
+ } catch (AlreadySubscribedException e) {
+ throw new ADCException(e);
+ }
+ }
+
+ @Override
+ public void deploy(Properties properties) throws ADCException, UnregisteredCartridgeException {
+
+ //register the service
+ register(getCartridgeInfo(), getCluster(), getPayloadData(), getAutoscalingPolicyName(), getDeploymentPolicyName(),
- properties);
++ properties, null);
+ }
+
+ public String getLoadBalancedServiceType() {
+ return loadBalancedServiceType;
+ }
+
+ public void setLoadBalancedServiceType(String loadBalancedServiceType) {
+ this.loadBalancedServiceType = loadBalancedServiceType;
+ }
+ }
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/multitenant/lb/ServiceAwareLBService.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/multitenant/lb/ServiceAwareLBService.java
index 0000000,282cbf3..54427ad
mode 000000,100644..100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/multitenant/lb/ServiceAwareLBService.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/multitenant/lb/ServiceAwareLBService.java
@@@ -1,0 -1,137 +1,137 @@@
+ /*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * 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.
+ */
+
+ package org.apache.stratos.manager.deploy.service.multitenant.lb;
+
+ import org.apache.commons.logging.Log;
+ import org.apache.commons.logging.LogFactory;
+ import org.apache.stratos.cloud.controller.stub.pojo.CartridgeInfo;
+ import org.apache.stratos.cloud.controller.stub.pojo.ClusterContext;
+ import org.apache.stratos.cloud.controller.stub.pojo.Properties;
+ import org.apache.stratos.manager.client.AutoscalerServiceClient;
+ import org.apache.stratos.manager.client.CloudControllerServiceClient;
+ import org.apache.stratos.manager.dao.Cluster;
+ import org.apache.stratos.manager.exception.ADCException;
+ import org.apache.stratos.manager.exception.AlreadySubscribedException;
+ import org.apache.stratos.manager.exception.UnregisteredCartridgeException;
+ import org.apache.stratos.manager.payload.PayloadData;
+ import org.apache.stratos.manager.repository.Repository;
+ import org.apache.stratos.manager.subscriber.Subscriber;
+ import org.apache.stratos.manager.subscription.utils.CartridgeSubscriptionUtils;
+ import org.apache.stratos.manager.utils.CartridgeConstants;
+
+ import java.rmi.RemoteException;
+ import java.util.Map;
+
+ public class ServiceAwareLBService extends LBService {
+
+ public ServiceAwareLBService(String type, String autoscalingPolicyName, String deploymentPolicyName, int tenantId,
+ CartridgeInfo cartridgeInfo, String tenantRange) {
+
+ super(type, autoscalingPolicyName, deploymentPolicyName, tenantId, cartridgeInfo, tenantRange);
+ }
+
+ private static Log log = LogFactory.getLog(ServiceAwareLBService.class);
+
+ private boolean serviceAwareLBExists;
+
+ public PayloadData create (String alias, Cluster cluster, Subscriber subscriber, Repository repository, CartridgeInfo cartridgeInfo,
+ String subscriptionKey, Map<String, String> customPayloadEntries) throws ADCException, AlreadySubscribedException {
+
+ // call the relevant method to get the cluster id, using deployment policy and type
+ String clusterId = null;
+
+ try {
+ clusterId = AutoscalerServiceClient.getServiceClient().getServiceLBClusterId(getLoadBalancedServiceType(), getDeploymentPolicyName());
+
+ } catch (Exception e) {
+ log.error("Error occurred in retrieving Service LB cluster id" + e.getMessage());
+ throw new ADCException(e);
+ }
+
+ if (clusterId != null) {
+
+ //set the cluster id to Cluster object
+ cluster.setClusterDomain(clusterId);
+ if (log.isDebugEnabled()) {
+ log.debug("Set existing Service LB cluster id " + clusterId);
+ }
+ serviceAwareLBExists = true;
+
+ //get the hostname for this cluster and set it
+ ClusterContext clusterContext;
+ try {
+ clusterContext = CloudControllerServiceClient.getServiceClient().getClusterContext(clusterId);
+
+ } catch (RemoteException e) {
+ log.error("Error occurred in retrieving Cluster Context for Service LB ", e);
+ throw new ADCException(e);
+ }
+
+ if (clusterContext != null) {
+ cluster.setHostName(clusterContext.getHostName());
+ if (log.isDebugEnabled()) {
+ log.debug("Set existing Service LB hostname " + clusterContext.getHostName());
+ }
+ }
+
+ return null;
+
+ } else {
+
+ // set cluster domain
+ cluster.setClusterDomain(generateClusterId(getLoadBalancedServiceType(), cartridgeInfo.getType()));
+ // set hostname
+ cluster.setHostName(generateHostName(getLoadBalancedServiceType(), cartridgeInfo.getHostName()));
+
+ PayloadData serviceLevelLbPayloadData = createPayload(cartridgeInfo, subscriptionKey, subscriber, cluster,
+ repository, alias, customPayloadEntries);
+
+ // add payload entry for load balanced service type
+ serviceLevelLbPayloadData.add(CartridgeConstants.LOAD_BALANCED_SERVICE_TYPE, getLoadBalancedServiceType());
+ return serviceLevelLbPayloadData;
+ }
+ }
+
+ protected String generateClusterId (String loadBalancedServiceType, String cartridgeType) {
+
+ String clusterId = cartridgeType + "." + loadBalancedServiceType + "." + getCartridgeInfo().getHostName() + ".domain";
+ // limit the cartridge alias to 30 characters in length
+ if (clusterId.length() > 30) {
+ clusterId = CartridgeSubscriptionUtils.limitLengthOfString(clusterId, 30);
+ }
+
+ return clusterId;
+ }
+
+ protected String generateHostName (String loadBalancedServiceType, String cartridgeDefinitionHostName) {
+
+ return getCartridgeInfo().getType() + "." + loadBalancedServiceType + "." + cartridgeDefinitionHostName;
+ }
+
+ public void register(CartridgeInfo cartridgeInfo, Cluster cluster, PayloadData payloadData, String autoscalePolicyName, String deploymentPolicyName, Properties properties) throws ADCException, UnregisteredCartridgeException {
+
+ if (!serviceAwareLBExists) {
- super.register(cartridgeInfo, cluster, payloadData, autoscalePolicyName, deploymentPolicyName, properties);
++ super.register(cartridgeInfo, cluster, payloadData, autoscalePolicyName, deploymentPolicyName, properties, null);
+
+ }else {
+ log.info("Service Aware LB already exists for cartridge type: " + getLoadBalancedServiceType() + ", deployment policy: " + getDeploymentPolicyName());
+ }
+ }
+ }
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/DefaultLoadBalancerCategory.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/DefaultLoadBalancerCategory.java
index e124883,8470cb5..75f6856
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/DefaultLoadBalancerCategory.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/DefaultLoadBalancerCategory.java
@@@ -95,15 -93,15 +94,15 @@@ public class DefaultLoadBalancerCategor
}
}
- public void register(CartridgeInfo cartridgeInfo, Cluster cluster, PayloadData payloadData, String autoscalePolicyName, String deploymentPolicyName, Properties properties) throws ADCException, UnregisteredCartridgeException {
- //log.info("Register service with payload data ["+payloadData+"] ");
+ public void register(CartridgeInfo cartridgeInfo, Cluster cluster, PayloadData payloadData, String autoscalePolicyName, String deploymentPolicyName, Properties properties, Persistence persistence) throws ADCException, UnregisteredCartridgeException {
+ log.info("Register service with payload data ["+payloadData+"] ");
if (!isDefaultLBExists()) {
- //if(payloadData != null) {
- //log.info("Payload: " + payloadData.getCompletePayloadData().toString());
- //}
- super.register(cartridgeInfo, cluster, payloadData, autoscalePolicyName, deploymentPolicyName, properties);
+ if(payloadData != null) {
+ log.info("Payload: " + payloadData.getCompletePayloadData().toString());
+ }
+ super.register(cartridgeInfo, cluster, payloadData, autoscalePolicyName, deploymentPolicyName, properties, persistence);
}else {
- log.info(" Default LB exists... Not registering...");
+ log.info("Default LB already exists for deployment policy: " + getDeploymentPolicyName());
}
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/ServiceLevelLoadBalancerCategory.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/ServiceLevelLoadBalancerCategory.java
index e713d7d,131b4dc..b69ef6a
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/ServiceLevelLoadBalancerCategory.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/ServiceLevelLoadBalancerCategory.java
@@@ -107,11 -106,11 +107,11 @@@ public class ServiceLevelLoadBalancerCa
if (!serviceLbExists) {
- if(payloadData != null) {
- log.info("Payload: " + payloadData.getCompletePayloadData().toString());
- }
+ // if(payloadData != null) {
+ // log.info("Payload: " + payloadData.getCompletePayloadData().toString());
+ // }
- super.register(cartridgeInfo, cluster, payloadData, autoscalePolicyName, deploymentPolicyName, properties);
+ super.register(cartridgeInfo, cluster, payloadData, autoscalePolicyName, deploymentPolicyName, properties, persistence);
}else {
log.info("Service LB already exists for cartridge type: " + getLoadBalancedServiceType() + ", deployment policy: " + getDeploymentPolicyName());
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
index 784962b,ce04409..7fa330c
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
@@@ -23,10 -23,13 +23,11 @@@ import org.apache.commons.logging.Log
import org.apache.commons.logging.LogFactory;
import org.apache.openjpa.util.java$util$ArrayList$proxy;
import org.apache.stratos.cloud.controller.stub.CloudControllerServiceUnregisteredCartridgeExceptionException;
-import org.apache.stratos.cloud.controller.stub.pojo.CartridgeInfo;
-import org.apache.stratos.cloud.controller.stub.pojo.LoadbalancerConfig;
+import org.apache.stratos.cloud.controller.stub.pojo.*;
import org.apache.stratos.cloud.controller.stub.pojo.Properties;
-import org.apache.stratos.cloud.controller.stub.pojo.Property;
import org.apache.stratos.manager.client.CloudControllerServiceClient;
import org.apache.stratos.manager.dao.CartridgeSubscriptionInfo;
+ import org.apache.stratos.manager.deploy.service.Service;
import org.apache.stratos.manager.dto.SubscriptionInfo;
import org.apache.stratos.manager.exception.*;
import org.apache.stratos.manager.internal.DataHolder;
@@@ -388,8 -421,10 +428,9 @@@ public class CartridgeSubscriptionManag
log.info("Successful Subscription: " + cartridgeSubscription.toString());
// Publish tenant subscribed event to message broker
- CartridgeSubscriptionUtils.publishTenantSubscribedEvent(cartridgeSubscription.getSubscriber().getTenantId(),
- cartridgeSubscription.getCartridgeInfo().getType(), new HashSet<String>(cartridgeSubscription.getCluster().getId()));
+ Set<String> clusterIds = new HashSet<String>();
+ clusterIds.add(cartridgeSubscription.getCluster().getClusterDomain());
- CartridgeSubscriptionUtils.publishTenantSubscribedEvent(cartridgeSubscription.getSubscriber().getTenantId(),
- cartridgeSubscription.getCartridgeInfo().getType(), clusterIds);
++ CartridgeSubscriptionUtils.publishTenantSubscribedEvent(cartridgeSubscription.getSubscriber().getTenantId(), cartridgeSubscription.getCartridgeInfo().getType(), clusterIds);
return ApplicationManagementUtil.
createSubscriptionResponse(cartridgeSubscriptionInfo, cartridgeSubscription.getRepository());
@@@ -422,14 -457,15 +463,16 @@@
" [domain-name] " + domainName + " [application-context] " +applicationContext);
EventPublisher eventPublisher = EventPublisherPool.getPublisher(Constants.TENANT_TOPIC);
++
+ Set<String> clusterIds = new HashSet<String>();
+ clusterIds.add(cartridgeSubscription.getCluster().getClusterDomain());
SubscriptionDomainAddedEvent event = new SubscriptionDomainAddedEvent(tenantId, cartridgeSubscription.getType(),
- new HashSet<String>(cartridgeSubscription.getCluster().getId()),
- domainName, applicationContext);
+ clusterIds, domainName, applicationContext);
++
eventPublisher.publish(event);
}
-- public void removeSubscriptionDomain(int tenantId, String subscriptionAlias, String domainName)
- throws ADCException, DomainSubscriptionDoesNotExist {
- throws ADCException {
++ public void removeSubscriptionDomain(int tenantId, String subscriptionAlias, String domainName) throws ADCException, DomainSubscriptionDoesNotExist {
CartridgeSubscription cartridgeSubscription;
try {
@@@ -450,9 -486,10 +493,11 @@@
" [domain-name] " + domainName);
EventPublisher eventPublisher = EventPublisherPool.getPublisher(Constants.TENANT_TOPIC);
++
+ Set<String> clusterIds = new HashSet<String>();
+ clusterIds.add(cartridgeSubscription.getCluster().getClusterDomain());
SubscriptionDomainRemovedEvent event = new SubscriptionDomainRemovedEvent(tenantId, cartridgeSubscription.getType(),
- new HashSet<String>(cartridgeSubscription.getCluster().getId()),
- domainName);
+ clusterIds, domainName);
eventPublisher.publish(event);
}
@@@ -577,10 -617,11 +625,12 @@@
}
// Publish tenant un-subscribed event to message broker
++
+ Set<String> clusterIds = new HashSet<String>();
+ clusterIds.add(cartridgeSubscription.getCluster().getClusterDomain());
CartridgeSubscriptionUtils.publishTenantUnSubscribedEvent(
cartridgeSubscription.getSubscriber().getTenantId(),
- cartridgeSubscription.getCartridgeInfo().getType(),
- new HashSet<String>(cartridgeSubscription.getCluster().getId()));
+ cartridgeSubscription.getCartridgeInfo().getType(), clusterIds);
// publishing to the unsubscribed event details to bam
CartridgeSubscriptionDataPublisher.publish(cartridgeSubscription
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/LBCartridgeSubscription.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/LBCartridgeSubscription.java
index f92dac4,84610e6..c0bd321
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/LBCartridgeSubscription.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/LBCartridgeSubscription.java
@@@ -71,16 -84,16 +75,15 @@@ public class LBCartridgeSubscription ex
@Override
- public CartridgeSubscriptionInfo registerSubscription(Properties properties) throws ADCException, UnregisteredCartridgeException {
+ public CartridgeSubscriptionInfo registerSubscription(Properties properties, Persistence persistence) throws ADCException, UnregisteredCartridgeException {
- if(!loadBalancerCategory.isLoadBalancedServiceMultiTenant()) {
- if(log.isDebugEnabled()) {
- log.debug("Loadbalanced service is single tenant.");
- }
+ //if(!loadBalancerCategory.isLoadBalancedServiceMultiTenant()) {
+ //if(log.isDebugEnabled()) {
+ //log.debug("Loadbalanced service is single tenant.");
+ //}
getLoadBalancerCategory().register (getCartridgeInfo(), getCluster(), getPayloadData(), getAutoscalingPolicyName(),
- getDeploymentPolicyName(), properties, persistence);
- }
-
- getDeploymentPolicyName(), properties);
++ getDeploymentPolicyName(), properties, null);
+ //}
-
return ApplicationManagementUtil.createCartridgeSubscription(getCartridgeInfo(), getAutoscalingPolicyName(),
getType(), getAlias(), getSubscriber().getTenantId(), getSubscriber().getTenantDomain(),
getRepository(), getCluster().getHostName(), getCluster().getClusterDomain(), getCluster().getClusterSubDomain(),
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java
index dd40481,ed14d87..56829e0
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java
@@@ -47,9 -47,8 +47,10 @@@ public class SubscriptionData
private boolean isCommitsEnabled;
private String serviceGroup;
private Set<String> domains;
+ private Persistence persistence;
+ private Properties properties;
+ private String serviceName;
-
+
public SubscriptionData() {
this.domains = new HashSet<String>();
}
@@@ -190,19 -197,12 +191,27 @@@
return Collections.unmodifiableSet(domains);
}
+ public Persistence getPersistence() {
+ return persistence;
+ }
+
+ public void setPersistence(Persistence persistence) {
+ this.persistence = persistence;
+ }
+
+ public Properties getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Properties properties) {
+ this.properties = properties;
+ }
+ public String getServiceName() {
+ return serviceName;
+ }
+
+ public void setServiceName(String serviceName) {
+ this.serviceName = serviceName;
+ }
-
++
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/utils/CartridgeSubscriptionUtils.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/SubscriptionDomainAddedMessageProcessor.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/SubscriptionDomainAddedMessageProcessor.java
index 8952b71,79d1e12..a185cd2
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/SubscriptionDomainAddedMessageProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/SubscriptionDomainAddedMessageProcessor.java
@@@ -47,7 -47,7 +47,8 @@@ public class SubscriptionDomainAddedMes
public boolean process(String type, String message, Object object) {
if (SubscriptionDomainAddedEvent.class.getName().equals(type)) {
// Return if tenant manager has not initialized
- if(!TenantManager.getInstance().isInitialized()) {
++
+ if (!TenantManager.getInstance().isInitialized()) {
return false;
}
@@@ -57,8 -57,8 +58,9 @@@
try {
TenantManager.acquireWriteLock();
Tenant tenant = TenantManager.getInstance().getTenant(event.getTenantId());
- if(tenant == null) {
- if(log.isWarnEnabled()) {
++
+ if (tenant == null) {
+ if (log.isWarnEnabled()) {
log.warn(String.format("Tenant not found: [tenant-id] %d", event.getTenantId()));
}
return false;
@@@ -71,25 -71,23 +73,26 @@@
return false;
}
subscription.addSubscriptionDomain(new SubscriptionDomain(event.getDomainName(), event.getApplicationContext()));
- if(log.isInfoEnabled()) {
++
+ if (log.isInfoEnabled()) {
log.info(String.format("Domain added to tenant subscription: [tenant-id] %d [tenant-domain] %s " +
- "[service] %s [domain-name] %s [application-context] %s", tenant.getTenantId(),
- tenant.getTenantDomain(), event.getServiceName(), event.getDomainName(), event.getApplicationContext()));
+ "[service] %s [domain-name] %s [application-context] %s", tenant.getTenantId(),
+ tenant.getTenantDomain(), event.getServiceName(), event.getDomainName(), event.getApplicationContext()
+ ));
}
// Notify event listeners
notifyEventListeners(event);
return true;
- } finally {
+ }
+ finally {
TenantManager.releaseWriteLock();
}
- } else {
+ }
+ else {
- if(nextProcessor != null) {
+ if (nextProcessor != null) {
return nextProcessor.process(type, message, object);
- }
- else {
+ } else {
throw new RuntimeException(String.format("Failed to process tenant message using available message processors: [type] %s [body] %s", type, message));
}
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/SubscriptionDomainRemovedMessageProcessor.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/SubscriptionDomainRemovedMessageProcessor.java
index 5c46655,ea413cd..88b3690
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/SubscriptionDomainRemovedMessageProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/SubscriptionDomainRemovedMessageProcessor.java
@@@ -63,32 -63,30 +63,33 @@@ public class SubscriptionDomainRemovedM
return false;
}
Subscription subscription = tenant.getSubscription(event.getServiceName());
- if(subscription == null) {
- if(log.isWarnEnabled()) {
++
+ if (subscription == null) {
+ if (log.isWarnEnabled()) {
log.warn(String.format("Subscription not found: [tenant-id] %d", event.getTenantId()));
}
return false;
}
subscription.removeSubscriptionDomain(event.getDomainName());
- if (log.isInfoEnabled()) {
+ if(log.isInfoEnabled()) {
log.info(String.format("Domain removed from tenant subscription: [tenant-id] %d [tenant-domain] %s " +
- "[service] %s [domain-name] %s", tenant.getTenantId(), tenant.getTenantDomain(),
- event.getServiceName(), event.getDomainName()
- ));
+ "[service] %s [domain-name] %s", tenant.getTenantId(), tenant.getTenantDomain(),
+ event.getServiceName(), event.getDomainName()));
++
}
// Notify event listeners
notifyEventListeners(event);
return true;
- } finally {
+ }
+ finally {
TenantManager.releaseWriteLock();
}
- } else {
+ }
+ else {
- if(nextProcessor != null) {
+ if (nextProcessor != null) {
return nextProcessor.process(type, message, object);
- }
- else {
+ } else {
throw new RuntimeException(String.format("Failed to process tenant message using available message processors: [type] %s [body] %s", type, message));
}
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/util/Constants.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.rest.endpoint/as.json
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.rest.endpoint/as.json
index 0000000,0000000..5aaae67
new file mode 100644
--- /dev/null
+++ b/components/org.apache.stratos.rest.endpoint/as.json
@@@ -1,0 -1,0 +1,26 @@@
++{
++ "id": "simpleAutoscalePolicy2",
++ "loadThresholds": {
++ "requestsInFlight": {
++ "average": "20",
++ "gradient": "0",
++ "secondDerivative": "0",
++ "scaleDownMarginOfGradient": "1.0",
++ "scaleDownMarginOfSecondDerivative": "0.2"
++ },
++ "memoryConsumption": {
++ "average": "1000",
++ "gradient": "0",
++ "secondDerivative": "0",
++ "scaleDownMarginOfGradient": "1.0",
++ "scaleDownMarginOfSecondDerivative": "0.2"
++ },
++ "loadAverage": {
++ "average": "1000",
++ "gradient": "0",
++ "secondDerivative": "0",
++ "scaleDownMarginOfGradient": "1.0",
++ "scaleDownMarginOfSecondDerivative": "0.2"
++ }
++ }
++}
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/CartridgeInfoBean.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/CartridgeInfoBean.java
index 4a43499,1bce7fb..dbeb5c5
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/CartridgeInfoBean.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/CartridgeInfoBean.java
@@@ -37,12 -35,15 +37,16 @@@ public class CartridgeInfoBean
String dataCartridgeType;
String dataCartridgeAlias;
boolean commitsEnabled;
-
- private boolean persistanceRequired;
- private String size;
- private boolean removeOnTermination;
private String serviceGroup;
++
+ private PersistenceBean persistence;
+
+ private List<PropertyBean> property;
+
+ private List<String> domains;
+
public CartridgeInfoBean() {
+ this.domains = new ArrayList<String>();
}
public String getCartridgeType() {
@@@ -140,20 -165,9 +144,25 @@@
public void setServiceGroup(String serviceGroup) {
this.serviceGroup = serviceGroup;
}
-
+
+ public PersistenceBean getPersistence() {
+ return persistence;
+ }
+
+ public void setPersistence(PersistenceBean persistence) {
+ this.persistence = persistence;
+ }
+
+ public List<PropertyBean> getProperty() {
+ return property;
+ }
+
+ public void setProperty(List<PropertyBean> property) {
+ this.property = property;
+ }
++
+ public List<String> getDomains() { return domains; }
+
+ public void setDomains(List<String> domains) { this.domains = domains; }
+
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosTestAdmin.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosTestAdmin.java
index 34793b2,5302dab..d766ebd
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosTestAdmin.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosTestAdmin.java
@@@ -499,7 -490,7 +499,6 @@@ public class StratosTestAdmin
return MockContext.getInstance().getSubscriptionDomains(2, subscriptionAlias).toArray(new SubscriptionDomainBean[0]);
}
-- @GET
@Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains/{domainName}")
@Consumes("application/json")
@AuthorizationAction("/permission/protected/manage/monitor/tenants")
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/MyType.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/MyType.java
index 0000000,0000000..0526faa
new file mode 100644
--- /dev/null
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/MyType.java
@@@ -1,0 -1,0 +1,16 @@@
++package org.apache.stratos.rest.endpoint.services;
++
++/**
++ * Created by udara on 7/7/14.
++ */
++public class MyType {
++ private int name;
++
++ public int getName() {
++ return name;
++ }
++
++ public void setName(int name) {
++ this.name = name;
++ }
++}
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
index 0a92371,7f468d7..9eff4d1
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
@@@ -561,12 -580,13 +562,13 @@@ public class ServiceUtils
//cartridge.setStatus(CartridgeConstants.NOT_SUBSCRIBED);
cartridge.setCartridgeAlias("-");
cartridge.setPersistence(cartridgeInfo.getPersistence());
+ cartridge.setServiceGroup(cartridgeInfo.getServiceGroup());
- if(cartridgeInfo.getLbConfig() != null && cartridgeInfo.getProperties() != null) {
- for(Property property: cartridgeInfo.getProperties()) {
- if(property.getName().equals("load.balancer")) {
- cartridge.setLoadBalancer(true);
- }
+ if (cartridgeInfo.getProperties() != null) {
+ for (Property property : cartridgeInfo.getProperties()) {
+ if (property.getName().equals("load.balancer")) {
+ cartridge.setLoadBalancer(true);
+ }
}
}
//cartridge.setActiveInstances(0);
@@@ -704,8 -724,8 +706,8 @@@
return availableMultitenantCartridges;
}
- static List<Cartridge> getSubscriptions(String cartridgeSearchString, ConfigurationContext configurationContext) throws RestAPIException {
- static List<Cartridge> getSubscriptions (String cartridgeSearchString, String serviceGroup, ConfigurationContext configurationContext) throws RestAPIException {
++ static List<Cartridge> getSubscriptions (String cartridgeSearchString, String serviceGroup, ConfigurationContext configurationContext) throws RestAPIException {
List<Cartridge> cartridges = new ArrayList<Cartridge>();
if (log.isDebugEnabled()) {
@@@ -727,27 -747,31 +729,31 @@@
}
Cartridge cartridge = getCartridgeFromSubscription(subscription);
if (cartridge == null) {
- continue;
- }
+ continue;
+ }
Cluster cluster = TopologyClusterInformationModel.getInstance().getCluster(ApplicationManagementUtil.getTenantId(configurationContext)
- ,cartridge.getCartridgeType(), cartridge.getCartridgeAlias());
+ , cartridge.getCartridgeType(), cartridge.getCartridgeAlias());
String cartridgeStatus = "Inactive";
int activeMemberCount = 0;
- if (cluster != null) {
- Collection<Member> members = cluster.getMembers();
- for (Member member : members) {
- if (member.isActive()) {
- cartridgeStatus = "Active";
- activeMemberCount++;
- }
- }
- }
+ if (cluster != null) {
+ Collection<Member> members = cluster.getMembers();
+ for (Member member : members) {
+ if (member.isActive()) {
+ cartridgeStatus = "Active";
+ activeMemberCount++;
+ }
+ }
+ }
cartridge.setActiveInstances(activeMemberCount);
- cartridge.setStatus(cartridgeStatus);
+ cartridge.setStatus(cartridgeStatus);
// Ignoring the LB cartridges since they are not shown to the user.
- if(cartridge.isLoadBalancer())
+ if (cartridge.isLoadBalancer())
continue;
+ if(StringUtils.isNotEmpty(serviceGroup) && cartridge.getServiceGroup() != null &&
+ !cartridge.getServiceGroup().equals(serviceGroup)){
+ continue;
+ }
cartridges.add(cartridge);
}
} else {
@@@ -880,17 -904,19 +886,18 @@@
}
}
}
-
- return cartridge;
-
- } catch (Exception e) {
- String msg = "Unable to extract the Cartridge from subscription. Cause: " + e.getMessage();
- log.error(msg);
- throw new RestAPIException(msg);
- }
-
- }
-
+ if(subscription.getCartridgeInfo().getServiceGroup() != null) {
+ cartridge.setServiceGroup(subscription.getCartridgeInfo().getServiceGroup());
+ }
+ return cartridge;
+
+ } catch (Exception e) {
+ String msg = "Unable to extract the Cartridge from subscription. Cause: "+e.getMessage();
+ log.error(msg);
+ throw new RestAPIException(msg);
+ }
+
+ }
-
static Pattern getSearchStringPattern(String searchString) {
if (log.isDebugEnabled()) {
log.debug("Creating search pattern for " + searchString);
@@@ -1160,9 -1210,13 +1183,9 @@@
log.error(msg, e);
throw new RestAPIException(msg, e);
}
-
- StratosAdminResponse stratosAdminResponse = new StratosAdminResponse();
- stratosAdminResponse.setMessage("Successfully sent the repository synchronization request for " + cartridgeSubscription.getAlias());
- return stratosAdminResponse;
}
-- public static StratosAdminResponse addSubscriptionDomains(ConfigurationContext configurationContext, String cartridgeType,
++ public static void addSubscriptionDomains(ConfigurationContext configurationContext, String cartridgeType,
String subscriptionAlias,
SubscriptionDomainRequest request)
throws RestAPIException {
@@@ -1186,10 -1239,10 +1209,6 @@@
log.error(e.getMessage(), e);
throw new RestAPIException(e.getMessage(), e);
}
--
-- StratosAdminResponse stratosAdminResponse = new StratosAdminResponse();
-- stratosAdminResponse.setMessage("Successfully added domains to cartridge subscription");
-- return stratosAdminResponse;
}
public static boolean isSubscriptionDomainExists(ConfigurationContext configurationContext, String cartridgeType,
@@@ -1254,6 -1307,10 +1273,7 @@@
log.error(e.getMessage(), e);
throw new RestAPIException(e.getMessage(), e);
}
+
- StratosAdminResponse stratosAdminResponse = new StratosAdminResponse();
- stratosAdminResponse.setMessage("Successfully removed domains from cartridge subscription");
- return stratosAdminResponse;
}
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
index f4e0621,63d713f..fa5057d
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
@@@ -27,9 -27,8 +27,10 @@@ import org.apache.stratos.common.util.C
import org.apache.stratos.common.util.CommonUtil;
import org.apache.stratos.manager.dto.Cartridge;
import org.apache.stratos.manager.dto.SubscriptionInfo;
+import org.apache.stratos.manager.exception.DomainMappingExistsException;
+import org.apache.stratos.manager.exception.ServiceDoesNotExistException;
import org.apache.stratos.manager.subscription.CartridgeSubscription;
+ import org.apache.stratos.manager.subscription.SubscriptionDomain;
import org.apache.stratos.rest.endpoint.ServiceHolder;
import org.apache.stratos.rest.endpoint.Utils;
import org.apache.stratos.rest.endpoint.annotation.AuthorizationAction;
@@@ -324,12 -313,21 +327,25 @@@ public class StratosAdmin extends Abstr
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/protected/manage/monitor/tenants")
- public Cartridge[] getSubscribedCartridges() throws RestAPIException {
- List<Cartridge> cartridgeList = ServiceUtils.getSubscriptions(null, null, getConfigContext());
+ public Response getSubscribedCartridges() throws RestAPIException {
- List<Cartridge> cartridgeList = ServiceUtils.getSubscriptions(null, getConfigContext());
++ List<Cartridge> cartridgeList = ServiceUtils.getSubscriptions(null,null, getConfigContext());
+ // Following is very important when working with axis2
- return cartridgeList.isEmpty() ? new Cartridge[0] : cartridgeList.toArray(new Cartridge[cartridgeList.size()]);
++ ResponseBuilder rb = Response.ok();
++ rb.entity(cartridgeList.isEmpty() ? new Cartridge[0] : cartridgeList.toArray(new Cartridge[cartridgeList.size()]));
++ return rb.build();
+ }
+
+ @GET
+ @Path("/cartridge/list/subscribed/group/{serviceGroup}")
+ @Produces("application/json")
+ @Consumes("application/json")
+ @AuthorizationAction("/permission/protected/manage/monitor/tenants")
- public Cartridge[] getSubscribedCartridgesForServiceGroup(@PathParam("serviceGroup") String serviceGroup) throws RestAPIException {
++ public Response getSubscribedCartridgesForServiceGroup(@PathParam("serviceGroup") String serviceGroup) throws RestAPIException {
+ List<Cartridge> cartridgeList = ServiceUtils.getSubscriptions(null, serviceGroup, getConfigContext());
// Following is very important when working with axis2
- return cartridgeList.isEmpty() ? new Cartridge[0] : cartridgeList.toArray(new Cartridge[cartridgeList.size()]);
+ ResponseBuilder rb = Response.ok();
+ rb.entity(cartridgeList.isEmpty() ? new Cartridge[0] : cartridgeList.toArray(new Cartridge[cartridgeList.size()]));
+ return rb.build();
}
@GET
@@@ -404,12 -397,19 +420,23 @@@
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/protected/manage/monitor/tenants")
- public Cluster[] getClusters(@PathParam("cartridgeType") String cartridgeType) throws RestAPIException {
- return ServiceUtils.getClustersForCartridgeType(cartridgeType);
+ public Response getClusters(@PathParam("cartridgeType") String cartridgeType) throws RestAPIException {
+
+ ResponseBuilder rb = Response.ok();
+ rb.entity(ServiceUtils.getClustersForTenantAndCartridgeType(getConfigContext(), cartridgeType));
+ return rb.build();
}
+
+ @GET
+ @Path("/cluster/service/{cartridgeType}/")
+ @Produces("application/json")
+ @Consumes("application/json")
+ @AuthorizationAction("/permission/protected/manage/monitor/tenants")
- public Cluster[] getServiceClusters(@PathParam("cartridgeType") String cartridgeType) throws RestAPIException {
-
- return ServiceUtils.getClustersForTenantAndCartridgeType(getConfigContext(), cartridgeType);
++ public Response getServiceClusters(@PathParam("cartridgeType") String cartridgeType) throws RestAPIException {
++ ResponseBuilder rb = Response.ok();
++ rb.entity(ServiceUtils.getClustersForTenantAndCartridgeType(getConfigContext(), cartridgeType));
++ return rb.build();
+ }
@GET
@Path("/cluster/{cartridgeType}/{subscriptionAlias}")
@@@ -1057,19 -1049,19 +1084,19 @@@
@Consumes("application/json")
@AuthorizationAction("/permission/protected/manage/monitor/tenants")
public Response addSubscriptionDomains(@PathParam("cartridgeType") String cartridgeType,
- @PathParam("subscriptionAlias") String subscriptionAlias,
- SubscriptionDomainRequest request) throws RestAPIException {
+
- StratosAdminResponse stratosAdminResponse = ServiceUtils.addSubscriptionDomains(getConfigContext(), cartridgeType, subscriptionAlias, request);
- return Response.ok().entity(stratosAdminResponse).build();
+ @PathParam("subscriptionAlias") String subscriptionAlias,
+ SubscriptionDomainRequest request) throws RestAPIException {
-
- StratosAdminResponse stratosAdminResponse = ServiceUtils.addSubscriptionDomains(getConfigContext(), cartridgeType, subscriptionAlias, request);
- return Response.ok().entity(stratosAdminResponse).build();
++ ServiceUtils.addSubscriptionDomains(getConfigContext(), cartridgeType, subscriptionAlias, request);
++ return Response.noContent().build();
}
@GET
@Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains")
@Consumes("application/json")
@AuthorizationAction("/permission/protected/manage/monitor/tenants")
-- public Response getSubscriptionDomains(@PathParam("cartridgeType") String cartridgeType,
- @PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException {
- @PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException {
++ public Response getSubscriptionDomains(@PathParam("cartridgeType") String cartridgeType,@PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException {
++
SubscriptionDomainBean[] subscriptionDomainBean = ServiceUtils.getSubscriptionDomains(getConfigContext(), cartridgeType, subscriptionAlias).toArray(new SubscriptionDomainBean[0]);
if(subscriptionDomainBean.length == 0){
@@@ -1083,8 -1075,8 +1110,8 @@@
@Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains/{domainName}")
@Consumes("application/json")
@AuthorizationAction("/permission/protected/manage/monitor/tenants")
-- public Response getSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType,
- @PathParam("subscriptionAlias") String subscriptionAlias, @PathParam("domainName") String domainName) throws RestAPIException {
- @PathParam("subscriptionAlias") String subscriptionAlias, @PathParam("domainName") String domainName) throws RestAPIException {
++ public Response getSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType, @PathParam("subscriptionAlias") String subscriptionAlias, @PathParam("domainName") String domainName) throws RestAPIException {
++
SubscriptionDomainBean subscriptionDomainBean = ServiceUtils.getSubscriptionDomain(getConfigContext(), cartridgeType, subscriptionAlias, domainName);
if(subscriptionDomainBean.domainName == null){
return Response.status(Response.Status.NOT_FOUND).build();
@@@ -1119,11 -1106,17 +1146,11 @@@
}
Cartridge subscription = ServiceUtils.getSubscription(subscriptionAlias, getConfigContext());
String lbClusterId = subscription.getLbClusterId();
- if(log.isDebugEnabled()) {
+ if (log.isDebugEnabled()) {
log.debug(String.format("Load balancer cluster-id found: %s", lbClusterId));
}
- if(StringUtils.isNotBlank(lbClusterId)) {
+ if (StringUtils.isNotBlank(lbClusterId)) {
- Cluster lbCluster = getCluster(lbClusterId);
- if (lbCluster != null) {
- if (log.isDebugEnabled()) {
- log.debug(String.format("Load balancer cluster found: %s", lbCluster.toString()));
- }
- Response.ok().entity(lbCluster).build();
- }
+ Response.fromResponse(getCluster(lbClusterId));
}
return Response.status(Response.Status.NOT_FOUND).build();
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/components/org.apache.stratos.rest.endpoint/src/main/webapp/stratos-test/WEB-INF/cxf-servlet.xml
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.rest.endpoint/src/main/webapp/stratos-test/WEB-INF/cxf-servlet.xml
index 2eae5ed,f8b8750..7c9e7fd
--- a/components/org.apache.stratos.rest.endpoint/src/main/webapp/stratos-test/WEB-INF/cxf-servlet.xml
+++ b/components/org.apache.stratos.rest.endpoint/src/main/webapp/stratos-test/WEB-INF/cxf-servlet.xml
@@@ -33,10 -31,11 +33,15 @@@
</jaxrs:serviceBeans>
<jaxrs:providers>
+ <ref bean="throwableExceptionHandler"/>
+ <ref bean="genericExceptionHandler"/>
+ <ref bean="badRequestExceptionHandler"/>
+ <ref bean="jsonProvider"/>
+ <ref bean="throwableExceptionHandler"/>
+ <bean class="org.apache.cxf.jaxrs.provider.json.JSONProvider">
+ <property name="dropRootElement" value="true"/>
+ <property name="supportUnwrapped" value="true"/>
+ </bean>>
<ref bean="exceptionHandler"/>
</jaxrs:providers>
</jaxrs:server>
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/dependencies/pom.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/extensions/load-balancer/haproxy-extension/README.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/extensions/load-balancer/haproxy-extension/src/main/license/LICENSE
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/features/cloud-controller/org.apache.stratos.cloud.controller.feature/pom.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/pom.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/products/cartridge-agent/modules/distribution/src/main/extensions/subscription-domain-added.sh
----------------------------------------------------------------------
diff --cc products/cartridge-agent/modules/distribution/src/main/extensions/subscription-domain-added.sh
index 0ae36f5,f78a5db..9deefab
--- a/products/cartridge-agent/modules/distribution/src/main/extensions/subscription-domain-added.sh
+++ b/products/cartridge-agent/modules/distribution/src/main/extensions/subscription-domain-added.sh
@@@ -25,4 -25,13 +25,15 @@@
#
log=/var/log/apache-stratos/cartridge-agent-extensions.log
- echo "Subscription domain added: [tenant-id] $1 [tenant-domain] $2 [domain-name] $3 [application-context] $4" | tee -a $log
++
++echo "Subscription domain added: [tenant-id] $1 [tenant-domain] $2 [domain-name] $3 [application-context] $4" | tee -a $log
+ OUTPUT=`date`": Subscription Domain Added Event"
+ OUTPUT="$OUTPUT STRATOS_SUBSCRIPTION_SERVICE_NAME: ${STRATOS_SUBSCRIPTION_SERVICE_NAME},"
+ OUTPUT="$OUTPUT STRATOS_SUBSCRIPTION_DOMAIN_NAME: ${STRATOS_SUBSCRIPTION_DOMAIN_NAME},"
+ OUTPUT="$OUTPUT STRATOS_SUBSCRIPTION_TENANT_ID: ${STRATOS_SUBSCRIPTION_TENANT_ID},"
+ OUTPUT="$OUTPUT STRATOS_SUBSCRIPTION_TENANT_DOMAIN: $STRATOS_SUBSCRIPTION_TENANT_DOMAIN},"
+ OUTPUT="$OUTPUT APP_PATH: ${APP_PATH},"
+ OUTPUT="$OUTPUT STRATOS_SUBSCRIPTION_APPLICATION_CONTEXT: ${STRATOS_SUBSCRIPTION_APPLICATION_CONTEXT}"
+ echo $OUTPUT | tee -a $log
+
+ curl -k -v -X POST -H "Content-Type:application/soap+xml;charset=UTF-8;action=urn:addWebAppToHost" -d "<?xml version=\"1.0\" encoding=\"UTF-8\"?><s:Envelope xmlns:s=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:wsa=\"http://www.w3.org/2005/08/addressing\"><s:Body><p:addWebAppToHost xmlns:p=\"http://mapper.url.carbon.wso2.org\"><xs:hostName xmlns:xs=\"http://mapper.url.carbon.wso2.org\">$STRATOS_SUBSCRIPTION_DOMAIN_NAME</xs:hostName><xs:uri xmlns:xs=\"http://mapper.url.carbon.wso2.org\">/t/$STRATOS_SUBSCRIPTION_TENANT_DOMAIN/webapps/$STRATOS_SUBSCRIPTION_APPLICATION_CONTEXT/</xs:uri><xs:appType xmlns:xs=\"http://mapper.url.carbon.wso2.org\">webapp</xs:appType></p:addWebAppToHost></s:Body></s:Envelope>" https://localhost:9443/services/UrlMapperAdminService -u admin:admin
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/products/cartridge-agent/modules/distribution/src/main/extensions/subscription-domain-removed.sh
----------------------------------------------------------------------
diff --cc products/cartridge-agent/modules/distribution/src/main/extensions/subscription-domain-removed.sh
index 76480bc,b007044..f74a725
--- a/products/cartridge-agent/modules/distribution/src/main/extensions/subscription-domain-removed.sh
+++ b/products/cartridge-agent/modules/distribution/src/main/extensions/subscription-domain-removed.sh
@@@ -25,4 -25,12 +25,13 @@@
#
log=/var/log/apache-stratos/cartridge-agent-extensions.log
- echo "Subscription domain added: [tenant-id] $1 [tenant-domain] $2 [domain-name] $3" | tee -a $log
+ OUTPUT=`date`": Subscription Domain Removed Event"
+ OUTPUT="$OUTPUT STRATOS_SUBSCRIPTION_SERVICE_NAME: ${STRATOS_SUBSCRIPTION_SERVICE_NAME},"
+ OUTPUT="$OUTPUT STRATOS_SUBSCRIPTION_DOMAIN_NAME: ${STRATOS_SUBSCRIPTION_DOMAIN_NAME},"
+ OUTPUT="$OUTPUT STRATOS_SUBSCRIPTION_TENANT_ID: ${STRATOS_SUBSCRIPTION_TENANT_ID},"
+ OUTPUT="$OUTPUT APP_PATH: ${APP_PATH},"
+ OUTPUT="$OUTPUT STRATOS_SUBSCRIPTION_TENANT_DOMAIN: $STRATOS_SUBSCRIPTION_TENANT_DOMAIN}"
+ echo $OUTPUT | tee -a $log
+
+ curl -k -v -X POST -H "Content-Type:application/soap+xml;charset=UTF-8;action=urn:deleteHost" -d "<?xml version=\"1.0\" encoding=\"UTF-8\"?><s:Envelope xmlns:s=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:wsa=\"http://www.w3.org/2005/08/addressing\"><s:Body><p:deleteHost xmlns:p=\"http://mapper.url.carbon.wso2.org\"><xs:hostName xmlns:xs=\"http://mapper.url.carbon.wso2.org\">$STRATOS_SUBSCRIPTION_DOMAIN_NAME</xs:hostName></p:deleteHost></s:Body></s:Envelope>" https://localhost:9443/services/UrlMapperAdminService -u admin:admin
++
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/products/stratos-cli/distribution/README.txt
----------------------------------------------------------------------
diff --cc products/stratos-cli/distribution/README.txt
index 0000000,6829586..3e28a6f
mode 000000,100755..100755
--- a/products/stratos-cli/distribution/README.txt
+++ b/products/stratos-cli/distribution/README.txt
@@@ -1,0 -1,72 +1,71 @@@
+ ================================================================================
+ Apache Stratos CLI
+ ================================================================================
+
+ Welcome to the Apache Stratos CLI.
+
+ The command line interface (CLI) is a powerful tool that clients can use
+ to communicate with Stratos services. The CLI distribution only includes one
+ jar file containing all dependent java libraries.
+
+ The tenant can use the CLI tool on two separate modes if needed, which
+ are namely single command line mode and interactive mode.
+
+ If the user executes with a command as an argument, the CLI tool
+ will execute that command and exit with a status code.
+
+ However, if there is no command as an argument, the CLI tool will
+ enter into an interactive mode.
+
+ A user will be able to carryout all the following functions via the
+ CLI, with the exception of registering tenants and viewing logs.
+
+ The CLI tool also supports command history and auto-completing features
+ in the interactive mode.
+
+ Help
+ ==================================
+ usage: stratos [-debug] [-h] [-p <password>] [-trace] [-u <username>]
+ -debug Enable debug logging
+ -h,--help Display this help
+ -p,--password <password> Password
+ -trace Enable trace logging
+ -u,--username <username> Username
+
+
+ Available Commands:
+ create-tenant Add new tenant
+ list-autoscale-policies List available autoscale policies
+ subscribe-cartridge Subscribe to a cartridge
+ exit Exit from Stratos Client Tool
+ list-available-cartridges List available cartridges
+ help Help for commands
+ list-available-partitions List available partitions
+ deploy-cartridge Add new cartridge deployment
+ unsubscribe-cartridge Unsubscribe from a subscribed cartridge
+ list-subscribe-cartridges List subscribed cartridges with details
+ deploy-partition Add new partition deployment
+ deploy-autoscaling-policy Add new autoscaling policy deployment
+ deploy-deployment-policy Add new deployment policy
+
+
+ Support
+ ==================================
+
+ Any problem with this release can be reported to Apache Stratos mailing list
+ or in the JIRA issue tracker. If you are sending an email to the mailing
+ list make sure to add the [Apache Stratos] prefix to the subject.
+
+ Mailing list subscription:
+ dev-subscribe@stratos.apache.org
+
+
+ Issue Tracker
+ ==================================
+
+ Jira:
+ https://issues.apache.org/jira/browse/stratos
+
+
+ Thank you for using Apache Stratos!
-The Stratos Team
-
++The Stratos Team
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/products/stratos/modules/distribution/src/main/conf/autoscaler.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/products/stratos/modules/distribution/src/main/conf/scaling.drl
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/service-stubs/org.apache.stratos.autoscaler.service.stub/pom.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/d43e6be8/service-stubs/org.apache.stratos.cloud.controller.service.stub/pom.xml
----------------------------------------------------------------------
diff --cc service-stubs/org.apache.stratos.cloud.controller.service.stub/pom.xml
index 8340d6d,b3fadd7..12e68bb
--- a/service-stubs/org.apache.stratos.cloud.controller.service.stub/pom.xml
+++ b/service-stubs/org.apache.stratos.cloud.controller.service.stub/pom.xml
@@@ -30,7 -30,7 +30,6 @@@
<packaging>bundle</packaging>
<name>Apache Stratos - Cloud Controller Service Stub</name>
<url>http://apache.org</url>
--
<build>
<plugins>