Add create upgrade release handler

Bug #1616637 reported by OpenStack Infra
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Fuel for OpenStack
Won't Fix
Medium
Fuel Documentation Team
Mitaka
Confirmed
Medium
Fuel Documentation Team

Bug Description

https://review.openstack.org/360086
Dear bug triager. This bug was created since a commit was marked with DOCIMPACT.

commit 17ab5a3aaa7d2c4ae4652d1a4dc0410b31e7c47d
Author: Sergey Abramov <email address hidden>
Date: Wed Aug 24 18:32:39 2016 +0300

    Add create upgrade release handler

    Required for create new release just for upgrade, that have overwrited
    params. This params are valid for orig cluster release.

    Change-Id: Ib2387b9c2b74902c7289ee8f69a5f5d323ec82ca

commit 8de47e0dbf5955b3cbe59a3956e1ca1f4d8679ef
Author: Nikita Zubkov <email address hidden>
Date: Wed Aug 24 15:42:32 2016 +0300

    Add VIPs transformer

    Move upgrade vips code to the transformer

    Change-Id: Ia6935521b8b90b73fb74ba92859e7febf74c4ced

commit b54f9d4c29808c4561b20af508b85b9e40fa72b6
Author: Nikita Zubkov <email address hidden>
Date: Wed Aug 24 17:51:39 2016 +0300

    Move partition info transformation to extension

    octane have some dirty hacks to change volumes attributes using nailgun
    as a library, such modifications should be done in a extension

    Change-Id: I422bb368916f3a319e286edcc6103a2834097a87

commit b3ce0d348cc20ed988b5adf66474836f631eb12d
Author: Anastasiya <email address hidden>
Date: Mon Aug 1 15:47:13 2016 +0300

    Add tests for assign_node_to_cluster

    Change-Id: Iafa1baa6a1ca4d701ec89e49dd9d6f969804c82e

commit a764ba306dcd0cfb65a82c89f07ec0f3d129c66b
Author: Nikita Zubkov <email address hidden>
Date: Tue Aug 23 14:05:16 2016 +0300

    Update README

    Add instalation section

    Change-Id: Ib16132ab9c18d757e96e98304fdd8339ddf5497a

commit 95ff3a3598397bb6e3c68793051298aaa006d163
Author: Yuriy Taraday <email address hidden>
Date: Tue Aug 23 23:01:16 2016 +0300

    Add cluster transformations

    Implement transformations that are applied to cluster attributes during
    environment cloning.

    Conversion from text to text_list type has been limited to dns_list and
    ntp_list keys only to keep predictable behavior.

    Change-Id: I1ff596f850bd42243697cad1c1c35f0cf1386376

commit 163ce243fbade3dac05eb535ad2987687a57f87d
Author: Yuriy Taraday <email address hidden>
Date: Tue Aug 23 22:51:19 2016 +0300

    Add pluggable transformations for data migration

    This change introduces new transformation mechanism:
    - all available transformations are listed in setuptools entry points
      under namespace like this (for cluster transformations):

        nailgun.cluster_upgrade.transformations.cluster.9.0 =
            dns_list = ...
            ntp_list = ...
        nailgun.cluster_upgrade.transformations.cluster.8.0 =
            ...
        <etc>

    - config file will include section that specifies enabled
      transformations like this:

        CLUSTER_UPGRADE_TRANSFORMATIONS:
          cluster:
            9.0: dns_list ntp_list ...
            8.0: ...
            7.0: ...

      (only default values are implemented here, actual config support will
      follow)

    - when transformations are applied to clone cluster from version X to
      version Y, first transformations for version X+1 are applied, then
      X+2, and so on ending with transformations for version Y.

    Since Nailgun doesn't provide any special extension initialization
    callback, a Lazy wrapper is implemented to facilitate transformations
    manager usage in extension.

    Change-Id: I8ee75b54180106ad46c1df67f8d5937d6bd810a1

commit 7cf3fe9b3aa0965514e4370e908909e548ff918e
Author: Ilya Kharin <email address hidden>
Date: Tue Aug 23 01:04:21 2016 +0300

    Disallow to change operating system during upgrade

    Changing of an operating system for clouds nodes is not supported and is
    not tested at all. That's why this additional validation was added.

    Change-Id: Ibf6db17f783879eff88e2366dfdb0a2871e2aa0a

commit d94df3e42b96cdf08901e3917d70b8fe3b97c989
Author: Yuriy Taraday <email address hidden>
Date: Tue Aug 23 12:47:03 2016 +0300

    Add bindep.txt to shorten test run time

    Currently we have the generic huge list of packages installed on each
    test run, fix that to include only necessary packages.

    Change-Id: Ic218c7640dea8a65999259dda006ed59cd87bfb9

commit 6150aaca88088bcc9ff4f204d913f5250b9ecac5
Author: Yuriy Taraday <email address hidden>
Date: Tue Aug 23 12:25:30 2016 +0300

    Replace @content decorator with all that madness

    Change Ia3da3bd809bcca923d53666eca54def78c995f65 broke our handlers as
    it incorporated destructive changes to all handlers.

    Change-Id: I688e833b1fb8b658f01b7f858a140c315fa513a2

commit dc2e3f930957b2c8af2d6c6a60bfcc6c5e6bb061
Author: Anastasiya <email address hidden>
Date: Mon Aug 1 14:39:35 2016 +0300

    Move change_env_settings function from octane to cluster upgrade extension

    * change_env_settings function was moved to cluster upgrade extention
    * merge generated attributes code was written

    Change-Id: I6d1e27b8b0c01f3251067bc88931cd2354feb5ce
    Partial-Bug: #1602587

commit 9e9ae1fabef46dc654f4c2c353646e66f1cf0742
Author: Ilya Kharin <email address hidden>
Date: Wed Aug 10 17:28:17 2016 +0300

    Add absent __init__.py to migrations/versions

    Without the versions/__init__.py file versions was not identified as
    a package and was not included in a distribution.

    Change-Id: I67f152ebb9234df880c61d79d154b1aabc8828c6
    Closes-Bug: #1611793

commit 9aa37dfe1095fa16c8f1f967945a23027ac05984
Author: Alexander Tsamutali <email address hidden>
Date: Mon Aug 1 15:47:58 2016 +0300

    Add package spec

    Change-Id: Id71764dff07a4b32851eb8ccf69c66dca4a7b6ab
    Related-Bug: #1604492

commit 56dc7c1f8fc95eea2cbc5410cbcf75ed99f6909d
Author: Anastasiya <email address hidden>
Date: Fri Jul 8 10:34:07 2016 +0300

    Assign node to cluster with network template

    Don't need to assign nics and bonds to netgroups
    if network template has been applied to new cluster.

    Change-Id: Ibd06de87964bf7a2038899d32e3d8a0189b9cbbd
    Partial-bug: 1584044

commit fdd2a6226483c67ce8bc7adc8b2d354862125bac
Author: Anastasiya <email address hidden>
Date: Fri Jul 15 10:24:11 2016 +0300

    Correction of transformation for text_list

    * added removing of space in text_list
    * added test for merge_attributes

    Change-Id: I5582878fc7c524551593abf21dfd4ea45cd430c9
    Closes-bug: 1602607

commit 651a269e1f4ba4ab4ce0213d44d09d1fc0c8c1bc
Author: Nikita Zubkov <email address hidden>
Date: Tue Jul 19 17:04:32 2016 +0300

    Add README

    Change-Id: I7c875d89f0423c26f28f1a6debf947b5510988fd

commit 035a6f7baa5bc4b80b4c065e3904a81943689460
Author: Nikita Zubkov <email address hidden>
Date: Tue Jul 19 18:24:42 2016 +0300

    Switch to upstream fuel-web repository

    Change-Id: I994304bdc8eaf7e4da175981cb721d41a286fed0
    Depends-On: Id0bc78478cf3f40767fed760cd54e487a934fa10

commit e46a649e87a64548c826ce1332f8234f44b60ced
Author: Nikita Zubkov <email address hidden>
Date: Wed Jul 13 13:43:58 2016 +0300

    Fix package namespace

commit 71148973619caea267a548d5924edecec29650b6
Author: Nikita Zubkov <email address hidden>
Date: Wed Jul 13 13:43:16 2016 +0300

    Add nailgun extension entrypoint to setup.cfg

commit f4b285d098baee9cf55a1ee05f9c32cc17eeac2d
Author: Sergey Abramov <email address hidden>
Date: Fri May 13 17:53:43 2016 +0300

    Fix cluster attributes dns_list and ntp_list

    Settings in release change. Cloned cluster should have values valid for
    its release.

    dns_list and net_list were text values but in version mitaka-9.0 it
    changed to text_list

    Change-Id: Iac0aa42b7c36333e6d9c40b8a27a19df9efe36f5
    Closes-Bug: 1572179

commit 963272a0d577d505195c9b0f5cede75c22d706d5
Author: Artur Svechnikov <email address hidden>
Date: Wed May 11 12:43:23 2016 +0300

    Move models for restrictions to cluster object

    Since there are a couple of places where models for
    restrictions is initialized, it's moved to cluster object.
    Also, comments from previous commit
    (Ibba7951968cbafd59fff0d516e74f9dd9e454edc) are fixed

    It's refactoring bug is not needed.

    Change-Id: Ic499a5deefb12740ebedc630b024dae0b4248ec5

commit 93d7fb982b994e8418288b8e98b35d6f0c9b25d1
Author: Artur Svechnikov <email address hidden>
Date: Wed May 4 13:29:17 2016 +0300

    Check nodes roles before deployment

    Nodes roles should be checked in CheckBeforeDeploymentTask,
    because it's possible to deploy node with conflicting roles
    or with incompatible role. Roles release metadata will be
    used for roles checks, this metadata contains restrictions.

    Since `depends` is not used anymore, it's changed to
    `restrictions` in assignment validator.

    Change-Id: Ibba7951968cbafd59fff0d516e74f9dd9e454edc
    Closes-Bug: #1573006

commit e7230f5824315e964bca3cdc214ca899a99f7c5e
Author: Dmitry Guryanov <email address hidden>
Date: Tue Apr 19 18:07:31 2016 +0300

    Don't use self.env.clusters[0] in tests where possible

    Since self.env.create always return db object now,
    we can use this returned value instead of
    self.env.clusters list.

    It's a refactoring, so no bug or blueprint.

    Change-Id: If7c84cb7124bcf08ef5ff110542012564190fae1

commit 5bbaf23795c645b172753ae85011a4669f9dc828
Author: Nikita Zubkov <email address hidden>
Date: Tue Apr 5 15:31:37 2016 +0300

    Add exceptions hierarchy

    nailgun.errors have a huge set of exceptions but without hierarchy. This
    patch remove exception generation from dict and make it explicitly with
    python classes and add some exceptions hierarchy. Now all network errors
    inherit from NetworkException and same for other exceptions.

    Change-Id: I9a2c6b358ea02a16711da74562308664ad7aed97
    Closes-bug: #1566195

commit 99d9afbe2befd97a5fde70eca5eb9ceeafb7f376
Author: Ryan Moe <email address hidden>
Date: Mon Apr 4 14:29:58 2016 -0700

    Move network objects to extension

    All network-related objects have been moved into the
    network_manager extension and import paths have been updated.

    Blueprint: network-manager-extension

    Change-Id: I6e16df86a58d6192d312e8e8955ed38912d2b059

commit 8f29bf537d9b5006c9532a70a2b7e0a58fc66442
Author: Oleg Gelbukh <email address hidden>
Date: Wed Mar 9 18:42:21 2016 +0000

    Properly iterate through VIPs

    In the original form, the iterator was changed inside
    the loop. Iterating through separate list object
    fixes this issue.

    Change-Id: I8c2a47b54f1339669f9f20f1a420a028044cb9d8
    Closes-bug: 1539039

commit 6db717cff27edce20f1727e83b8f30b2c7f05676
Author: Artem Roma <email address hidden>
Date: Thu Feb 25 19:45:50 2016 +0200

    Fix get_common_node_group behavior

    Now if common nodegroup has not been found for given nodes None as a
    result is returned instead of default node group.

    This directly affects procedure of VIP allocation as (e.g.) VIPs will
    not be allocated when cluster does not have assigned nodes.

    Tests updated accordingly

    Change-Id: Iaa94453f3f98cc9238f9810aab7311ffabbfa8b7
    Closes-Bug: #1549254

commit c0876c580e4a9138c7bfe420c459a4dafb9bd4c3
Author: Artem Roma <email address hidden>
Date: Tue Mar 1 15:38:37 2016 +0200

    Add handler for copying of VIPs

    New handler triggers copying of VIPs from given original cluster to new
    one. The reason for separation of this action from copying of network
    configuration is that accordion to [1] copying of existing VIPs/allocation
    of new ones will not take effect for new cluster unless it has assigned
    nodes. Thus in context of cluster upgrade procedure VIP transfer must be
    done after node reassignment, and as long as nodes are being operated on
    one by one it would be not efficient to call VIP copying method after
    each such reassignment.

    Tests updated accordingly.

    [1]: https://review.openstack.org/#/c/284841/

    Change-Id: I33670e8f2561be6fe18cec75bfc7ecc056ae2f6b
    Closes-Bug: #1552744

commit ecec1f6d3c68e58edc28616d1f7547119b019426
Author: Alexander Kislitsky <email address hidden>
Date: Tue Mar 22 09:31:58 2016 +0300

    Performance of network manager operation improve

    We have extra SQLs generated in the NetworkManager when passing
    node_id instead already loaded SQLAlchemy node object.

    Additional changes:
    - Bulk insert used in IPs assiging process.
    - zip changed on six.moves.zip in the NetworkManager.
    - Removed unused function get_admin_ips_for_interfaces from NetworkManager.

    Co-Authored-By: Dmitry Guryanov <email address hidden>

    Partial-Bug: #1498365
    Change-Id: I0518a5879c775d568de5652dbdd856a0cede80ce

commit 405c7db906b72000c95224a365fc8a30be4b56a5
Author: Ilya Kharin <email address hidden>
Date: Sun Feb 14 23:15:32 2016 -0600

    Reassign nodes without reinstallation

    In some upgrade scenarios when shadow environments are used some of
    nodes should not be reprovisioned during this procedure. It is useful in
    combination when control plane nodes are reprovisioned and data plane
    nodes are updated in place.

    The update_cluster_assignment method of the objects.Node class was
    changed to accept roles and pending_roles for node during the
    reassignment. It allows to specify proper roles by the upgrade
    extention.

    The NodeReassignHandler handler accepts two additional parameters in the
    request body:
      - reprovision = True (default) - allows to skip the reprovision step
      - roles = [] (default) - allows to specify new roles or preserve the
                               current roles if empty

    Two additional methods were added to NailgunClusterAdapter and
    NailgunReleaseAdapter respectively.

    Change-Id: Iedb20a904e58f5b9a86eb47de8d8d317dc3cc61b
    Blueprint: upgrade-major-openstack-environment
    Closes-Bug: #1558655

commit 3cda80e31af64eb182e2f5bfd976417221eefc9d
Author: Ilya Kharin <email address hidden>
Date: Mon Mar 7 21:04:04 2016 -0600

    Use the 9.0 release in tests for cluster_upgrade

    This patch also renames names of variables in tests of the
    cluster_upgrade extension from more specific names that contain versions
    of releases to least specific names.

    Change-Id: Ic02b4426c1bb0bf38ba06cfeb54255043ebc8481
    Closes-Bug: #1555339

commit 73b52c9e655e7c67e847dd506e310a9e50d7df30
Author: Fedor Zhadaev <email address hidden>
Date: Mon Feb 8 11:42:00 2016 +0300

    Remove Mirantis-specific code from fuel-web repo

    Remove code related to registration in Mirantis tracking system and
    using Mirantis server to collect statistics.

    Change-Id: Ie1243a8b12368a0d61cd51da2d5ab6cce3eeea65
    Related to blueprint remove-vendor-code
    Depends-On: Id67d6201cb23e371dc42ec6e818bcbc2ca0fde31

commit a2fd459b6bdcf6e500ae7ff896537707bab4d5e8
Author: Ryan Moe <email address hidden>
Date: Tue Oct 27 14:54:43 2015 -0700

    Move all db queries from network manager to objects

    All network-related database queries are moved into the appropriate
    object methods. This is being done to make it possible to have an external
    network management service.

    Blueprint: network-config-refactoring
    Change-Id: I4ce965f227c54577659e64f598ff5cdf4c868ed6

commit 761d356c22ab134f5a4f501bf8b23a76cf6a6b74
Author: Sylwester Brzeczkowski <email address hidden>
Date: Tue Dec 22 11:22:08 2015 +0100

    Nailgun extensions in stevedore

    The change introduces Nailgun extensions which use stevedore to
    plug into nailgun. Stevedore enables (not only) Fuel developers
    to write extensions and develop them independently in separate
    repos.

    Functions for loading and retriving extensions classes was
    moved to new file `manager.py`.

    Change-Id: I59015a28f460b1e45312b1c003aadec3cc396ad5
    Implements: blueprint stevedore-extensions-discovery

commit f0faf014f82212e4fa0bba10954605d9bfa23527
Author: Ivan Kliuk <email address hidden>
Date: Sat Dec 5 17:16:38 2015 +0200

    New VIP-related fields in the database

    * Add 'is_user_defined' field to 'ip_addrs' table.
    * Rename 'vip_type' field to 'vip_name' of table 'ip_addrs'.
    * Add 'vip_namespace' field to 'ip_addrs' table.
    * Copy vip namespaces from plugin table network roles to 'vip_namespace' field
      according to the unique vip name.
    * Add database migrations.
    * Add unit test for migrations.

    Change-Id: Ia3e1d7f6e08dbebcb182de75eeaf58ddf6be4a8d
    Partial-bug: #1482399

commit c5fd9ee16f81b630104810404da8f2457ad52117
Author: Oleg Gelbukh <email address hidden>
Date: Thu Oct 22 17:57:23 2015 +0000

    Change openstack_version to liberty-9.0 in openstack.yaml

    Set release name to 'Liberty' in display name and description of new release.
    Set openstack_version setting to 'liberty-9.0' to comply with the existing
    versions schema.
    Set opesntack_version to 'liberty-9.0' in tests.

    Closes-bug: 1503663
    Change-Id: Ifef952e18f08b98c430bbff9434984deaa68df81

commit 192f9e192bb6359fd3bf29c985846dd16eb02c54
Author: Andrey Shestakov <email address hidden>
Date: Mon Nov 2 17:08:04 2015 +0200

    Patch network_roles_metadata for 7.0 release where needed

    The patching mostly done for tests for nailgun components adhering to
    the release version. E.g. network serializers. Some tests are forced to
    create environments of 8.0 version. The change is needed to resolve
    possible issues with the tests when network roles metadata is changed
    drastically and is not compatible with mentioned components.

    Partial-Bug: #1517874
    Change-Id: I55607157ae7767ffdfd1d855b872630832706e8e

commit 1d8bfe5435c9d08b62057dce91d04c6cce0482a7
Author: Oleg Gelbukh <email address hidden>
Date: Fri Oct 30 13:54:28 2015 +0000

    Rename ClusterUpgradeHandler

    Name ClusterUpgradeHandler should be used for handling uri
    /cluster/<id>/upgrade.

    Current handler performs clone of environment for upgrading. Thus, rename
    ClusterUpgradeHandler to ClusterUpgradeCloneHandler.

    Blueprint: upgrade-major-openstack-environment
    Change-Id: I6c98e0882c300d587caa32429b49b22baa9ad82f

commit e62381890442491fc7bc05f49429e7e53242b89b
Author: Maciej Kwiek <email address hidden>
Date: Tue Oct 20 11:40:25 2015 +0200

    Replace release.is_deployable with release.state

    is_deployable doesn't really give any additional information for a
    release, it is removed. To make change API-backward-compatible, it is
    retained as a property dependent on release.state.

    New state is added - manageonly, for environments that are not able to
    be deployed, but can still be managed.

    Change-Id: I518a0114730a2f227c9ef035a376f9a90d3d5bbd
    Closes-bug: #1503303
    DocImpact

commit f29f6dd05fdbd112289b6bb592119b42141f6a19
Author: Ilya Kharin <email address hidden>
Date: Tue Aug 18 14:37:25 2015 +0300

    Set the node_id param as a required property

    The node_id property is a required property to perform the re-assigning
    a node with a given ID from one cluster to another.

    Change-Id: I2442442260f19833db239b01856d0ff4f63ecfbb
    Closes-Bug: #1483239

commit 3a92661957a93e006633fb2f918b6a9db5832670
Author: Ilya Kharin <email address hidden>
Date: Tue Aug 11 16:23:08 2015 +0300

    Rename types of VIPs during upgrade to 7.0

    In the 7.0 release the networking templates were introduced. They use
    the ip.addrs.vip_type column as names of VIPs and these names differ
    from names of previous releases. To solve this we can renamed VIPs of
    older releases during upgrade to 7.0 accoring the rules:

        management: haproxy -> management
        public: haproxy -> public
        public: vrouter -> vrouter_pub

    Change-Id: Ia77d13ea90408a06896f2a49c6e43d44c6af1d0d
    Closes-Bug: #1482577

commit 26b51e7126c8a0aa96aa7a7850c5d8ab1cc18ea2
Author: Ilya Kharin <email address hidden>
Date: Sun Jul 19 23:50:40 2015 +0300

    Directly assign node to an upgrade cluster

    The patch adds method that assigns a node to an upgrade cluster without
    deleting it from DB. This allows to keep ID of the node and IP addresses
    assigned to it. The node is booted into the bootstrap image as soon as
    it moves to an upgrade cluster.

    Implements blueprint: nailgun-api-env-upgrade-extensions
    Co-Authored-By: Artur Svechnikov <email address hidden>
    Change-Id: If10fadd149a32317420778607146d9d12108d3f9

commit a80bbf8b6e549f968ed6e5ed9b7ca1b1dd5a6822
Author: Ilya Kharin <email address hidden>
Date: Tue Jul 28 05:03:32 2015 +0300

    Introduce extension to upgrade clusters

    The patch adds an extension which implements the procedure of upgrading
    clusters from one major release to another. As a first step of the
    procedure the extension provides an ability to create a seed cluster
    with the same settings as the original.

    Implements blueprint: nailgun-api-env-upgrade-extensions
    Change-Id: I22d51a3ffd51a7c88bdcbde0eef6f47b65def1c8

Dmitry Klenov (dklenov)
Changed in fuel:
milestone: none → 9.1
assignee: nobody → Fuel Documentation Team (fuel-docs)
tags: added: area-docs
Changed in fuel:
importance: Undecided → Medium
status: New → Confirmed
Roman Vyalov (r0mikiam)
Changed in fuel:
status: Confirmed → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.