def gate_patch_fuel_agent(self): """ Revert snapshot, update fuel-agent, bootstrap from review and provision one node Scenario: 1. Revert snapshot "ready" 2. Update fuel-agent, fuel-bootstrap-cli on master node 3. Update fuel_bootstrap_cli.yaml 4. Rebuild bootstrap 5. Verify fuel-agent version in ubuntu bootstrap image 6. Bootstrap 5 slaves 7. Verify Ubuntu bootstrap on slaves 8. Add 1 node with controller 9. Add 1 node ironic role 10. Deploy the cluster 11. Verify fuel-agent version in ironic-bootstrap 12. Upload image to glance 13. Enroll Ironic nodes 14. Boot nova instance 15. Check Nova instance status Snapshot review_fuel_agent_ironic_deploy """ if not settings.UPDATE_FUEL: raise exceptions.FuelQAVariableNotSet(settings.UPDATE_FUEL, 'true') self.show_step(1, initialize=True) self.env.revert_snapshot("ready") self.show_step(2) replace_rpm_package('fuel-agent') replace_rpm_package('fuel-bootstrap-cli') self.show_step(3) self.update_bootstrap_cli_yaml() self.show_step(4) if settings.UPDATE_FUEL: self.env.admin_actions.upload_packages( local_packages_dir=settings.UPDATE_FUEL_PATH, centos_repo_path=None, ubuntu_repo_path=settings.LOCAL_MIRROR_UBUNTU, clean_target=True) uuid, bootstrap_location = \ self.env.fuel_bootstrap_actions.build_bootstrap_image() self.env.fuel_bootstrap_actions. \ import_bootstrap_image(bootstrap_location) self.env.fuel_bootstrap_actions. \ activate_bootstrap_image(uuid) self.show_step(5) check_package_version_injected_in_bootstraps("fuel-agent") self.show_step(6) self.env.bootstrap_nodes( self.env.d_env.nodes().slaves[:2]) self.show_step(7) for node in self.env.d_env.nodes().slaves[:2]: _ip = self.fuel_web.get_nailgun_node_by_devops_node(node)['ip'] verify_bootstrap_on_node(_ip, os_type="ubuntu", uuid=uuid) data = { "net_provider": 'neutron', "net_segment_type": settings.NEUTRON_SEGMENT['vlan'], "ironic": True} nodes = { 'slave-01': ['controller'], 'slave-02': ['ironic']} self.show_step(8) self.show_step(9) self.show_step(10) cluster_id = self._deploy_ironic_cluster(settings=data, nodes=nodes) ironic_conn = ironic_actions.IronicActions( self.fuel_web.get_public_vip(cluster_id)) self.show_step(11) check_package_version_injected_in_bootstraps("fuel-agent", cluster_id=cluster_id, ironic=True) self.show_step(12) self.show_step(13) self._create_os_resources(ironic_conn) self.show_step(14) self._boot_nova_instances(ironic_conn) self.show_step(15) ironic_conn.wait_for_vms(ironic_conn) ironic_conn.verify_vms_connection(ironic_conn) self.env.make_snapshot("review_fuel_agent_ironic_deploy")
def gate_patch_fuel_agent(self): """ Revert snapshot, update fuel-agent, bootstrap from review and provision one node Scenario: 1. Revert snapshot "ready" 2. Update fuel-agent, fuel-bootstrap-cli on master node 3. Update fuel_bootstrap_cli.yaml 4. Rebuild bootstrap 5. Bootstrap 5 slaves 6. Verify Ubuntu bootstrap on slaves 7. Add 1 node with controller 8. Add 1 node ironic role 9. Deploy the cluster 10. Verify fuel-agent version in ubuntu and ironic-bootstrap 11. Upload image to glance 12. Enroll Ironic nodes 13. Boot nova instance 14. Check Nova instance status Snapshot review_fuel_agent_ironic_deploy """ if not settings.UPDATE_FUEL: raise exceptions.FuelQAVariableNotSet(settings.UPDATE_FUEL, 'true') self.show_step(1, initialize=True) self.env.revert_snapshot("ready") self.show_step(2) replace_rpm_package('fuel-agent') replace_rpm_package('fuel-bootstrap-cli') self.show_step(3) self.update_bootstrap_cli_yaml() self.show_step(4) uuid, bootstrap_location = \ self.env.fuel_bootstrap_actions.build_bootstrap_image() self.env.fuel_bootstrap_actions. \ import_bootstrap_image(bootstrap_location) self.env.fuel_bootstrap_actions. \ activate_bootstrap_image(uuid) self.show_step(5) self.env.bootstrap_nodes(self.env.d_env.nodes().slaves[:2]) self.show_step(6) for node in self.env.d_env.nodes().slaves[:2]: _ip = self.fuel_web.get_nailgun_node_by_devops_node(node)['ip'] verify_bootstrap_on_node(_ip, os_type="ubuntu", uuid=uuid) data = { "net_provider": 'neutron', "net_segment_type": settings.NEUTRON_SEGMENT['vlan'], "ironic": True } nodes = {'slave-01': ['controller'], 'slave-02': ['ironic']} self.show_step(7) self.show_step(8) self.show_step(9) cluster_id = self._deploy_ironic_cluster(settings=data, nodes=nodes) ironic_conn = ironic_actions.IronicActions( self.fuel_web.get_public_vip(cluster_id)) self.show_step(10) check_package_version_injected_in_bootstraps("fuel-agent") check_package_version_injected_in_bootstraps("fuel-agent", cluster_id=cluster_id, ironic=True) self.show_step(11) self.show_step(12) self._create_os_resources(ironic_conn) self.show_step(13) self._boot_nova_instances(ironic_conn) self.show_step(14) ironic_conn.wait_for_vms(ironic_conn) ironic_conn.verify_vms_connection(ironic_conn) self.env.make_snapshot("review_fuel_agent_ironic_deploy")
def gate_patch_nailgun_agent(self): """ Revert snapshot, update nailgun-agent, deploy one node Scenario: 1. Revert snapshot "ready" 2. Update fuel_bootstrap_cli.yaml 3. Rebuild bootstrap 4. Bootstrap 1 slave 5. Verify nailgun-agent version in ubuntu bootstrap image 6. Create environment via FUEL CLI 7. Assign controller role 8. Deploy """ if not settings.UPDATE_FUEL: raise Exception("{} variable doesn't exist" .format(settings.UPDATE_FUEL)) self.show_step(1, initialize=True) self.env.revert_snapshot("ready") self.show_step(2) update_bootstrap_cli_yaml() self.show_step(3) if settings.UPDATE_FUEL: self.env.admin_actions.upload_packages( local_packages_dir=settings.UPDATE_FUEL_PATH, centos_repo_path=None, ubuntu_repo_path=settings.LOCAL_MIRROR_UBUNTU, clean_target=True) uuid, bootstrap_location = \ self.env.fuel_bootstrap_actions.build_bootstrap_image() self.env.fuel_bootstrap_actions. \ import_bootstrap_image(bootstrap_location) self.env.fuel_bootstrap_actions. \ activate_bootstrap_image(uuid) self.show_step(4) self.env.bootstrap_nodes( self.env.d_env.nodes().slaves[:1]) self.show_step(5) check_package_version_injected_in_bootstraps("nailgun-agent") release_id = self.fuel_web.get_releases_list_for_os( release_name=OPENSTACK_RELEASE)[0] self.show_step(6) cmd = ('fuel env create --name={0} --release={1} --nst=tun ' '--json'.format(self.__class__.__name__, release_id)) env_result = self.ssh_manager.execute_on_remote( ip=self.ssh_manager.admin_ip, cmd=cmd, jsonify=True)['stdout_json'] cluster_id = env_result['id'] self.show_step(7) self.fuel_web.update_nodes( cluster_id, { 'slave-01': ['controller'], } ) cluster_id = self.fuel_web.get_last_created_cluster() self.show_step(8) self.fuel_web.deploy_cluster_wait(cluster_id) self.env.make_snapshot("review_nailgun_agent_one_node")