|
5 | 5 | from ceph.deployment.service_spec import MgmtGatewaySpec, GrafanaSpec |
6 | 6 | from cephadm.services.cephadmservice import CephadmService, CephadmDaemonDeploySpec, get_dashboard_endpoints |
7 | 7 |
|
| 8 | +if TYPE_CHECKING: |
| 9 | + from ..module import CephadmOrchestrator |
8 | 10 |
|
9 | 11 | logger = logging.getLogger(__name__) |
10 | 12 |
|
@@ -81,14 +83,20 @@ def get_service_discovery_endpoints(self) -> List[str]: |
81 | 83 | sd_endpoints.append(f"{addr}:{self.mgr.service_discovery_port}") |
82 | 84 | return sd_endpoints |
83 | 85 |
|
84 | | - def get_mgmt_gateway_deps(self) -> List[str]: |
| 86 | + @staticmethod |
| 87 | + def get_dependencies(mgr: "CephadmOrchestrator") -> List[str]: |
85 | 88 | # url_prefix for the following services depends on the presence of mgmt-gateway |
86 | | - deps: List[str] = [] |
87 | | - deps += [d.name() for d in self.mgr.cache.get_daemons_by_service('prometheus')] |
88 | | - deps += [d.name() for d in self.mgr.cache.get_daemons_by_service('alertmanager')] |
89 | | - deps += [d.name() for d in self.mgr.cache.get_daemons_by_service('grafana')] |
90 | | - deps += [d.name() for d in self.mgr.cache.get_daemons_by_service('oauth2-proxy')] |
91 | | - |
| 89 | + deps = [ |
| 90 | + f'{d.name()}:{d.ports[0]}' if d.ports else d.name() |
| 91 | + for service in ['prometheus', 'alertmanager', 'grafana', 'oauth2-proxy'] |
| 92 | + for d in mgr.cache.get_daemons_by_service(service) |
| 93 | + ] |
| 94 | + # dashboard and service discovery urls depend on the mgr daemons |
| 95 | + deps += [ |
| 96 | + f'{d.name()}' |
| 97 | + for service in ['mgr'] |
| 98 | + for d in mgr.cache.get_daemons_by_service(service) |
| 99 | + ] |
92 | 100 | return deps |
93 | 101 |
|
94 | 102 | def generate_config(self, daemon_spec: CephadmDaemonDeploySpec) -> Tuple[Dict[str, Any], List[str]]: |
@@ -146,7 +154,7 @@ def generate_config(self, daemon_spec: CephadmDaemonDeploySpec) -> Tuple[Dict[st |
146 | 154 | daemon_config["files"]["nginx.crt"] = cert |
147 | 155 | daemon_config["files"]["nginx.key"] = key |
148 | 156 |
|
149 | | - return daemon_config, sorted(self.get_mgmt_gateway_deps()) |
| 157 | + return daemon_config, sorted(MgmtGatewayService.get_dependencies(self.mgr)) |
150 | 158 |
|
151 | 159 | def pre_remove(self, daemon: DaemonDescription) -> None: |
152 | 160 | """ |
|
0 commit comments