def test_container_ip_matches(self): """ Verifies container ip in config matches what LXC sees """ saved_ip = self.CONFIG['container_ip'] lxc_ip = Container.ip(self.CONFIG['container_name']) assert saved_ip == lxc_ip
def test_container_ip_matches(self): """ Verifies container ip in config matches what LXC sees """ saved_ip = self.CONFIG["container_ip"] lxc_ip = Container.ip(self.CONFIG["container_name"]) assert saved_ip == lxc_ip
def add_static_route(self, lxc_net): """ Adds static route to host system """ # Store container IP in config ip = Container.ip(self.container_name) self.config.setopt("container_ip", ip) log.info("Adding static route for {} via {}".format(lxc_net, ip)) out = utils.get_command_output("ip route add {} via {} dev lxcbr0".format(lxc_net, ip)) if out["status"] != 0: raise Exception("Could not add static route for {}" " network: {}".format(lxc_net, out["output"]))
def add_static_route(self, lxc_net): """ Adds static route to host system """ # Store container IP in config ip = Container.ip(self.container_name) self.config.setopt('container_ip', ip) log.info("Adding static route for {} via {}".format(lxc_net, ip)) out = utils.get_command_output( 'ip route add {} via {} dev lxcbr0'.format(lxc_net, ip)) if out['status'] != 0: raise Exception("Could not add static route for {}" " network: {}".format(lxc_net, out['output']))
def do_install(self): self.display_controller.status_info_message("Building environment") if os.path.exists(self.container_abspath): raise Exception("Container exists, please uninstall or kill " "existing cloud before proceeding.") # check for deb early, will actually install it later upstream_deb = self.config.getopt('upstream_deb') if upstream_deb and not os.path.isfile(upstream_deb): raise Exception("Upstream deb '{}' " "not found.".format(upstream_deb)) utils.ssh_genkey() self.setup_apt_proxy() self.prep_userdata() utils.render_charm_config(self.config) self.prep_juju() self.set_perms() self.create_container_and_wait() # Copy over host ssh keys Container.cp(self.container_name, os.path.join(utils.install_home(), '.ssh/id_rsa*'), '.ssh/.') # Install local copy of openstack installer if provided if upstream_deb: shutil.copy(upstream_deb, self.config.cfg_path) self._install_upstream_deb() # Stop before we attempt to access container if self.config.getopt('install_only'): log.info("Done installing, stopping here per --install-only.") self.config.setopt('install_only', True) self.loop.exit(0) # Update jujus no-proxy setting if applicable if self.config.getopt('http_proxy') or \ self.config.getopt('https_proxy'): log.info("Updating juju environments for proxy support") lxc_net = self.config.getopt('lxc_network') self.config.update_environments_yaml( key='no-proxy', val='{},localhost,{}'.format( Container.ip(self.container_name), netutils.get_ip_set(lxc_net))) # start the party cloud_status_bin = ['openstack-status'] self.tasker.start_task("Bootstrapping Juju", self.read_progress_output) Container.run(self.container_name, "{0} juju --debug bootstrap".format( self.config.juju_home(use_expansion=True)), use_ssh=True, output_cb=self.set_progress_output) Container.run( self.container_name, "{0} juju status".format( self.config.juju_home(use_expansion=True)), use_ssh=True) self.tasker.stop_current_task() self.display_controller.status_info_message( "Starting cloud deployment") Container.run_status( self.container_name, " ".join(cloud_status_bin), self.config)
def do_install(self): self.display_controller.status_info_message("Building environment") if os.path.exists(self.container_abspath): raise Exception("Container exists, please uninstall or kill " "existing cloud before proceeding.") # check for deb early, will actually install it later upstream_deb = self.config.getopt('upstream_deb') if upstream_deb and not os.path.isfile(upstream_deb): raise Exception("Upstream deb '{}' " "not found.".format(upstream_deb)) utils.ssh_genkey() self.setup_apt_proxy() self.prep_userdata() utils.render_charm_config(self.config) self.prep_juju() self.set_perms() self.create_container_and_wait() # Copy over host ssh keys Container.cp(self.container_name, os.path.join(utils.install_home(), '.ssh/id_rsa*'), '.ssh/.') # Install local copy of openstack installer if provided if upstream_deb: shutil.copy(upstream_deb, self.config.cfg_path) self._install_upstream_deb() # Stop before we attempt to access container if self.config.getopt('install_only'): log.info("Done installing, stopping here per --install-only.") self.config.setopt('install_only', True) self.loop.exit(0) # Update jujus no-proxy setting if applicable if self.config.getopt('http_proxy') or \ self.config.getopt('https_proxy'): log.info("Updating juju environments for proxy support") lxc_net = self.config.getopt('lxc_network') self.config.update_environments_yaml( key='no-proxy', val='{},localhost,{}'.format(Container.ip(self.container_name), netutils.get_ip_set(lxc_net))) # start the party cloud_status_bin = ['openstack-status'] self.tasker.start_task("Bootstrapping Juju", self.read_progress_output) Container.run(self.container_name, "{0} juju --debug bootstrap".format( self.config.juju_home(use_expansion=True)), use_ssh=True, output_cb=self.set_progress_output) Container.run(self.container_name, "{0} juju status".format( self.config.juju_home(use_expansion=True)), use_ssh=True) self.tasker.stop_current_task() self.display_controller.status_info_message( "Starting cloud deployment") Container.run_status(self.container_name, " ".join(cloud_status_bin), self.config)