示例#1
0
def test_copy_vips(mock_subprocess):
    env_id = -1
    env = mock.Mock(data={'id': env_id})
    env_util.copy_vips(env)

    mock_subprocess.assert_called_once_with(
        ['fuel2', '--debug', 'env', 'copy', 'vips', str(env_id)]
    )
示例#2
0
def test_copy_vips(mock_subprocess):
    env_id = -1
    env = mock.Mock(data={'id': env_id})
    env_util.copy_vips(env)

    mock_subprocess.assert_called_once_with(
        ['fuel2', 'env', 'copy', 'vips',
         str(env_id)])
示例#3
0
def upgrade_node(env_id, node_ids, isolated=False, network_template=None):
    # From check_deployment_status
    env = environment_obj.Environment(env_id)
    nodes = [node_obj.Node(node_id) for node_id in node_ids]

    # Sanity check
    one_orig_id = None
    for node in nodes:
        orig_id = node.data['cluster']
        if orig_id == env_id:
            raise Exception(
                "Cannot upgrade node with ID %s: it's already in cluster with "
                "ID %s", node_id, env_id,
            )
        if orig_id:
            if one_orig_id and orig_id != one_orig_id:
                raise Exception(
                    "Not upgrading nodes from different clusters: %s and %s",
                    orig_id, one_orig_id,
                )
            one_orig_id = orig_id
    patch_partition_generator(one_orig_id)
    call_handlers = upgrade_handlers.get_nodes_handlers(nodes, env, isolated)
    call_handlers('preupgrade')
    call_handlers('prepare')
    env_util.move_nodes(env, nodes)

    # NOTE(aroma): copying of VIPs must be done after node reassignment
    # as according to [1] otherwise the operation will not take any effect
    # [1]: https://bugs.launchpad.net/fuel/+bug/1549254
    env_util.copy_vips(env)

    call_handlers('predeploy')
    if network_template:
        env_util.set_network_template(env, network_template)
    if isolated or len(nodes) == 1:
        env_util.deploy_nodes(env, nodes)
    else:
        env_util.deploy_changes(env, nodes)
    call_handlers('postdeploy')