def path(self, which=None):
        """Extend ``nailgun.entity_mixins.Entity.path``.

        This method contains a workaround for `Bugzilla #1202917`_.

        Most entities are uniquely identified by an ID. ``System`` is a bit
        different: it has both an ID and a UUID, and the UUID is used to
        uniquely identify a ``System``.

        Return a path in the format ``katello/api/v2/systems/<uuid>`` if a UUID
        is available and:

        * ``which is None``, or
        * ``which == 'this'``.

        .. _Bugzilla #1202917:
            https://bugzilla.redhat.com/show_bug.cgi?id=1202917

        Finally, return a path in the form
        ``katello/api/v2/systems/<uuid>/subscriptions`` if ``'subscriptions'``
        is passed in.

        """
        if which == 'subscriptions':
            return '{0}/{1}/{2}'.format(
                super(System, self).path('base'),
                self.uuid,  # pylint:disable=no-member
                which,
            )
        if hasattr(self, 'uuid') and (which is None or which == 'self'):
            return '{0}/{1}'.format(
                super(System, self).path('base'),
                self.uuid  # pylint:disable=no-member
            )
        return super(System, self).path(which)