Exemple #1
0
    def get_list(self,
                 _cap=None,
                 _passthrough=None,
                 _passthrough_affected_by=None,
                 _available_only=None):
        if _passthrough_affected_by is not None:
            # _passthrough_affected_by conflicts with _cap and _passthrough
            if (_cap, _passthrough) != (None, None):
                raise InvalidParameter("KCHHOST0004E")
            return sorted(
                self._get_passthrough_affected_devs(_passthrough_affected_by))

        if _cap == 'fc_host':
            dev_names = self._get_devices_fc_host()
        else:
            dev_names = self._get_devices_with_capability(_cap)

        if _passthrough is not None and _passthrough.lower() == 'true':
            conn = self.conn.get()
            passthrough_names = [
                dev['name'] for dev in hostdev.get_passthrough_dev_infos(conn)
            ]

            dev_names = list(set(dev_names) & set(passthrough_names))

            if _available_only is not None and _available_only.lower() \
                    == 'true':
                unavailable_devs = self._get_unavailable_devices()
                dev_names = [
                    dev for dev in dev_names if dev not in unavailable_devs
                ]

        dev_names.sort()
        return dev_names
Exemple #2
0
    def get_list(self, _cap=None, _passthrough=None,
                 _passthrough_affected_by=None,
                 _available_only=None):
        if _passthrough_affected_by is not None:
            # _passthrough_affected_by conflicts with _cap and _passthrough
            if (_cap, _passthrough) != (None, None):
                raise InvalidParameter("KCHHOST0004E")
            return sorted(
                self._get_passthrough_affected_devs(_passthrough_affected_by))

        if _cap == 'fc_host':
            dev_names = self._get_devices_fc_host()
        else:
            dev_names = self._get_devices_with_capability(_cap)

        if _passthrough is not None and _passthrough.lower() == 'true':
            conn = self.conn.get()
            passthrough_names = [
                dev['name'] for dev in hostdev.get_passthrough_dev_infos(conn)]

            dev_names = list(set(dev_names) & set(passthrough_names))

            if _available_only is not None and _available_only.lower() \
                    == 'true':
                unavailable_devs = self._get_unavailable_devices()
                dev_names = [dev for dev in dev_names
                             if dev not in unavailable_devs]

        dev_names.sort()
        return dev_names