# -*- coding: utf-8 -*- from urllib.parse import unquote, quote, urlencode def my_quote(data): if isinstance(data, dict): return urlencode(data) elif isinstance(data, str): return quote(data) class SS_Virtual_command: def __init__(self): self.ss_virtual_url = "http://10.10.3.14:8993/v1/ta/meta/prop/virtual/dict/create" self.method = "post" self.loginName = "root" self.password = "kingsome2016" def run_cmd(self, cmd): import subprocess msg = "Starting run: %s " % cmd print("run_cmd {0}".format(msg)) cmdref = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) output, error_info = cmdref.communicate() if cmdref.returncode != 0: if isinstance(error_info, list) or isinstance(error_info, tuple): error_info = error_info[0] msg = "RUN %s ERROR,error info: %s" % (cmd, error_info) print(f"{msg},error output={output}") return False else: print(f"Run Success,output was {output}") return True def upload_gameid(self): filename = "/data/git/ops_interface/myops/csv/gameid.csv" projectId = int(19) createParam = {"commonHeader": {"projectId": 19}, "mainColumn": {"property": {"columnName": "gameid", "tableType": 0}}, "columns": [{"property": {"columnName": "gameid", "columnDesc": "主键ID", "selectType": "string"}}, {"property": {"columnName": "gameid_china", "columnDesc": "游戏名称", "selectType": "string"}}]} body = {"projectId": projectId, "createParam": createParam, "loginName": self.loginName, "password": self.password} quote_body = my_quote(body) cmd = f"curl --header 'Accept: application/json' --form 'file=@{filename}' '{self.ss_virtual_url}?{quote_body}'" print(cmd) if self.run_cmd(cmd): return True else: return False def upload_2001_b_n(self): filename = "/data/git/ops_interface/myops/csv/2001_b_n.csv" projectId = int(22) createParam = {"commonHeader": {"projectId": 22}, "mainColumn": {"property": {"columnName": "#vp@b_n", "tableType": 0, "subTableType": "vprop_sql"}}, "columns": [{"property": {"columnName": "b_n", "columnDesc": "跳转appid", "selectType": "string"}}, {"property": {"columnName": "b_n_china", "columnDesc": "跳转中文名", "selectType": "string"}}]} body = {"projectId": projectId, "createParam": createParam, "loginName": self.loginName, "password": self.password} quote_body = my_quote(body) cmd = f"curl --header 'Accept: application/json' --form 'file=@{filename}' '{self.ss_virtual_url}?{quote_body}'" print(cmd) if self.run_cmd(cmd): return True else: return False def upload_1004_button_name(self): filename = "/data/git/ops_interface/myops/csv/1004_button_name.csv" projectId = int(19) createParam = {"commonHeader": {"projectId": 19}, "mainColumn": {"property": {"columnName": "#vp@button_name", "tableType": 0, "subTableType": "vprop_sql"}}, "columns": [{"property": {"columnName": "button_name", "columnDesc": "点击按钮属性", "selectType": "string"}}, {"property": {"columnName": "button_name_cn", "columnDesc": "点击按钮属性(中文)", "selectType": "string"}}]} body = {"projectId": projectId, "createParam": createParam, "loginName": self.loginName, "password": self.password} quote_body = my_quote(body) cmd = f"curl --header 'Accept: application/json' --form 'file=@{filename}' '{self.ss_virtual_url}?{quote_body}'" print(cmd) if self.run_cmd(cmd): return True else: return False def main(): ss = SS_Virtual_command() #ss.upload_gameid() ss.upload_2001_b_n() #ss.upload_1004_button_name() if __name__ == "__main__": main()