Ejemplo n.º 1
0
    def test_notify_signal_id_invalid_json_data(self):
        requests = mock.MagicMock()
        session = mock.MagicMock()
        requests.Session.return_value = session
        retry = mock.MagicMock()
        httpadapter = mock.MagicMock()

        hcn.requests = requests
        hcn.Retry = retry
        hcn.HTTPAdapter = httpadapter

        session.post.return_value = '[200]'

        signal_data = json.dumps({'foo': 'bar'})
        self.stdin.write(signal_data)
        self.stdin.write(signal_data[:-3])
        self.stdin.seek(0)

        with self.write_config_file(self.data_signal_id) as config_file:
            self.assertEqual(
                0,
                hcn.main(['heat-config-notify', config_file.name], self.stdin))

        session.post.assert_called_once_with(
            'mock://192.0.2.3/foo',
            data='{}',
            headers={'content-type': 'application/json'})
Ejemplo n.º 2
0
    def test_notify_missing_file_arg(self):

        signal_data = json.dumps({'foo': 'bar'})
        self.stdin.write(signal_data)
        self.stdin.seek(0)

        self.assertEqual(1, hcn.main(['heat-config-notify'], self.stdin))
Ejemplo n.º 3
0
    def test_notify_missing_file(self):

        signal_data = json.dumps({'foo': 'bar'})
        self.stdin.write(signal_data)
        self.stdin.seek(0)

        with self.write_config_file(self.data_signal_id) as config_file:
            config_file_name = config_file.name

        self.assertEqual(
            1, hcn.main(['heat-config-notify', config_file_name], self.stdin))
Ejemplo n.º 4
0
    def test_notify_heat_signal(self):
        ksclient = mock.MagicMock()
        hcn.ksclient = ksclient
        ks = mock.MagicMock()
        ksclient.Client.return_value = ks

        heatclient = mock.MagicMock()
        hcn.heatclient = heatclient
        heat = mock.MagicMock()
        heatclient.Client.return_value = heat

        signal_data = json.dumps({'foo': 'bar'})
        self.stdin.write(signal_data)
        self.stdin.seek(0)

        ks.service_catalog.url_for.return_value = 'mock://192.0.2.3/heat'
        heat.resources.signal.return_value = 'all good'

        with self.write_config_file(self.data_heat_signal) as config_file:
            self.assertEqual(
                0,
                hcn.main(['heat-config-notify', config_file.name], self.stdin))

        ksclient.Client.assert_called_once_with(
            auth_url='mock://192.0.2.3/auth',
            user_id='aaaa',
            password='******',
            project_id='bbbb')
        ks.service_catalog.url_for.assert_called_once_with(
            service_type='orchestration',
            endpoint_type='publicURL',
            region_name='RegionOne')

        heatclient.Client.assert_called_once_with('1',
                                                  'mock://192.0.2.3/heat',
                                                  token=ks.auth_token)
        heat.resources.signal.assert_called_once_with('cccc',
                                                      'the_resource',
                                                      data={'foo': 'bar'})