8 Script to set the value of the RC Controller Service port used by the specified Session
9 in the specified OKS database file. If the new port is not specified,
10 it is set to a random available k8s NodePort.
14 except Exception
as e:
15 print(f
"Error: Could not open OKS file {oksfile}. Make sure OKS_CONFLIBS_PATH is set.")
16 print(f
"Details: {e}")
20 print(
"Error: The session name needs to be specified")
24 session = db.get_dal(
"Session", session_name)
26 print(f
"Error: Could not find Session '{session_name}' in file '{oksfile}'")
30 k8s_min_port, k8s_max_port = 30000, 32767
32 new_port = find_free_port(k8s_min_port, k8s_max_port)
33 print(f
"Found free Kubernetes NodePort: {new_port}")
36 if not (k8s_min_port <= new_port <= k8s_max_port):
37 print(f
"Warning: Port {new_port} is outside the standard k8s NodePort range ({k8s_min_port}-{k8s_max_port}).")
40 service_to_update =
None
42 if not hasattr(session,
'segment')
or session.segment
is None:
43 print(f
"Error: Session '{session_name}' has no 'segment' defined.")
46 segment = session.segment
47 if not hasattr(segment,
'controller')
or segment.controller
is None:
48 print(f
"Error: Segment '{segment.id}' has no 'controller' defined.")
51 controller = segment.controller
52 if not hasattr(controller,
'exposes_service')
or not controller.exposes_service:
54 print(f
"Error: Controller '{controller.id}' has no 'exposes_service' defined or the list is empty.")
57 service_list = controller.exposes_service
59 if len(service_list) > 1:
60 print(f
"Warning: Controller '{controller.id}' exposes multiple services. Only updating the first one ('{service_list[0].id}').")
62 service_to_update = service_list[0]
64 if service_to_update
is None:
65 print(f
"Error: Controller '{controller.id}' has a null service in its 'exposes_service' list.")
68 except Exception
as e:
69 print(f
"Error: Failed to navigate object graph from Session '{session_name}'.")
70 print(f
"Details: {e}")
75 service_to_update.port = new_port
76 db.update_dal(service_to_update)
77 print(f
"Updated RC Controller Service '{service_to_update.id}' to use port {new_port}")
80 print(f
"Successfully configured RC controller port for session '{session_name}'.")
84 print(f
"Error: Could not find the RC Controller Service for session '{session_name}'.")