Classifier analyzes the job and create analyis dict which will be used to create job-manifest.yaml (file used to deploy infrastructure).
- JobType Enum - All job type variants:
- Ironic: IRONIC_STANDALONE, IRONIC_INTEGRATED, IRONIC_INSPECTOR
- DevStack: DEVSTACK_MINIMAL, DEVSTACK_FULL
- Service-focused: NEUTRON_FOCUSED, CINDER_FOCUSED, NOVA_FOCUSED
- JobClassifier - Multi-heuristic classification:
- _classify_by_parent() - Check parent job
- _classify_by_services() - Strongest signal - check enabled services
- _classify_by_projects() - Check required-projects
- _classify_by_name() - Weakest signal - job name patterns
- Key Methods:
- classify_job() - Determine job type
- get_required_services() - Map to container names
- can_run_job() - Check if StackBox can run it
- analyze_job() - Complete analysis for GitOps → returns all info needed for manifest
Classifier analyzes the job and create analyis dict which will be used to create job-manifest.yaml (file used to deploy infrastructure).
- Ironic: IRONIC_STANDALONE, IRONIC_INTEGRATED, IRONIC_INSPECTOR
- DevStack: DEVSTACK_MINIMAL, DEVSTACK_FULL
- Service-focused: NEUTRON_FOCUSED, CINDER_FOCUSED, NOVA_FOCUSED
- _classify_by_parent() - Check parent job
- _classify_by_services() - Strongest signal - check enabled services
- _classify_by_projects() - Check required-projects
- _classify_by_name() - Weakest signal - job name patterns
- classify_job() - Determine job type
- get_required_services() - Map to container names
- can_run_job() - Check if StackBox can run it
- analyze_job() - Complete analysis for GitOps → returns all info needed for manifest