# Licensed to the Apache Software Foundation (ASF) under one# or more contributor license agreements. See the NOTICE file# distributed with this work for additional information# regarding copyright ownership. The ASF licenses this file# to you under the Apache License, Version 2.0 (the# "License"); you may not use this file except in compliance# with the License. You may obtain a copy of the License at## http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing,# software distributed under the License is distributed on an# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY# KIND, either express or implied. See the License for the# specific language governing permissions and limitations# under the License.import osfrom .utilities import bashfrom .cloudException import CloudRuntimeExceptionimport mysql.connectorclass Database(object):"""Database connection"""def __init__(self, username, password=None, host='localhost', port='3306', db="cloud"):self.host = hostself.username = usernameself.password = passwordself.port = portself.db = dbdef connect(self):return mysql.connector.connect(host=self.host,user=self.username,password=self.password,database=self.db)def execute(self, statement):txn = Nonetry:txn = self.connect()cursor = txn.cursor()cursor.execute(statement)cursor.close()txn.commit()if txn is not None:try:txn.close()except:passexcept:raise CloudRuntimeException("Failed to execute: %s " % statement)finally:if txn is not None:try:txn.close()except:passdef testConnection(self):try:conn = self.connect()conn.ping()conn.close()return Trueexcept:raise CloudRuntimeException("Failed to Connect to DB")def executeFromFile(self, file):if not os.path.exists(file):return FalsecmdLine = "mysql --host=" + self.host + " --port=" + str(self.port) + " --user=" + self.usernameif self.password is not None:cmdLine += " --password=" + self.passwordcmdLine += " < " + filetry:bash(cmdLine)except:raise CloudRuntimeException("Failed to execute " + cmdLine)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型