def _get_cloudsql_instance_acl_map(self, resource_name, timestamp):
"""Create CloudSQL instance acl map.
Args:
resource_name (str): String of the resource name.
timestamp (str): String of timestamp, formatted as
YYYYMMDDTHHMMSSZ.
Returns:
dict: Map of instance acls.
Raises:
MySQLError: An error with MySQL has occurred.
"""
cloudsql_acls_map = {}
try:
cloudsql_acls_sql = select_data.CLOUDSQL_ACLS.format(timestamp)
rows = self.execute_sql_with_fetch(resource_name,
cloudsql_acls_sql,
None)
for row in rows:
acl_list = []
project_number = row['project_number']
instance_name = row['instance_name']
network = row['value']
hash_key = hash(str(project_number) + ',' + instance_name)
if hash_key in cloudsql_acls_map:
if network not in cloudsql_acls_map[hash_key]:
cloudsql_acls_map[hash_key].append(network)
else:
acl_list.append(network)
cloudsql_acls_map[hash_key] = acl_list
except (DataError, IntegrityError, InternalError, NotSupportedError,
OperationalError, ProgrammingError) as e:
LOGGER.error(errors.MySQLError(resource_name, e))
return cloudsql_acls_map
cloudsql_dao.py 文件源码
python
阅读 24
收藏 0
点赞 0
评论 0
评论列表
文章目录