def __init__(self, resource, cycle_timestamp, violations, notifier_config, pipeline_config): """Constructor for the base pipeline. Args: resource: violation resource name cycle_timestamp: String of timestamp, formatted as YYYYMMDDTHHMMSSZ. violations: Dictonary of violations notifier_config: Dictionary of notifier configurations. pipeline_config: Dictonary of pipeline confogurations. Returns: None """ self.cycle_timestamp = cycle_timestamp self.resource = resource self.notifier_config = notifier_config self.pipeline_config = pipeline_config # TODO: import api_client # self.api_client = api_client # Initializing DAOs self.dao = dao.Dao() self.project_dao = project_dao.ProjectDao() self.violation_dao = violation_dao.ViolationDao() # Get violations self.violations = violations
def _create_dao_map(): """Create a map of DAOs. These will be re-usable so that the db connection can apply across different pipelines. Returns: Dictionary of DAOs. """ try: return { 'backend_service_dao': backend_service_dao.BackendServiceDao(), 'bucket_dao': bucket_dao.BucketDao(), 'cloudsql_dao': cloudsql_dao.CloudsqlDao(), 'dao': dao.Dao(), 'folder_dao': folder_dao.FolderDao(), 'forwarding_rules_dao': forwarding_rules_dao.ForwardingRulesDao(), 'instance_dao': instance_dao.InstanceDao(), 'instance_group_dao': instance_group_dao.InstanceGroupDao(), 'instance_group_manager_dao': instance_group_manager_dao.InstanceGroupManagerDao(), 'instance_template_dao': instance_template_dao.InstanceTemplateDao(), 'organization_dao': organization_dao.OrganizationDao(), 'project_dao': project_dao.ProjectDao(), } except data_access_errors.MySQLError as e: LOGGER.error('Error to creating DAO map.\n%s', e) sys.exit()
def __init__(self, resource, cycle_timestamp, violations, global_configs, notifier_config, pipeline_config): """Constructor for the base pipeline. Args: resource (str): Violation resource name. cycle_timestamp (str): Snapshot timestamp, formatted as YYYYMMDDTHHMMSSZ. violations (dict): Violations. global_configs (dict): Global configurations. notifier_config (dict): Notifier configurations. pipeline_config (dict): Pipeline configurations. """ self.cycle_timestamp = cycle_timestamp self.resource = resource self.global_configs = global_configs self.notifier_config = notifier_config self.pipeline_config = pipeline_config # TODO: import api_client # self.api_client = api_client # Initializing DAOs self.dao = dao.Dao(global_configs) self.project_dao = project_dao.ProjectDao(global_configs) self.violation_dao = violation_dao.ViolationDao(global_configs) # Get violations self.violations = violations
def _get_dao(self): """Init or get dao. Returns: dao: Dao instance """ if not self.dao: self.dao = dao.Dao(self.global_configs) return self.dao
def _create_dao_map(global_configs): """Create a map of DAOs. These will be reusable so that the db connection can apply across different pipelines. Args: global_configs (dict): Global configurations. Returns: dict: Dictionary of DAOs. """ try: return { 'appengine_dao': appengine_dao.AppEngineDao(global_configs), 'backend_service_dao': backend_service_dao.BackendServiceDao(global_configs), 'bucket_dao': bucket_dao.BucketDao(global_configs), 'cloudsql_dao': cloudsql_dao.CloudsqlDao(global_configs), 'dao': dao.Dao(global_configs), 'firewall_rule_dao': firewall_rule_dao.FirewallRuleDao(global_configs), 'folder_dao': folder_dao.FolderDao(global_configs), 'forseti_system_dao': forseti_system_dao.ForsetiSystemDao(global_configs), 'forwarding_rules_dao': forwarding_rules_dao.ForwardingRulesDao(global_configs), 'ke_dao': ke_dao.KeDao(global_configs), 'instance_dao': instance_dao.InstanceDao(global_configs), 'instance_group_dao': instance_group_dao.InstanceGroupDao(global_configs), 'instance_group_manager_dao': instance_group_manager_dao.InstanceGroupManagerDao(global_configs), 'instance_template_dao': instance_template_dao.InstanceTemplateDao(global_configs), 'organization_dao': organization_dao.OrganizationDao(global_configs), 'project_dao': project_dao.ProjectDao(global_configs), 'service_account_dao': service_account_dao.ServiceAccountDao(global_configs), } except data_access_errors.MySQLError as e: LOGGER.error('Error to creating DAO map.\n%s', e) sys.exit()
def _get_timestamp(statuses=('SUCCESS', 'PARTIAL_SUCCESS')): """Get latest snapshot timestamp. Returns: The latest snapshot timestamp string. """ latest_timestamp = None try: latest_timestamp = dao.Dao().get_latest_snapshot_timestamp(statuses) except db_errors.MySQLError as err: LOGGER.error('Error getting latest snapshot timestamp: %s', err) return latest_timestamp
def _get_timestamp(global_configs, statuses=('SUCCESS', 'PARTIAL_SUCCESS')): """Get latest snapshot timestamp. Args: global_configs (dict): Global configurations. statuses (tuple): The snapshot statuses to search for latest timestamp. Returns: str: The latest snapshot timestamp. """ latest_timestamp = None try: latest_timestamp = ( dao.Dao(global_configs).get_latest_snapshot_timestamp(statuses)) except db_errors.MySQLError as err: LOGGER.error('Error getting latest snapshot timestamp: %s', err) return latest_timestamp
def setUp(self, mock_db_connector): mock_db_connector.return_value = None self.dao = dao.Dao() self.fake_timestamp = '12345' self.resource_projects = 'projects'