Пример #1
0
 def test_delete_works_for_master_worker(self):
     nodegroup = NodeGroup.objects.ensure_master()
     interface = factory.make_node_group_interface(
         nodegroup, management=NODEGROUPINTERFACE_MANAGEMENT.DHCP)
     self.client = make_worker_client(nodegroup)
     response = self.client.delete(
         reverse('nodegroupinterface_handler',
                 args=[nodegroup.uuid, interface.interface]))
     self.assertEqual(httplib.NO_CONTENT, response.status_code)
Пример #2
0
 def test_delete_works_for_master_worker(self):
     nodegroup = NodeGroup.objects.ensure_master()
     interface = factory.make_node_group_interface(
         nodegroup, management=NODEGROUPINTERFACE_MANAGEMENT.DHCP)
     self.client = make_worker_client(nodegroup)
     response = self.client.delete(
         reverse(
             'nodegroupinterface_handler',
             args=[nodegroup.uuid, interface.interface]))
     self.assertEqual(httplib.NO_CONTENT, response.status_code)
Пример #3
0
 def test_delete_does_not_work_for_normal_user(self):
     nodegroup = NodeGroup.objects.ensure_master()
     interface = factory.make_node_group_interface(
         nodegroup, management=NODEGROUPINTERFACE_MANAGEMENT.DHCP)
     log_in_as_normal_user(self.client)
     response = self.client.delete(
         reverse('nodegroupinterface_handler',
                 args=[nodegroup.uuid, interface.interface]))
     self.assertEqual(httplib.FORBIDDEN, response.status_code,
                      response.content)
Пример #4
0
 def test_delete_does_not_work_for_normal_user(self):
     nodegroup = NodeGroup.objects.ensure_master()
     interface = factory.make_node_group_interface(
         nodegroup, management=NODEGROUPINTERFACE_MANAGEMENT.DHCP)
     log_in_as_normal_user(self.client)
     response = self.client.delete(
         reverse(
             'nodegroupinterface_handler',
             args=[nodegroup.uuid, interface.interface]))
     self.assertEqual(
         httplib.FORBIDDEN, response.status_code, response.content)
 def test_can_delete_cluster_interface(self):
     nodegroup = factory.make_node_group()
     interface = factory.make_node_group_interface(
         nodegroup=nodegroup,
         management=NODEGROUPINTERFACE_MANAGEMENT.UNMANAGED)
     delete_link = reverse(
         'cluster-interface-delete',
         args=[nodegroup.uuid, interface.interface])
     response = self.client.post(delete_link, {'post': 'yes'})
     self.assertEqual(
         (httplib.FOUND, reverse('cluster-edit', args=[nodegroup.uuid])),
         (response.status_code, extract_redirect(response)))
     self.assertFalse(
         NodeGroupInterface.objects.filter(id=interface.id).exists())
Пример #6
0
 def test_update_works_for_master_worker(self):
     nodegroup = NodeGroup.objects.ensure_master()
     interface = factory.make_node_group_interface(
         nodegroup, management=NODEGROUPINTERFACE_MANAGEMENT.DHCP)
     self.client = make_worker_client(nodegroup)
     get_ip_in_network = partial(factory.getRandomIPInNetwork,
                                 interface.network)
     new_ip_range_high = next(ip for ip in iter(get_ip_in_network, None)
                              if ip != interface.ip_range_high)
     response = self.client_put(
         reverse('nodegroupinterface_handler',
                 args=[nodegroup.uuid, interface.interface]),
         {'ip_range_high': new_ip_range_high})
     self.assertEqual(httplib.OK, response.status_code)
 def test_can_edit_cluster_interface(self):
     nodegroup = factory.make_node_group(
         management=NODEGROUPINTERFACE_MANAGEMENT.UNMANAGED)
     interface = factory.make_node_group_interface(
         nodegroup=nodegroup)
     edit_link = reverse(
         'cluster-interface-edit',
         args=[nodegroup.uuid, interface.interface])
     data = factory.get_interface_fields()
     response = self.client.post(edit_link, data)
     self.assertEqual(
         (httplib.FOUND, reverse('cluster-edit', args=[nodegroup.uuid])),
         (response.status_code, extract_redirect(response)))
     self.assertThat(
         reload_object(interface),
         MatchesStructure.byEquality(**data))
Пример #8
0
 def test_update_works_for_master_worker(self):
     nodegroup = NodeGroup.objects.ensure_master()
     interface = factory.make_node_group_interface(
         nodegroup, management=NODEGROUPINTERFACE_MANAGEMENT.DHCP)
     self.client = make_worker_client(nodegroup)
     get_ip_in_network = partial(
         factory.getRandomIPInNetwork, interface.network)
     new_ip_range_high = next(
         ip for ip in iter(get_ip_in_network, None)
         if ip != interface.ip_range_high)
     response = self.client_put(
         reverse(
             'nodegroupinterface_handler',
             args=[nodegroup.uuid, interface.interface]),
         {'ip_range_high': new_ip_range_high})
     self.assertEqual(httplib.OK, response.status_code)
 def test_cluster_page_contains_links_to_edit_and_delete_interfaces(self):
     nodegroup = factory.make_node_group()
     interfaces = set()
     for i in range(3):
         interface = factory.make_node_group_interface(
             nodegroup=nodegroup,
             management=NODEGROUPINTERFACE_MANAGEMENT.UNMANAGED)
         interfaces.add(interface)
     links = get_content_links(
         self.client.get(reverse('cluster-edit', args=[nodegroup.uuid])))
     interface_edit_links = [
         reverse('cluster-interface-edit',
         args=[nodegroup.uuid, interface.interface])
         for interface in interfaces]
     interface_delete_links = [
         reverse('cluster-interface-delete',
         args=[nodegroup.uuid, interface.interface])
         for interface in interfaces]
     self.assertThat(
         links,
         ContainsAll(interface_edit_links + interface_delete_links))
 def test_edit_delete_empty_cluster_interface_when_slash_removed(self):
     nodegroup = factory.make_node_group()
     interface = factory.make_node_group_interface(
         nodegroup=nodegroup, interface='',
         management=NODEGROUPINTERFACE_MANAGEMENT.UNMANAGED)
     edit_link = reverse(
         'cluster-interface-edit',
         args=[nodegroup.uuid, interface.interface])
     delete_link = reverse(
         'cluster-interface-delete',
         args=[nodegroup.uuid, interface.interface])
     links = [edit_link, delete_link]
     # Just make sure that the urls contains '//'.  If this is not
     # true anymore, because we've refactored the urls, this test can
     # problably be removed.
     self.assertThat(links, AllMatch(Contains('//')))
     # Simulate what apache (when used as a frontend) does to the
     # urls.
     new_links = [link.replace('//', '/') for link in links]
     response_statuses = [
         self.client.get(link).status_code for link in new_links]
     self.assertThat(response_statuses, AllMatch(Equals(httplib.OK)))