def test_create_complete_config( self, mock_yaml_dump, mock_format_job, mock_tron_service_config, mock_tron_system_config, mock_system_config, service, ): job_config = tron_tools.TronJobConfig("my_job", {}, "fake-cluster") mock_tron_service_config.return_value = [job_config] soa_dir = "/testing/services" cluster = "fake-cluster" assert (tron_tools.create_complete_config( service=service, cluster=cluster, soa_dir=soa_dir) == mock_yaml_dump.return_value) mock_tron_service_config.assert_called_once_with(service=service, cluster=cluster, load_deployments=True, soa_dir=soa_dir) mock_format_job.assert_called_once_with(job_config) complete_config = {"jobs": {"my_job": mock_format_job.return_value}} mock_yaml_dump.assert_called_once_with(complete_config, Dumper=mock.ANY, default_flow_style=mock.ANY)
def test_create_complete_config( self, mock_yaml_dump, mock_format_master_config, mock_format_job, mock_tron_service_config, mock_tron_system_config, mock_system_config, service, ): job_config = tron_tools.TronJobConfig('my_job', {}, 'fake-cluster') other_config = { 'my_config_value': [1, 2], } mock_format_master_config.return_value = other_config mock_tron_service_config.return_value = ( [job_config], other_config, ) soa_dir = '/testing/services' cluster = 'fake-cluster' assert tron_tools.create_complete_config( service=service, cluster=cluster, soa_dir=soa_dir, ) == mock_yaml_dump.return_value mock_tron_service_config.assert_called_once_with( service=service, cluster=cluster, load_deployments=True, soa_dir=soa_dir, ) if service == MASTER_NAMESPACE: mock_format_master_config.assert_called_once_with( other_config, mock_system_config.return_value.get_volumes.return_value, mock_system_config.return_value.get_dockercfg_location. return_value, ) else: assert mock_format_master_config.call_count == 0 mock_format_job.assert_called_once_with(job_config, ) complete_config = other_config.copy() complete_config.update({ 'jobs': { 'my_job': mock_format_job.return_value, }, }) mock_yaml_dump.assert_called_once_with( complete_config, Dumper=mock.ANY, default_flow_style=mock.ANY, )
def test_create_complete_config( self, mock_yaml_dump, mock_format_master_config, mock_format_job, mock_tron_service_config, mock_tron_system_config, mock_system_config, service, ): job_config = tron_tools.TronJobConfig({}) other_config = { 'my_config_value': [1, 2], } mock_format_master_config.return_value = other_config mock_tron_service_config.return_value = ( [job_config], other_config, ) soa_dir = '/testing/services' assert tron_tools.create_complete_config( service, soa_dir) == mock_yaml_dump.return_value mock_tron_service_config.assert_called_once_with( service, mock_tron_system_config.return_value.get_cluster_name.return_value, True, soa_dir, ) if service == MASTER_NAMESPACE: mock_format_master_config.assert_called_once_with( other_config, mock_system_config.return_value.get_volumes.return_value, mock_system_config.return_value.get_dockercfg_location. return_value, ) else: assert mock_format_master_config.call_count == 0 mock_format_job.assert_called_once_with( job_config, mock_system_config.return_value.get_cluster_fqdn_format. return_value, mock_tron_system_config.return_value.get_default_paasta_cluster. return_value, ) complete_config = other_config.copy() complete_config.update({ 'jobs': [mock_format_job.return_value], }) mock_yaml_dump.assert_called_once_with( complete_config, Dumper=mock.ANY, default_flow_style=mock.ANY, )
def main(): args = parse_args() log_level = logging.DEBUG if args.verbose else logging.INFO logging.basicConfig(level=log_level) if args.all_namespaces: if args.services: log.error('Do not pass service names with --all flag') sys.exit(1) try: services = tron_tools.get_tron_namespaces_for_cluster() except Exception as e: log.error('Failed to list tron namespaces: {error}'.format( error=str(e), )) sys.exit(1) else: services = args.services if not services: log.warning("No namespaces found") sys.exit(0) client = tron_tools.get_tron_client() updated = [] failed = [] skipped = [] for service in services: try: new_config = tron_tools.create_complete_config( service=service, soa_dir=args.soa_dir, ) if client.update_namespace(service, new_config): updated.append(service) log.debug(f'Updated {service}') else: skipped.append(service) log.debug(f'Skipped {service}') except Exception as e: log.error(f'Update for {service} failed: {str(e)}') log.debug(f'Exception while updating {service}', exc_info=1) failed.append(service) skipped_report = skipped if args.verbose else len(skipped) log.info( f'Updated following namespaces: {updated}, ' f'failed: {failed}, skipped: {skipped_report}', ) sys.exit(1 if failed else 0)
def test_create_complete_config( self, mock_yaml_dump, mock_format_job, mock_tron_service_config, mock_tron_system_config, mock_system_config, ): job_config = tron_tools.TronJobConfig({}) other_config = { 'my_config_value': [1, 2], } mock_tron_service_config.return_value = ( [job_config], other_config, ) service = 'my_app' soa_dir = '/testing/services' assert tron_tools.create_complete_config( service, soa_dir) == mock_yaml_dump.return_value mock_tron_service_config.assert_called_once_with( service, mock_tron_system_config.return_value.get_cluster_name.return_value, soa_dir, ) mock_format_job.assert_called_once_with( job_config, mock_system_config.return_value.get_cluster_fqdn_format. return_value, mock_tron_system_config.return_value.get_default_paasta_cluster. return_value, ) complete_config = other_config.copy() complete_config.update({ 'jobs': [mock_format_job.return_value], }) mock_yaml_dump.assert_called_once_with( complete_config, Dumper=mock.ANY, default_flow_style=mock.ANY, )
def main(): args = parse_args() log_level = logging.DEBUG if args.verbose else logging.INFO logging.basicConfig(level=log_level) if not args.cluster: args.cluster = tron_tools.load_tron_config().get_cluster_name() if args.all_namespaces: if args.services: log.error("Do not pass service names with --all flag") sys.exit(1) try: services = tron_tools.get_tron_namespaces(cluster=args.cluster, soa_dir=args.soa_dir) except Exception as e: log.error( "Failed to list tron namespaces: {error}".format(error=str(e))) sys.exit(1) else: services = args.services if not services: log.warning("No namespaces found") sys.exit(0) if not args.dry_run: client = tron_tools.get_tron_client() updated = [] failed = [] skipped = [] master_config = tron_tools.create_complete_master_config( cluster=args.cluster, soa_dir=args.soa_dir) if args.dry_run: log.info(f"Would update {MASTER_NAMESPACE} to:") log.info(f"{master_config}") updated.append(MASTER_NAMESPACE) else: if client.update_namespace(MASTER_NAMESPACE, master_config): updated.append(MASTER_NAMESPACE) log.debug(f"Updated {MASTER_NAMESPACE}") else: skipped.append(MASTER_NAMESPACE) log.debug(f"Skipped {MASTER_NAMESPACE}") for service in sorted(services): try: new_config = tron_tools.create_complete_config( cluster=args.cluster, service=service, soa_dir=args.soa_dir) if args.dry_run: log.info(f"Would update {service} to:") log.info(f"{new_config}") updated.append(service) else: if client.update_namespace(service, new_config): updated.append(service) log.debug(f"Updated {service}") else: skipped.append(service) log.debug(f"Skipped {service}") except Exception as e: log.error(f"Update for {service} failed: {str(e)}") log.debug(f"Exception while updating {service}", exc_info=1) failed.append(service) skipped_report = skipped if args.verbose else len(skipped) log.info(f"Updated following namespaces: {updated}, " f"failed: {failed}, skipped: {skipped_report}") sys.exit(1 if failed else 0)