def test_add_status_no_regions(self):
        test_resource = 'test'
        region_resource_id_status.config['allowed_resource_type'] = {
            test_resource: 'A'
        }
        test_status = 'test'
        region_resource_id_status.config['allowed_status_values'].add(
            test_status)
        test_operation = 'test'
        region_resource_id_status.config['allowed_operation_type'] = {
            test_operation: 'A'
        }

        temp_mock = MockClass([])
        region_resource_id_status.factory.get_region_resource_id_status_connection = temp_mock
        region_resource_id_status.add_status({
            'timestamp': 1,
            'region': 2,
            'status': test_status,
            'transaction_id': 4,
            'resource_id': 5,
            'ord_notifier_id': 6,
            'error_msg': 7,
            'error_code': 8,
            'resource_operation': test_operation,
            'resource_type': test_resource
        })
        self.assertTrue(temp_mock.done)
Пример #2
0
def _create_or_update_resource_status(input_data, target, error_msg='',
                                      status="Submitted"):
    # check rms region status
    if not _region_valid(target):
        status = 'Error'
        error_msg = "Not sent to ord as status equal to " + target['rms_status']

    my_logger.debug("save status as %s" % status)
    data_to_save = dict(
        timestamp=int(time.time() * 1000),
        region=target['name'],
        resource_id=input_data.resource_id,
        status=status,
        transaction_id=input_data.transaction_id,
        error_code='',
        error_msg=error_msg,
        resource_operation=target['action'],
        resource_type=input_data.resource_type,
        ord_notifier_id='')
    regionResourceIdStatus.add_status(data_to_save)
    my_logger.debug("status %s saved" % status)
Пример #3
0
def _update_resource_status(region, resource_id, status, transaction_id,
                            error_code, error_msg, resource_operation,
                            resource_type):
    """Update the resource status db with the status."""
    if status == 'Success':
        status = 'Submitted'
    else:
        status = 'Error'

    data_to_save = dict(timestamp=int(time.time() * 1000),
                        region=region,
                        resource_id=resource_id,
                        status=status,
                        transaction_id=transaction_id,
                        error_code=error_code,
                        error_msg=error_msg,
                        resource_operation=resource_operation,
                        resource_type=resource_type,
                        ord_notifier_id="")

    regionResourceIdStatus.add_status(data_to_save)
Пример #4
0
    def post(self, status_input):
        """handle post request.

        :param status_input: json data
        :return: 201 created
        :description: get input json create dict and save dict to the DB
        if any validation fields fail will return input value error 400
        """
        logger.info("post status")
        logger.debug("parse json!")
        data_to_save = dict(
            timestamp=int(time.time()) * 1000,
            region=status_input.rds_listener.region,
            resource_id=status_input.rds_listener.resource_id,
            status=status_input.rds_listener.status,
            transaction_id=status_input.rds_listener.request_id,
            error_code=status_input.rds_listener.error_code,
            error_msg=status_input.rds_listener.error_msg,
            resource_operation=status_input.rds_listener.resource_operation,
            resource_type=status_input.rds_listener.resource_type,
            ord_notifier_id=status_input.rds_listener.ord_notifier_id)

        if status_input.rds_listener.resource_type == 'image' and status_input.rds_listener.resource_extra_metadata != wsme.Unset:
            data_to_save['resource_extra_metadata'] =\
                status_input.rds_listener.resource_extra_metadata.to_dict()

        logger.debug("save data to database.. data :- %s" % data_to_save)
        try:
            regionResourceIdStatus.add_status(data_to_save)
            # send data to ims
            utils.post_data_to_image(data_to_save)
        except ErrorMesage as exp:
            logger.error(exp.message)
            # raise ClientSideError(status_code=400, error=exp.message)
        except InputError as e:
            logger.error("Invalid value for input {}: {}".format(str(e.name),
                                                                 str(e.value)))
            raise InputValueError(e.name, e.value)