def get_cloudsql_acls(self, resource_name, timestamp):
"""Select the cloudsql acls for project from a snapshot table.
Args:
resource_name (str): String of the resource name.
timestamp (str): String of timestamp, formatted as
YYYYMMDDTHHMMSSZ.
Returns:
list: List of cloudsql acls.
Raises:
MySQLError: An error with MySQL has occurred.
"""
cloudsql_acls = {}
cnt = 0
try:
cloudsql_instances_sql = (
select_data.CLOUDSQL_INSTANCES.format(timestamp))
rows = self.execute_sql_with_fetch(resource_name,
cloudsql_instances_sql,
None)
acl_map = self._get_cloudsql_instance_acl_map(resource_name,
timestamp)
for row in rows:
project_number = row['project_number']
instance_name = row['name']
ssl_enabled = row['settings_ip_configuration_require_ssl']
authorized_networks = self.\
_get_networks_for_instance(acl_map,
project_number,
instance_name)
cloudsql_acl = csql_acls.\
CloudSqlAccessControl(instance_name=instance_name,
authorized_networks=authorized_networks,
ssl_enabled=ssl_enabled,
project_number=project_number)
cloudsql_acls[cnt] = cloudsql_acl
cnt += 1
except (DataError, IntegrityError, InternalError, NotSupportedError,
OperationalError, ProgrammingError) as e:
LOGGER.error(errors.MySQLError(resource_name, e))
return cloudsql_acls
cloudsql_dao.py 文件源码
python
阅读 25
收藏 0
点赞 0
评论 0
评论列表
文章目录