Skip to content

Commit fbe9970

Browse files
authored
Merge pull request #162 from victormlg/show_ip_adresses
CFE-4599: cf-remote info shows ip address for vagrant vms
2 parents 844541e + 6bf890c commit fbe9970

File tree

3 files changed

+34
-6
lines changed

3 files changed

+34
-6
lines changed

cf_remote/commands.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,6 @@ def install(
235235
if type(hubs) is str:
236236
hubs = [hubs]
237237
for index, hub in enumerate(hubs):
238-
log.debug("Installing {} hub package on '{}'".format(edition, hub))
239238
hub_jobs.append(
240239
HostInstaller(
241240
hub,

cf_remote/remote.py

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,14 @@
1717
parse_version,
1818
CFRChecksumError,
1919
)
20-
from cf_remote.ssh import ssh_sudo, ssh_cmd, scp, auto_connect
20+
from cf_remote.ssh import (
21+
ssh_sudo,
22+
ssh_cmd,
23+
scp,
24+
auto_connect,
25+
host_is_vagrant,
26+
get_state_from_host,
27+
)
2128
from cf_remote import log
2229
from cf_remote.web import download_package
2330
from cf_remote.packages import Releases, Artifact, filter_artifacts
@@ -206,8 +213,7 @@ def get_info(host, *, users=None, connection=None):
206213
user, host = connection.ssh_user, connection.ssh_host
207214
data = OrderedDict()
208215
data["ssh_user"] = user
209-
data["ssh_host"] = host
210-
data["ssh"] = "{}@{}".format(user, host)
216+
211217
systeminfo = ssh_cmd(connection, "systeminfo")
212218
if systeminfo:
213219
data["os"] = "windows"
@@ -278,13 +284,17 @@ def get_info(host, *, users=None, connection=None):
278284
if "NTD_PRIVATE_IP" in discovery:
279285
data["private_ip"] = discovery["NTD_PRIVATE_IP"]
280286

287+
if host_is_vagrant(host) and data["private_ip"]:
288+
host = data["private_ip"].split()[1]
289+
data["ssh_host"] = host
290+
data["ssh"] = "{}@{}".format(user, host)
281291
log.debug("JSON data from host info: \n" + pretty(data))
282292
return data
283293

284294

285295
@auto_connect
286296
def install_package(host, pkg, data, demo, *, connection=None):
287-
print("Installing: '{}' on '{}'".format(pkg, host))
297+
print("Installing: '{}' on '{}'".format(pkg, data["ssh_host"]))
288298
output = None
289299
if ".deb" in pkg:
290300
output = ssh_sudo(connection, 'dpkg -i "{}"'.format(pkg), True, needs_pty=True)
@@ -395,6 +405,11 @@ def uninstall_cfengine(host, data, *, connection=None, purge=False):
395405
def bootstrap_host(host_data, policy_server, *, connection=None, trust_server=True):
396406
host = host_data["ssh_host"]
397407
agent = host_data["agent"]
408+
409+
policy_server_data = get_state_from_host(policy_server)
410+
if policy_server_data and ("private_ips" in policy_server_data):
411+
policy_server = policy_server_data["public_ips"][0]
412+
398413
print("Bootstrapping: '{}' -> '{}'".format(host, policy_server))
399414
command = "{} --bootstrap {}".format(agent, policy_server)
400415
if not trust_server:
@@ -529,6 +544,8 @@ def install_host(
529544
if show_info:
530545
print_info(data)
531546

547+
log.debug("Installing {} hub package on '{}'".format(edition, data["ssh_host"]))
548+
532549
package = None
533550
if packages and type(packages) is str:
534551
package = packages
@@ -583,7 +600,7 @@ def install_host(
583600
if data["agent_version"] and len(data["agent_version"]) > 0:
584601
print(
585602
"CFEngine {} was successfully installed on '{}'".format(
586-
data["agent_version"], host
603+
data["agent_version"], data["ssh_host"]
587604
)
588605
)
589606
else:

cf_remote/ssh.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,18 @@ def host_is_vagrant(host):
144144
return False
145145

146146

147+
def get_state_from_host(host):
148+
149+
config = read_json(CLOUD_STATE_FPATH)
150+
if config is None:
151+
return False
152+
153+
for group in config.values():
154+
for curr_host, data in group.items():
155+
if curr_host == host:
156+
return data
157+
158+
147159
def connect(host, users=None):
148160
log.debug("Connecting to '%s'" % host)
149161
log.debug("users= '%s'" % users)

0 commit comments

Comments
 (0)