Skip to content

Commit 3bf351d

Browse files
committed
remove not used code
1 parent 569c6e3 commit 3bf351d

File tree

4 files changed

+198
-327
lines changed

4 files changed

+198
-327
lines changed

scripts/release/agent/detect_ops_manager_changes.py renamed to scripts/release/agent/agents_to_rebuild.py

Lines changed: 0 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -19,32 +19,6 @@
1919
logger = logging.getLogger(__name__)
2020

2121

22-
def get_content_from_git(commit: str, file_path: str) -> Optional[str]:
23-
try:
24-
result = subprocess.run(
25-
["git", "show", f"{commit}:{file_path}"], capture_output=True, text=True, check=True, timeout=30
26-
)
27-
return result.stdout
28-
except (subprocess.CalledProcessError, subprocess.TimeoutExpired) as e:
29-
logger.error(f"Failed to get {file_path} from git commit {commit}: {e}")
30-
return None
31-
32-
33-
def load_release_json_from_master() -> Optional[Dict]:
34-
base_revision = "origin/master"
35-
36-
content = get_content_from_git(base_revision, "release.json")
37-
if not content:
38-
logger.error(f"Could not retrieve release.json from {base_revision}")
39-
return None
40-
41-
try:
42-
return json.loads(content)
43-
except json.JSONDecodeError as e:
44-
logger.error(f"Invalid JSON in base release.json: {e}")
45-
return None
46-
47-
4822
def load_current_release_json() -> Optional[Dict]:
4923
try:
5024
with open("release.json", "r") as f:
@@ -60,28 +34,6 @@ def extract_ops_manager_mapping(release_data: Dict) -> Dict:
6034
return release_data.get("supportedImages", {}).get("mongodb-agent", {}).get("opsManagerMapping", {})
6135

6236

63-
def get_changed_agents(current_mapping: Dict, base_mapping: Dict) -> List[Tuple[str, str]]:
64-
"""Returns list of (agent_version, tools_version) tuples for added/changed agents"""
65-
added_agents = []
66-
67-
current_om_mapping = current_mapping.get("ops_manager", {})
68-
master_om_mapping = base_mapping.get("ops_manager", {})
69-
70-
for om_version, agent_tools_version in current_om_mapping.items():
71-
if om_version not in master_om_mapping or master_om_mapping[om_version] != agent_tools_version:
72-
added_agents.append((agent_tools_version["agent_version"], agent_tools_version["tools_version"]))
73-
74-
current_cm = current_mapping.get("cloud_manager")
75-
master_cm = base_mapping.get("cloud_manager")
76-
current_cm_tools = current_mapping.get("cloud_manager_tools")
77-
master_cm_tools = base_mapping.get("cloud_manager_tools")
78-
79-
if current_cm != master_cm or current_cm_tools != master_cm_tools:
80-
added_agents.append((current_cm, current_cm_tools))
81-
82-
return list(set(added_agents))
83-
84-
8537
def get_tools_version_for_agent(agent_version: str) -> str:
8638
"""Get tools version for a given agent version from release.json"""
8739
release_data = load_current_release_json()
@@ -206,26 +158,3 @@ def get_currently_used_agents() -> List[Tuple[str, str]]:
206158
except Exception as e:
207159
logger.error(f"Error getting currently used agents: {e}")
208160
return []
209-
210-
211-
def detect_ops_manager_changes() -> List[Tuple[str, str]]:
212-
"""Returns (has_changes, changed_agents_list)"""
213-
logger.info("=== Detecting OM Mapping Changes (Local vs Base) ===")
214-
215-
current_release = load_current_release_json()
216-
if not current_release:
217-
logger.error("Could not load current local release.json")
218-
return []
219-
220-
master_release = load_release_json_from_master()
221-
if not master_release:
222-
logger.warning("Could not load base release.json, assuming changes exist")
223-
return []
224-
225-
current_mapping = extract_ops_manager_mapping(current_release)
226-
base_mapping = extract_ops_manager_mapping(master_release)
227-
228-
if current_mapping != base_mapping:
229-
return get_changed_agents(current_mapping, base_mapping)
230-
else:
231-
return []

scripts/release/atomic_pipeline.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from opentelemetry import trace
1616

1717
from lib.base_logger import logger
18-
from scripts.release.agent.detect_ops_manager_changes import (
18+
from scripts.release.agent.agents_to_rebuild import (
1919
get_all_agents_for_rebuild,
2020
get_currently_used_agents,
2121
)
Lines changed: 197 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,197 @@
1+
#!/usr/bin/env python3
2+
"""
3+
Tests for scripts.release.agent.agents_to_rebuild.py
4+
"""
5+
import json
6+
import unittest
7+
from unittest.mock import mock_open, patch
8+
9+
from scripts.release.agent.agents_to_rebuild import (
10+
extract_ops_manager_mapping,
11+
get_all_agents_for_rebuild,
12+
get_currently_used_agents,
13+
get_tools_version_for_agent,
14+
load_current_release_json,
15+
)
16+
17+
18+
class TestDetectOpsManagerChanges(unittest.TestCase):
19+
20+
def setUp(self):
21+
"""Set up test fixtures"""
22+
self.master_release_data = {
23+
"supportedImages": {
24+
"mongodb-agent": {
25+
"opsManagerMapping": {
26+
"cloud_manager": "13.37.0.9590-1",
27+
"cloud_manager_tools": "100.12.2",
28+
"ops_manager": {
29+
"6.0.26": {"agent_version": "12.0.34.7888-1", "tools_version": "100.10.0"},
30+
"7.0.11": {"agent_version": "107.0.11.8645-1", "tools_version": "100.10.0"},
31+
},
32+
}
33+
}
34+
}
35+
}
36+
37+
self.current_release_data = {
38+
"supportedImages": {
39+
"mongodb-agent": {
40+
"opsManagerMapping": {
41+
"cloud_manager": "13.37.0.9590-1",
42+
"cloud_manager_tools": "100.12.2",
43+
"ops_manager": {
44+
"6.0.26": {"agent_version": "12.0.34.7888-1", "tools_version": "100.10.0"},
45+
"7.0.11": {"agent_version": "107.0.11.8645-1", "tools_version": "100.10.0"},
46+
},
47+
}
48+
}
49+
}
50+
}
51+
52+
self.evergreen_content = """
53+
variables:
54+
- &ops_manager_60_latest 6.0.27 # The order/index is important
55+
- &ops_manager_70_latest 7.0.17 # The order/index is important
56+
- &ops_manager_80_latest 8.0.12 # The order/index is important
57+
"""
58+
59+
def test_extract_ops_manager_mapping_valid(self):
60+
"""Test extracting opsManagerMapping from valid release data"""
61+
mapping = extract_ops_manager_mapping(self.master_release_data)
62+
expected = {
63+
"cloud_manager": "13.37.0.9590-1",
64+
"cloud_manager_tools": "100.12.2",
65+
"ops_manager": {
66+
"6.0.26": {"agent_version": "12.0.34.7888-1", "tools_version": "100.10.0"},
67+
"7.0.11": {"agent_version": "107.0.11.8645-1", "tools_version": "100.10.0"},
68+
},
69+
}
70+
self.assertEqual(mapping, expected)
71+
72+
def test_extract_ops_manager_mapping_empty(self):
73+
"""Test extracting from empty/invalid data"""
74+
self.assertEqual(extract_ops_manager_mapping({}), {})
75+
self.assertEqual(extract_ops_manager_mapping(None), {})
76+
77+
def test_extract_ops_manager_mapping_missing_keys(self):
78+
"""Test extracting when keys are missing"""
79+
incomplete_data = {"supportedImages": {}}
80+
self.assertEqual(extract_ops_manager_mapping(incomplete_data), {})
81+
82+
@patch("builtins.open", new_callable=mock_open)
83+
@patch("os.path.exists", return_value=True)
84+
def test_load_current_release_json_success(self, mock_exists, mock_file):
85+
"""Test successfully loading current release.json"""
86+
mock_file.return_value.read.return_value = json.dumps(self.current_release_data)
87+
88+
result = load_current_release_json()
89+
self.assertEqual(result, self.current_release_data)
90+
91+
@patch("builtins.open", side_effect=FileNotFoundError)
92+
def test_load_current_release_json_not_found(self, mock_file):
93+
"""Test handling missing release.json"""
94+
result = load_current_release_json()
95+
self.assertIsNone(result)
96+
97+
@patch("builtins.open", new_callable=mock_open)
98+
@patch("os.path.exists", return_value=True)
99+
def test_load_current_release_json_invalid_json(self, mock_exists, mock_file):
100+
"""Test handling invalid JSON in release.json"""
101+
mock_file.return_value.read.return_value = "invalid json"
102+
103+
result = load_current_release_json()
104+
self.assertIsNone(result)
105+
106+
@patch("scripts.release.agent.agents_to_rebuild.load_current_release_json")
107+
def test_get_tools_version_for_agent_found(self, mock_load):
108+
"""Test getting tools version for a known agent version"""
109+
mock_load.return_value = self.current_release_data
110+
result = get_tools_version_for_agent("12.0.34.7888-1")
111+
self.assertEqual(result, "100.10.0")
112+
113+
@patch("scripts.release.agent.agents_to_rebuild.load_current_release_json")
114+
def test_get_tools_version_for_agent_not_found(self, mock_load):
115+
"""Test getting tools version for unknown agent falls back to cloud_manager_tools"""
116+
mock_load.return_value = self.current_release_data
117+
result = get_tools_version_for_agent("unknown-agent-version")
118+
self.assertEqual(result, "100.12.2")
119+
120+
@patch("scripts.release.agent.agents_to_rebuild.load_current_release_json")
121+
def test_get_tools_version_for_agent_no_release_data(self, mock_load):
122+
"""Test getting tools version when release.json cannot be loaded"""
123+
mock_load.return_value = None
124+
result = get_tools_version_for_agent("any-version")
125+
self.assertEqual(result, "100.12.2")
126+
127+
@patch("scripts.release.agent.agents_to_rebuild.load_current_release_json")
128+
def test_get_all_agents_for_rebuild(self, mock_load):
129+
"""Test getting all agents for rebuild from release.json"""
130+
release_data = {
131+
"agentVersion": "13.37.0.9590-1",
132+
"supportedImages": {
133+
"mongodb-agent": {
134+
"opsManagerMapping": {
135+
"cloud_manager": "13.37.0.9590-1",
136+
"cloud_manager_tools": "100.12.2",
137+
"ops_manager": {
138+
"6.0.26": {"agent_version": "12.0.34.7888-1", "tools_version": "100.10.0"},
139+
"7.0.11": {"agent_version": "107.0.11.8645-1", "tools_version": "100.10.0"},
140+
},
141+
}
142+
}
143+
},
144+
}
145+
mock_load.return_value = release_data
146+
result = get_all_agents_for_rebuild()
147+
148+
# Should contain ops_manager agents, cloud_manager agent, and main agent
149+
self.assertIn(("12.0.34.7888-1", "100.10.0"), result)
150+
self.assertIn(("107.0.11.8645-1", "100.10.0"), result)
151+
self.assertIn(("13.37.0.9590-1", "100.12.2"), result)
152+
153+
@patch("scripts.release.agent.agents_to_rebuild.load_current_release_json")
154+
def test_get_all_agents_for_rebuild_no_release_data(self, mock_load):
155+
"""Test getting all agents when release.json cannot be loaded"""
156+
mock_load.return_value = None
157+
result = get_all_agents_for_rebuild()
158+
self.assertEqual(result, [])
159+
160+
@patch("scripts.release.agent.agents_to_rebuild.glob.glob")
161+
@patch("scripts.release.agent.agents_to_rebuild.load_current_release_json")
162+
def test_get_currently_used_agents_no_release_data(self, mock_load, mock_glob):
163+
"""Test getting currently used agents when release.json cannot be loaded"""
164+
mock_load.return_value = None
165+
result = get_currently_used_agents()
166+
self.assertEqual(result, [])
167+
168+
@patch("scripts.release.agent.agents_to_rebuild.glob.glob")
169+
@patch("scripts.release.agent.agents_to_rebuild.load_current_release_json")
170+
@patch("builtins.open", new_callable=mock_open)
171+
@patch("os.path.isfile", return_value=True)
172+
def test_get_currently_used_agents_with_context_files(self, mock_isfile, mock_file, mock_load, mock_glob):
173+
"""Test getting currently used agents from context files"""
174+
release_data = {
175+
"agentVersion": "13.37.0.9590-1",
176+
"supportedImages": {
177+
"mongodb-agent": {
178+
"opsManagerMapping": {
179+
"cloud_manager": "13.37.0.9590-1",
180+
"cloud_manager_tools": "100.12.2",
181+
"ops_manager": {},
182+
}
183+
}
184+
},
185+
}
186+
mock_load.return_value = release_data
187+
mock_glob.return_value = ["scripts/dev/contexts/test_context"]
188+
mock_file.return_value.read.return_value = "export AGENT_VERSION=12.0.34.7888-1\n"
189+
190+
result = get_currently_used_agents()
191+
192+
self.assertIn(("12.0.34.7888-1", "100.12.2"), result) # falls back to cloud_manager_tools
193+
self.assertIn(("13.37.0.9590-1", "100.12.2"), result)
194+
195+
196+
if __name__ == "__main__":
197+
unittest.main()

0 commit comments

Comments
 (0)