Ejemplo n.º 1
0
    def test_alarm_create_time_constraints(self):
        shell = base_shell.CeilometerShell()
        argv = [
            'alarm-threshold-create',
            '--name',
            'cpu_high',
            '--meter-name',
            'cpu_util',
            '--threshold',
            '70.0',
            '--time-constraint',
            'name=cons1;start="0 11 * * *";duration=300',
            '--time-constraint',
            'name=cons2;start="0 23 * * *";duration=600',
        ]
        _, args = shell.parse_args(argv)

        alarm = alarms.Alarm(mock.Mock(), self.ALARM)
        self.cc.alarms.create.return_value = alarm

        ceilometer_shell.do_alarm_threshold_create(self.cc, args)
        _, kwargs = self.cc.alarms.create.call_args
        time_constraints = [
            dict(name='cons1', start='0 11 * * *', duration='300'),
            dict(name='cons2', start='0 23 * * *', duration='600')
        ]
        self.assertEqual(time_constraints, kwargs['time_constraints'])
Ejemplo n.º 2
0
 def _test_entity_obsoleted(self, entity, value, positional, *args):
     new_args = [value] if positional else ['--%s' % entity, value]
     argv = list(args) + new_args
     shell = base_shell.CeilometerShell()
     with mock.patch('sys.stdout', new_callable=six.StringIO) as stdout:
         shell.parse_args(argv)
         self.assertIn('obsolete', stdout.getvalue())
Ejemplo n.º 3
0
    def shell(self, argstr):
        try:
            _shell = ceilometer_shell.CeilometerShell()
            _shell.main(argstr.split())
        except SystemExit:
            exc_type, exc_value, exc_traceback = sys.exc_info()
            self.assertEqual(0, exc_value.code)

        return sys.stdout.getvalue()
    def shell(self, argstr, mock_ksclient, mock_json, mock_raw):
        try:
            _shell = ceilometer_shell.CeilometerShell()
            _shell.main(argstr.split())
        except SystemExit:
            exc_type, exc_value, exc_traceback = sys.exc_info()
            self.assertEqual(exc_value.code, 0)

        return sys.stdout.getvalue()
Ejemplo n.º 5
0
 def _test_entity_action_with_empty_value(self, entity, value, positional,
                                          *args):
     new_args = [value] if positional else ['--%s' % entity, value]
     argv = list(args) + new_args
     shell = base_shell.CeilometerShell()
     with mock.patch('ceilometerclient.exc.CommandError') as e:
         e.return_value = exc.BaseException()
         self.assertRaises(exc.BaseException, shell.parse_args, argv)
         entity = entity.replace('-', '_')
         e.assert_called_with('%s should not be empty' % entity)
Ejemplo n.º 6
0
    def _test_alarm_threshold_action_args(self, action, argv):
        shell = base_shell.CeilometerShell()
        _, args = shell.parse_args(argv)

        alarm = alarms.Alarm(mock.Mock(), self.ALARM)
        getattr(self.cc.alarms, action).return_value = alarm

        func = getattr(ceilometer_shell, 'do_alarm_threshold_' + action)
        func(self.cc, args)
        _, kwargs = getattr(self.cc.alarms, action).call_args
        self._check_alarm_threshold_args(kwargs)
    def shell(self, argstr, mock_ksclient, mock_json, mock_raw):
        orig = sys.stdout
        try:
            sys.stdout = six.StringIO()
            _shell = ceilometer_shell.CeilometerShell()
            _shell.main(argstr.split())
        except SystemExit:
            exc_type, exc_value, exc_traceback = sys.exc_info()
            self.assertEqual(exc_value.code, 0)
        finally:
            out = sys.stdout.getvalue()
            sys.stdout.close()
            sys.stdout = orig

        return out
Ejemplo n.º 8
0
    def test_alarm_threshold_create_args(self):
        shell = base_shell.CeilometerShell()
        argv = [
            'alarm-threshold-create', '--name', 'cpu_high', '--description',
            'instance running hot', '--meter-name', 'cpu_util', '--threshold',
            '70.0', '--comparison-operator', 'gt', '--statistic', 'avg',
            '--period', '600', '--evaluation-periods', '3', '--alarm-action',
            'log://', '--alarm-action', 'http://example.com/alarm/state',
            '--query', 'resource_id=INSTANCE_ID'
        ]
        _, args = shell.parse_args(argv)

        orig = sys.stdout
        sys.stdout = six.StringIO()
        alarm = alarms.Alarm(mock.Mock(), self.ALARM)
        self.cc.alarms.create.return_value = alarm

        try:
            ceilometer_shell.do_alarm_threshold_create(self.cc, args)
            _, kwargs = self.cc.alarms.create.call_args
            self.assertEqual('cpu_high', kwargs.get('name'))
            self.assertEqual('instance running hot', kwargs.get('description'))
            actions = ['log://', 'http://example.com/alarm/state']
            self.assertEqual(actions, kwargs.get('alarm_actions'))
            self.assertTrue('threshold_rule' in kwargs)
            rule = kwargs['threshold_rule']
            self.assertEqual('cpu_util', rule.get('meter_name'))
            self.assertEqual(70.0, rule.get('threshold'))
            self.assertEqual('gt', rule.get('comparison_operator'))
            self.assertEqual('avg', rule.get('statistic'))
            self.assertEqual(600, rule.get('period'))
            self.assertEqual(3, rule.get('evaluation_periods'))
            query = dict(field='resource_id',
                         type='',
                         value='INSTANCE_ID',
                         op='eq')
            self.assertEqual([query], rule['query'])
        finally:
            sys.stdout.close()
            sys.stdout = orig
Ejemplo n.º 9
0
 def test_get_base_parser(self):
     standalone_shell = ceilometer_shell.CeilometerShell()
     parser = standalone_shell.get_base_parser()
     self.assertEqual(600, parser.get_default('timeout'))