def attach(self, lun_or_snap, skip_hlu_0=False):
<EOL>try:<EOL><INDENT>return self._attach_with_retry(lun_or_snap, skip_hlu_0)<EOL><DEDENT>except ex.SystemAPINotSupported:<EOL><INDENT>raise<EOL><DEDENT>except ex.UnityAttachExceedLimitError:<EOL><INDENT>raise<EOL><DEDENT>except:  <EOL><INDENT>self.detach(lun_or_snap)<EOL>raise<EOL><DEDENT>
Attaches lun, snap or member snap of cg snap to host.

        Don't pass cg snapshot in as `lun_or_snap`.

        :param lun_or_snap: the lun, snap, or a member snap of cg snap
        :param skip_hlu_0: whether to skip hlu 0
        :return: the hlu number