From 513a19697b4ae311b6e9164b9cecd3a77cecb874 Mon Sep 17 00:00:00 2001 From: Chamila de Alwis Date: Tue, 20 Jan 2015 01:42:00 +0530 Subject: [PATCH 1/4] Add APPLICATION_PATH to agent conf file and set it via the puppet module --- .../cartridgeagent/cartridgeagent/agent.conf | 1 + .../artifactmgt/git/agentgithandler.py | 2 ++ .../python_agent/templates/agent.conf.erb | 21 ++++++++++++++++--- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/agent.conf b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/agent.conf index f611ccad19..1e1f764e25 100644 --- a/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/agent.conf +++ b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/agent.conf @@ -38,6 +38,7 @@ monitoring.server.secure.port =MONITORING-SERVER-SECURE-PORT monitoring.server.admin.username =MONITORING-SERVER-ADMIN-USERNAME monitoring.server.admin.password =MONITORING-SERVER-ADMIN-PASSWORD log.file.paths =LOG_FILE_PATHS +APPLICATION_PATH =APPLICATION_PATH super.tenant.repository.path =/repository/deployment/server/ tenant.repository.path =/repository/tenants/ extension.instance.started =instance-started.sh diff --git a/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/artifactmgt/git/agentgithandler.py b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/artifactmgt/git/agentgithandler.py index a6b23dc5b8..7602c025b9 100644 --- a/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/artifactmgt/git/agentgithandler.py +++ b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/artifactmgt/git/agentgithandler.py @@ -82,6 +82,7 @@ def checkout(repo_info): else: #not empty if AgentGitHandler.sync_initial_local_artifacts(repo_context): + AgentGitHandler.log.debug("Cloning in to a directory which is not empty.") AgentGitHandler.log.debug("Executing git pull: [tenant-id] %s [repo-url] %s", repo_info.tenant_id, repo_info.repo_url) AgentGitHandler.pull(repo_context) AgentGitHandler.log.debug("Git pull executed: [tenant-id] %s [repo-url] %s", repo_info.tenant_id, repo_info.repo_url) @@ -89,6 +90,7 @@ def checkout(repo_info): repo_context = None else: #subscribing run.. need to clone + AgentGitHandler.log.debug("Cloning artifacts from %s for the first time", repo_info.repo_url) subscribe_run = True AgentGitHandler.log.debug("Executing git clone: [tenant-id] %s [repo-url] %s", repo_info.tenant_id, repo_info.repo_url) repo_context = AgentGitHandler.clone(repo_info) diff --git a/tools/puppet3/modules/python_agent/templates/agent.conf.erb b/tools/puppet3/modules/python_agent/templates/agent.conf.erb index bd866a9e4f..46966487e4 100644 --- a/tools/puppet3/modules/python_agent/templates/agent.conf.erb +++ b/tools/puppet3/modules/python_agent/templates/agent.conf.erb @@ -1,3 +1,20 @@ +# 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. + [agent] mb.ip =<%= @mb_ip %> mb.port =<%= @mb_port %> @@ -6,8 +23,6 @@ thrift.receiver.ip =<%= @cep_ip %> thrift.receiver.port =<%= @cep_port %> thrift.server.admin.username =<%= @cep_username %> thrift.server.admin.password =<%= @cep_password %> -param.file.path =<%= @agent_home %>/payload/launch-params -extensions.dir =<%= @agent_home %>/extensions cep.stats.publisher.enabled =true lb.private.ip = lb.public.ip = @@ -23,7 +38,7 @@ monitoring.server.secure.port =<%= @bam_secure_port %> monitoring.server.admin.username =<%= @bam_username %> monitoring.server.admin.password =<%= @bam_password %> log.file.paths =LOG_FILE_PATHS -APP_PATH =<%= @docroot %> +APPLICATION_PATH =<%= @docroot %> super.tenant.repository.path =/repository/deployment/server/ tenant.repository.path =/repository/tenants/ extension.instance.started =instance-started.sh From 2ce32c58dc22b08c179bb3b5ce7405565351da75 Mon Sep 17 00:00:00 2001 From: Chamila de Alwis Date: Tue, 20 Jan 2015 17:46:29 +0530 Subject: [PATCH 2/4] Removed APPLICATION_PATH from the basic payload --- .../autoscaler/applications/payload/BasicPayloadData.java | 4 ++-- .../base-image/files/populate-user-data.sh | 2 +- .../cartridge-docker-images/base-image/files/run | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/payload/BasicPayloadData.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/payload/BasicPayloadData.java index 8b58e52682..33819ea2f1 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/payload/BasicPayloadData.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/payload/BasicPayloadData.java @@ -85,8 +85,8 @@ public void populatePayload () { payloadBuilder.append("CARTRIDGE_KEY=" + getSubscriptionKey()); payloadBuilder.append(","); payloadBuilder.append("DEPLOYMENT=" + AutoScalerConstants.PAYLOAD_DEPLOYMENT); - payloadBuilder.append(","); - payloadBuilder.append("APPLICATION_PATH=" + getApplicationPath()); +// payloadBuilder.append(","); +// payloadBuilder.append("APPLICATION_PATH=" + getApplicationPath()); payloadBuilder.append(","); payloadBuilder.append("REPO_URL=" + getGitRepositoryUrl()); payloadBuilder.append(","); diff --git a/tools/docker-images/cartridge-docker-images/base-image/files/populate-user-data.sh b/tools/docker-images/cartridge-docker-images/base-image/files/populate-user-data.sh index d8a9019560..a81c0dcb90 100755 --- a/tools/docker-images/cartridge-docker-images/base-image/files/populate-user-data.sh +++ b/tools/docker-images/cartridge-docker-images/base-image/files/populate-user-data.sh @@ -22,4 +22,4 @@ # Persists the payload parameters by storing the environment variables in the launch-params file -echo "APPLICATION_ID=${APPLICATION_ID},SERVICE_NAME=${SERVICE_NAME},HOST_NAME=${HOST_NAME},MULTITENANT=false,TENANT_ID=${TENANT_ID},TENANT_RANGE=*,CARTRIDGE_ALIAS=${CARTRIDGE_ALIAS},CLUSTER_ID=${CLUSTER_ID},CLUSTER_INSTANCE_ID=${CLUSTER_INSTANCE_ID},CARTRIDGE_KEY=${CARTRIDGE_KEY},DEPLOYMENT=${DEPLOYMENT},REPO_URL=${REPO_URL},PORTS=${PORTS},PUPPET_IP=${PUPPET_IP},PUPPET_HOSTNAME=${PUPPET_HOSTNAME},PUPPET_ENV=${PUPPET_ENV},MEMBER_ID=${MEMBER_ID},LB_CLUSTER_ID=${LB_CLUSTER_ID},NETWORK_PARTITION_ID=${NETWORK_PARTITION_ID},PARTITION_ID=${PARTITION_ID},APPLICATION_PATH=${APPLICATION_PATH},MIN_COUNT=${MIN_COUNT},INTERNAL=${INTERNAL},CLUSTERING_PRIMARY_KEY=${CLUSTERING_PRIMARY_KEY}" >> /mnt/apache-stratos-python-cartridge-agent-4.1.0-SNAPSHOT/payload/launch-params +echo "APPLICATION_ID=${APPLICATION_ID},SERVICE_NAME=${SERVICE_NAME},HOST_NAME=${HOST_NAME},MULTITENANT=false,TENANT_ID=${TENANT_ID},TENANT_RANGE=*,CARTRIDGE_ALIAS=${CARTRIDGE_ALIAS},CLUSTER_ID=${CLUSTER_ID},CLUSTER_INSTANCE_ID=${CLUSTER_INSTANCE_ID},CARTRIDGE_KEY=${CARTRIDGE_KEY},DEPLOYMENT=${DEPLOYMENT},REPO_URL=${REPO_URL},PORTS=${PORTS},PUPPET_IP=${PUPPET_IP},PUPPET_HOSTNAME=${PUPPET_HOSTNAME},PUPPET_ENV=${PUPPET_ENV},MEMBER_ID=${MEMBER_ID},LB_CLUSTER_ID=${LB_CLUSTER_ID},NETWORK_PARTITION_ID=${NETWORK_PARTITION_ID},PARTITION_ID=${PARTITION_ID},MIN_COUNT=${MIN_COUNT},INTERNAL=${INTERNAL},CLUSTERING_PRIMARY_KEY=${CLUSTERING_PRIMARY_KEY}" >> /mnt/apache-stratos-python-cartridge-agent-4.1.0-SNAPSHOT/payload/launch-params diff --git a/tools/docker-images/cartridge-docker-images/base-image/files/run b/tools/docker-images/cartridge-docker-images/base-image/files/run index d99fff9396..513e6e7eb7 100755 --- a/tools/docker-images/cartridge-docker-images/base-image/files/run +++ b/tools/docker-images/cartridge-docker-images/base-image/files/run @@ -159,10 +159,10 @@ else sed -i "s#LOG_FILE_PATHS#${LOG_FILE_PATHS}#g" /mnt/apache-stratos-python-cartridge-agent-4.1.0-SNAPSHOT/agent.conf fi -if [ -z "${APP_PATH}" ]; then - sed -i "s/APP-PATH/ /g" /mnt/apache-stratos-python-cartridge-agent-4.1.0-SNAPSHOT/agent.conf +if [ -z "${APPLICATION_PATH}" ]; then + sed -i "s/APPLICATION_PATH/ /g" /mnt/apache-stratos-python-cartridge-agent-4.1.0-SNAPSHOT/agent.conf else - sed -i "s#APP-PATH#${APP_PATH}#g" /mnt/apache-stratos-python-cartridge-agent-4.1.0-SNAPSHOT/agent.conf + sed -i "s#APPLICATION_PATH#${APPLICATION_PATH}#g" /mnt/apache-stratos-python-cartridge-agent-4.1.0-SNAPSHOT/agent.conf fi if [ -z "${LOG_LEVEL}" ]; then From a3ce9aa6d287cbe508b4480c50a9e28e1b13b7f6 Mon Sep 17 00:00:00 2001 From: Chamila de Alwis Date: Wed, 21 Jan 2015 07:56:33 +0530 Subject: [PATCH 3/4] APPLICATION_PATH only included in the basic payload on non null values, to accommadate Container workflow. --- .../autoscaler/applications/payload/BasicPayloadData.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/payload/BasicPayloadData.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/payload/BasicPayloadData.java index 33819ea2f1..1787e3b614 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/payload/BasicPayloadData.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/payload/BasicPayloadData.java @@ -85,8 +85,10 @@ public void populatePayload () { payloadBuilder.append("CARTRIDGE_KEY=" + getSubscriptionKey()); payloadBuilder.append(","); payloadBuilder.append("DEPLOYMENT=" + AutoScalerConstants.PAYLOAD_DEPLOYMENT); -// payloadBuilder.append(","); -// payloadBuilder.append("APPLICATION_PATH=" + getApplicationPath()); + if (getApplicationPath() != null) { + payloadBuilder.append(","); + payloadBuilder.append("APPLICATION_PATH=" + getApplicationPath()); + } payloadBuilder.append(","); payloadBuilder.append("REPO_URL=" + getGitRepositoryUrl()); payloadBuilder.append(","); From d2e4e8e6fb362becdb38bbe6d04c84353cc43361 Mon Sep 17 00:00:00 2001 From: Chamila de Alwis Date: Wed, 21 Jan 2015 11:14:21 +0530 Subject: [PATCH 4/4] StringUtils.isNotEmpty() instead of !=null --- .../autoscaler/applications/payload/BasicPayloadData.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/payload/BasicPayloadData.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/payload/BasicPayloadData.java index 1787e3b614..12a17fbf09 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/payload/BasicPayloadData.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/payload/BasicPayloadData.java @@ -19,6 +19,7 @@ package org.apache.stratos.autoscaler.applications.payload; +import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.autoscaler.util.AutoScalerConstants; @@ -85,7 +86,7 @@ public void populatePayload () { payloadBuilder.append("CARTRIDGE_KEY=" + getSubscriptionKey()); payloadBuilder.append(","); payloadBuilder.append("DEPLOYMENT=" + AutoScalerConstants.PAYLOAD_DEPLOYMENT); - if (getApplicationPath() != null) { + if (StringUtils.isNotEmpty(getApplicationPath())) { payloadBuilder.append(","); payloadBuilder.append("APPLICATION_PATH=" + getApplicationPath()); }