Beispiel #1
0
def audit_template_post_data(**kw):
    attrs = audit_template_ctrl.AuditTemplatePostType._wsme_attributes
    audit_template = db_utils.get_test_audit_template()
    fields = [field.key for field in attrs]
    post_data = {k: v for k, v in audit_template.items() if k in fields}
    post_data.update({k: v for k, v in kw.items() if k in fields})
    return post_data
Beispiel #2
0
    def test_get_audit_list_with_filter_by_audit_template_name(self):

        audit_template = self.dbapi.create_audit_template(
            utils.get_test_audit_template(
                uuid=w_utils.generate_uuid(),
                name='My Audit Template 1',
                description='Description of my audit template 1',
                host_aggregate=5,
                goal='DUMMY',
                extra={'automatic': True})
        )

        audit = self._create_test_audit(
            type='ONESHOT',
            uuid=w_utils.generate_uuid(),
            deadline=None,
            state='ONGOING',
            audit_template_id=audit_template.id)

        res = self.dbapi.get_audit_list(
            self.context,
            filters={'audit_template_name': audit_template.name})

        for r in res:
            self.assertEqual(audit['audit_template_id'], r.audit_template_id)
 def setUp(self):
     super(TestAuditTemplateObject, self).setUp()
     self.fake_audit_template = utils.get_test_audit_template()
     self.fake_goal1 = utils.create_test_goal(
         id=1, uuid=w_utils.generate_uuid(), name="DUMMY")
     self.fake_goal2 = utils.create_test_goal(
         id=2, uuid=w_utils.generate_uuid(), name="BALANCE_LOAD")
Beispiel #4
0
def post_get_test_audit(**kw):
    audit = api_utils.audit_post_data(**kw)
    audit_template = db_utils.get_test_audit_template()
    del audit['audit_template_id']
    audit['audit_template_uuid'] = kw.get('audit_template_uuid',
                                          audit_template['uuid'])
    return audit
Beispiel #5
0
 def prepare_audit_template_strategy_with_parameter(self):
     fake_spec = {
         "properties": {
             "fake1": {
                 "description": "number parameter example",
                 "type": "number",
                 "default": 3.2,
                 "minimum": 1.0,
                 "maximum": 10.2,
             }
         }
     }
     template_uuid = 'e74c40e0-d825-11e2-a28f-0800200c9a67'
     strategy_uuid = 'e74c40e0-d825-11e2-a28f-0800200c9a68'
     template_name = 'my template'
     strategy_name = 'my strategy'
     strategy_id = 3
     strategy = db_utils.get_test_strategy(parameters_spec=fake_spec,
                                           id=strategy_id,
                                           uuid=strategy_uuid,
                                           name=strategy_name)
     obj_utils.create_test_strategy(self.context,
                                    parameters_spec=fake_spec,
                                    id=strategy_id,
                                    uuid=strategy_uuid,
                                    name=strategy_name)
     obj_utils.create_test_audit_template(self.context,
                                          strategy_id=strategy_id,
                                          uuid=template_uuid,
                                          name='name')
     audit_template = db_utils.get_test_audit_template(
         strategy_id=strategy['id'], uuid=template_uuid, name=template_name)
     return audit_template
Beispiel #6
0
def post_get_test_audit(**kw):
    audit = api_utils.audit_post_data(**kw)
    audit_template = db_utils.get_test_audit_template()
    del audit['audit_template_id']
    audit['audit_template_uuid'] = kw.get('audit_template_uuid',
                                          audit_template['uuid'])
    return audit
 def setUp(self):
     super(TestAuditTemplateObject, self).setUp()
     self.fake_audit_template = utils.get_test_audit_template()
     self.fake_goal1 = utils.create_test_goal(id=1,
                                              uuid=w_utils.generate_uuid(),
                                              name="DUMMY")
     self.fake_goal2 = utils.create_test_goal(id=2,
                                              uuid=w_utils.generate_uuid(),
                                              name="BALANCE_LOAD")
Beispiel #8
0
def get_test_audit_template(context, **kw):
    """Return a AuditTemplate object with appropriate attributes.

    NOTE: The object leaves the attributes marked as changed, such
    that a create() could be used to commit it to the DB.
    """
    obj_cls = objects.AuditTemplate
    db_data = db_utils.get_test_audit_template(**kw)
    obj_data = _load_related_objects(context, obj_cls, db_data)

    return _load_test_obj(context, obj_cls, obj_data, **kw)
Beispiel #9
0
def post_get_test_audit(**kw):
    audit = api_utils.audit_post_data(**kw)
    audit_template = db_utils.get_test_audit_template()
    goal = db_utils.get_test_goal()
    del_keys = ['goal_id', 'strategy_id']
    add_keys = {'audit_template_uuid': audit_template['uuid'],
                'goal': goal['uuid'],
                }
    for k in del_keys:
        del audit[k]
    for k in add_keys:
        audit[k] = kw.get(k, add_keys[k])
    return audit
Beispiel #10
0
def post_get_test_audit_with_predefined_strategy(**kw):
    spec = kw.pop('strategy_parameters_spec', {})
    strategy_id = 2
    strategy = db_utils.get_test_strategy(parameters_spec=spec, id=strategy_id)

    audit_template = db_utils.get_test_audit_template(
        strategy_id=strategy['id'])

    audit = api_utils.audit_post_data(**kw)
    del audit['audit_template_id']
    audit['audit_template_uuid'] = audit_template['uuid']

    return audit
Beispiel #11
0
def get_test_audit_template(context, **kw):
    """Return a AuditTemplate object with appropriate attributes.

    NOTE: The object leaves the attributes marked as changed, such
    that a create() could be used to commit it to the DB.
    """
    db_audit_template = db_utils.get_test_audit_template(**kw)
    # Let DB generate ID if it isn't specified explicitly
    if 'id' not in kw:
        del db_audit_template['id']
    audit_template = objects.AuditTemplate(context)
    for key in db_audit_template:
        setattr(audit_template, key, db_audit_template[key])

    return audit_template
Beispiel #12
0
def get_test_audit_template(context, **kw):
    """Return a AuditTemplate object with appropriate attributes.

    NOTE: The object leaves the attributes marked as changed, such
    that a create() could be used to commit it to the DB.
    """
    db_audit_template = db_utils.get_test_audit_template(**kw)
    # Let DB generate ID if it isn't specified explicitly
    if 'id' not in kw:
        del db_audit_template['id']
    audit_template = objects.AuditTemplate(context)
    for key in db_audit_template:
        setattr(audit_template, key, db_audit_template[key])

    return audit_template
Beispiel #13
0
def post_get_test_audit_with_predefined_strategy(**kw):
    spec = kw.pop('strategy_parameters_spec', {})
    strategy_id = 2
    strategy = db_utils.get_test_strategy(parameters_spec=spec, id=strategy_id)
    audit = api_utils.audit_post_data(**kw)
    audit_template = db_utils.get_test_audit_template(
        strategy_id=strategy['id'])
    del_keys = ['goal_id', 'strategy_id']
    add_keys = {'audit_template_uuid': audit_template['uuid'],
                }
    for k in del_keys:
        del audit[k]
    for k in add_keys:
        audit[k] = kw.get(k, add_keys[k])
    return audit
Beispiel #14
0
def post_get_test_audit(**kw):
    audit = api_utils.audit_post_data(**kw)
    audit_template = db_utils.get_test_audit_template()
    goal = db_utils.get_test_goal()
    del_keys = ['goal_id', 'strategy_id']
    del_keys.extend(kw.get('params_to_exclude', []))
    add_keys = {'audit_template_uuid': audit_template['uuid'],
                'goal': goal['uuid'],
                }
    if kw.get('use_named_goal'):
        add_keys['goal'] = 'TEST'
    for k in add_keys:
        audit[k] = kw.get(k, add_keys[k])
    for k in del_keys:
        del audit[k]
    return audit
Beispiel #15
0
    def test_get_audit_list_with_filter_by_audit_template_name(self):

        audit_template = self.dbapi.create_audit_template(
            utils.get_test_audit_template(
                uuid=w_utils.generate_uuid(),
                name='My Audit Template 1',
                description='Description of my audit template 1',
                host_aggregate=5,
                goal='DUMMY',
                extra={'automatic': True}))

        audit = self._create_test_audit(type='ONESHOT',
                                        uuid=w_utils.generate_uuid(),
                                        deadline=None,
                                        state='ONGOING',
                                        audit_template_id=audit_template.id)

        res = self.dbapi.get_audit_list(
            self.context, filters={'audit_template_name': audit_template.name})

        for r in res:
            self.assertEqual(audit['audit_template_id'], r.audit_template_id)
Beispiel #16
0
def audit_template_post_data(**kw):
    audit_template = db_utils.get_test_audit_template(**kw)
    internal = audit_template_ctrl.AuditTemplatePatchType.internal_attrs()
    return remove_internal(audit_template, internal)
Beispiel #17
0
def audit_template_post_data(**kw):
    audit_template = db_utils.get_test_audit_template(**kw)
    internal = audit_template_ctrl.AuditTemplatePatchType.internal_attrs()
    return remove_internal(audit_template, internal)
 def _create_test_audit_template(self, **kwargs):
     audit_template = utils.get_test_audit_template(**kwargs)
     self.dbapi.create_audit_template(audit_template)
     return audit_template
Beispiel #19
0
 def _create_test_audit_template(self, **kwargs):
     audit_template = utils.get_test_audit_template(**kwargs)
     self.dbapi.create_audit_template(audit_template)
     return audit_template
 def setUp(self):
     super(TestAuditTemplateObject, self).setUp()
     self.fake_audit_template = utils.get_test_audit_template()
Beispiel #21
0
class TestAuditTemplateObject(base.DbTestCase):

    goal_id = 1

    goal_data = utils.get_test_goal(id=goal_id,
                                    uuid=w_utils.generate_uuid(),
                                    name="DUMMY")

    scenarios = [
        ('non_eager',
         dict(eager=False,
              fake_audit_template=utils.get_test_audit_template(
                  created_at=datetime.datetime.utcnow(), goal_id=goal_id))),
        ('eager_with_non_eager_load',
         dict(eager=True,
              fake_audit_template=utils.get_test_audit_template(
                  created_at=datetime.datetime.utcnow(), goal_id=goal_id))),
        ('eager_with_eager_load',
         dict(eager=True,
              fake_audit_template=utils.get_test_audit_template(
                  created_at=datetime.datetime.utcnow(),
                  goal_id=goal_id,
                  goal=goal_data))),
    ]

    def setUp(self):
        super(TestAuditTemplateObject, self).setUp()
        self.fake_goal = utils.create_test_goal(**self.goal_data)

    def eager_load_audit_template_assert(self, audit_template, goal):
        if self.eager:
            self.assertIsNotNone(audit_template.goal)
            fields_to_check = set(super(
                objects.Goal,
                objects.Goal).fields).symmetric_difference(objects.Goal.fields)
            db_data = {
                k: v
                for k, v in goal.as_dict().items() if k in fields_to_check
            }
            object_data = {
                k: v
                for k, v in audit_template.goal.as_dict().items()
                if k in fields_to_check
            }
            self.assertEqual(db_data, object_data)

    @mock.patch.object(db_api.Connection, 'get_audit_template_by_id')
    def test_get_by_id(self, mock_get_audit_template):
        mock_get_audit_template.return_value = self.fake_audit_template
        audit_template_id = self.fake_audit_template['id']
        audit_template = objects.AuditTemplate.get(self.context,
                                                   audit_template_id,
                                                   eager=self.eager)
        mock_get_audit_template.assert_called_once_with(self.context,
                                                        audit_template_id,
                                                        eager=self.eager)
        self.assertEqual(self.context, audit_template._context)
        self.eager_load_audit_template_assert(audit_template, self.fake_goal)

    @mock.patch.object(db_api.Connection, 'get_audit_template_by_uuid')
    def test_get_by_uuid(self, mock_get_audit_template):
        mock_get_audit_template.return_value = self.fake_audit_template
        uuid = self.fake_audit_template['uuid']
        audit_template = objects.AuditTemplate.get(self.context,
                                                   uuid,
                                                   eager=self.eager)
        mock_get_audit_template.assert_called_once_with(self.context,
                                                        uuid,
                                                        eager=self.eager)
        self.assertEqual(self.context, audit_template._context)
        self.eager_load_audit_template_assert(audit_template, self.fake_goal)

    @mock.patch.object(db_api.Connection, 'get_audit_template_by_name')
    def test_get_by_name(self, mock_get_audit_template):
        mock_get_audit_template.return_value = self.fake_audit_template
        name = self.fake_audit_template['name']
        audit_template = objects.AuditTemplate.get_by_name(self.context,
                                                           name,
                                                           eager=self.eager)
        mock_get_audit_template.assert_called_once_with(self.context,
                                                        name,
                                                        eager=self.eager)
        self.assertEqual(self.context, audit_template._context)
        self.eager_load_audit_template_assert(audit_template, self.fake_goal)

    def test_get_bad_id_and_uuid(self):
        self.assertRaises(exception.InvalidIdentity,
                          objects.AuditTemplate.get,
                          self.context,
                          'not-a-uuid',
                          eager=self.eager)

    @mock.patch.object(db_api.Connection, 'get_audit_template_list')
    def test_list(self, mock_get_list):
        mock_get_list.return_value = [self.fake_audit_template]
        audit_templates = objects.AuditTemplate.list(self.context,
                                                     eager=self.eager)
        mock_get_list.assert_called_once_with(self.context,
                                              eager=self.eager,
                                              filters=None,
                                              limit=None,
                                              marker=None,
                                              sort_dir=None,
                                              sort_key=None)
        self.assertEqual(1, len(audit_templates))
        self.assertIsInstance(audit_templates[0], objects.AuditTemplate)
        self.assertEqual(self.context, audit_templates[0]._context)
        for audit_template in audit_templates:
            self.eager_load_audit_template_assert(audit_template,
                                                  self.fake_goal)

    @mock.patch.object(db_api.Connection, 'update_audit_template')
    @mock.patch.object(db_api.Connection, 'get_audit_template_by_uuid')
    def test_save(self, mock_get_audit_template, mock_update_audit_template):
        mock_get_audit_template.return_value = self.fake_audit_template
        fake_saved_audit_template = self.fake_audit_template.copy()
        fake_saved_audit_template['updated_at'] = datetime.datetime.utcnow()
        mock_update_audit_template.return_value = fake_saved_audit_template
        uuid = self.fake_audit_template['uuid']
        audit_template = objects.AuditTemplate.get_by_uuid(self.context,
                                                           uuid,
                                                           eager=self.eager)
        audit_template.goal_id = self.fake_goal.id
        audit_template.save()

        mock_get_audit_template.assert_called_once_with(self.context,
                                                        uuid,
                                                        eager=self.eager)
        mock_update_audit_template.assert_called_once_with(
            uuid, {'goal_id': self.fake_goal.id})
        self.assertEqual(self.context, audit_template._context)
        self.eager_load_audit_template_assert(audit_template, self.fake_goal)

    @mock.patch.object(db_api.Connection, 'get_audit_template_by_uuid')
    def test_refresh(self, mock_get_audit_template):
        returns = [
            dict(self.fake_audit_template, name="first name"),
            dict(self.fake_audit_template, name="second name")
        ]
        mock_get_audit_template.side_effect = returns
        uuid = self.fake_audit_template['uuid']
        expected = [
            mock.call(self.context, uuid, eager=self.eager),
            mock.call(self.context, uuid, eager=self.eager)
        ]
        audit_template = objects.AuditTemplate.get(self.context,
                                                   uuid,
                                                   eager=self.eager)
        self.assertEqual("first name", audit_template.name)
        audit_template.refresh(eager=self.eager)
        self.assertEqual("second name", audit_template.name)
        self.assertEqual(expected, mock_get_audit_template.call_args_list)
        self.assertEqual(self.context, audit_template._context)
        self.eager_load_audit_template_assert(audit_template, self.fake_goal)
Beispiel #22
0
 def setUp(self):
     super(TestCreateDeleteAuditTemplateObject, self).setUp()
     self.fake_audit_template = utils.get_test_audit_template(
         created_at=datetime.datetime.utcnow())
 def setUp(self):
     super(TestAuditTemplateObject, self).setUp()
     self.fake_audit_template = utils.get_test_audit_template()