|
| 1 | +# Oracle OCI AnyCost Adaptor Project |
| 2 | + |
| 3 | +## Project Overview |
| 4 | +This project is an adaptation of the CloudZero AnyCost Stream example specifically for Oracle OCI (Oracle Cloud Infrastructure). The goal is to create an adaptor that can retrieve cost data from Oracle OCI and transform it into CloudZero's Common Bill Format (CBF) for ingestion into CloudZero's platform. |
| 5 | + |
| 6 | +## What We've Done |
| 7 | + |
| 8 | +### Initial Setup (2025-08-26) |
| 9 | +1. **Repository Creation**: |
| 10 | + - Cloned the original CloudZero anycost example from https://github.com/jakesciotto/cloudzero-anycost-example |
| 11 | + - Created local repository at `/Users/jake.sciotto/Documents/github/oracle-oci-anycost-adaptor` |
| 12 | + |
| 13 | +2. **Codebase Analysis**: |
| 14 | + - Examined the main adaptor script (`anycost_example.py`) - 322 lines of Python code |
| 15 | + - Reviewed the README.md documentation |
| 16 | + - Analyzed example data structure in `example_cloud_provider_data/` |
| 17 | + - Current implementation processes CSV files for: |
| 18 | + - Usage data (`cloud_usage.csv`) |
| 19 | + - Purchase commitments (`cloud_purchase_commitments.csv`) |
| 20 | + - Discounts (`cloud_discounts.csv`) |
| 21 | + |
| 22 | +3. **Project Planning**: |
| 23 | + - Created comprehensive todo list with 7 tasks |
| 24 | + - Identified high-priority tasks: OCI API integration, data processing adaptation |
| 25 | + - Medium priority: documentation updates, example data creation, testing |
| 26 | + - Low priority: git repository initialization |
| 27 | + |
| 28 | +## Current Repository Structure |
| 29 | +``` |
| 30 | +oracle-oci-anycost-adaptor/ |
| 31 | +├── .claude/ # Project memory (new) |
| 32 | +├── .github/ # GitHub workflows |
| 33 | +├── anycost_example.py # Main adaptor script (to be adapted for OCI) |
| 34 | +├── cbf/ # CBF output directory |
| 35 | +├── example_cloud_provider_data/ # Sample data files |
| 36 | +│ ├── cloud_usage.csv |
| 37 | +│ ├── cloud_purchase_commitments.csv |
| 38 | +│ └── cloud_discounts.csv |
| 39 | +├── tests/ # Test suite |
| 40 | +├── README.md # Documentation (needs OCI updates) |
| 41 | +└── other files... |
| 42 | +``` |
| 43 | + |
| 44 | +## Next Steps (Todo List) |
| 45 | +1. **High Priority**: |
| 46 | + - Research Oracle OCI cost data structure and API endpoints |
| 47 | + - Update script to integrate with Oracle OCI SDK for cost data retrieval |
| 48 | + - Adapt data processing functions for OCI cost data format |
| 49 | + |
| 50 | +2. **Medium Priority**: |
| 51 | + - Update README documentation for OCI-specific setup and usage |
| 52 | + - Create OCI-specific example data files |
| 53 | + - Update tests for OCI-specific functionality |
| 54 | + |
| 55 | +3. **Low Priority**: |
| 56 | + - Initialize new git repository with OCI-specific changes |
| 57 | + |
| 58 | +## Key Technical Details |
| 59 | + |
| 60 | +### Current Implementation |
| 61 | +- **Language**: Python 3.9+ |
| 62 | +- **Dependencies**: requests, csv, json modules |
| 63 | +- **Data Flow**: CSV files → CBF transformation → CloudZero API upload |
| 64 | +- **Supported Operations**: replace_drop, replace_hourly, sum |
| 65 | +- **Batch Processing**: Supports multiple months upload |
| 66 | + |
| 67 | +### OCI Adaptation Requirements |
| 68 | +- **API Integration**: Need to integrate Oracle OCI SDK for Python |
| 69 | +- **Authentication**: OCI config file and API key management |
| 70 | +- **Cost Data Sources**: Usage reports, billing data from OCI |
| 71 | +- **Data Mapping**: Transform OCI cost structure to CBF format |
| 72 | + |
| 73 | +## Project Context |
| 74 | +- **Original Source**: CloudZero anycost stream example |
| 75 | +- **Target Cloud**: Oracle OCI |
| 76 | +- **Purpose**: Cost data integration with CloudZero platform |
| 77 | +- **Scope**: Complete adaptor for OCI cost management |
0 commit comments