-
Notifications
You must be signed in to change notification settings - Fork 25
Closed
Labels
enhancementNew feature or requestNew feature or request
Milestone
Description
Overview
Create a Python script to automatically migrate transcript_map.yaml files from v0.2.0 list-of-maps format to v1.0.0 map format.
Requirements
Input Format (v0.2.0)
platforms:
- csr1000v:
vendor: "cisco"
hostname: "device1"
- ios:
vendor: "cisco"
hostname: "device2"Output Format (v1.0.0)
platforms:
csr1000v:
vendor: "cisco"
hostname: "device1"
ios:
vendor: "cisco"
hostname: "device2"Implementation
Create scripts/migrate_transcript_map.py:
#!/usr/bin/env python3
"""Migrate transcript_map.yaml from v0.2.0 to v1.0.0 format."""
import sys
import yaml
def migrate(old_data):
if 'platforms' not in old_data:
return old_data
platforms = old_data['platforms']
if isinstance(platforms, list):
# Convert list-of-maps to map
new_platforms = {}
for item in platforms:
for key, value in item.items():
new_platforms[key] = value
old_data['platforms'] = new_platforms
return old_data
if __name__ == '__main__':
data = yaml.safe_load(sys.stdin)
migrated = migrate(data)
yaml.dump(migrated, sys.stdout, default_flow_style=False)Usage
python scripts/migrate_transcript_map.py < old_map.yaml > new_map.yamlDeliverables
- Create
scripts/migrate_transcript_map.py - Make script executable (
chmod +x) - Add usage documentation in script header
- Test with example v0.2.0 transcript map
- Handle edge cases (already migrated, missing platforms key)
- Add error handling and validation
Testing
Test cases:
- v0.2.0 format → v1.0.0 format
- Already migrated (v1.0.0) → no change
- Empty platforms list → empty map
- Missing platforms key → no change
Related
- Blocks docs: Add migration guide for v0.2.0 to v1.0.0 #84 (migration guide)
- Part of v1.0.0 release preparation
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request