def create_or_update_host(db_session, hostname, region_id, location, roles, software_profile_id, connection_type, host_or_ip, username, password, enable_password, port_number, jump_host_id, created_by, host=None): hostname = check_acceptable_string(hostname) """ Create a new host in the Database """ if host is None: host = Host(created_by=created_by) host.inventory_job.append(InventoryJob()) host.context.append(HostContext()) db_session.add(host) host.hostname = hostname host.region_id = region_id if region_id > 0 else None host.software_profile_id = software_profile_id if software_profile_id > 0 else None host.location = '' if location is None else remove_extra_spaces(location) host.roles = '' if roles is None else remove_extra_spaces(roles) host.connection_param = [ConnectionParam( # could have multiple IPs, separated by comma host_or_ip='' if host_or_ip is None else remove_extra_spaces(host_or_ip), username='' if username is None else remove_extra_spaces(username), password='' if password is None else remove_extra_spaces(password), enable_password='' if enable_password is None else remove_extra_spaces(enable_password), jump_host_id=jump_host_id if jump_host_id > 0 else None, connection_type=connection_type, # could have multiple ports, separated by comma port_number='' if port_number is None else remove_extra_spaces(port_number))] db_session.commit() return host
def collect(request): req = request if req.method == 'POST': vender = req.POST.get('vender') product = req.POST.get('product') cpu_model = req.POST.get('cpu_model') cpu_num = req.POST.get('cpu_num') memory = req.POST.get('memory') sn = req.POST.get('sn') osver = req.POST.get('osver') hostname = req.POST.get('hostname') ipaddrs = req.POST.get('ipaddrs') host = Host() host.vender = vender host.product = product host.cpu_model = cpu_model host.cpu_num = int(cpu_num) host.memory = int(memory) host.sn = sn host.osver = osver host.hostname = hostname host.save() for ip in ipaddrs.split(':'): o_ip = IpAddr() o_ip.ipaddr = ip o_ip.host = host o_ip.save() return HttpResponse('OK') else: return HttpResponse('No post data')
def collect(request): req = request if req.POST: vendor = req.POST.get('vendor') product = req.POST.get('product') cpu_model = req.POST.get('cpu_model') cpu_num = req.POST.get('cpu_num') memory = req.POST.get('memory') sn = req.POST.get('sn') osver = req.POST.get('osver') hostname = req.POST.get('hostname') try: host = Host.objects.get(hostname=hostname) except: host = Host() host.hostname=hostname host.product=product host.cpu_num=int(cpu_num) host.cpu_model=cpu_model host.memory = int(memory) host.sn = sn host.osver = osver host.vendor = vendor host.ipaddr = req.POST.get('ip') host.save() return HttpResponse("ok") else: return HttpResponse("no post data")
def collect(request): req = request if req.POST: vendor = req.POST.get('Product_Name') sn = req.POST.get('Serial_Number') product = req.POST.get('Manufacturer') cpu_model = req.POST.get('Model_Name') cpu_num = req.POST.get('Cpu_Cores') cpu_vendor = req.POST.get('Vendor_Id') memory_part_number = req.POST.get('Part_Number') memory_manufacturer = req.POST.get('Manufacturer') memory_size = req.POST.get('Size') #uuid = req.POST.get('UUID') identity = req.POST.get('identity') device_model = req.POST.get('Device_Model') device_version = req.POST.get('Firmware_Version') device_sn = req.POST.get('Serial_Number') device_size = req.POST.get('User_Capacity') osver = req.POST.get('os_version') hostname = req.POST.get('os_name') os_release = req.POST.get('os_release') ipaddrs = req.POST.get('Ipaddr') mac = req.POST.get('Device') link = req.POST.get('Link') mask = req.POST.get('Mask') device = req.POST.get('Device') host = Host() host.hostname = hostname host.product = product host.cpu_num = cpu_num host.cpu_model = cpu_model host.cpu_vendor = cpu_vendor host.memory_part_number = memory_part_number host.memory_manufacturer = memory_manufacturer host.memory_size = memory_size host.device_model = device_model host.device_version = device_version host.device_sn = device_sn host.device_size = device_size host.osver = osver host.os_release = os_release host.vendor = vendor #host.uuid = uuid host.identity = identity host.sn = sn host.ipaddr = ipaddrs host.save() #for ip in ipaddrs.split(';'): # o_ip = IPaddr() # o_ip.ipaddr = ip # o_ip.host = host # o_ip.save() return HttpResponse('OK') else: return HttpResponse('no post data')
def collect(request): asset_info = json.loads(request.body) if request.method == 'POST': vendor = asset_info['vendor'] # group = asset_info['group'] disk = asset_info['disk'] cpu_model = asset_info['cpu_model'] cpu_num = asset_info['cpu_num'] memory = asset_info['memory'] sn = asset_info['sn'] osver = asset_info['osver'] hostname = asset_info['hostname'] ip = asset_info['ip'] mgm_ip = asset_info['mgm_ip'] terminal_user = asset_info['terminal_user'] # asset_type = "" # status = "" try: host = Host.objects.get(hostname=hostname) except Exception as msg: print(msg) host = Host() level = get_dir("log_level") ssh_pwd = get_dir("ssh_pwd") log_path = get_dir("log_path") log("cmdb.log", level, log_path) logging.info("==========sshkey deploy start==========") data = deploy_key(ip, ssh_pwd) logging.info(data) logging.info("==========sshkey deploy end==========") # if req.POST.get('identity'): # identity = req.POST.get('identity') # try: # host = Host.objects.get(identity=identity) # except: # host = Host() host.hostname = hostname # host.group = group host.cpu_num = int(cpu_num) host.cpu_model = cpu_model host.memory = int(memory) host.sn = sn host.disk = disk host.os = osver host.vendor = vendor host.ip = ip host.mgm_ip = mgm_ip host.terminal_user = terminal_user # host.asset_type = asset_type # host.status = status host.save() return HttpResponse("Post asset data to server successfully!") else: return HttpResponse("No any post data!")
def collect(request): asset_info = json.loads(request.body) if request.method == 'POST': vendor = asset_info['vendor'] # group = asset_info['group'] disk = asset_info['disk'] cpu_model = asset_info['cpu_model'] cpu_num = asset_info['cpu_num'] memory = asset_info['memory'] sn = asset_info['sn'] osver = asset_info['osver'] hostname = asset_info['hostname'] ip = asset_info['ip'] if not ip or not hostname: return HttpResponse("Error your agent ip or hostname is empty! Please resolve your hostname.") # asset_type = "" # status = "" try: host = Host.objects.get(hostname=hostname) except Exception as msg: print(msg) host = Host() level = get_dir("log_level") ssh_pwd = get_dir("ssh_pwd") log_path = get_dir("log_path") log("cmdb.log", level, log_path) logging.info("==========sshkey deploy start==========") data = deploy_key(ip, ssh_pwd) logging.info(data) logging.info("==========sshkey deploy end==========") # if req.POST.get('identity'): # identity = req.POST.get('identity') # try: # host = Host.objects.get(identity=identity) # except: # host = Host() host.hostname = hostname # host.group = group host.cpu_num = int(cpu_num) host.cpu_model = cpu_model host.memory = int(memory) host.sn = sn host.disk = disk host.os = osver host.vendor = vendor host.ip = ip # host.asset_type = asset_type # host.status = status host.save() return HttpResponse("Post asset data to server successfully!") else: return HttpResponse("No any post data!")
def create_or_update_host(db_session, hostname, region_id, location, roles, software_profile_id, connection_type, host_or_ip, username, password, enable_password, port_number, jump_host_id, created_by, host=None): hostname = check_acceptable_string(hostname) """ Create a new host in the Database """ if host is None: host = Host(created_by=created_by) host.inventory_job.append(InventoryJob()) host.context.append(HostContext()) db_session.add(host) host.hostname = hostname host.region_id = region_id if region_id > 0 else None host.software_profile_id = software_profile_id if software_profile_id > 0 else None host.location = '' if location is None else remove_extra_spaces(location) host.roles = '' if roles is None else remove_extra_spaces(roles) host.connection_param = [ ConnectionParam( # could have multiple IPs, separated by comma host_or_ip='' if host_or_ip is None else remove_extra_spaces(host_or_ip), username='' if username is None else remove_extra_spaces(username), password='' if password is None else remove_extra_spaces(password), enable_password='' if enable_password is None else remove_extra_spaces(enable_password), jump_host_id=jump_host_id if jump_host_id > 0 else None, connection_type=connection_type, # could have multiple ports, separated by comma port_number='' if port_number is None else remove_extra_spaces(port_number)) ] db_session.commit() return host
def collect(request): req = request if req.POST: vendor = req.POST.get('Product_Name') sn = req.POST.get('Serial_Number') product = req.POST.get('Manufacturer') cpu_model = req.POST.get('Model_Name') cpu_num = req.POST.get('Cpu_Cores') cpu_vendor = req.POST.get('Vendor_Id') memory_part_number = req.POST.get('Part_Number') memory_manufacturer = req.POST.get('Manufacturer') memory_size = req.POST.get('Size') device_model = req.POST.get('Device_Model') device_version = req.POST.get('Firmware_Version') device_sn = req.POST.get('Serial_Number') device_size = req.POST.get('User_Capacity') osver = req.POST.get('os_version') hostname = req.POST.get('os_name') os_release = req.POST.get('os_release') ipaddrs = req.POST.get('Ipaddr') mac = req.POST.get('Device') link = req.POST.get('Link') mask = req.POST.get('Mask') device = req.POST.get('Device') host = Host() host.hostname = hostname host.product = product host.cpu_num = cpu_num host.cpu_model = cpu_model host.cpu_vendor = cpu_vendor host.memory_part_number = memory_part_number host.memory_manufacturer = memory_manufacturer host.memory_size = memory_size host.device_model = device_model host.device_version = device_version host.device_sn = device_sn host.device_size = device_size host.osver = osver host.os_release = os_release host.vendor = vendor host.sn = sn host.ipaddr = ipaddrs host.save() #将客户端传过来的数据通过POST接收,存入数据库 return HttpResponse('OK') #如果插入成功,返回'ok' else: return HttpResponse('no post data')
def collect(request): asset_info = json.loads(request.body) if request.method == 'POST': vendor = asset_info['vendor'] # group = asset_info['group'] disk = asset_info['disk'] cpu_model = asset_info['cpu_model'] cpu_num = asset_info['cpu_num'] memory = asset_info['memory'] sn = asset_info['sn'] osver = asset_info['osver'] hostname = asset_info['hostname'] ip = asset_info['ip'] asset_type = "" status = "" try: host = Host.objects.get(hostname=hostname) except: host = Host() # if req.POST.get('identity'): # identity = req.POST.get('identity') # try: # host = Host.objects.get(identity=identity) # except: # host = Host() host.hostname = hostname # host.group = group host.cpu_num = int(cpu_num) host.cpu_model = cpu_model host.memory = int(memory) host.sn = sn host.disk = disk host.os = osver host.vendor = vendor host.ip = ip host.asset_type = asset_type host.status = status host.save() return HttpResponse("Post asset data to server successfully!") else: return HttpResponse("No any post data!")
def collect(request): req = request if req.POST: vendor = req.POST.get('vendor') group = req.POST.get('group') disk = req.POST.get('disk') cpu_model = req.POST.get('cpu_model') cpu_num = req.POST.get('cpu_num') memory = req.POST.get('memory') sn = req.POST.get('sn') osver = req.POST.get('osver') hostname = req.POST.get('hostname') ip = req.POST.get('ip') asset_type = "" status = "" try: host = Host.objects.get(hostname=hostname) except: host = Host() # if req.POST.get('identity'): # identity = req.POST.get('identity') # try: # host = Host.objects.get(identity=identity) # except: # host = Host() host.hostname = hostname #host.group = group host.cpu_num = int(cpu_num) host.cpu_model = cpu_model host.memory = int(memory) host.sn = sn host.disk = disk host.os = osver host.vendor = vendor host.ip = ip host.asset_type = asset_type host.status = status host.save() return HttpResponse("post data successfully!") else: return HttpResponse("no any post data!")
def collect(request): req = request if req.POST: vendor = req.POST.get('vendor') product = req.POST.get('product') cpu_model = req.POST.get('cpu_model') cpu_num = req.POST.get('cpu_num') memory = req.POST.get('memory') sn = req.POST.get('sn') osver = req.POST.get('osver') hostname = req.POST.get('hostname') try: host = Host.objects.get(hostname=hostname) except: host = Host() ipaddrs = req.POST.get('ipaddrs') identity = req.POST.get('identity') try: host = Host.objects.get(identity=identity) except: host = Host() host.hostname = hostname host.product = product host.cpu_num = int(cpu_num) host.cpu_model = cpu_model host.memory = int(memory) host.sn = sn host.osver = osver host.vendor = vendor host.save() for ip in ipaddrs.split(';'): o_ip = Ipaddr() o_ip.ipaddr = ip o_ip.host = host o_ip.save() return HttpResponse("post data successfully!") else: return HttpResponse("no any post data!")
def collect(request): req = request if req.POST: vendor = req.POST.get('vendor') product = req.POST.get('product') sn = req.POST.get('sn') hostname = req.POST.get('hostname') osbit = req.POST.get('osbit') osver = req.POST.get('osver') cpu_model = req.POST.get('cpu_model') cpucores = req.POST.get('cpucores') cpu_num = req.POST.get('cpu_num') memory = req.POST.get('memory') ipaddr = req.POST.get('ip') #ipaddrs = req.POST.get('ipaddr') identity = req.POST.get('identity') try: #host = Host.objects.get(hostname=hostname) host = Host.objects.get(identity=identity) except: host = Host() host.identity = identity host.vendor = vendor host.product = product host.sn = sn host.hostname = hostname host.osbit = osbit host.osver = osver host.cpumodel = cpu_model host.cpucores = cpucores host.cpunum = cpu_num host.memory = memory host.ipaddr = ipaddr host.save() return HttpResponse("ok") else: return HttpResponse("no post data")
def collectjson(request): req = request if req.method == "POST": jsonobj = json.loads(req.body) try: host = Host.objects.get(identity=jsonobj['identity']) except: host = Host() try: host.identity = jsonobj['identity'] host.hostname = jsonobj['hostname'] host.product = jsonobj['product'] host.cpu_num = jsonobj['cpu_num'] host.cpu_model = jsonobj['cpu_model'] host.memory = jsonobj['memory'] host.sn = jsonobj['sn'] host.osver = jsonobj['osver'] host.vendor = jsonobj['vendor'] host.ipaddr = jsonobj['ip'] host.save() return HttpResponse(json.dumps({'status': 0, 'message': "ok"})) except Exception, e: return HttpResponse(json.dumps({'status': -1, 'message': str(e)}))
def gethosts(request): if request.method == 'POST': data = json.loads(request) host = Host() host.vender = data['verder'] host.product = data['product'] host.cpu_model = data['cpu_model'] host.cpu_num = data['cpu_num'] host.memory = data['memory'] host.sn = data['sn'] host.osver = data['osver'] host.hostname = data['hostname'] host.save() ipaddrs = data['ipaddrs'] for ip in ipaddrs.split(':'): o_ip = IpAddr() o_ip.ipaddr = ip o_ip.host = host o_ip.save() else: return HttpResponse('No post data')
def collectjson(request): req = request if req.method == "POST": jsonobj = json.loads(req.body) try: host = Host.objects.get(identity=jsonobj['identity']) except: host = Host() try: host.identity = jsonobj['identity'] host.hostname = jsonobj['hostname'] host.product = jsonobj['product'] host.cpu_num = jsonobj['cpu_num'] host.cpu_model = jsonobj['cpu_model'] host.memory = jsonobj['memory'] host.sn = jsonobj['sn'] host.osver = jsonobj['osver'] host.vendor = jsonobj['vendor'] host.ipaddr = jsonobj['ip'] host.save() return HttpResponse(json.dumps({'status':0,'message':"ok"})) except Exception, e: return HttpResponse(json.dumps({'status':-1,'message':str(e)}))
def collect(request): asset_info = json.loads(request.body) print asset_info if request.method == 'POST': #vendor = asset_info['vendor'] # group = asset_info['group'] disk = asset_info['disk'] #cpu_model = asset_info['cpu_model'] cpu_num = asset_info['cpu_num'] memory = asset_info['memory'] sn = asset_info['sn'] osver = asset_info['osver'] hostname = asset_info['hostname'] ip = asset_info['privateIps'] # asset_type = "" # status = "" try: # 检查hostname是否已经存在 host = Host.objects.get(hostname=hostname) except Exception as msg: print(msg) host = Host() host.hostname = hostname # host.group = group host.cpu_num = int(cpu_num) #host.cpu_model = cpu_model host.memory = float(memory) host.sn = sn host.disk = disk host.os = osver #host.vendor = vendor host.ip = ip host.save() return HttpResponse("Post asset data to server successfully!") else: return HttpResponse("No any post data!")
def api_import_hosts(): importable_header = [HEADER_FIELD_HOSTNAME, HEADER_FIELD_REGION, HEADER_FIELD_ROLES, HEADER_FIELD_IP, HEADER_FIELD_USERNAME, HEADER_FIELD_PASSWORD, HEADER_FIELD_CONNECTION, HEADER_FIELD_PORT] region_id = request.form['region'] data_list = request.form['data_list'] db_session = DBSession() selected_region = get_region_by_id(db_session, region_id) if selected_region is None: return jsonify({'status': 'Region is no longer exists in the database.'}) # Check mandatory data fields error = [] reader = csv.reader(data_list.splitlines(), delimiter=',') header_row = next(reader) if HEADER_FIELD_HOSTNAME not in header_row: error.append('"hostname" is missing in the header.') if HEADER_FIELD_IP not in header_row: error.append('"ip" is missing in the header.') if HEADER_FIELD_CONNECTION not in header_row: error.append('"connection" is missing in the header.') for header_field in header_row: if header_field not in importable_header: error.append('"' + header_field + '" is not a correct header field.') if error: return jsonify({'status': ','.join(error)}) # Check if each row has the same number of data fields as the header error = [] data_list = list(reader) row = 2 COLUMN_CONNECTION = get_column_number(header_row, HEADER_FIELD_CONNECTION) COLUMN_REGION = get_column_number(header_row, HEADER_FIELD_REGION) for row_data in data_list: if len(row_data) > 0: if len(row_data) != len(header_row): error.append('line %d has wrong number of data fields.' % row) else: if COLUMN_CONNECTION >= 0: # Validate the connection type data_field = row_data[COLUMN_CONNECTION] if data_field != ConnectionType.TELNET and data_field != ConnectionType.SSH: error.append('line %d has a wrong connection type (should either be "telnet" or "ssh").' % row) if COLUMN_REGION >= 0: # Create a region if necessary data_field = get_acceptable_string(row_data[COLUMN_REGION]) region = get_region(db_session, data_field) if region is None and data_field: try: db_session.add(Region(name=data_field, created_by=current_user.username)) db_session.commit() except Exception: db_session.rollback() error.append('Unable to create region %s.' % data_field) row += 1 if error: return jsonify({'status': ','.join(error)}) # Import the data error = [] im_regions = {} for data in data_list: if len(data) == 0: continue db_host = None im_host = Host() im_host.region_id = selected_region.id im_host.created_by = current_user.username im_host.inventory_job.append(InventoryJob()) im_host.context.append(HostContext()) im_host.connection_param.append(ConnectionParam()) im_host.connection_param[0].username = '' im_host.connection_param[0].password = '' im_host.connection_param[0].port_number = '' for column in range(len(header_row)): header_field = header_row[column] data_field = data[column].strip() if header_field == HEADER_FIELD_HOSTNAME: hostname = get_acceptable_string(data_field) db_host = get_host(db_session, hostname) im_host.hostname = hostname elif header_field == HEADER_FIELD_REGION: region_name = get_acceptable_string(data_field) if region_name in im_regions: im_host.region_id = im_regions[region_name] else: region = get_region(db_session, region_name) if region is not None: im_host.region_id = region.id # Saved for later lookup im_regions[region_name] = region.id elif header_field == HEADER_FIELD_ROLES: im_host.roles = remove_extra_spaces(data_field) elif header_field == HEADER_FIELD_IP: im_host.connection_param[0].host_or_ip = remove_extra_spaces(data_field) elif header_field == HEADER_FIELD_USERNAME: username = get_acceptable_string(data_field) im_host.connection_param[0].username = username elif header_field == HEADER_FIELD_PASSWORD: im_host.connection_param[0].password = data_field elif header_field == HEADER_FIELD_CONNECTION: im_host.connection_param[0].connection_type = data_field elif header_field == HEADER_FIELD_PORT: im_host.connection_param[0].port_number = remove_extra_spaces(data_field) # Import host already exists in the database, just update it if db_host is not None: db_host.created_by = im_host.created_by db_host.region_id = im_host.region_id if HEADER_FIELD_ROLES in header_row: db_host.roles = im_host.roles if HEADER_FIELD_IP in header_row: db_host.connection_param[0].host_or_ip = im_host.connection_param[0].host_or_ip if HEADER_FIELD_USERNAME in header_row: db_host.connection_param[0].username = im_host.connection_param[0].username if HEADER_FIELD_PASSWORD in header_row: db_host.connection_param[0].password = im_host.connection_param[0].password if HEADER_FIELD_CONNECTION in header_row: db_host.connection_param[0].connection_type = im_host.connection_param[0].connection_type if HEADER_FIELD_PORT in header_row: db_host.connection_param[0].port_number = im_host.connection_param[0].port_number else: # Add the import host db_session.add(im_host) if error: return jsonify({'status': error}) else: db_session.commit() return jsonify({'status': 'OK'})
def api_import_hosts(): importable_header = [ HEADER_FIELD_HOSTNAME, HEADER_FIELD_REGION, HEADER_FIELD_ROLES, HEADER_FIELD_IP, HEADER_FIELD_USERNAME, HEADER_FIELD_PASSWORD, HEADER_FIELD_CONNECTION, HEADER_FIELD_PORT ] region_id = request.form['region'] data_list = request.form['data_list'] db_session = DBSession() selected_region = get_region_by_id(db_session, region_id) if selected_region is None: return jsonify( {'status': 'Region is no longer exists in the database.'}) # Check mandatory data fields error = [] reader = csv.reader(data_list.splitlines(), delimiter=',') header_row = next(reader) if HEADER_FIELD_HOSTNAME not in header_row: error.append('"hostname" is missing in the header.') if HEADER_FIELD_IP not in header_row: error.append('"ip" is missing in the header.') if HEADER_FIELD_CONNECTION not in header_row: error.append('"connection" is missing in the header.') for header_field in header_row: if header_field not in importable_header: error.append('"' + header_field + '" is not a correct header field.') if error: return jsonify({'status': ','.join(error)}) # Check if each row has the same number of data fields as the header error = [] data_list = list(reader) row = 2 COLUMN_CONNECTION = get_column_number(header_row, HEADER_FIELD_CONNECTION) COLUMN_REGION = get_column_number(header_row, HEADER_FIELD_REGION) for row_data in data_list: if len(row_data) > 0: if len(row_data) != len(header_row): error.append('line %d has wrong number of data fields.' % row) else: if COLUMN_CONNECTION >= 0: # Validate the connection type data_field = row_data[COLUMN_CONNECTION] if data_field != ConnectionType.TELNET and data_field != ConnectionType.SSH: error.append( 'line %d has a wrong connection type (should either be "telnet" or "ssh").' % row) if COLUMN_REGION >= 0: # Create a region if necessary data_field = get_acceptable_string(row_data[COLUMN_REGION]) region = get_region(db_session, data_field) if region is None and data_field: try: db_session.add( Region(name=data_field, created_by=current_user.username)) db_session.commit() except Exception: db_session.rollback() error.append('Unable to create region %s.' % data_field) row += 1 if error: return jsonify({'status': ','.join(error)}) # Import the data error = [] im_regions = {} for data in data_list: if len(data) == 0: continue db_host = None im_host = Host() im_host.region_id = selected_region.id im_host.created_by = current_user.username im_host.inventory_job.append(InventoryJob()) im_host.context.append(HostContext()) im_host.connection_param.append(ConnectionParam()) im_host.connection_param[0].username = '' im_host.connection_param[0].password = '' im_host.connection_param[0].port_number = '' for column in range(len(header_row)): header_field = header_row[column] data_field = data[column].strip() if header_field == HEADER_FIELD_HOSTNAME: hostname = get_acceptable_string(data_field) db_host = get_host(db_session, hostname) im_host.hostname = hostname elif header_field == HEADER_FIELD_REGION: region_name = get_acceptable_string(data_field) if region_name in im_regions: im_host.region_id = im_regions[region_name] else: region = get_region(db_session, region_name) if region is not None: im_host.region_id = region.id # Saved for later lookup im_regions[region_name] = region.id elif header_field == HEADER_FIELD_ROLES: im_host.roles = remove_extra_spaces(data_field) elif header_field == HEADER_FIELD_IP: im_host.connection_param[0].host_or_ip = remove_extra_spaces( data_field) elif header_field == HEADER_FIELD_USERNAME: username = get_acceptable_string(data_field) im_host.connection_param[0].username = username elif header_field == HEADER_FIELD_PASSWORD: im_host.connection_param[0].password = data_field elif header_field == HEADER_FIELD_CONNECTION: im_host.connection_param[0].connection_type = data_field elif header_field == HEADER_FIELD_PORT: im_host.connection_param[0].port_number = remove_extra_spaces( data_field) # Import host already exists in the database, just update it if db_host is not None: db_host.created_by = im_host.created_by db_host.region_id = im_host.region_id if HEADER_FIELD_ROLES in header_row: db_host.roles = im_host.roles if HEADER_FIELD_IP in header_row: db_host.connection_param[ 0].host_or_ip = im_host.connection_param[0].host_or_ip if HEADER_FIELD_USERNAME in header_row: db_host.connection_param[ 0].username = im_host.connection_param[0].username if HEADER_FIELD_PASSWORD in header_row: db_host.connection_param[ 0].password = im_host.connection_param[0].password if HEADER_FIELD_CONNECTION in header_row: db_host.connection_param[ 0].connection_type = im_host.connection_param[ 0].connection_type if HEADER_FIELD_PORT in header_row: db_host.connection_param[ 0].port_number = im_host.connection_param[0].port_number else: # Add the import host db_session.add(im_host) if error: return jsonify({'status': error}) else: db_session.commit() return jsonify({'status': 'OK'})