def test_ex_create_pool_member(self):
     pool = DimensionDataPool(
         id='4d360b1f-bc2c-4ab7-9884-1f03ba2768f7',
         name='test',
         description='test',
         status=State.RUNNING,
         health_monitor_id=None,
         load_balance_method=None,
         service_down_action=None,
         slow_ramp_time=None
     )
     node = DimensionDataVIPNode(
         id='2344',
         name='test',
         status=State.RUNNING,
         ip='123.23.3.2'
     )
     member = self.driver.ex_create_pool_member(
         pool=pool,
         node=node,
         port=80
     )
     self.assertEqual(member.id, '3dd806a2-c2c8-4c0c-9a4f-5219ea9266c0')
     self.assertEqual(member.name, '10.0.3.13')
     self.assertEqual(member.ip, '123.23.3.2')
Exemple #2
0
 def test_ex_destroy_pool(self):
     response = self.driver.ex_destroy_pool(
         pool=DimensionDataPool(id='4d360b1f-bc2c-4ab7-9884-1f03ba2768f7',
                                name='test',
                                description='test',
                                status=State.RUNNING))
     self.assertTrue(response)
Exemple #3
0
 def _to_pool(self, element):
     pool = DimensionDataPool(id=element.get('id'),
                              name=findtext(element, 'name', TYPES_URN),
                              status=findtext(element, 'state', TYPES_URN),
                              description=findtext(element, 'description',
                                                   TYPES_URN))
     return pool
 def test_ex_destroy_pool(self):
     response = self.driver.ex_destroy_pool(
         pool=DimensionDataPool(id='4d360b1f-bc2c-4ab7-9884-1f03ba2768f7',
                                name='test',
                                description='test',
                                status=State.RUNNING,
                                health_monitor_id=None,
                                load_balance_method=None,
                                service_down_action=None,
                                slow_ramp_time=None))
     self.assertTrue(response)
Exemple #5
0
 def test_ex_create_virtual_listener_unusual_port(self):
     listener = self.driver.ex_create_virtual_listener(
         network_domain_id='12345',
         name='test',
         ex_description='test',
         port=8900,
         pool=DimensionDataPool(id='1234',
                                name='test',
                                description='test',
                                status=State.RUNNING))
     self.assertEqual(listener.id, '8334f461-0df0-42d5-97eb-f4678eb26bea')
     self.assertEqual(listener.name, 'test')
 def _to_pool(self, element):
     pool = DimensionDataPool(
         id=element.get('id'),
         name=findtext(element, 'name', TYPES_URN),
         status=findtext(element, 'state', TYPES_URN),
         description=findtext(element, 'description', TYPES_URN),
         load_balance_method=findtext(element, 'loadBalanceMethod',
                                      TYPES_URN),
         health_monitor_id=findtext(element, 'healthMonitorId', TYPES_URN),
         service_down_action=findtext(element, 'serviceDownAction',
                                      TYPES_URN),
         slow_ramp_time=findtext(element, 'slowRampTime', TYPES_URN),
     )
     return pool
Exemple #7
0
 def _to_pool(self, element):
     pool = DimensionDataPool(
         id=element.get("id"),
         name=findtext(element, "name", TYPES_URN),
         status=findtext(element, "state", TYPES_URN),
         description=findtext(element, "description", TYPES_URN),
         load_balance_method=findtext(element, "loadBalanceMethod",
                                      TYPES_URN),
         health_monitor_id=findtext(element, "healthMonitorId", TYPES_URN),
         service_down_action=findtext(element, "serviceDownAction",
                                      TYPES_URN),
         slow_ramp_time=findtext(element, "slowRampTime", TYPES_URN),
     )
     return pool
Exemple #8
0
 def test_ex_create_pool_member(self):
     pool = DimensionDataPool(id='4d360b1f-bc2c-4ab7-9884-1f03ba2768f7',
                              name='test',
                              description='test',
                              status=State.RUNNING)
     node = DimensionDataVIPNode(id='2344',
                                 name='test',
                                 status=State.RUNNING,
                                 ip='123.23.3.2')
     member = self.driver.ex_create_pool_member(pool=pool,
                                                node=node,
                                                port=80)
     self.assertEqual(member.id, '3dd806a2-c2c8-4c0c-9a4f-5219ea9266c0')
     self.assertEqual(member.name, '10.0.3.13')
     self.assertEqual(member.ip, '123.23.3.2')
Exemple #9
0
 def test_ex_create_virtual_listener_without_port(self):
     listener = self.driver.ex_create_virtual_listener(
         network_domain_id='12345',
         name='test',
         ex_description='test',
         pool=DimensionDataPool(id='1234',
                                name='test',
                                description='test',
                                status=State.RUNNING,
                                health_monitor_id=None,
                                load_balance_method=None,
                                service_down_action=None,
                                slow_ramp_time=None))
     self.assertEqual(listener.id, '8334f461-0df0-42d5-97eb-f4678eb26bea')
     self.assertEqual(listener.name, 'test')
 def test_ex_create_virtual_listener_unusual_port(self):
     listener = self.driver.ex_create_virtual_listener(
         network_domain_id="12345",
         name="test",
         ex_description="test",
         port=8900,
         pool=DimensionDataPool(
             id="1234",
             name="test",
             description="test",
             status=State.RUNNING,
             health_monitor_id=None,
             load_balance_method=None,
             service_down_action=None,
             slow_ramp_time=None,
         ),
     )
     self.assertEqual(listener.id, "8334f461-0df0-42d5-97eb-f4678eb26bea")
     self.assertEqual(listener.name, "test")
    def ex_create_pool(self,
                       network_domain_id,
                       name,
                       balancer_method,
                       ex_description,
                       health_monitors=None,
                       service_down_action='NONE',
                       slow_ramp_time=30):
        """
        Create a new pool

        :param network_domain_id: Network Domain ID (required)
        :type  name: ``str``

        :param name: name of the node (required)
        :type  name: ``str``

        :param balancer_method: The load balancer algorithm (required)
        :type  balancer_method: ``str``

        :param ex_description: Description of the node (required)
        :type  ex_description: ``str``

        :param health_monitors: A list of health monitors to use for the pool.
        :type  health_monitors: ``list`` of
            :class:`DimensionDataDefaultHealthMonitor`

        :param service_down_action: What to do when node
                                    is unavailable NONE, DROP or RESELECT
        :type  service_down_action: ``str``

        :param slow_ramp_time: Number of seconds to stagger ramp up of nodes
        :type  slow_ramp_time: ``int``

        :return: Instance of ``DimensionDataPool``
        :rtype: ``DimensionDataPool``
        """
        # Names cannot contain spaces.
        name.replace(' ', '_')
        create_node_elm = ET.Element('createPool', {'xmlns': TYPES_URN})
        ET.SubElement(create_node_elm, "networkDomainId") \
            .text = network_domain_id
        ET.SubElement(create_node_elm, "name").text = name
        ET.SubElement(create_node_elm, "description").text \
            = str(ex_description)
        ET.SubElement(create_node_elm, "loadBalanceMethod") \
            .text = str(balancer_method)

        if health_monitors is not None:
            for monitor in health_monitors:
                ET.SubElement(create_node_elm, "healthMonitorId") \
                    .text = str(monitor.id)

        ET.SubElement(create_node_elm, "serviceDownAction") \
            .text = service_down_action
        ET.SubElement(create_node_elm, "slowRampTime").text \
            = str(slow_ramp_time)

        response = self.connection.request_with_orgId_api_2(
            action='networkDomainVip/createPool',
            method='POST',
            data=ET.tostring(create_node_elm)).object

        pool_id = None
        for info in findall(response, 'info', TYPES_URN):
            if info.get('name') == 'poolId':
                pool_id = info.get('value')

        return DimensionDataPool(id=pool_id,
                                 name=name,
                                 description=ex_description,
                                 status=State.RUNNING,
                                 load_balance_method=str(balancer_method),
                                 health_monitor_id=None,
                                 service_down_action=service_down_action,
                                 slow_ramp_time=str(slow_ramp_time))