Flavors Module¶
Overview¶
Service: Nova (Compute Service)
Identifier: flavors
Version: 1.0.0
Location: /Sources/Substation/Modules/Flavors/
The Flavors module provides read-only access to OpenStack Nova instance types (flavors), which define the compute, memory, and storage capacity of virtual machine instances. This module is essential for server creation workflows and capacity planning.
Quick Reference¶
| Feature | Supported | Details |
|---|---|---|
| List View | Yes | Complete flavor catalog with resource specifications |
| Detail View | Yes | Detailed specifications and performance analysis |
| Create/Edit | No | Read-only (admin operation via CLI/API) |
| Batch Operations | No | Not applicable for flavors |
| Multi-Select | No | Single selection only |
| Search/Filter | Yes | Filter by name, RAM, vCPUs, disk |
| Auto-Refresh | Yes | Periodic refresh of flavor list |
| Health Monitoring | Yes | Availability and quota tracking |
Dependencies¶
Required Modules¶
- None (Flavors is a base module with no dependencies)
Optional Modules¶
- Servers - Uses flavors for instance sizing
- Quotas - Validates flavor usage against quotas
Features¶
Resource Management¶
- Flavor Browsing: Navigate available instance types
- Resource Specifications: View vCPUs, RAM, disk allocations
- Performance Categories: Group by compute-optimized, memory-optimized, etc.
- Cost Analysis: Compare resource allocations across flavors
- Extra Specs Viewing: Access advanced flavor properties
List Operations¶
The flavor list provides a comprehensive view of available instance types with sortable resource specifications.
Available Actions:
Enter- View detailed flavor specifications/- Search flavors by name or specsr- Refresh flavor lists- Sort by different criteria (name, RAM, vCPUs)Tab- Switch between views
Detail View¶
Displays complete flavor specifications including performance characteristics and recommended use cases.
Displayed Information:
- Core Specs: vCPUs, RAM, root disk, ephemeral disk, swap
- Performance Profile: CPU policy, NUMA topology, CPU threads
- Resource Limits: IOPS limits, bandwidth restrictions
- Extra Specifications: Custom properties, GPU allocation, SR-IOV
- Usage Recommendations: Workload suitability analysis
Create/Edit Operations¶
This module is read-only. Flavor management is an administrative operation performed through the OpenStack CLI or API.
Batch Operations¶
Not applicable for flavors as they are system-defined resources.
API Endpoints¶
Primary Endpoints¶
GET /flavors- List all flavorsGET /flavors/detail- List flavors with full detailsGET /flavors/{flavor_id}- Get specific flavor details
Secondary Endpoints¶
GET /flavors/{flavor_id}/os-extra_specs- Get flavor extra specificationsGET /flavors/{flavor_id}/os-flavor-access- Get flavor access list
Configuration¶
Module Settings¶
FlavorsModule(
identifier: "flavors",
displayName: "Instance Flavors",
version: "1.0.0",
cacheEnabled: true
)
Environment Variables¶
FLAVOR_LIST_LIMIT- Maximum flavors per page (Default:100)FLAVOR_CACHE_TTL- Cache lifetime in seconds (Default:300)SHOW_PRIVATE_FLAVORS- Include private flavors (Default:false)
Performance Tuning¶
- Cache Duration: Increase
FLAVOR_CACHE_TTLas flavors rarely change - List Filtering: Use
SHOW_PRIVATE_FLAVORSto reduce list size - Sorting: Pre-sort by most commonly used criteria
Views¶
Registered View Modes¶
Flavor List (flavors)¶
Purpose: Display and browse available instance flavors
Key Features:
- Resource specification columns (vCPUs, RAM, disk)
- Performance category indicators
- Quick comparison of specifications
- Sortable by any resource dimension
Navigation:
- Enter from: Main menu, server creation workflow
- Exit to: Flavor detail view, main menu
Flavor Detail (flavorDetail)¶
Purpose: Display comprehensive flavor specifications and analysis
Key Features:
- Complete resource specifications
- Extra specs and custom properties
- Performance characteristics
- Workload recommendations
Navigation:
- Enter from: Flavor list view
- Exit to: Flavor list view
Flavor Selection (flavorSelection)¶
Purpose: Select a flavor during server creation
Key Features:
- Filtered view based on requirements
- Quick resource comparison
- Quota validation indicators
- Immediate selection feedback
Navigation:
- Enter from: Server creation form
- Exit to: Server creation form with selection
Keyboard Shortcuts¶
Global Shortcuts (Available in all module views)¶
| Key | Action | Context |
|---|---|---|
Enter |
Select/View Details | List views |
Esc |
Go Back | Any view |
q |
Quit to Main Menu | Any view |
/ |
Search | List views |
r |
Refresh | List views |
Module-Specific Shortcuts¶
| Key | Action | View | Description |
|---|---|---|---|
s |
Sort Options | List | Cycle through sort criteria |
f |
Filter Toggle | List | Show/hide private flavors |
c |
Compare Mode | List | Enter flavor comparison view |
Tab |
Switch View | Any | Toggle between list and detail |
Space |
Quick Select | Selection | Select flavor in creation workflow |
Data Provider¶
Provider Class: FlavorsDataProvider
Caching Strategy¶
Flavors are aggressively cached as they change infrequently. Cache is shared across all module instances.
Refresh Patterns¶
- Automatic Refresh: Every 5 minutes (configurable)
- Manual Refresh: On-demand with 'r' key
- Startup Load: Full refresh on module initialization
Performance Optimizations¶
- Static Caching: Flavors cached for extended periods
- Lazy Extra Specs: Extra specifications loaded on demand
- Sorted Cache: Pre-sorted by common criteria
Known Limitations¶
Current Constraints¶
- Read-Only Access: Cannot create or modify flavors
- Admin Properties: Some properties hidden for non-admin users
- Custom Flavors: Private flavors may not be visible
- GPU Details: Limited GPU specification display
Planned Improvements¶
- Advanced filtering by extra specifications
- Flavor comparison matrix view
- Resource calculator integration
- Cost estimation features
Examples¶
Common Usage Scenarios¶
Finding Appropriate Flavor for Workload¶
1. Navigate to Flavors module
2. Press 's' to sort by RAM
3. Use '/' to search for specific requirements
4. Press Enter to view detailed specs
5. Review extra specifications for special features
Selecting Flavor During Server Creation¶
1. In server creation form, select flavor field
2. Flavors module opens in selection mode
3. Browse or search for appropriate flavor
4. Press Space or Enter to select
5. Return to creation form with selection
Comparing Multiple Flavors¶
1. Enter Flavors module
2. Press 'c' for comparison mode
3. Select flavors to compare
4. View side-by-side specifications
5. Make informed selection decision
Code Examples¶
Programmatic Access¶
// Access flavors through data provider
let provider = DataProviderRegistry.shared.provider(for: "flavors")
let flavors = await provider.fetchData()
// Filter by minimum RAM requirement
let largeFlavors = flavors.filter { $0.ram >= 16384 }
Custom Integration¶
// Add custom flavor analyzer
extension FlavorsModule {
func analyzeWorkloadFit(flavor: Flavor, workload: WorkloadType) -> FitScore {
// Custom analysis logic
return FitScore(
cpu: evaluateCPU(flavor.vcpus, workload.cpuRequirement),
memory: evaluateMemory(flavor.ram, workload.memoryRequirement),
storage: evaluateStorage(flavor.disk, workload.storageRequirement)
)
}
}
Troubleshooting¶
Common Issues¶
Flavors Not Loading¶
Symptoms: Empty flavor list or errors Cause: Nova service issues or permissions Solution: Verify Nova service status and user permissions
Missing Private Flavors¶
Symptoms: Expected flavors not visible Cause: Flavor access restrictions Solution: Check flavor access list or contact administrator
Incorrect Specifications Display¶
Symptoms: Wrong resource values shown Cause: Cache inconsistency Solution: Force refresh with 'r' key or clear cache
Debug Commands¶
openstack flavor list --all- List all available flavorsopenstack flavor show <flavor>- Show flavor details- Check logs in
~/.substation/logs/flavors.log
Related Documentation¶
Module Metadata¶
| Property | Value |
|---|---|
| Module Identifier | flavors |
| Display Name | Instance Flavors |
| Version | 1.0.0 |
| Service | Nova |
| Category | Compute Infrastructure |
| Deletion Priority | N/A |
| Load Order | 5 |
| Memory Usage | ~2-5 MB |
| CPU Impact | Minimal |
Last Updated: 2025-11-23 Documentation Version: 1.0.0