def check_emc_management_package(cls, ip): navicli = utils.get_package_versions_from_node( ip=ip, name='navicli', os_type=settings.OPENSTACK_RELEASE) naviseccli = utils.get_package_versions_from_node( ip=ip, name='naviseccli', os_type=settings.OPENSTACK_RELEASE) return bool(navicli + naviseccli)
def build_simple_bootstrap(self): """Verify than slaves retrieved Ubuntu bootstrap with extra package Scenario: 1. Revert snapshot ready 2. Build and activate Ubuntu bootstrap with extra package 3. Bootstrap slaves 4. Verify Ubuntu bootstrap on slaves Duration: 20m """ self.env.revert_snapshot("ready") bootstrap_default_params = \ self.env.fuel_bootstrap_actions.get_bootstrap_default_config() additional_repos = [ self._get_main_repo(bootstrap_default_params["repos"], "ubuntu", "main"), self._get_main_repo(bootstrap_default_params["repos"], "ubuntu", "updates"), self._get_main_repo(bootstrap_default_params["repos"], "mos", "main")] bootstrap_params = { "ubuntu-release": "trusty", "repo": ["'deb {0} {1} {2}'".format(repo['uri'], repo['suite'], repo['section']) for repo in additional_repos], "label": "UbuntuBootstrap", "output-dir": "/tmp", "package": ["ipython"] } uuid, bootstrap_location = \ self.env.fuel_bootstrap_actions.build_bootstrap_image( **bootstrap_params) self.env.fuel_bootstrap_actions.\ import_bootstrap_image(bootstrap_location) self.env.fuel_bootstrap_actions.\ activate_bootstrap_image(uuid) nodes = self.env.d_env.get_nodes( name__in=["slave-01", "slave-02", "slave-03"]) self.env.bootstrap_nodes(nodes) for node in nodes: n_node = self.fuel_web.get_nailgun_node_by_devops_node(node) checkers.verify_bootstrap_on_node(n_node['ip'], os_type="ubuntu", uuid=uuid) ipython_version = utils.get_package_versions_from_node( n_node['ip'], name="ipython", os_type="Ubuntu") assert_not_equal(ipython_version, "")
def build_simple_bootstrap(self): """Verify than slaves retrieved Ubuntu bootstrap with extra package Scenario: 1. Revert snapshot ready 2. Build and activate Ubuntu bootstrap with extra package 3. Bootstrap slaves 4. Verify Ubuntu bootstrap on slaves Duration: 20m """ self.env.revert_snapshot("ready") bootstrap_params = { "ubuntu-release": "xenial", "label": "UbuntuBootstrap", "output-dir": "/tmp", "package": ["ipython"] } uuid, bootstrap_location = \ self.env.fuel_bootstrap_actions.build_bootstrap_image( **bootstrap_params) self.env.fuel_bootstrap_actions.\ import_bootstrap_image(bootstrap_location) self.env.fuel_bootstrap_actions.\ activate_bootstrap_image(uuid) nodes = self.env.d_env.get_nodes( name__in=["slave-01", "slave-02", "slave-03"]) self.env.bootstrap_nodes(nodes) for node in nodes: n_node = self.fuel_web.get_nailgun_node_by_devops_node(node) checkers.verify_bootstrap_on_node(n_node['ip'], os_type="ubuntu", uuid=uuid) ipython_version = utils.get_package_versions_from_node( n_node['ip'], name="ipython", os_type="Ubuntu") assert_not_equal(ipython_version, "")
def build_full_bootstrap(self): """Verify than slaves retrieved Ubuntu bootstrap with extra settings Scenario: 1. Revert snapshot ready 2. Build and activate Ubuntu bootstrap with extra settings 3. Bootstrap slaves 4. Verify Ubuntu bootstrap on slaves Duration: 20m """ self.env.revert_snapshot("ready") with self.env.d_env.get_admin_remote() as remote: bootstrap_script = '''\ #!/bin/bash echo "testdata" > /test_bootstrap_script apt-get install ipython -y ''' with tempfile.NamedTemporaryFile() as temp_file: temp_file.write(textwrap.dedent(bootstrap_script)) temp_file.flush() remote.mkdir("/root/bin") remote.upload(temp_file.name, "/root/bin/bootstrap_script.sh") remote.mkdir("/root/inject/var/lib/testdir") remote.mkdir("/root/inject/var/www/testdir2") kernel_cmdline = ["biosdevname=0", "net.ifnames=1", "debug", "ignore_loglevel", "log_buf_len=10M"] bootstrap_default_params = \ self.env.fuel_bootstrap_actions.get_bootstrap_default_config() additional_repos = [ self._get_main_repo(bootstrap_default_params["repos"], "ubuntu", "main"), self._get_main_repo(bootstrap_default_params["repos"], "ubuntu", "updates"), self._get_main_repo(bootstrap_default_params["repos"], "mos", "main")] bootstrap_params = { "ubuntu-release": "trusty", "repo": ["'deb {0} {1} {2}'".format(repo['uri'], repo['suite'], repo['section']) for repo in additional_repos], "direct-repo-addr": [self.env.admin_node_ip], "script": "/root/bin/bootstrap_script.sh", "label": "UbuntuBootstrap", "extra-dir": ["/root/inject/"], "extend-kopts": "'{0}'".format(" ".join(kernel_cmdline)), "kernel-flavor": "linux-generic-lts-saucy-eol-upgrade", "output-dir": "/tmp", "package": ["fuse", "sshfs"], } uuid, bootstrap_location = \ self.env.fuel_bootstrap_actions.build_bootstrap_image( **bootstrap_params) self.env.fuel_bootstrap_actions.\ import_bootstrap_image(bootstrap_location) self.env.fuel_bootstrap_actions.\ activate_bootstrap_image(uuid) nodes = self.env.d_env.get_nodes( name__in=["slave-01", "slave-02", "slave-03"]) self.env.bootstrap_nodes(nodes) for node in nodes: n_node = self.fuel_web.get_nailgun_node_by_devops_node(node) with self.fuel_web.get_ssh_for_node(node.name) as slave_remote: checkers.verify_bootstrap_on_node(n_node['ip'], os_type="ubuntu", uuid=uuid) for package in ['ipython', 'fuse', 'sshfs']: package_version = utils.get_package_versions_from_node( n_node['ip'], name=package, os_type="Ubuntu") assert_not_equal(package_version, "", "Package {0} is not installed on slave " "{1}".format(package, node.name)) for injected_dir in ["/var/lib/testdir", "/var/www/testdir2"]: checkers.check_file_exists(n_node['ip'], injected_dir) file_content = \ slave_remote.execute("cat /test_bootstrap_script") assert_equal("".join(file_content["stdout"]).strip(), "testdata") actual_kernel_cmdline = "".join( slave_remote.execute("cat /proc/cmdline")["stdout"]) for kernel_opt in kernel_cmdline: assert_true(kernel_opt in actual_kernel_cmdline, "No {0} option in cmdline: {1}" .format(kernel_opt, actual_kernel_cmdline))
def check_emc_management_package(cls, ip): navicli = utils.get_package_versions_from_node( ip=ip, name='navicli', os_type=settings.OPENSTACK_RELEASE) naviseccli = utils.get_package_versions_from_node( ip=ip, name='naviseccli', os_type=settings.OPENSTACK_RELEASE) return bool(navicli + naviseccli)
def build_simple_bootstrap(self): """Verify than slaves retrieved Ubuntu bootstrap with extra package Scenario: 1. Revert snapshot ready 2. Build and activate Ubuntu bootstrap with extra package 3. Bootstrap slaves 4. Verify Ubuntu bootstrap on slaves Duration: 20m """ self.env.revert_snapshot("ready") bootstrap_default_params = \ self.env.fuel_bootstrap_actions.get_bootstrap_default_config() additional_repos = [ self._get_main_repo(bootstrap_default_params["repos"], "ubuntu", "main"), self._get_main_repo(bootstrap_default_params["repos"], "ubuntu", "updates"), self._get_main_repo(bootstrap_default_params["repos"], "mos", "main") ] bootstrap_params = { "ubuntu-release": "trusty", "repo": [ "'deb {0} {1} {2}'".format(repo['uri'], repo['suite'], repo['section']) for repo in additional_repos ], "label": "UbuntuBootstrap", "output-dir": "/tmp", "package": ["ipython"] } uuid, bootstrap_location = \ self.env.fuel_bootstrap_actions.build_bootstrap_image( **bootstrap_params) self.env.fuel_bootstrap_actions.\ import_bootstrap_image(bootstrap_location) self.env.fuel_bootstrap_actions.\ activate_bootstrap_image(uuid) nodes = self.env.d_env.get_nodes( name__in=["slave-01", "slave-02", "slave-03"]) self.env.bootstrap_nodes(nodes) for node in nodes: n_node = self.fuel_web.get_nailgun_node_by_devops_node(node) checkers.verify_bootstrap_on_node(n_node['ip'], os_type="ubuntu", uuid=uuid) ipython_version = utils.get_package_versions_from_node( n_node['ip'], name="ipython", os_type="Ubuntu") assert_not_equal(ipython_version, "")
def build_full_bootstrap(self): """Verify than slaves retrieved Ubuntu bootstrap with extra settings Scenario: 1. Revert snapshot ready 2. Build and activate Ubuntu bootstrap with extra settings 3. Bootstrap slaves 4. Verify Ubuntu bootstrap on slaves Duration: 20m """ self.env.revert_snapshot("ready") with self.env.d_env.get_admin_remote() as remote: bootstrap_script = '''\ #!/bin/bash echo "testdata" > /test_bootstrap_script apt-get install ipython -y ''' with tempfile.NamedTemporaryFile() as temp_file: temp_file.write(textwrap.dedent(bootstrap_script)) temp_file.flush() remote.mkdir("/root/bin") remote.upload(temp_file.name, "/root/bin/bootstrap_script.sh") remote.mkdir("/root/inject/var/lib/testdir") remote.mkdir("/root/inject/var/www/testdir2") kernel_cmdline = [ "biosdevname=0", "net.ifnames=1", "debug", "ignore_loglevel", "log_buf_len=10M" ] bootstrap_default_params = \ self.env.fuel_bootstrap_actions.get_bootstrap_default_config() additional_repos = [ self._get_main_repo(bootstrap_default_params["repos"], "ubuntu", "main"), self._get_main_repo(bootstrap_default_params["repos"], "ubuntu", "updates"), self._get_main_repo(bootstrap_default_params["repos"], "mos", "main") ] bootstrap_params = { "ubuntu-release": "trusty", "repo": [ "'deb {0} {1} {2}'".format(repo['uri'], repo['suite'], repo['section']) for repo in additional_repos ], "direct-repo-addr": [self.env.admin_node_ip], "script": "/root/bin/bootstrap_script.sh", "label": "UbuntuBootstrap", "extra-dir": ["/root/inject/"], "extend-kopts": "'{0}'".format(" ".join(kernel_cmdline)), "kernel-flavor": "linux-generic-lts-saucy-eol-upgrade", "output-dir": "/tmp", "package": ["fuse", "sshfs"], } uuid, bootstrap_location = \ self.env.fuel_bootstrap_actions.build_bootstrap_image( **bootstrap_params) self.env.fuel_bootstrap_actions.\ import_bootstrap_image(bootstrap_location) self.env.fuel_bootstrap_actions.\ activate_bootstrap_image(uuid) nodes = self.env.d_env.get_nodes( name__in=["slave-01", "slave-02", "slave-03"]) self.env.bootstrap_nodes(nodes) for node in nodes: n_node = self.fuel_web.get_nailgun_node_by_devops_node(node) with self.fuel_web.get_ssh_for_node(node.name) as slave_remote: checkers.verify_bootstrap_on_node(n_node['ip'], os_type="ubuntu", uuid=uuid) for package in ['ipython', 'fuse', 'sshfs']: package_version = utils.get_package_versions_from_node( n_node['ip'], name=package, os_type="Ubuntu") assert_not_equal( package_version, "", "Package {0} is not installed on slave " "{1}".format(package, node.name)) for injected_dir in ["/var/lib/testdir", "/var/www/testdir2"]: checkers.check_file_exists(n_node['ip'], injected_dir) file_content = \ slave_remote.execute("cat /test_bootstrap_script") assert_equal("".join(file_content["stdout"]).strip(), "testdata") actual_kernel_cmdline = "".join( slave_remote.execute("cat /proc/cmdline")["stdout"]) for kernel_opt in kernel_cmdline: assert_true( kernel_opt in actual_kernel_cmdline, "No {0} option in cmdline: {1}".format( kernel_opt, actual_kernel_cmdline))