Пример #1
0
    def test_add_to_load_balancers(self, add_to_load_balancer):
        """
        Add to load balancers will call add_to_load_balancer multiple times and
        for each load balancer configuration and return all of the results.
        """
        d1 = Deferred()
        d2 = Deferred()
        add_to_load_balancer_deferreds = [d1, d2]

        def _add_to_load_balancer(
                endpoint, auth_token, lb_config, ip_address, undo):
            return add_to_load_balancer_deferreds.pop(0)

        add_to_load_balancer.side_effect = _add_to_load_balancer

        d = add_to_load_balancers('http://url/', 'my-auth-token',
                                  [{'loadBalancerId': 12345,
                                    'port': 80},
                                   {'loadBalancerId': 54321,
                                    'port': 81}],
                                  '192.168.1.1',
                                  self.undo)

        # Include the ID and port in the response so that we can verify
        # that add_to_load_balancers associates the response with the correct
        # load balancer.

        d2.callback((54321, 81))
        d1.callback((12345, 80))

        results = self.successResultOf(d)

        self.assertEqual(sorted(results), [(12345, (12345, 80)),
                                           (54321, (54321, 81))])
Пример #2
0
    def test_add_to_load_balancers(self, add_to_load_balancer):
        """
        Add to load balancers will call add_to_load_balancer multiple times and
        for each load balancer configuration and return all of the results.
        """
        d1 = Deferred()
        d2 = Deferred()
        add_to_load_balancer_deferreds = [d1, d2]

        def _add_to_load_balancer(endpoint, auth_token, lb_config, ip_address,
                                  undo):
            return add_to_load_balancer_deferreds.pop(0)

        add_to_load_balancer.side_effect = _add_to_load_balancer

        d = add_to_load_balancers('http://url/', 'my-auth-token',
                                  [{
                                      'loadBalancerId': 12345,
                                      'port': 80
                                  }, {
                                      'loadBalancerId': 54321,
                                      'port': 81
                                  }], '192.168.1.1', self.undo)

        # Include the ID and port in the response so that we can verify
        # that add_to_load_balancers associates the response with the correct
        # load balancer.

        d2.callback((54321, 81))
        d1.callback((12345, 80))

        results = self.successResultOf(d)

        self.assertEqual(sorted(results), [(12345, (12345, 80)),
                                           (54321, (54321, 81))])
Пример #3
0
    def test_add_to_load_balancers_no_lb_configs(self):
        """
        add_to_load_balancers returns a Deferred that fires with an empty list
        when no load balancers are configured.
        """

        d = add_to_load_balancers('http://url/', 'my-auth-token', [],
                                  '192.168.1.1', self.undo)

        self.assertEqual(self.successResultOf(d), [])
Пример #4
0
    def test_add_to_load_balancers_no_lb_configs(self):
        """
        add_to_load_balancers returns a Deferred that fires with an empty list
        when no load balancers are configured.
        """

        d = add_to_load_balancers('http://url/', 'my-auth-token',
                                  [],
                                  '192.168.1.1',
                                  self.undo)

        self.assertEqual(self.successResultOf(d), [])
Пример #5
0
    def test_add_to_load_balancers_is_serial(self, add_to_load_balancer):
        """
        add_to_load_balancers calls add_to_load_balancer in series.
        """
        d1 = Deferred()
        d2 = Deferred()

        add_to_load_balancer_deferreds = [d1, d2]

        def _add_to_load_balancer(*args):
            return add_to_load_balancer_deferreds.pop(0)

        add_to_load_balancer.side_effect = _add_to_load_balancer

        d = add_to_load_balancers('http://url/', 'my-auth-token',
                                  [{'loadBalancerId': 12345,
                                    'port': 80},
                                   {'loadBalancerId': 54321,
                                    'port': 81}],
                                  '192.168.1.1',
                                  self.undo)

        self.assertNoResult(d)

        add_to_load_balancer.assert_called_once_with(
            'http://url/',
            'my-auth-token',
            {'loadBalancerId': 12345, 'port': 80},
            '192.168.1.1',
            self.undo
        )

        d1.callback(None)

        add_to_load_balancer.assert_called_with(
            'http://url/',
            'my-auth-token',
            {'loadBalancerId': 54321, 'port': 81},
            '192.168.1.1',
            self.undo
        )

        d2.callback(None)

        self.successResultOf(d)
Пример #6
0
    def test_add_to_load_balancers_is_serial(self, add_to_load_balancer):
        """
        add_to_load_balancers calls add_to_load_balancer in series.
        """
        d1 = Deferred()
        d2 = Deferred()

        add_to_load_balancer_deferreds = [d1, d2]

        def _add_to_load_balancer(*args):
            return add_to_load_balancer_deferreds.pop(0)

        add_to_load_balancer.side_effect = _add_to_load_balancer

        d = add_to_load_balancers('http://url/', 'my-auth-token',
                                  [{
                                      'loadBalancerId': 12345,
                                      'port': 80
                                  }, {
                                      'loadBalancerId': 54321,
                                      'port': 81
                                  }], '192.168.1.1', self.undo)

        self.assertNoResult(d)

        add_to_load_balancer.assert_called_once_with(
            'http://url/', 'my-auth-token', {
                'loadBalancerId': 12345,
                'port': 80
            }, '192.168.1.1', self.undo)

        d1.callback(None)

        add_to_load_balancer.assert_called_with('http://url/', 'my-auth-token',
                                                {
                                                    'loadBalancerId': 54321,
                                                    'port': 81
                                                }, '192.168.1.1', self.undo)

        d2.callback(None)

        self.successResultOf(d)