Example #1
0
// UsingTCP converts the remote into a non-local version. For
// non-local remotes this is a no-op.
//
// For a "local" remote (see Local), the remote is changed to a one
// with the host set to the IP address of the local lxcbr0 bridge
// interface. The remote is also set up for remote access, setting
// the cert if not already set.
func (r Remote) UsingTCP() (Remote, error) {
	// Note that r is a value receiver, so it is an implicit copy.

	if !r.isLocal() {
		return r, nil
	}

	// TODO: jam 2016-02-25 This should be updated for systems that are
	// 	 space aware, as we may not be just using the default LXC
	// 	 bridge.
	netIF, err := GetDefaultBridgeName()
	if err != nil {
		return r, errors.Trace(err)
	}
	addr, err := utils.GetAddressForInterface(netIF)
	if err != nil {
		return r, errors.Trace(err)
	}
	r.Host = addr

	r, err = r.WithDefaults()
	if err != nil {
		return r, errors.Trace(err)
	}

	// TODO(ericsnow) Change r.Name if "local"? Prepend "juju-"?

	return r, nil
}
Example #2
0
// UsingTCP converts the remote into a non-local version. For
// non-local remotes this is a no-op.
//
// For a "local" remote (see Local), the remote is changed to a one
// with the host set to the IP address of the local lxcbr0 bridge
// interface. The remote is also set up for remote access, setting
// the cert if not already set.
func (r Remote) UsingTCP() (Remote, error) {
	// Note that r is a value receiver, so it is an implicit copy.

	if !r.isLocal() {
		return r, nil
	}

	netIF := lxc.DefaultLxcBridge
	addr, err := utils.GetAddressForInterface(netIF)
	if err != nil {
		return r, errors.Trace(err)
	}
	r.Host = addr

	r, err = r.WithDefaults()
	if err != nil {
		return r, errors.Trace(err)
	}

	// TODO(ericsnow) Change r.Name if "local"? Prepend "juju-"?

	return r, nil
}