def test_wait_for_machine_waits_for_multiple_machines(self):
     # wait_for_machine can be told to wait for multiple machines.
     juju_yaml = self._make_juju_status_yaml(
         num_units=2, machine_state='running')
     mock_juju_status = lambda: juju_yaml
     self.patch(charmhelpers, 'juju_status', mock_juju_status)
     machines, time_taken = charmhelpers.wait_for_machine(num_machines=2)
     self.assertEqual(2, machines)
 def test_wait_for_machine_returns_if_machine_up(self):
     # If wait_for_machine() is called and the machine(s) it is
     # waiting for are already up, it will return.
     juju_yaml = self._make_juju_status_yaml(machine_state='running')
     mock_juju_status = lambda: juju_yaml
     self.patch(charmhelpers, 'juju_status', mock_juju_status)
     machines, time_taken = charmhelpers.wait_for_machine(timeout=1)
     self.assertEqual(1, machines)
Example #3
0
 def test_wait_for_machine_waits_for_multiple_machines(self):
     # wait_for_machine can be told to wait for multiple machines.
     juju_yaml = self._make_juju_status_yaml(num_units=2,
                                             machine_state='running')
     mock_juju_status = lambda: juju_yaml
     self.patch(charmhelpers, 'juju_status', mock_juju_status)
     machines, time_taken = charmhelpers.wait_for_machine(num_machines=2)
     self.assertEqual(2, machines)
Example #4
0
 def test_wait_for_machine_returns_if_machine_up(self):
     # If wait_for_machine() is called and the machine(s) it is
     # waiting for are already up, it will return.
     juju_yaml = self._make_juju_status_yaml(machine_state='running')
     mock_juju_status = lambda: juju_yaml
     self.patch(charmhelpers, 'juju_status', mock_juju_status)
     machines, time_taken = charmhelpers.wait_for_machine(timeout=1)
     self.assertEqual(1, machines)
 def test_wait_for_machine_always_returns_if_running_locally(self):
     # If juju is actually running against a local LXC container,
     # wait_for_machine will always return.
     juju_status_dict = self._make_juju_status_dict()
     # We'll update the 0th machine to make it look like it's an LXC
     # container.
     juju_status_dict['machines'][0]['dns-name'] = 'localhost'
     juju_yaml = yaml.dump(juju_status_dict)
     mock_juju_status = lambda: juju_yaml
     self.patch(charmhelpers, 'juju_status', mock_juju_status)
     machines, time_taken = charmhelpers.wait_for_machine(timeout=1)
     # wait_for_machine will always return 1 machine started here,
     # since there's only one machine to start.
     self.assertEqual(1, machines)
     # time_taken will be 0, since no actual waiting happened.
     self.assertEqual(0, time_taken)
Example #6
0
 def test_wait_for_machine_always_returns_if_running_locally(self):
     # If juju is actually running against a local LXC container,
     # wait_for_machine will always return.
     juju_status_dict = self._make_juju_status_dict()
     # We'll update the 0th machine to make it look like it's an LXC
     # container.
     juju_status_dict['machines'][0]['dns-name'] = 'localhost'
     juju_yaml = yaml.dump(juju_status_dict)
     mock_juju_status = lambda: juju_yaml
     self.patch(charmhelpers, 'juju_status', mock_juju_status)
     machines, time_taken = charmhelpers.wait_for_machine(timeout=1)
     # wait_for_machine will always return 1 machine started here,
     # since there's only one machine to start.
     self.assertEqual(1, machines)
     # time_taken will be 0, since no actual waiting happened.
     self.assertEqual(0, time_taken)