Fixes in CreateUpgradeReleaseHandler
* add deployment_tasks in clone release * fix typo * copy net_roles_metadata on src releases Change-Id: Ia3b29f3f6d36442d5980e9fdff951bfcc3ad814f Closes-bug: 1617247
This commit is contained in:
parent
0ae07c813e
commit
8147718cf7
|
@ -14,6 +14,7 @@
|
||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
|
import copy
|
||||||
import six
|
import six
|
||||||
|
|
||||||
from nailgun.api.v1.handlers import base
|
from nailgun.api.v1.handlers import base
|
||||||
|
@ -152,13 +153,14 @@ class CreateUpgradeReleaseHandler(base.BaseHandler):
|
||||||
|
|
||||||
Overwrite base default_mapping by orig default_maping values.
|
Overwrite base default_mapping by orig default_maping values.
|
||||||
"""
|
"""
|
||||||
|
base_nets = copy.deepcopy(base_nets)
|
||||||
|
orig_nets = copy.deepcopy(orig_nets)
|
||||||
orig_network_dict = {n['id']: n for n in orig_nets}
|
orig_network_dict = {n['id']: n for n in orig_nets}
|
||||||
for base_net in base_nets:
|
for base_net in base_nets:
|
||||||
orig_net = orig_network_dict.get(base_net['id'])
|
orig_net = orig_network_dict.get(base_net['id'])
|
||||||
if orig_net is None:
|
if orig_net is not None:
|
||||||
orig_net = base_net
|
base_net['default_mapping'] = orig_net['default_mapping']
|
||||||
base_net['default_mapping'] = orig_net['default_mapping']
|
return base_nets
|
||||||
return base_net
|
|
||||||
|
|
||||||
@base.serialize
|
@base.serialize
|
||||||
def POST(self, cluster_id, release_id):
|
def POST(self, cluster_id, release_id):
|
||||||
|
@ -174,14 +176,15 @@ class CreateUpgradeReleaseHandler(base.BaseHandler):
|
||||||
base_release = self.get_object_or_404(objects.Release, release_id)
|
base_release = self.get_object_or_404(objects.Release, release_id)
|
||||||
orig_cluster = self.get_object_or_404(objects.Cluster, cluster_id)
|
orig_cluster = self.get_object_or_404(objects.Cluster, cluster_id)
|
||||||
orig_release = orig_cluster.release
|
orig_release = orig_cluster.release
|
||||||
|
|
||||||
network_metadata = self.merge_network_roles(
|
network_metadata = self.merge_network_roles(
|
||||||
base_release.network_roles_metadata,
|
base_release.network_roles_metadata,
|
||||||
orig_release.network_roles_metadata)
|
orig_release.network_roles_metadata)
|
||||||
data = objects.Release.to_dict(base_release)
|
data = dict(base_release)
|
||||||
data['network_roles_metadata'] = network_metadata
|
data['network_roles_metadata'] = network_metadata
|
||||||
data['name'] = '{0} Upgrade ({1})'.format(
|
data['name'] = '{0} Upgrade ({1})'.format(
|
||||||
base_release.name, orig_release.id)
|
base_release.name, orig_release.id)
|
||||||
|
deployment_tasks = objects.Release.get_deployment_tasks(base_release)
|
||||||
|
data['deployment_tasks'] = deployment_tasks
|
||||||
del data['id']
|
del data['id']
|
||||||
new_release = objects.Release.create(data)
|
new_release = objects.Release.create(data)
|
||||||
return new_release.to_dict()
|
return objects.Release.to_dict(new_release)
|
||||||
|
|
|
@ -247,3 +247,19 @@ class TestCopyVipsHandler(base.BaseIntegrationTest):
|
||||||
|
|
||||||
self.assertEqual(resp.status_code, 200)
|
self.assertEqual(resp.status_code, 200)
|
||||||
self.assertTrue(copy_vips_mc.called)
|
self.assertTrue(copy_vips_mc.called)
|
||||||
|
|
||||||
|
|
||||||
|
class TestCreateUpgradeReleaseHandler(base.BaseIntegrationTest):
|
||||||
|
|
||||||
|
def test_clone_release(self):
|
||||||
|
new_cluster = self.env.create_cluster(api=False)
|
||||||
|
release = self.env.create_release(
|
||||||
|
operating_system=consts.RELEASE_OS.ubuntu, version="new_version")
|
||||||
|
uri = reverse(
|
||||||
|
'CreateUpgradeReleaseHandler',
|
||||||
|
kwargs={'cluster_id': new_cluster.id, 'release_id': release.id})
|
||||||
|
resp = self.app.post(uri, headers=self.default_headers)
|
||||||
|
self.assertEqual(resp.status_code, 200)
|
||||||
|
self.assertEqual(
|
||||||
|
'{0} Upgrade ({1})'.format(release.name, new_cluster.release.id),
|
||||||
|
resp.json_body['name'])
|
||||||
|
|
Loading…
Reference in New Issue