Пример #1
0
    def post_proc(self):
        """ post processing for nova-cloud-controller """
        super(CharmNovaCloudController, self).post_proc()
        svc = self.juju_state.service(self.charm_name)
        unit = svc.unit(self.charm_name)
        k_svc = self.juju_state.service('keystone')
        keystone = k_svc.unit('keystone')
        openstack_password = self.config.getopt('openstack_password')
        public_address = keystone.public_address
        if is_ipv6(public_address):
            public_address = "[%s]".format(public_address)
            log.debug("Found ipv6 address, {}".format(public_address))

        if unit.machine_id == '-1':
            return True

        for u in ['admin', 'ubuntu']:
            env = self._openstack_env(u, openstack_password, u, public_address)
            self._openstack_env_save(u, env)

        setup_script_path = self.render_setup_script()
        cmds = ("bash {script} "
                "\"{password}\" \"{install_type}\" "
                "> {cfg_home}/script.log 2>&1".format(
                    script=setup_script_path,
                    password=openstack_password,
                    cfg_home=self.config.cfg_path,
                    install_type=self.config.getopt('install_type')))
        err = utils.get_command_output(cmds)
        if err['status'] != 0:
            raise CharmPostProcessException(err)
    def post_proc(self):
        """ post processing for nova-cloud-controller """
        super(CharmNovaCloudController, self).post_proc()
        svc = self.juju_state.service(self.charm_name)
        unit = svc.unit(self.charm_name)
        k_svc = self.juju_state.service('keystone')
        keystone = k_svc.unit('keystone')
        openstack_password = self.config.getopt('openstack_password')
        public_address = keystone.public_address
        if is_ipv6(public_address):
            public_address = "[%s]".format(public_address)
            log.debug("Found ipv6 address, {}".format(public_address))

        if unit.machine_id == '-1':
            return True

        for u in ['admin', 'ubuntu']:
            env = self._openstack_env(u,
                                      openstack_password,
                                      u, public_address)
            self._openstack_env_save(u, env)

        setup_script_path = self.render_setup_script()
        cmds = ("bash {script} "
                "\"{password}\" \"{install_type}\" "
                "> {cfg_home}/script.log 2>&1".format(
                    script=setup_script_path,
                    password=openstack_password,
                    cfg_home=self.config.cfg_path,
                    install_type=self.config.getopt('install_type')
                ))
        err = utils.get_command_output(cmds)
        if err['status'] != 0:
            raise CharmPostProcessException(err)
Пример #3
0
    def post_proc(self):
        """ post processing for nova-cloud-controller """
        svc = self.juju_state.service(self.charm_name)
        unit = svc.unit(self.charm_name)
        k_svc = self.juju_state.service('keystone')
        keystone = k_svc.unit('keystone')
        openstack_password = self.config.getopt('openstack_password')
        public_address = keystone.public_address
        if is_ipv6(public_address):
            public_address = "[%s]".format(public_address)
            log.debug("Found ipv6 address, {}".format(public_address))

        if unit.machine_id == '-1':
            return True

        for u in ['admin', 'ubuntu']:
            env = self._openstack_env(u,
                                      openstack_password,
                                      u, public_address)
            self._openstack_env_save(u, env)
            utils.remote_cp(
                unit.machine_id,
                src=self._openstack_env_path(u),
                dst='/tmp/openstack-{u}-rc'.format(u=u),
                juju_home=self.config.juju_home(use_expansion=True))

        setup_script_path = self.render_setup_script()
        remote_setup_script_path = "/tmp/nova-controller-setup.sh"
        utils.remote_cp(
            unit.machine_id,
            src=setup_script_path,
            dst=remote_setup_script_path,
            juju_home=self.config.juju_home(use_expansion=True))
        utils.remote_run(
            unit.machine_id,
            cmds="chmod +x {}".format(remote_setup_script_path),
            juju_home=self.config.juju_home(use_expansion=True))
        utils.remote_cp(
            unit.machine_id,
            src=utils.ssh_pubkey(),
            dst="/tmp/id_rsa.pub",
            juju_home=self.config.juju_home(use_expansion=True))
        err = utils.remote_run(
            unit.machine_id,
            cmds="/tmp/nova-controller-setup.sh "
            "\"{p}\" \"{install_type}\"".format(
                p=openstack_password,
                install_type=self.config.getopt('install_type')),
            juju_home=self.config.juju_home(use_expansion=True))
        if err['status'] != 0:
            # something happened during nova setup, re-run
            return True
        return False
Пример #4
0
    def post_proc(self):
        """ post processing for nova-cloud-controller """
        svc = self.juju_state.service(self.charm_name)
        unit = svc.unit(self.charm_name)
        k_svc = self.juju_state.service('keystone')
        keystone = k_svc.unit('keystone')
        openstack_password = self.config.getopt('openstack_password')
        public_address = keystone.public_address
        if is_ipv6(public_address):
            public_address = "[%s]".format(public_address)
            log.debug("Found ipv6 address, {}".format(public_address))

        if unit.machine_id == '-1':
            return True

        for u in ['admin', 'ubuntu']:
            env = self._openstack_env(u,
                                      openstack_password,
                                      u, public_address)
            self._openstack_env_save(u, env)
            utils.remote_cp(
                unit.machine_id,
                src=self._openstack_env_path(u),
                dst='/tmp/openstack-{u}-rc'.format(u=u),
                juju_home=self.config.juju_home(use_expansion=True))

        setup_script_path = self.render_setup_script()
        remote_setup_script_path = "/tmp/nova-controller-setup.sh"
        utils.remote_cp(
            unit.machine_id,
            src=setup_script_path,
            dst=remote_setup_script_path,
            juju_home=self.config.juju_home(use_expansion=True))
        utils.remote_run(
            unit.machine_id,
            cmds="chmod +x {}".format(remote_setup_script_path),
            juju_home=self.config.juju_home(use_expansion=True))
        utils.remote_cp(
            unit.machine_id,
            src=utils.ssh_pubkey(),
            dst="/tmp/id_rsa.pub",
            juju_home=self.config.juju_home(use_expansion=True))
        err = utils.remote_run(
            unit.machine_id,
            cmds="/tmp/nova-controller-setup.sh "
            "\"{p}\" \"{install_type}\"".format(
                p=openstack_password,
                install_type=self.config.getopt('install_type')),
            juju_home=self.config.juju_home(use_expansion=True))
        if err['status'] != 0:
            # something happened during nova setup, re-run
            return True
        return False
 def test_is_no_ipv6(self):
     """ Should not be ip6 address
     """
     self.assertFalse(is_ipv6(self.ipv4))
 def test_is_ipv6(self):
     """ Should be an ipv6 address
     """
     self.assertTrue(is_ipv6(self.ipv6))