Esempio n. 1
0
    def describe_second_admin_interface(self):
        admin_net2_object = self.d_env.get_network(name=self.d_env.admin_net2)
        second_admin_network = admin_net2_object.ip.network
        second_admin_netmask = admin_net2_object.ip.netmask
        second_admin_if = settings.INTERFACES.get(self.d_env.admin_net2)
        second_admin_ip = str(self.d_env.nodes(
        ).admin.get_ip_address_by_network_name(self.d_env.admin_net2))
        logger.info(('Parameters for second admin interface configuration: '
                     'Network - {0}, Netmask - {1}, Interface - {2}, '
                     'IP Address - {3}').format(second_admin_network,
                                                second_admin_netmask,
                                                second_admin_if,
                                                second_admin_ip))
        add_second_admin_ip = ('DEVICE={0}\\n'
                               'ONBOOT=yes\\n'
                               'NM_CONTROLLED=no\\n'
                               'USERCTL=no\\n'
                               'PEERDNS=no\\n'
                               'BOOTPROTO=static\\n'
                               'IPADDR={1}\\n'
                               'NETMASK={2}\\n').format(second_admin_if,
                                                        second_admin_ip,
                                                        second_admin_netmask)
        cmd = ('echo -e "{0}" > /etc/sysconfig/network-scripts/ifcfg-{1};'
               'ifup {1}; ip -o -4 a s {1} | grep -w {2}').format(
            add_second_admin_ip, second_admin_if, second_admin_ip)
        logger.debug('Trying to assign {0} IP to the {1} on master node...'.
                     format(second_admin_ip, second_admin_if))

        result = self.ssh_manager.execute(
            ip=self.ssh_manager.admin_ip,
            cmd=cmd
        )
        assert_equal(result['exit_code'], 0, ('Failed to assign second admin '
                     'IP address on master node: {0}').format(result))
        logger.debug('Done: {0}'.format(result['stdout']))

        # TODO for ssh manager
        multiple_networks_hacks.configure_second_admin_dhcp(
            self.ssh_manager.admin_ip,
            second_admin_if
        )
        multiple_networks_hacks.configure_second_admin_firewall(
            self.ssh_manager.admin_ip,
            second_admin_network,
            second_admin_netmask,
            second_admin_if,
            self.get_admin_node_ip()
        )
Esempio n. 2
0
    def describe_admin_interface(self, admin_if, network_name):
        admin_net_object = self.d_env.get_network(name=network_name)
        admin_network = admin_net_object.ip.network
        admin_netmask = admin_net_object.ip.netmask
        admin_ip = str(self.d_env.nodes(
        ).admin.get_ip_address_by_network_name(network_name))
        logger.info(('Parameters for admin interface configuration: '
                     'Network - {0}, Netmask - {1}, Interface - {2}, '
                     'IP Address - {3}').format(admin_network,
                                                admin_netmask,
                                                admin_if,
                                                admin_ip))
        add_admin_ip = ('DEVICE={0}\\n'
                        'ONBOOT=yes\\n'
                        'NM_CONTROLLED=no\\n'
                        'USERCTL=no\\n'
                        'PEERDNS=no\\n'
                        'BOOTPROTO=static\\n'
                        'IPADDR={1}\\n'
                        'NETMASK={2}\\n').format(admin_if,
                                                 admin_ip,
                                                 admin_netmask)
        cmd = ('echo -e "{0}" > /etc/sysconfig/network-scripts/ifcfg-{1};'
               'ifup {1}; ip -o -4 a s {1} | grep -w {2}').format(
            add_admin_ip, admin_if, admin_ip)
        logger.debug('Trying to assign {0} IP to the {1} on master node...'.
                     format(admin_ip, admin_if))

        result = self.ssh_manager.execute(
            ip=self.ssh_manager.admin_ip,
            cmd=cmd
        )
        assert_equal(result['exit_code'], 0, ('Failed to assign second admin '
                     'IP address on master node: {0}').format(result))
        logger.debug('Done: {0}'.format(result['stdout']))

        # TODO for ssh manager
        multiple_networks_hacks.configure_second_admin_dhcp(
            self.ssh_manager.admin_ip,
            admin_if
        )
        multiple_networks_hacks.configure_second_admin_firewall(
            self.ssh_manager.admin_ip,
            admin_network,
            admin_netmask,
            admin_if,
            self.get_admin_node_ip()
        )
Esempio n. 3
0
    def describe_admin_interface(self, admin_if, network_name):
        admin_net_object = self.d_env.get_network(name=network_name)
        admin_network = admin_net_object.ip.network
        admin_netmask = admin_net_object.ip.netmask
        admin_ip = str(self.d_env.nodes().admin.get_ip_address_by_network_name(network_name))
        logger.info(
            (
                "Parameters for admin interface configuration: "
                "Network - {0}, Netmask - {1}, Interface - {2}, "
                "IP Address - {3}"
            ).format(admin_network, admin_netmask, admin_if, admin_ip)
        )
        add_admin_ip = (
            "DEVICE={0}\\n"
            "ONBOOT=yes\\n"
            "NM_CONTROLLED=no\\n"
            "USERCTL=no\\n"
            "PEERDNS=no\\n"
            "BOOTPROTO=static\\n"
            "IPADDR={1}\\n"
            "NETMASK={2}\\n"
        ).format(admin_if, admin_ip, admin_netmask)
        cmd = (
            'echo -e "{0}" > /etc/sysconfig/network-scripts/ifcfg-{1};' "ifup {1}; ip -o -4 a s {1} | grep -w {2}"
        ).format(add_admin_ip, admin_if, admin_ip)
        logger.debug("Trying to assign {0} IP to the {1} on master node...".format(admin_ip, admin_if))

        result = self.ssh_manager.execute(ip=self.ssh_manager.admin_ip, cmd=cmd)
        assert_equal(
            result["exit_code"], 0, ("Failed to assign second admin " "IP address on master node: {0}").format(result)
        )
        logger.debug("Done: {0}".format(result["stdout"]))

        # TODO for ssh manager
        multiple_networks_hacks.configure_second_admin_dhcp(self.ssh_manager.admin_ip, admin_if)
        multiple_networks_hacks.configure_second_admin_firewall(
            self.ssh_manager.admin_ip, admin_network, admin_netmask, admin_if, self.get_admin_node_ip()
        )
    def restore_firewall_rules(self):
        # NOTE: this code works if fuel-qa version is newer than stable/7.0
        admin_devops_node = self.env.d_env.nodes().admin
        admin_networks = [iface.network.name
                          for iface in admin_devops_node.interfaces]
        for i, network_name in enumerate(admin_networks):
            if 'admin' in network_name and 'admin' != network_name:
                iface_name = 'enp0s' + str(i + 3)
                admin_net_obj = self.env.d_env.get_network(name=network_name)
                admin_network = admin_net_obj.ip.network
                admin_netmask = admin_net_obj.ip.netmask
                logger.info('Configure firewall rules for {}/{}'
                            .format(admin_network, admin_netmask))
                multiple_networks_hacks.configure_second_admin_firewall(
                    self.ssh_manager.admin_ip,
                    admin_network,
                    admin_netmask,
                    iface_name,
                    self.env.get_admin_node_ip())
                logger.info('The configuration completed successfully')

        self.ssh_manager.execute(ip=self.ssh_manager.admin_ip,
                                 cmd="cobbler sync")
Esempio n. 5
0
 def describe_second_admin_interface(self):
     remote = self.get_admin_remote()
     second_admin_network = self.get_network(self.admin_net2).split('/')[0]
     second_admin_netmask = self.get_net_mask(self.admin_net2)
     second_admin_if = settings.INTERFACES.get(self.admin_net2)
     second_admin_ip = str(
         self.nodes().admin.get_ip_address_by_network_name(self.admin_net2))
     logger.info(
         ('Parameters for second admin interface configuration: '
          'Network - {0}, Netmask - {1}, Interface - {2}, '
          'IP Address - {3}').format(second_admin_network,
                                     second_admin_netmask, second_admin_if,
                                     second_admin_ip))
     add_second_admin_ip = ('DEVICE={0}\\n'
                            'ONBOOT=yes\\n'
                            'NM_CONTROLLED=no\\n'
                            'USERCTL=no\\n'
                            'PEERDNS=no\\n'
                            'BOOTPROTO=static\\n'
                            'IPADDR={1}\\n'
                            'NETMASK={2}\\n').format(
                                second_admin_if, second_admin_ip,
                                second_admin_netmask)
     cmd = ('echo -e "{0}" > /etc/sysconfig/network-scripts/ifcfg-{1};'
            'ifup {1}; ip -o -4 a s {1} | grep -w {2}').format(
                add_second_admin_ip, second_admin_if, second_admin_ip)
     logger.debug(
         'Trying to assign {0} IP to the {1} on master node...'.format(
             second_admin_ip, second_admin_if))
     result = remote.execute(cmd)
     assert_equal(result['exit_code'], 0,
                  ('Failed to assign second admin '
                   'IP address on master node: {0}').format(result))
     logger.debug('Done: {0}'.format(result['stdout']))
     multiple_networks_hacks.configure_second_admin_firewall(
         self, second_admin_network, second_admin_netmask)