예제 #1
0
    def test_action_create_request_to_primitive(self):
        body = actions.ActionCreateRequestBody(**self.body)
        request = {'action': body}
        sot = actions.ActionCreateRequest(**request)
        self.assertIsInstance(sot.action, actions.ActionCreateRequestBody)

        self.assertEqual('test-action', sot.action.name)
        self.assertEqual('test-cluster', sot.action.cluster_id)

        res = sot.obj_to_primitive()
        self.assertEqual(['action'], res['senlin_object.changes'])
        self.assertEqual('ActionCreateRequest', res['senlin_object.name'])
        self.assertEqual('senlin', res['senlin_object.namespace'])
        self.assertEqual('1.0', res['senlin_object.version'])
        data = res['senlin_object.data']['action']
        self.assertIn('cluster_id', data['senlin_object.changes'])
        self.assertIn('name', data['senlin_object.changes'])
        self.assertEqual('ActionCreateRequestBody', data['senlin_object.name'])
        self.assertEqual('senlin', data['senlin_object.namespace'])
        self.assertEqual('1.0', data['senlin_object.version'])

        self.assertEqual(
            {
                'name': u'test-action',
                'cluster_id': u'test-cluster',
                'action': u'CLUSTER_CREATE',
            }, data['senlin_object.data'])
예제 #2
0
 def test_action_create_request_body_full(self):
     body = copy.deepcopy(self.body)
     body['inputs'] = {'foo': 'bar'}
     sot = actions.ActionCreateRequestBody(**body)
     self.assertEqual('test-action', sot.name)
     self.assertEqual('test-cluster', sot.cluster_id)
     self.assertEqual('CLUSTER_CREATE', sot.action)
     self.assertEqual({'foo': 'bar'}, sot.inputs)
예제 #3
0
    def test_action_create_request_body(self):
        sot = actions.ActionCreateRequestBody(**self.body)
        self.assertEqual('test-action', sot.name)
        self.assertEqual('test-cluster', sot.cluster_id)
        self.assertEqual('CLUSTER_CREATE', sot.action)

        sot.obj_set_defaults()

        self.assertEqual({}, sot.inputs)
예제 #4
0
    def test_action_create_cluster_not_found(self, mock_find):
        mock_find.side_effect = exc.ResourceNotFound(type='cluster', id='C1')

        req = orao.ActionCreateRequestBody(name='NODE1', cluster_id='C1')
        ex = self.assertRaises(rpc.ExpectedException, self.eng.action_create,
                               self.ctx, req.obj_to_primitive())

        self.assertEqual(exc.BadRequest, ex.exc_info[0])
        self.assertEqual("Cannot find the given cluster: C1.",
                         six.text_type(ex.exc_info[1]))
        mock_find.assert_called_once_with(self.ctx, 'C1')
예제 #5
0
 def test_action_create_request_body_to_primitive(self):
     sot = actions.ActionCreateRequestBody(**self.body)
     res = sot.obj_to_primitive()
     self.assertEqual(
         {
             'name': u'test-action',
             'cluster_id': u'test-cluster',
             'action': u'CLUSTER_CREATE',
         }, res['senlin_object.data'])
     self.assertEqual('ActionCreateRequestBody', res['senlin_object.name'])
     self.assertEqual('senlin', res['senlin_object.namespace'])
     self.assertEqual('1.0', res['senlin_object.version'])
     self.assertIn('name', res['senlin_object.changes'])
     self.assertIn('cluster_id', res['senlin_object.changes'])
예제 #6
0
    def test_action_create(self, mock_find, mock_action):
        mock_find.return_value = mock.Mock(id='FAKE_CLUSTER')
        mock_action.return_value = 'ACTION_ID'

        req = orao.ActionCreateRequestBody(name='a1', cluster_id='C1',
                                           action='CLUSTER_CREATE')

        result = self.eng.action_create(self.ctx, req.obj_to_primitive())

        self.assertEqual({'action': 'ACTION_ID'}, result)
        mock_find.assert_called_once_with(self.ctx, 'C1')
        mock_action.assert_called_once_with(
            self.ctx, 'FAKE_CLUSTER', 'CLUSTER_CREATE',
            name='a1',
            cause=consts.CAUSE_RPC,
            status=ab.Action.READY,
            inputs={})