26 lines
814 B
Python
26 lines
814 B
Python
from typing import List
|
|
from risotto.utils import load_domains, DOMAINS
|
|
from risotto.utils import multi_function as _multi_function
|
|
|
|
|
|
@_multi_function
|
|
def get_ip(server_name: str) -> str:
|
|
if server_name is None:
|
|
return
|
|
if isinstance(server_name, list):
|
|
return_list = True
|
|
else:
|
|
return_list = False
|
|
server_name = [server_name]
|
|
lst = []
|
|
for s_name in server_name:
|
|
host_name, domain_name = s_name.split('.', 1)
|
|
if not domain_name in DOMAINS:
|
|
raise ValueError(f'cannot find IP in domain name "{domain_name}" (for "{s_name}")')
|
|
domain = DOMAINS[domain_name]
|
|
ret = domain[1][domain[0].index(host_name)]
|
|
if not return_list:
|
|
return ret
|
|
if ret not in lst:
|
|
lst.append(ret)
|
|
return lst
|