Example #1
0
    def __init__(self, resource_type, extra_fields=(), include_default_fields=True,
                 include_region=False, include_policy=False, fields=()):

        # Lookup default fields for resource type.
        model = resource_type
        self._id_field = model.id
        self._date_field = getattr(model, 'date', None)

        fields = OrderedDict(fields)
        mfields = getattr(model, 'default_report_fields', None)
        if mfields is None:
            mfields = [model.id]
            if model.name != model.id:
                mfields.append(model.name)
            if getattr(model, 'date', None):
                mfields.append(model.date)

        if include_default_fields:
            fields.update(OrderedDict(zip(mfields, mfields)))

        for index, field in enumerate(extra_fields):
            # TODO this type coercion should be done at cli input, not here
            h, cexpr = field.split('=', 1)
            fields[h] = cexpr

        # Add these at the end so that they are the last fields
        if include_default_fields:
            if include_region:
                fields['Region'] = 'region'

            if include_policy:
                fields['Policy'] = 'policy'

        self.fields = fields
Example #2
0
    def __init__(self, resource_type, extra_fields=(), include_default_fields=True,
                 include_region=False, include_policy=False, fields=()):

        # Lookup default fields for resource type.
        model = resource_type
        self._id_field = model.id
        self._date_field = getattr(model, 'date', None)

        fields = OrderedDict(fields)
        mfields = getattr(model, 'default_report_fields', None)
        if mfields is None:
            mfields = [model.id]
            if model.name != model.id:
                mfields.append(model.name)
            if getattr(model, 'date', None):
                mfields.append(model.date)

        if include_default_fields:
            fields.update(OrderedDict(zip(mfields, mfields)))

        for index, field in enumerate(extra_fields):
            # TODO this type coercion should be done at cli input, not here
            h, cexpr = field.split('=', 1)
            fields[h] = cexpr

        # Add these at the end so that they are the last fields
        if include_default_fields:
            if include_region:
                fields['Region'] = 'region'

            if include_policy:
                fields['Policy'] = 'policy'

        self.fields = fields