summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfujinhua <fu.jinhua@zte.com.cn>2017-08-21 16:22:31 +0800
committerfujinhua <fu.jinhua@zte.com.cn>2017-08-21 16:22:31 +0800
commit8cbcd37037db63c7962f8c4644aa23accd5ffd72 (patch)
treecf9203bf741f560a526ed0d15b8062797fdd210d
parentf6f438a1e6e2ed4215941672d2709ffcbd3c0b21 (diff)
Add deploy workflow when startup
Change-Id: Idcae0c2e439de7238eaa5f4f6afde0a6b448d48c Issue-Id: VFC-122 Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
-rw-r--r--lcm/pub/config/config.py3
-rw-r--r--lcm/settings.py1
-rw-r--r--lcm/urls.py6
-rw-r--r--lcm/workflows/auto_deploy.py38
4 files changed, 48 insertions, 0 deletions
diff --git a/lcm/pub/config/config.py b/lcm/pub/config/config.py
index 85ba24d8..f501d338 100644
--- a/lcm/pub/config/config.py
+++ b/lcm/pub/config/config.py
@@ -61,6 +61,9 @@ SDC_BASE_URL = "https://127.0.0.1:1234/api"
SDC_USER = "admin"
SDC_PASSWD = "admin"
+# [workflow]
+DEPLOY_WORKFLOW_WHEN_START = True
+
diff --git a/lcm/settings.py b/lcm/settings.py
index f338ac29..1cf13714 100644
--- a/lcm/settings.py
+++ b/lcm/settings.py
@@ -136,6 +136,7 @@ LOGGING = {
if 'test' in sys.argv:
config.REG_TO_MSB_WHEN_START = False
+ config.DEPLOY_WORKFLOW_WHEN_START = False
DATABASES = {}
DATABASES['default'] = {
'ENGINE': 'django.db.backends.sqlite3',
diff --git a/lcm/urls.py b/lcm/urls.py
index 9471def9..b0333513 100644
--- a/lcm/urls.py
+++ b/lcm/urls.py
@@ -14,6 +14,7 @@
from django.conf.urls import include, url
from lcm.pub.config.config import REG_TO_MSB_WHEN_START, REG_TO_MSB_REG_URL, REG_TO_MSB_REG_PARAM
+from lcm.pub.config.config import DEPLOY_WORKFLOW_WHEN_START
urlpatterns = [
url(r'^', include('lcm.samples.urls')),
@@ -31,3 +32,8 @@ if REG_TO_MSB_WHEN_START:
import json
from lcm.pub.utils.restcall import req_by_msb
req_by_msb(REG_TO_MSB_REG_URL, "POST", json.JSONEncoder().encode(REG_TO_MSB_REG_PARAM))
+
+# deploy workflow when startup
+if DEPLOY_WORKFLOW_WHEN_START:
+ from lcm.workflows import auto_deploy
+ auto_deploy.deploy_workflow_on_startup()
diff --git a/lcm/workflows/auto_deploy.py b/lcm/workflows/auto_deploy.py
new file mode 100644
index 00000000..8813542b
--- /dev/null
+++ b/lcm/workflows/auto_deploy.py
@@ -0,0 +1,38 @@
+# Copyright 2017 ZTE Corporation.
+#
+# Licensed 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.
+import logging
+import traceback
+
+from lcm.pub.database.models import WFPlanModel
+from lcm.pub.msapi import activiti
+
+logger = logging.getLogger(__name__)
+
+def deploy_workflow_on_startup():
+ try:
+ if WFPlanModel.objects.filter():
+ logger.warn("Workflow is already deployed.")
+ return
+ file_path = "TODO:"
+ deploy_info = activiti.deploy_workflow(file_path)
+ WFPlanModel(
+ deployed_id=deploy_info["deployedId"],
+ process_id=deploy_info["processId"],
+ status=deploy_info["status"],
+ message=deploy_info["message"],
+ plan_name="ns_instantiate").save()
+ logger.info("Deploy workflow successfully.")
+ except:
+ logger.error(traceback.format_exc())
+