You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2014/10/27 15:16:49 UTC

[45/50] [abbrv] git commit: Fixed issues in git artifact management Git clone Git pull

Fixed issues in git artifact management
	Git clone
	Git pull

Improved logging format
Removed duplicated parameter APP_PATH


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/514a7e38
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/514a7e38
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/514a7e38

Branch: refs/heads/master
Commit: 514a7e38dc5f559ac8024139dbb12ed721682366
Parents: 55e7ea0
Author: Chamila de Alwis <ch...@wso2.com>
Authored: Fri Oct 24 04:14:23 2014 +0530
Committer: Chamila de Alwis <ch...@wso2.com>
Committed: Fri Oct 24 04:14:23 2014 +0530

----------------------------------------------------------------------
 .../cartridgeagent/agent.conf                   |  1 -
 .../cartridgeagent/logging.ini                  |  2 +-
 .../modules/artifactmgt/git/agentgithandler.py  | 21 ++++++++++-----
 .../modules/event/instance/notifier/events.py   |  2 +-
 .../extensions/defaultextensionhandler.py       | 15 ++++++-----
 .../cartridgeagent/testgit.py                   | 27 ++++++++++++++++++++
 6 files changed, 52 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/514a7e38/tools/python_cartridgeagent/cartridgeagent/agent.conf
----------------------------------------------------------------------
diff --git a/tools/python_cartridgeagent/cartridgeagent/agent.conf b/tools/python_cartridgeagent/cartridgeagent/agent.conf
index dff3cd7..f3e2afb 100644
--- a/tools/python_cartridgeagent/cartridgeagent/agent.conf
+++ b/tools/python_cartridgeagent/cartridgeagent/agent.conf
@@ -40,7 +40,6 @@ 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
-APP_PATH                              =APP-PATH
 super.tenant.repository.path          =/repository/deployment/server/
 tenant.repository.path                =/repository/tenants/
 extension.instance.started            =instance-started.sh

http://git-wip-us.apache.org/repos/asf/stratos/blob/514a7e38/tools/python_cartridgeagent/cartridgeagent/logging.ini
----------------------------------------------------------------------
diff --git a/tools/python_cartridgeagent/cartridgeagent/logging.ini b/tools/python_cartridgeagent/cartridgeagent/logging.ini
index 3e49a96..d71b541 100644
--- a/tools/python_cartridgeagent/cartridgeagent/logging.ini
+++ b/tools/python_cartridgeagent/cartridgeagent/logging.ini
@@ -20,7 +20,7 @@
 keys=default
 
 [formatter_default]
-format=%(asctime)s:%(levelname)s:%(message)s
+format=[%(asctime)s] %(levelname)s {%(filename)s:%(funcName)s} - %(message)s
 class=logging.Formatter
 
 [handlers]

http://git-wip-us.apache.org/repos/asf/stratos/blob/514a7e38/tools/python_cartridgeagent/cartridgeagent/modules/artifactmgt/git/agentgithandler.py
----------------------------------------------------------------------
diff --git a/tools/python_cartridgeagent/cartridgeagent/modules/artifactmgt/git/agentgithandler.py b/tools/python_cartridgeagent/cartridgeagent/modules/artifactmgt/git/agentgithandler.py
index 6da9c58..d6381a0 100644
--- a/tools/python_cartridgeagent/cartridgeagent/modules/artifactmgt/git/agentgithandler.py
+++ b/tools/python_cartridgeagent/cartridgeagent/modules/artifactmgt/git/agentgithandler.py
@@ -19,6 +19,7 @@ from threading import current_thread, Thread
 from git import *
 from gittle import Gittle, GittleAuth  # GitPython and Gittle are both used at the time being for pros and cons of both
 import urllib2
+import os
 
 from ... util.log import LogFactory
 from ... util import cartridgeagentutils, extensionutils, cartridgeagentconstants
@@ -27,6 +28,7 @@ from ... config import cartridgeagentconfiguration
 from ... util.asyncscheduledtask import AbstractAsyncScheduledTask, ScheduledExecutor
 from ... artifactmgt.repositoryinformation import RepositoryInformation
 
+
 class AgentGitHandler:
     """
     Handles all the git artifact management tasks related to a cartridge
@@ -81,7 +83,7 @@ class AgentGitHandler:
         else:
             #subscribing run.. need to clone
             subscribe_run = True
-            repo_context = AgentGitHandler.clone(repo_context)
+            repo_context = AgentGitHandler.clone(repo_info)
 
         return subscribe_run, repo_context
 
@@ -133,13 +135,15 @@ class AgentGitHandler:
     @staticmethod
     def pull(repo_context):
         repo = Repo(repo_context.local_repo_path)
-        from ....agent import CartridgeAgent
-        AgentGitHandler.extension_handler = CartridgeAgent.extension_handler
+        import agent
+        AgentGitHandler.extension_handler = agent.CartridgeAgent.extension_handler
         try:
             repo.git.checkout("master")
             pull_output = repo.git.pull()
             if "Already up-to-date." not in pull_output:
                 AgentGitHandler.log.debug("Artifacts were updated as a result of the pull operation, thread: %r - %r" % (current_thread().getName(), current_thread().ident))
+            else:
+                AgentGitHandler.log.debug("Pull operation: Already up-to-date, thread: %r - %r" % (current_thread().getName(), current_thread().ident))
 
             AgentGitHandler.extension_handler.on_artifact_update_scheduler_event(repo_context.tenant_id)
         except GitCommandError as ex:
@@ -235,9 +239,10 @@ class AgentGitHandler:
         :rtype: GittleAuth
         """
         if repo_context.key_based_auth:
-            pkey = AgentGitHandler.get_private_key()
-            auth = GittleAuth(pkey=pkey)
-        elif repo_context.repo_username.strip() != "" and repo_context.repo_password.strip() != "":
+            private_key = AgentGitHandler.get_private_key()
+            auth = GittleAuth(pkey=private_key)
+        elif repo_context.repo_username is not None and repo_context.repo_username.strip() != "" and \
+                        repo_context.repo_password is not None and repo_context.repo_password.strip() != "":
             auth = GittleAuth(username=repo_context.repo_username, password=repo_context.repo_password)
         else:
             auth = None
@@ -349,7 +354,7 @@ class AgentGitHandler:
                 #"app_path"
                 repo_path += git_local_repo_path
 
-                if super_tenant_repo_path is not None  and super_tenant_repo_path != "":
+                if super_tenant_repo_path is not None and super_tenant_repo_path != "":
                     super_tenant_repo_path = super_tenant_repo_path if super_tenant_repo_path.startswith("/") else "/" + super_tenant_repo_path
                     super_tenant_repo_path = super_tenant_repo_path if super_tenant_repo_path.endswith("/") else  super_tenant_repo_path + "/"
                     #"app_path/repository/deploy/server/"
@@ -495,9 +500,11 @@ class ArtifactUpdateTask(AbstractAsyncScheduledTask):
     def execute_task(self):
         try:
             if self.auto_checkout:
+                self.log.debug("Running checkout job")
                 AgentGitHandler.checkout(self.repo_info)
         except:
             self.log.exception("Auto checkout task failed")
 
         if self.auto_commit:
+            self.log.debug("Running commit job")
             AgentGitHandler.commit(self.repo_info)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/514a7e38/tools/python_cartridgeagent/cartridgeagent/modules/event/instance/notifier/events.py
----------------------------------------------------------------------
diff --git a/tools/python_cartridgeagent/cartridgeagent/modules/event/instance/notifier/events.py b/tools/python_cartridgeagent/cartridgeagent/modules/event/instance/notifier/events.py
index 024e1e4..eb7be55 100644
--- a/tools/python_cartridgeagent/cartridgeagent/modules/event/instance/notifier/events.py
+++ b/tools/python_cartridgeagent/cartridgeagent/modules/event/instance/notifier/events.py
@@ -45,7 +45,7 @@ class ArtifactUpdatedEvent:
         instance.repo_username = json_obj["repoUserName"] if "repoUserName" in json_obj else None
         instance.repo_password = json_obj["repoPassword"] if "repoPassword" in json_obj else None
         instance.tenant_id = json_obj["tenantId"] if "tenantId" in json_obj else None
-        instance.repo_url = json_obj["repoUrl"] if "repoUrl" in json_obj else ""
+        instance.repo_url = json_obj["repoURL"] if "repoURL" in json_obj else ""
         instance.commit_enabled = json_obj["commitEnabled"] if "commitEnabled" in json_obj else None
 
         return instance

http://git-wip-us.apache.org/repos/asf/stratos/blob/514a7e38/tools/python_cartridgeagent/cartridgeagent/modules/extensions/defaultextensionhandler.py
----------------------------------------------------------------------
diff --git a/tools/python_cartridgeagent/cartridgeagent/modules/extensions/defaultextensionhandler.py b/tools/python_cartridgeagent/cartridgeagent/modules/extensions/defaultextensionhandler.py
index 8a7ccc0..07107da 100644
--- a/tools/python_cartridgeagent/cartridgeagent/modules/extensions/defaultextensionhandler.py
+++ b/tools/python_cartridgeagent/cartridgeagent/modules/extensions/defaultextensionhandler.py
@@ -99,7 +99,7 @@ class DefaultExtensionHandler(AbstractExtensionHandler):
                 auto_checkout = self.cartridge_agent_config.is_checkout_enabled
 
                 try:
-                    update_interval = len(
+                    update_interval = int(
                         self.cartridge_agent_config.read_property(cartridgeagentconstants.ARTIFACT_UPDATE_INTERVAL, False))
                 except ParameterNotFoundException:
                     self.log.exception("Invalid artifact sync interval specified ")
@@ -110,14 +110,17 @@ class DefaultExtensionHandler(AbstractExtensionHandler):
 
                 self.log.info("Artifact updating task enabled, update interval: %r seconds" % update_interval)
 
-                self.log.info("Auto Commit is turned %r " % "on" if auto_commit else "off")
-                self.log.info("Auto Checkout is turned %r " % "on" if auto_checkout else "off")
+                self.log.info("Auto Commit is turned %r " % ("on" if auto_commit else "off"))
+                self.log.info("Auto Checkout is turned %r " % ("on" if auto_checkout else "off"))
 
-                agentgithandler.AgentGitHandler.schedule_artifact_update_scheduled_task(repo_info, auto_checkout, auto_commit,
-                                                                        update_interval)
+                agentgithandler.AgentGitHandler.schedule_artifact_update_scheduled_task(
+                    repo_info,
+                    auto_checkout,
+                    auto_commit,
+                    update_interval)
 
     def on_artifact_update_scheduler_event(self, tenant_id):
-        env_params = {"STRATOS_ARTIFACT_UPDATED_TENANT_ID": tenant_id, "STRATOS_ARTIFACT_UPDATED_SCHEDULER": True}
+        env_params = {"STRATOS_ARTIFACT_UPDATED_TENANT_ID": str(tenant_id), "STRATOS_ARTIFACT_UPDATED_SCHEDULER": str(True)}
 
         extensionutils.execute_artifacts_updated_extension(env_params)
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/514a7e38/tools/python_cartridgeagent/cartridgeagent/testgit.py
----------------------------------------------------------------------
diff --git a/tools/python_cartridgeagent/cartridgeagent/testgit.py b/tools/python_cartridgeagent/cartridgeagent/testgit.py
new file mode 100644
index 0000000..c683b56
--- /dev/null
+++ b/tools/python_cartridgeagent/cartridgeagent/testgit.py
@@ -0,0 +1,27 @@
+# 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.
+
+
+from modules.extensions.defaultextensionhandler import *
+from modules.event.instance.notifier.events import ArtifactUpdatedEvent
+
+event_msg = '{"clusterId":"php.php.domain","repoPassword":"","repoURL":"https://github.com/chamilad/NeWoice","tenantId":"-1234","commitEnabled":false}'
+event = ArtifactUpdatedEvent.create_from_json(event_msg)
+
+extension_handler = DefaultExtensionHandler()
+extension_handler.on_artifact_updated_event(event)
+