def ConstructManagedRelationalDb(self): """Create the managed relational db and create groups for its vms.""" if self.config.managed_relational_db is None: return cloud = self.config.managed_relational_db.cloud providers.LoadProvider(cloud) managed_relational_db_class = ( managed_relational_db.GetManagedRelationalDbClass(cloud)) self.managed_relational_db = managed_relational_db_class( self.config.managed_relational_db)
def __init__(self, component_full_name, flag_values=None, **kwargs): super(_ManagedRelationalDbSpec, self).__init__(component_full_name, flag_values=flag_values, **kwargs) # TODO(ferneyhough): This is a lot of boilerplate, and is repeated # below in VmGroupSpec. See if some can be consolidated. Maybe we can # specify a VmGroupSpec instead of both vm_spec and disk_spec. ignore_package_requirements = (getattr( flag_values, 'ignore_package_requirements', True) if flag_values else True) providers.LoadProvider(self.cloud, ignore_package_requirements) if self.disk_spec: disk_config = getattr(self.disk_spec, self.cloud, None) if disk_config is None: raise errors.Config.MissingOption( '{0}.cloud is "{1}", but {0}.disk_spec does not contain a ' 'configuration for "{1}".'.format(component_full_name, self.cloud)) disk_spec_class = disk.GetDiskSpecClass(self.cloud) self.disk_spec = disk_spec_class('{0}.disk_spec.{1}'.format( component_full_name, self.cloud), flag_values=flag_values, **disk_config) vm_config = getattr(self.vm_spec, self.cloud, None) if vm_config is None: raise errors.Config.MissingOption( '{0}.cloud is "{1}", but {0}.vm_spec does not contain a ' 'configuration for "{1}".'.format(component_full_name, self.cloud)) vm_spec_class = virtual_machine.GetVmSpecClass(self.cloud) self.vm_spec = vm_spec_class('{0}.vm_spec.{1}'.format( component_full_name, self.cloud), flag_values=flag_values, **vm_config) # Set defaults that were not able to be set in # GetOptionDecoderConstructions() if not self.engine_version: managed_db_class = managed_relational_db.GetManagedRelationalDbClass( self.cloud) self.engine_version = managed_db_class.GetDefaultEngineVersion( self.engine) if not self.database_name: self.database_name = 'pkb-db-%s' % flag_values.run_uri if not self.database_username: self.database_username = '******' % flag_values.run_uri if not self.database_password: self.database_password = managed_relational_db.GenerateRandomDbPassword( )