From eda47dc572a3935e13e88069de4fb737f6fcaf08 Mon Sep 17 00:00:00 2001 From: asledzinskiy Date: Wed, 11 May 2016 13:38:13 +0300 Subject: [PATCH] Fix manual vip allocation tests - Now vips are not allocated before deployment so change tests logic to send manually formed vip Change-Id: I37f3d714a52a42203bedca8f1546e995cc737436 Closes-Bug: #1578697 --- fuelweb_test/models/fuel_web_client.py | 16 ----- fuelweb_test/models/nailgun_client.py | 30 +-------- .../tests/test_manual_vip_allocation.py | 65 +++++++++++-------- 3 files changed, 40 insertions(+), 71 deletions(-) diff --git a/fuelweb_test/models/fuel_web_client.py b/fuelweb_test/models/fuel_web_client.py index 476ca79cd..d962aaec5 100644 --- a/fuelweb_test/models/fuel_web_client.py +++ b/fuelweb_test/models/fuel_web_client.py @@ -2824,19 +2824,3 @@ class FuelWebClient(object): logger.exception("Failed to run task {!r}".format(task_name)) if force_exc: raise - - @logwrap - def get_vip_info(self, cluster_id, vip_name='public'): - vip_data = self.client.get_vip_info_by_name(cluster_id, vip_name) - assert_true(vip_data, "Vip with name {} wasn't found".format(vip_name)) - logger.debug("vip data is {}".format(vip_data[0])) - return vip_data[0] - - @logwrap - def update_vip_ip(self, cluster_id, ip, vip_name='public'): - vip_data = self.get_vip_info(cluster_id, vip_name=vip_name) - vip_data['ip_addr'] = ip - vip_data['is_user_defined'] = True - vip_id = vip_data['id'] - logger.debug("data to send {}".format(vip_data)) - self.client.update_vip_ip(cluster_id, vip_id, vip_data) diff --git a/fuelweb_test/models/nailgun_client.py b/fuelweb_test/models/nailgun_client.py index b2529c23e..693848d53 100644 --- a/fuelweb_test/models/nailgun_client.py +++ b/fuelweb_test/models/nailgun_client.py @@ -638,33 +638,9 @@ class NailgunClient(object): @logwrap @json_parse - def get_vip_info(self, cluster_id): - """Get all available vips. - - :param cluster_id: Id of cluster. - :return: a decoded JSON response. - """ - return self.client.get("/api/clusters/{}/network_configuration/" - "ips/vips".format(cluster_id)) - - @logwrap - def get_vip_info_by_name(self, cluster_id, name): - """Get vip data by its name. - - :param cluster_id: Id of cluster. - :param name: Name of vip. - :return: vip info with specified name. - """ - vips_data = self.get_vip_info(cluster_id) - logger.debug("available vips are {}".format(vips_data)) - vip_data = [vip for vip in vips_data if vip['vip_name'] == name] - return vip_data - - @logwrap - @json_parse - def update_vip_ip(self, cluster_id, vip_id, data): - return self.client.put("/api/clusters/{0}/network_configuration/ips/" - "{1}/vips".format(cluster_id, vip_id), data) + def update_vip_ip(self, cluster_id, data): + return self.client.post("/api/clusters/{0}/network_configuration/ips/" + "vips".format(cluster_id), data) @logwrap @json_parse diff --git a/fuelweb_test/tests/test_manual_vip_allocation.py b/fuelweb_test/tests/test_manual_vip_allocation.py index feecf4098..996ae6ebe 100644 --- a/fuelweb_test/tests/test_manual_vip_allocation.py +++ b/fuelweb_test/tests/test_manual_vip_allocation.py @@ -28,7 +28,7 @@ class ChangeVipManually(TestBasic): Contains tests on manual vip allocation """ - @test(depends_on=[SetupEnvironment.prepare_slaves_9], + @test(depends_on=[SetupEnvironment.prepare_slaves_3], groups=["change_public_vip"]) @log_snapshot_after_test def change_public_vip(self): @@ -36,9 +36,9 @@ class ChangeVipManually(TestBasic): Scenario: 1. Create cluster - 2. Add 3 node with controller role - 3. Add 2 node with compute role and 1 cinder node - 4. Change public vip value to the next ip address + 2. Add 1 node with controller role + 3. Add 1 node with compute role and 1 cinder node + 4. Change public vip value to ip address from public range 5. Verify networks 6. Deploy the cluster 7. Check that cluster public vip is the same we set manually @@ -49,7 +49,7 @@ class ChangeVipManually(TestBasic): Snapshot change_public_vip """ - self.env.revert_snapshot("ready_with_9_slaves") + self.env.revert_snapshot("ready_with_3_slaves") data = { 'tenant': 'manualvip', @@ -67,19 +67,24 @@ class ChangeVipManually(TestBasic): cluster_id, { 'slave-01': ['controller'], - 'slave-02': ['controller'], - 'slave-03': ['controller'], - 'slave-04': ['compute'], - 'slave-05': ['compute'], - 'slave-06': ['cinder'], + 'slave-02': ['compute'], + 'slave-03': ['cinder'], } ) self.show_step(4) - ip = netaddr.IPAddress( - self.fuel_web.get_vip_info(cluster_id)['ip_addr']) - ip_to_set = str(ip + 1) - logger.debug('ip to be set is {}'.format(ip_to_set)) - self.fuel_web.update_vip_ip(cluster_id, ip_to_set) + ip_to_set = str( + self.env.d_env.get_network(name='public').ip.subnet()[0][5]) + logger.debug("public vip is going to be set to {}".format(ip_to_set)) + public_vip_data = {'network': 2, + 'vip_name': 'public', + 'vip_namespace': 'haproxy', + 'ip_addr': ip_to_set} + + # TODO(ddmitriev): remove this 'disable' after moving to fuel-devops3.0 + # pylint: disable=no-member + self.fuel_web.client.update_vip_ip(cluster_id, public_vip_data) + # pylint: enable=no-member + self.show_step(5) self.fuel_web.verify_network(cluster_id) self.show_step(6) @@ -96,7 +101,7 @@ class ChangeVipManually(TestBasic): self.env.make_snapshot("change_public_vip") - @test(depends_on=[SetupEnvironment.prepare_slaves_9], + @test(depends_on=[SetupEnvironment.prepare_slaves_3], groups=["change_public_vip_outside_range"]) @log_snapshot_after_test def change_public_vip_outside_range(self): @@ -105,8 +110,8 @@ class ChangeVipManually(TestBasic): Scenario: 1. Create cluster - 2. Add 3 node with controller role - 3. Add 2 node with compute role and 3 ceph nodes + 2. Add 1 node with controller+ceph role + 3. Add 1 node with compute+ceph role and 1 ceph node 4. Reduce floating ip upper bound on 10 addresses 5. Change public vip to first not used public address @@ -119,7 +124,7 @@ class ChangeVipManually(TestBasic): Snapshot change_public_vip_outside_range """ - self.env.revert_snapshot("ready_with_9_slaves") + self.env.revert_snapshot("ready_with_3_slaves") data = { 'tenant': 'outsiderangevip', @@ -141,14 +146,9 @@ class ChangeVipManually(TestBasic): self.fuel_web.update_nodes( cluster_id, { - 'slave-01': ['controller'], - 'slave-02': ['controller'], - 'slave-03': ['controller'], - 'slave-04': ['compute'], - 'slave-05': ['compute'], - 'slave-06': ['ceph-osd'], - 'slave-07': ['ceph-osd'], - 'slave-08': ['ceph-osd'], + 'slave-01': ['controller', 'ceph-osd'], + 'slave-02': ['compute', 'ceph-osd'], + 'slave-03': ['ceph-osd'] } ) self.show_step(4) @@ -166,7 +166,16 @@ class ChangeVipManually(TestBasic): self.show_step(5) ip_to_set = str(floating_upper_range + 1) logger.debug('ip to be set is {}'.format(ip_to_set)) - self.fuel_web.update_vip_ip(cluster_id, ip_to_set) + public_vip_data = {'network': 2, + 'vip_name': 'public', + 'vip_namespace': 'haproxy', + 'ip_addr': ip_to_set} + + # TODO(ddmitriev): remove this 'disable' after moving to fuel-devops3.0 + # pylint: disable=no-member + self.fuel_web.client.update_vip_ip(cluster_id, public_vip_data) + # pylint: enable=no-member + self.show_step(6) self.fuel_web.verify_network(cluster_id) self.show_step(7)