diff --git a/apps/assets/models/node.py b/apps/assets/models/node.py
index 3d5c50997..af4ffd839 100644
--- a/apps/assets/models/node.py
+++ b/apps/assets/models/node.py
@@ -203,17 +203,14 @@ class Node(OrgModelMixin):
# 如果使用current_org 在set_current_org时会死循环
_current_org = get_current_org()
with transaction.atomic():
- if _current_org.is_root():
- key = '0'
- elif _current_org.is_default():
- key = '1'
- else:
- set_current_org(Organization.root())
- org_nodes_roots = cls.objects.filter(key__regex=r'^[0-9]+$')
- org_nodes_roots_keys = org_nodes_roots.values_list('key', flat=True) or ['1']
- key = max([int(k) for k in org_nodes_roots_keys])
- key = str(key + 1) if key != 0 else '2'
- set_current_org(_current_org)
+ if not _current_org.is_real():
+ return cls.default_node()
+ set_current_org(Organization.root())
+ org_nodes_roots = cls.objects.filter(key__regex=r'^[0-9]+$')
+ org_nodes_roots_keys = org_nodes_roots.values_list('key', flat=True) or ['1']
+ key = max([int(k) for k in org_nodes_roots_keys])
+ key = str(key + 1) if key != 0 else '2'
+ set_current_org(_current_org)
root = cls.objects.create(key=key, value=_current_org.name)
return root
diff --git a/apps/assets/templates/assets/label_create_update.html b/apps/assets/templates/assets/label_create_update.html
index 0ff094e69..47de64df4 100644
--- a/apps/assets/templates/assets/label_create_update.html
+++ b/apps/assets/templates/assets/label_create_update.html
@@ -35,7 +35,7 @@ $(document).ready(function () {
})
.on('click', '#btn_asset_modal_confirm', function () {
var assets = asset_table2.selected;
- $('.select2').val(assets).trigger('change');
+ $('#id_assets').val(assets).trigger('change');
$("#asset_list_modal").modal('hide');
})
diff --git a/apps/ops/ansible/callback.py b/apps/ops/ansible/callback.py
index 8583b368e..f3e60a458 100644
--- a/apps/ops/ansible/callback.py
+++ b/apps/ops/ansible/callback.py
@@ -1,6 +1,7 @@
# ~*~ coding: utf-8 ~*~
import datetime
+import json
from collections import defaultdict
from ansible import constants as C
@@ -163,6 +164,28 @@ class CommandResultCallback(AdHocResultCallback):
self._play = play
self._display.banner(msg)
+ def v2_runner_on_unreachable(self, result):
+ self.results_summary['success'] = False
+ self.gather_result("unreachable", result)
+ msg = result._result.get("msg")
+ if not msg:
+ msg = json.dumps(result._result, indent=4)
+ self._display.display("%s | FAILED! => \n%s" % (
+ result._host.get_name(),
+ msg,
+ ), color=C.COLOR_ERROR)
+
+ def v2_runner_on_failed(self, result, ignore_errors=False):
+ self.results_summary['success'] = False
+ self.gather_result("failed", result)
+ msg = result._result.get("msg") or result._result.get("module_stdout")
+ if not msg:
+ msg = json.dumps(result._result, indent=4)
+ self._display.display("%s | FAILED! => \n%s" % (
+ result._host.get_name(),
+ msg,
+ ), color=C.COLOR_ERROR)
+
def _print_task_banner(self, task):
pass
diff --git a/apps/ops/templates/ops/command_execution_create.html b/apps/ops/templates/ops/command_execution_create.html
index 7d1e49c32..9a0916153 100644
--- a/apps/ops/templates/ops/command_execution_create.html
+++ b/apps/ops/templates/ops/command_execution_create.html
@@ -11,6 +11,10 @@
+
+
+
+