![Tatyana Leontovich](/assets/img/avatar_default.png)
We should to disable vm creation on ironic node until LP1576881 become fixed. According to It happens only after stable branches creation for 10.0, we disable this steps and turn on test into voating mode to get feedback for the fuel-agent patches. Change-Id: I1b2c8666f605f4d3ec29138e021dd419c87d3c78 Related-Bug: #1576881
151 lines
5.4 KiB
Python
151 lines
5.4 KiB
Python
# Copyright 2015 Mirantis, Inc.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
from proboscis import test
|
|
|
|
from fuelweb_test import settings
|
|
from fuelweb_test.helpers.fuel_actions import BaseActions
|
|
from fuelweb_test.helpers import ironic_actions
|
|
from fuelweb_test.helpers.checkers import verify_bootstrap_on_node
|
|
from fuelweb_test.helpers.decorators import log_snapshot_after_test
|
|
from fuelweb_test.tests.test_ironic_base import TestIronicDeploy
|
|
|
|
from gates_tests.helpers import exceptions
|
|
from gates_tests.helpers.utils import replace_rpm_package
|
|
from gates_tests.helpers.utils import \
|
|
check_package_version_injected_in_bootstraps
|
|
|
|
|
|
@test(groups=["review_fuel_agent"])
|
|
class Gate(TestIronicDeploy):
|
|
"""Using in fuel-agent CI-gates
|
|
Update fuel-agent on master node, bootstrap from review,
|
|
build environment images and provision one node"""
|
|
|
|
@staticmethod
|
|
def update_bootstrap_cli_yaml():
|
|
actions = BaseActions()
|
|
path = "/etc/fuel-bootstrap-cli/fuel_bootstrap_cli.yaml"
|
|
element = ['repos']
|
|
new_repo = {'name': 'auxiliary', 'priority': "1200",
|
|
'section': 'main restricted',
|
|
'suite': 'auxiliary', 'type': 'deb',
|
|
'uri': 'http://127.0.0.1:8080/ubuntu/auxiliary/'}
|
|
repos = actions.get_value_from_remote_yaml(path, element)
|
|
repos.append(new_repo)
|
|
|
|
actions.change_remote_yaml(path, element, repos)
|
|
|
|
@test(depends_on_groups=['prepare_release'],
|
|
groups=["review_fuel_agent_ironic_deploy"])
|
|
@log_snapshot_after_test
|
|
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)
|
|
# TODO (tleontovich) uncomment steps 14-15
|
|
# as soon as LP1576881 become fixed
|
|
# 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")
|