def create_or_update_server_repository(db_session, hostname, server_type, server_url, username, vrf, server_directory, password, destination_on_host, created_by, server=None): hostname = check_acceptable_string(hostname) if server is None: server = Server(created_by=created_by) db_session.add(server) server.hostname = hostname server.server_type = server_type server.server_url = server_url server.username = username server.password = password server.vrf = vrf if (server_type == ServerType.TFTP_SERVER or server_type == ServerType.FTP_SERVER) else '' server.server_directory = server_directory server.destination_on_host = destination_on_host if server_type == ServerType.SCP_SERVER else '' db_session.commit() return server