Computes status for file, basically this means if 
        more than one service handles the file, it will place
        a 'C' (for complicated) otherwise if status matches
        between all services, will place that status

def _computeStatus(self, dfile, service):
        """Computes status for file, basically this means if 
        more than one service handles the file, it will place
        a 'C' (for complicated) otherwise if status matches
        between all services, will place that status"""

        # If only one service requested
        if service:
            if not dfile['services'].has_key(service):
                return self.ST_UNTRACKED
            else:
                return dfile['services'][service]['status']

        # Otherwise go through all services and compute
        # a sensible status
        first_service_key=dfile['services'].keys()[0]

        # Save off one of the statuses so we can compute
        # if they are all the same between services.
        first_status=dfile['services'][first_service_key]['status']

        all_status_match=True

        # Return ST_COMPLICATED "C" if status
        # differs
        for service in dfile['services']:
            if dfile['services'][service]['status']!=first_status:
                return self.ST_COMPLICATED

        return first_status