示例#1
0
 def record_metering_data(self, context, data):
     """This method is triggered when metering data is
     cast from an agent.
     """
     #LOG.info('metering data: %r', data)
     LOG.info('metering data %s for %s @ %s: %s',
              data['counter_name'],
              data['resource_id'],
              data.get('timestamp', 'NO TIMESTAMP'),
              data['counter_volume'])
     if not meter.verify_signature(data, cfg.CONF.metering_secret):
         LOG.warning('message signature invalid, discarding message: %r',
                     data)
     else:
         try:
             # Convert the timestamp to a datetime instance.
             # Storage engines are responsible for converting
             # that value to something they can store.
             if data.get('timestamp'):
                 data['timestamp'] = timeutils.parse_isotime(
                     data['timestamp'],
                     )
             self.storage_conn.record_metering_data(data)
         except Exception as err:
             LOG.error('Failed to record metering data: %s', err)
             LOG.exception(err)
示例#2
0
def test_verify_signature_nested():
    data = {'a': 'A',
            'b': 'B',
            'nested': {'a': 'A',
                       'b': 'B',
                       },
            }
    data['message_signature'] = meter.compute_signature(data)
    assert meter.verify_signature(data)
示例#3
0
def test_verify_signature_nested():
    data = {
        'a': 'A',
        'b': 'B',
        'nested': {
            'a': 'A',
            'b': 'B',
        },
    }
    data['message_signature'] = meter.compute_signature(data)
    assert meter.verify_signature(data)
示例#4
0
 def record_metering_data(self, context, data):
     """This method is triggered when metering data is
     cast from an agent.
     """
     #LOG.info('metering data: %r', data)
     LOG.info('metering data %s for %s: %s',
              data['counter_name'],
              data['resource_id'],
              data['counter_volume'])
     if not meter.verify_signature(data):
         LOG.warning('message signature invalid, discarding message: %r',
                     data)
     else:
         try:
             self.storage_conn.record_metering_data(data)
         except Exception as err:
             LOG.error('Failed to record metering data: %s', err)
             LOG.exception(err)
示例#5
0
 def record_metering_data(self, context, data):
     """This method is triggered when metering data is
     cast from an agent.
     """
     #LOG.info('metering data: %r', data)
     LOG.info('metering data %s for %s @ %s: %s',
              data['counter_name'], data['resource_id'],
              data.get('timestamp', 'NO TIMESTAMP'), data['counter_volume'])
     if not meter.verify_signature(data):
         LOG.warning('message signature invalid, discarding message: %r',
                     data)
     else:
         try:
             # Convert the timestamp to a datetime instance.
             # Storage engines are responsible for converting
             # that value to something they can store.
             if data.get('timestamp'):
                 data['timestamp'] = timeutils.parse_isotime(
                     data['timestamp'], )
             self.storage_conn.record_metering_data(data)
         except Exception as err:
             LOG.error('Failed to record metering data: %s', err)
             LOG.exception(err)
示例#6
0
def test_verify_signature_nested():
    data = {"a": "A", "b": "B", "nested": {"a": "A", "b": "B"}}
    data["message_signature"] = meter.compute_signature(data)
    assert meter.verify_signature(data)
示例#7
0
def test_verify_signature_incorrect():
    data = {"a": "A", "b": "B", "message_signature": "Not the same"}
    assert not meter.verify_signature(data)
示例#8
0
def test_verify_signature_unsigned():
    data = {"a": "A", "b": "B"}
    assert not meter.verify_signature(data)
示例#9
0
def test_verify_signature_signed():
    data = {"a": "A", "b": "B"}
    sig1 = meter.compute_signature(data)
    data["message_signature"] = sig1
    assert meter.verify_signature(data)
示例#10
0
def test_verify_signature_incorrect():
    data = {'a': 'A', 'b': 'B', 'message_signature': 'Not the same'}
    assert not meter.verify_signature(data)
示例#11
0
def test_verify_signature_unsigned():
    data = {'a': 'A', 'b': 'B'}
    assert not meter.verify_signature(data)
示例#12
0
def test_verify_signature_signed():
    data = {'a': 'A', 'b': 'B'}
    sig1 = meter.compute_signature(data)
    data['message_signature'] = sig1
    assert meter.verify_signature(data)
示例#13
0
def test_verify_signature_incorrect():
    data = {'a': 'A', 'b': 'B',
            'message_signature': 'Not the same'}
    assert not meter.verify_signature(data)
示例#14
0
def test_verify_signature_unsigned():
    data = {'a': 'A', 'b': 'B'}
    assert not meter.verify_signature(data)
示例#15
0
def test_verify_signature_signed():
    data = {'a': 'A', 'b': 'B'}
    sig1 = meter.compute_signature(data)
    data['message_signature'] = sig1
    assert meter.verify_signature(data)