From 739932b00521a4b0cbab62cfd837e38d4775c676 Mon Sep 17 00:00:00 2001 From: ibuler Date: Thu, 12 Apr 2018 18:50:43 +0800 Subject: [PATCH] =?UTF-8?q?[Update]=20=E6=9B=B4=E6=96=B0=E8=B5=84=E4=BA=A7?= =?UTF-8?q?=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/assets/tasks.py | 3 +++ apps/assets/views/asset.py | 18 ++++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/apps/assets/tasks.py b/apps/assets/tasks.py index 381e1a4cf..dd660bc42 100644 --- a/apps/assets/tasks.py +++ b/apps/assets/tasks.py @@ -96,6 +96,9 @@ def update_assets_hardware_info_util(assets, task_name=None): task_name = _("更新资产硬件信息") tasks = const.UPDATE_ASSETS_HARDWARE_TASKS hostname_list = [asset.hostname for asset in assets if asset.is_active and asset.is_unixlike()] + if not hostname_list: + logger.info("Not hosts get, may be asset is not active or not unixlike platform") + return {} task, created = update_or_create_ansible_task( task_name, hosts=hostname_list, tasks=tasks, pattern='all', options=const.TASK_OPTIONS, run_as_admin=True, created_by='System', diff --git a/apps/assets/views/asset.py b/apps/assets/views/asset.py index 953f3c8ac..956228f89 100644 --- a/apps/assets/views/asset.py +++ b/apps/assets/views/asset.py @@ -284,24 +284,26 @@ class BulkImportAssetView(AdminUserRequiredMixin, JSONResponseMixin, FormView): if set(row) == {''}: continue - asset_dict = dict(zip(attr, row)) - id_ = asset_dict.pop('id', 0) - for k, v in asset_dict.items(): + asset_dict_raw = dict(zip(attr, row)) + asset_dict = dict() + for k, v in asset_dict_raw.items(): v = v.strip() if k == 'is_active': - v = True if v in ['TRUE', 1, 'true'] else False + v = False if v in ['False', 0, 'false'] else True elif k == 'admin_user': v = get_object_or_none(AdminUser, name=v) elif k in ['port', 'cpu_count', 'cpu_cores']: try: v = int(v) except ValueError: - v = 0 + v = '' elif k == 'domain': v = get_object_or_none(Domain, name=v) - asset_dict[k] = v - asset = get_object_or_none(Asset, id=id_) if is_uuid(id_) else None + if v != '': + asset_dict[k] = v + + asset = get_object_or_none(Asset, id=asset_dict.pop('id', 0)) if not asset: try: if len(Asset.objects.filter(hostname=asset_dict.get('hostname'))): @@ -316,7 +318,7 @@ class BulkImportAssetView(AdminUserRequiredMixin, JSONResponseMixin, FormView): failed.append('%s: %s' % (asset_dict['hostname'], str(e))) else: for k, v in asset_dict.items(): - if v: + if v != '': setattr(asset, k, v) try: asset.save()