generate/resources/_database.py (24 lines of code) (raw):
# Copyright 2024 Google LLC
#
# Licensed 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.
from imports.pgsql import Pgsql
from imports.mssql import Mssql
from imports.mysql import Mysql
def create_cloudsql(self, sql, sql_type):
sql_id = f"{sql_type}_{sql['name']}"
sql["project_id"] = self.tf_ref("project", sql["project_id"])
if sql.get("ip_configuration", {}).get("private_network"):
sql["ip_configuration"]["private_network"] = self.tf_ref(
"network", sql["ip_configuration"]["private_network"]
)
if sql.get("ip_configuration", {}).get("psc_allowed_consumer_projects", []):
psc_consumer = []
for project in sql["ip_configuration"]["psc_allowed_consumer_projects"]:
psc_consumer.append(self.tf_ref("project", project))
sql["ip_configuration"]["psc_allowed_consumer_projects"] = psc_consumer
if sql_type == "pgsql":
Pgsql(self, sql_id, **sql)
elif sql_type == "mysql":
Mysql(self, sql_id, **sql)
elif sql_type == "mssql":
Mssql(self, sql_id, **sql)
def generate_cloudsql(self, my_resource, resource):
"""creates sql"""
for sql in self.eztf_config.get(my_resource, []):
create_cloudsql(self, sql, resource)