Index: /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/apv/router.py
===================================================================
--- /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/apv/router.py	(revision 38507)
+++ /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/apv/router.py	(working copy)
@@ -221,7 +221,9 @@
     vs_name = request.GET["vs"]
     if vs_name == 'Global':
         p = os.popen("/ca/bin/webui_utils -a 2")
-        return HttpResponse(p.read())
+        data = p.read()
+        p.close()
+        return HttpResponse(data)
     else:
         sess = get_current_session()
         cli_rst = sess.cli.cmd_direct("show statistics tcp %s"%vs_name, 
@@ -252,29 +254,41 @@
 
 def get_slb_monitor_value(request):
     p = os.popen("/ca/bin/webui_utils -a 3")
-    return HttpResponse(p.read())
+    data = p.read()
+    p.close()
+    return HttpResponse(data)
 
 def get_llb_link_list(request):
     p = os.popen("/ca/bin/webui_utils -a 4")
-    return HttpResponse(p.read())
+    data = p.read()
+    p.close()
+    return HttpResponse(data)
  
 def get_llb_dpi(request):
     p = os.popen("/ca/bin/webui_utils -a 5")
-    return HttpResponse(p.read())
+    data = p.read()
+    p.close()
+    return HttpResponse(data)
 
 def get_llb_link_hc_list(request, name):
     if match_illegal_character(name):
         return HttpResponse('The url contains an invalid string %s' % match_illegal_character(name))
     p = os.popen("/ca/bin/webui_utils -a 9 -n %s" % name)
-    return HttpResponse(p.read())
+    data = p.read()
+    p.close()
+    return HttpResponse(data)
 
 def get_slb_vs_list(request):
     p = os.popen("/ca/bin/webui_utils -a 6")
-    return HttpResponse(p.read())
+    data = p.read()
+    p.close()
+    return HttpResponse(data)
 
 def get_slb_rs_list(request):
     p = os.popen("/ca/bin/webui_utils -a 7")
-    return HttpResponse(p.read())
+    data = p.read()
+    p.close()
+    return HttpResponse(data)
 
 def get_slb_vs_rs_group(request):
     vs_num = 0
@@ -368,7 +382,9 @@
         if match_illegal_character(vs_str):
             return HttpResponse(json.dumps({"result": False, "data": []}))
         p = os.popen("/ca/bin/webui_utils -a 6 -n %s " % vs_str)
-        return HttpResponse(p.read())
+        data = p.read()
+        p.close()
+        return HttpResponse(data)
     else:
         return HttpResponse(json.dumps({"result":True, "data":[]}))
 
@@ -418,7 +434,9 @@
 
 def get_gslb_list(request):
     p = os.popen("/ca/bin/webui_utils -a 8")
-    return HttpResponse(p.read())
+    data = p.read()
+    p.close()
+    return HttpResponse(data)
 
 def get_gslb_card_data(request):
     ret = {}
@@ -484,7 +502,9 @@
         if match_illegal_character(data_str):
             return HttpResponse(json.dumps({"result": False, "data": []}))
         p = os.popen("/ca/bin/webui_utils -a 8 -n %s " % data_str)
-        return HttpResponse(p.read())
+        data = p.read()
+        p.close()
+        return HttpResponse(data)
     else:
         return HttpResponse(json.dumps({"result":True, "data":[]}))
 
@@ -573,8 +593,10 @@
     return HttpResponse(json.dumps({"result":True, "data":result}))
 
 def get_system_curtime(request):
-    ret = os.popen("date '+%a %b %d %T %Z (%z) %Y'").read()
-    return HttpResponse(json.dumps({"result":True, "curtime":ret}))
+    ret = os.popen("date '+%a %b %d %T %Z (%z) %Y'")
+    data = ret.read()
+    ret.close()
+    return HttpResponse(json.dumps({"result":True, "curtime":data}))
 
 def idle_notification(request):
     #used to update session keepalive time
Index: /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/metric.py
===================================================================
--- /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/metric.py	(revision 38507)
+++ /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/metric.py	(working copy)
@@ -375,7 +375,9 @@
 
 def query_statistics_llb_statistics(args):
     p = os.popen("/ca/bin/webui_utils -a 4")
-    llb_link = json.loads(p.read())
+    data = p.read()
+    p.close()
+    llb_link = json.loads(data)
     llb_link_list = []
     if llb_link["result"]:
         for data in llb_link["data"]:
Index: /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/model/utils.py
===================================================================
--- /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/model/utils.py	(revision 38507)
+++ /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/model/utils.py	(working copy)
@@ -353,7 +353,9 @@
         raise ManagerImplError
     if match_illegal_character(args):
         raise ManagerImplError
-    data = os.popen("/ca/bin/webui_utils %s" % args).read()
+    p = os.popen("/ca/bin/webui_utils %s" % args)
+    data = p.read()
+    p.close()
     if json_format:
         data = json.loads(data)
     return data
Index: /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/preference.py
===================================================================
--- /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/preference.py	(revision 38507)
+++ /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/preference.py	(working copy)
@@ -71,6 +71,7 @@
         if os.path.exists(LANGUAGE_CONFIG_FILE):
             config = open(LANGUAGE_CONFIG_FILE)
             lang = config.read().strip('\n')
+            config.close()
             if lang == 'tw':
                 lang = 'zh-tw'
             elif lang == 'jp':
Index: /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/report.py
===================================================================
--- /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/report.py	(revision 38507)
+++ /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/report.py	(working copy)
@@ -1019,7 +1019,9 @@
 
     p = os.popen("/ca/bin/webui_utils -a 4")
     #p = '{"result": 1, "data": [{"name": "r1", "protocol": "http", "enable": 1, "updown_status": 0,"ip": "1.1.1.1", "port": 80, "max_conn": 0, "health_relation": "and", "recovery_time": 0, "warm_up_time": 0, "max_cps": 0, "soft_bandwidth": 0, "hard_bandwidth": 0,"keepdip": 0, "hc_up": 3, "hc_down": 3,"server_conn_reuse": 1, "server_persist": 1, "check_type": "icmp", "total_hits": 0, "total_bytes_in": 0, "total_bytes_out": 0, "current_connection_count": 0, "cps": 0, "average_response_time": 10}]}'
-    llb_dic = json.loads(p.read())
+    data = p.read()
+    p.close()
+    llb_dic = json.loads(data)
     link_list = []
     for each in llb_dic["data"]:
         link_list.append(each["name"])
@@ -1409,7 +1411,9 @@
 
     p = os.popen("/ca/bin/webui_utils -a 4")
     #p = '{"result": 1, "data": [{"name": "r1", "protocol": "http", "enable": 1, "updown_status": 0,"ip": "1.1.1.1", "port": 80, "max_conn": 0, "health_relation": "and", "recovery_time": 0, "warm_up_time": 0, "max_cps": 0, "soft_bandwidth": 0, "hard_bandwidth": 0,"keepdip": 0, "hc_up": 3, "hc_down": 3,"server_conn_reuse": 1, "server_persist": 1, "check_type": "icmp", "total_hits": 0, "total_bytes_in": 0, "total_bytes_out": 0, "current_connection_count": 0, "cps": 0, "average_response_time": 10}]}'
-    llb_dic = json.loads(p.read())
+    data = p.read()
+    p.close()
+    llb_dic = json.loads(data)
     link_list = []
     for each in llb_dic["data"]:
         link_list.append(each["name"])
@@ -1785,7 +1789,9 @@
     vs_list = []
     p = os.popen("/ca/bin/webui_utils -a 6")
     #p = '{"result": 1, "data": [{"service_name": "r1", "protocol": "http", "enable": 1, "updown_status": 0,"ip": "1.1.1.1", "port": 80, "max_conn": 0, "health_relation": "and", "recovery_time": 0, "warm_up_time": 0, "max_cps": 0, "soft_bandwidth": 0, "hard_bandwidth": 0,"keepdip": 0, "hc_up": 3, "hc_down": 3,"server_conn_reuse": 1, "server_persist": 1, "check_type": "icmp", "total_hits": 0, "total_bytes_in": 0, "total_bytes_out": 0, "current_connection_count": 0, "cps": 0, "average_response_time": 10}]}'
-    vs_dic = json.loads(p.read())
+    vs_data = p.read()
+    p.close()
+    vs_dic = json.loads(vs_data)
 
     for each in vs_dic["data"]:
         vs_name = each["service_name"]
@@ -1842,7 +1848,9 @@
     rs_list = []
     p = os.popen("/ca/bin/webui_utils -a 7")
     #p = '{"result": 1, "data": [{"service_name": "r1", "protocol": "http", "enable": 1, "updown_status": 0,"ip": "1.1.1.1", "port": 80, "max_conn": 0, "health_relation": "and", "recovery_time": 0, "warm_up_time": 0, "max_cps": 0, "soft_bandwidth": 0, "hard_bandwidth": 0,"keepdip": 0, "hc_up": 3, "hc_down": 3,"server_conn_reuse": 1, "server_persist": 1, "check_type": "icmp", "total_hits": 0, "total_bytes_in": 0, "total_bytes_out": 0, "current_connection_count": 0, "cps": 0, "average_response_time": 10}]}'
-    rs_dic = json.loads(p.read())
+    rs_data = p.read()
+    p.close()
+    rs_dic = json.loads(rs_data)
     for each in rs_dic["data"]:
         rs_name = each["service_name"]
         rs_type = each["protocol"]
@@ -1954,7 +1962,9 @@
     }]
     p = os.popen("/ca/bin/webui_utils -a 4")
     #p = '{"result": 1, "data": [{"name": "r1", "protocol": "http", "enable": 1, "updown_status": 0,"ip": "1.1.1.1", "port": 80, "max_conn": 0, "health_relation": "and", "recovery_time": 0, "warm_up_time": 0, "max_cps": 0, "soft_bandwidth": 0, "hard_bandwidth": 0,"keepdip": 0, "hc_up": 3, "hc_down": 3,"server_conn_reuse": 1, "server_persist": 1, "check_type": "icmp", "total_hits": 0, "total_bytes_in": 0, "total_bytes_out": 0, "current_connection_count": 0, "cps": 0, "average_response_time": 10}]}'
-    llb_dic = json.loads(p.read())
+    llb_data = p.read()
+    p.close()
+    llb_dic = json.loads(llb_data)
     for each in llb_dic["data"]:
         link_name = each["name"]
         link_list.append({
Index: /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/router.py
===================================================================
--- /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/router.py	(revision 38507)
+++ /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/router.py	(working copy)
@@ -468,8 +468,10 @@
         if match_illegal_character(ip):
             tmp = {'ip': ip, 'send': '', 'receive': ''}
         else:
-            rst=os.popen("ping -t 3 "+ip+" | grep received").read()
-            tmp={'ip':ip, 'send':rst.split()[0], 'receive':rst.split()[3]}
+            rst=os.popen("ping -t 3 "+ip+" | grep received")
+            data=rst.read()
+            rst.close()
+            tmp={'ip':ip, 'send':data.split()[0], 'receive':data.split()[3]}
         result.append(tmp)
     return HttpResponse(json.dumps(result))
 
Index: /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/session.py
===================================================================
--- /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/session.py	(revision 38507)
+++ /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/session.py	(working copy)
@@ -595,10 +595,12 @@
     return response
 
 def is_avx_mode():
-    rst=os.popen("/ca/bin/u_sysctl kern.avx_model").read()
-    rst=rst.split()
-    if len(rst) == 2:
-        if '-1'!=rst[1]:
+    rst=os.popen("/ca/bin/u_sysctl kern.avx_model")
+    data = rst.read()
+    rst.close()
+    data=data.split()
+    if len(data) == 2:
+        if '-1'!=data[1]:
             return True 
     return False
 @contextmanager
Index: /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/utils.py
===================================================================
--- /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/utils.py	(revision 38507)
+++ /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/utils.py	(working copy)
@@ -598,7 +598,10 @@
     except IOError:
         if match_illegal_character(name):
             raise ValueError('This sysctl value include special characters: %s' % match_illegal_character(name))
-        return int(os.popen("/ca/bin/u_sysctl -n " + name).read())
+        p = os.popen("/ca/bin/u_sysctl -n " + name )
+        data = p.read()
+        p.close()
+        return int(data)
         # pass #for language
     else:
         libc = ctypes.CDLL("/lib/libc.so.7")
@@ -829,8 +832,9 @@
     if match_illegal_character(service_name):
         return HttpResponse('The url contains an invalid string %s' % match_illegal_character(service_name))
     p = os.popen("/ca/bin/webui_utils -n " + service_name)
-
-    return HttpResponse(p.read())
+    data = p.read()
+    p.close()
+    return HttpResponse(data)
 	
 # add style classes to text
 # classes should be a string like "fa-sign-in text-warning"
@@ -1084,8 +1088,10 @@
     return [will_expire, expired, certexpdays]
         
 def get_ssl_host_cert_info():
-    p = os.popen("/ca/bin/webui_utils -a 10").read()
-    rst = json.loads(p)
+    p = os.popen("/ca/bin/webui_utils -a 10")
+    data = p.read()
+    p.close()
+    rst = json.loads(data)
     if rst['result']:
         return rst['data']
     else:
@@ -1285,6 +1291,7 @@
     if os.path.exists(LANGUAGE_CONFIG_FILE):
         config = open(LANGUAGE_CONFIG_FILE)
         lang = config.read().strip('\n')
+        config.close()
         if lang == 'tw':
             lang = 'zh-tw'
         elif lang == 'jp':
