~ubuntu-branches/ubuntu/wily/heat/wily

« back to all changes in this revision

Viewing changes to heat/tests/test_watch.py

  • Committer: Package Import Robot
  • Author(s): Corey Bryant, Corey Bryant, James Page
  • Date: 2015-07-07 17:06:19 UTC
  • mfrom: (1.1.26) (45.1.1 vivid-proposed)
  • Revision ID: package-import@ubuntu.com-20150707170619-hra2dbjpfofpou4s
Tags: 1:5.0.0~b1-0ubuntu1
[ Corey Bryant ]
* New upstream milestone for OpenStack Liberty:
  - d/control: Align (build-)depends with upstream.
  - d/p/fix-requirements.patch: Rebased.
  - d/p/sudoers_patch.patch: Rebased.

[ James Page ]
* d/s/options: Ignore any removal of egg-info data during package clean.
* d/control: Drop MySQL and PostgreSQL related BD's, not required for unit
  testing.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
from oslo_utils import timeutils
19
19
 
20
20
from heat.common import exception
21
 
from heat.engine import parser
 
21
from heat.engine import stack
22
22
from heat.engine import template
23
23
from heat.engine import watchrule
24
24
from heat.objects import watch_rule
50
50
        empty_tmpl = {'HeatTemplateFormatVersion': '2012-12-12'}
51
51
        tmpl = template.Template(empty_tmpl)
52
52
        stack_name = 'dummystack'
53
 
        dummy_stack = parser.Stack(ctx, stack_name, tmpl)
 
53
        dummy_stack = stack.Stack(ctx, stack_name, tmpl)
54
54
        dummy_stack.state_set(dummy_stack.CREATE, dummy_stack.COMPLETE,
55
55
                              'Testing')
56
56
        dummy_stack.store()
74
74
 
75
75
        if action_expected:
76
76
            dummy_action = DummyAction()
77
 
            self.m.StubOutWithMock(parser.Stack, 'resource_by_refid')
78
 
            parser.Stack.resource_by_refid(
 
77
            self.m.StubOutWithMock(stack.Stack, 'resource_by_refid')
 
78
            stack.Stack.resource_by_refid(
79
79
                mox.IgnoreArg()).MultipleTimes().AndReturn(dummy_action)
80
80
 
81
81
        self.m.ReplayAll()
605
605
        self.assertEqual(['DummyAction'], actions)
606
606
        self.m.VerifyAll()
607
607
 
 
608
    def test_to_ceilometer(self):
 
609
 
 
610
        rule = {u'EvaluationPeriods': u'1',
 
611
                u'AlarmDescription': u'test alarm',
 
612
                u'Period': u'300',
 
613
                u'ComparisonOperator': u'GreaterThanThreshold',
 
614
                u'Statistic': u'SampleCount',
 
615
                u'Threshold': u'2',
 
616
                u'MetricName': u'CreateDataMetric'}
 
617
        testdata = {u'CreateDataMetric': {"Unit": "Counter", "Value": "1"}}
 
618
        sample = dict()
 
619
        sample['counter_type'] = 'gauge'
 
620
 
 
621
        for k, d in iter(testdata.items()):
 
622
            if k == 'Namespace':
 
623
                continue
 
624
            sample['counter_name'] = k
 
625
            sample['counter_volume'] = d['Value']
 
626
            sample['counter_unit'] = d['Unit']
 
627
            dims = d.get('Dimensions', {})
 
628
            if isinstance(dims, list):
 
629
                dims = dims[0]
 
630
            sample['resource_metadata'] = dims
 
631
            sample['resource_id'] = dims.get('InstanceId')
 
632
 
 
633
        self.wr = watchrule.WatchRule(context=self.ctx,
 
634
                                      watch_name='create_data_test',
 
635
                                      stack_id=self.stack_id, rule=rule)
 
636
        self.wr.store()
 
637
 
 
638
        self.m.StubOutWithMock(self.wr.context.clients.client('ceilometer').
 
639
                               samples, 'create', True)
 
640
 
 
641
        # fake samples.create callback
 
642
        def fake_create(counter_type, counter_name, counter_volume,
 
643
                        counter_unit, resource_metadata, resource_id):
 
644
            pass
 
645
 
 
646
        self.wr.context.clients.client('ceilometer').samples.\
 
647
            create(**sample).MultipleTimes().WithSideEffects(fake_create)
 
648
        self.m.ReplayAll()
 
649
        try:
 
650
            self.wr._to_ceilometer(testdata)
 
651
        except mox.UnexpectedMethodCallError:
 
652
            raise KeyError("Error input parameter")
 
653
 
608
654
    def test_create_watch_data(self):
609
655
        rule = {u'EvaluationPeriods': u'1',
610
656
                u'AlarmDescription': u'test alarm',