def test_publish_window(self): set_config_manager(ConfigManager(TestPropertyProvider({}))) set_workload_monitor_manager(TestWorkloadMonitorManager()) window_publisher = TestOpportunisticWindowPublisher( get_current_end_func=lambda: datetime.utcnow() - timedelta(minutes= 1), add_window_func=lambda: None, ) w_id = str(uuid.uuid4()) workload = get_test_workload(w_id, 1, STATIC) set_cpu_usage_predictor_manager( TestCpuUsagePredictorManager( TestSimpleCpuPredictor({w_id: DEFAULT_TOTAL_THRESHOLD - 0.001}))) oeh = OversubscribeEventHandler(TestWorkloadManager([workload]), window_publisher) oeh._handle(json.loads(OVERSUBSCRIBE_EVENT.decode("utf-8"))) self.assertEqual(0, oeh.get_skip_count()) self.assertEqual(1, oeh.get_success_count()) self.assertEqual(1, window_publisher.get_current_end_count) self.assertEqual(1, window_publisher.add_window_count)
RESTART_PROPERTIES) log.info("Modeling the CPU...") cpu = get_cpu_from_env() # Start periodic scheduling log.info("Starting periodic event scheduling...") start_periodic_scheduling() # Start the cpu usage predictor manager log.info("Setting up the cpu usage predictor manager...") # Start performance monitoring log.info("Starting performance monitoring...") workload_monitor_manager = WorkloadMonitorManager() set_workload_monitor_manager(workload_monitor_manager) # Setup the workload manager log.info("Setting up the workload manager...") cpu_allocator = get_fallback_allocator(get_config_manager()) log.info( "Created Fallback CPU allocator with primary: '{}' and secondary: '{}". format(cpu_allocator.get_primary_allocator().__class__.__name__, cpu_allocator.get_secondary_allocator().__class__.__name__)) cgroup_manager = FileCgroupManager() workload_manager = WorkloadManager(cpu=cpu, cgroup_manager=cgroup_manager, cpu_allocator=cpu_allocator) set_workload_manager(workload_manager) # Setup the event handlers
from tests.utils import get_test_workload, config_logs from titus_isolate.allocate.integer_program_cpu_allocator import IntegerProgramCpuAllocator from titus_isolate.api import status from titus_isolate.api.status import get_workloads, get_violations, get_wm_status, get_isolated_workload_ids, \ isolate_workload from titus_isolate.config.config_manager import ConfigManager from titus_isolate.event.constants import STATIC, BURST from titus_isolate.event.event_manager import EventManager from titus_isolate.isolate.workload_manager import WorkloadManager from titus_isolate.model.processor.config import get_cpu from titus_isolate.model.processor.utils import DEFAULT_PACKAGE_COUNT, DEFAULT_CORE_COUNT, DEFAULT_THREAD_COUNT from titus_isolate.utils import set_config_manager, set_workload_manager, set_event_manager, \ set_workload_monitor_manager config_logs(logging.DEBUG) set_workload_monitor_manager(TestWorkloadMonitorManager()) class TestStatus(unittest.TestCase): def test_get_workloads_endpoint(self): set_config_manager(ConfigManager(TestPropertyProvider({}))) thread_count = 2 workload_id = str(uuid.uuid4()) workload = get_test_workload(workload_id, thread_count, STATIC) workload_manager = self.__get_default_workload_manager() set_workload_manager(workload_manager) workloads = json.loads(get_workloads()) self.assertEqual(0, len(workloads))