示例#1
0
    def GetAllInstancesInfo(self, hvparams=None):
        """Get properties of all instances.

    @type hvparams: dict of strings
    @param hvparams: hypervisor parameter
    @return: list of tuples (name, id, memory, vcpus, stat, times)

    """
        data = []
        for file_name in os.listdir(self._ROOT_DIR):
            try:
                fh = open(utils.PathJoin(self._ROOT_DIR, file_name), "r")
                inst_id = "-1"
                memory = 0
                vcpus = 1
                stat = hv_base.HvInstanceState.SHUTDOWN
                times = -1
                try:
                    inst_id = fh.readline().strip()
                    memory = utils.TryConvert(int, fh.readline().strip())
                    vcpus = utils.TryConvert(int, fh.readline().strip())
                    stat = hv_base.HvInstanceState.RUNNING
                    times = 0
                finally:
                    fh.close()
                data.append((file_name, inst_id, memory, vcpus, stat, times))
            except IOError, err:
                raise errors.HypervisorError("Failed to list instances: %s" %
                                             err)
示例#2
0
    def GetInstanceInfo(self, instance_name, hvparams=None):
        """Get instance properties.

    @type instance_name: string
    @param instance_name: the instance name
    @type hvparams: dict of strings
    @param hvparams: hvparams to be used with this instance

    @return: tuple of (name, id, memory, vcpus, stat, times)

    """
        file_name = self._InstanceFile(instance_name)
        if not os.path.exists(file_name):
            return None
        try:
            fh = open(file_name, "r")
            try:
                inst_id = fh.readline().strip()
                memory = utils.TryConvert(int, fh.readline().strip())
                vcpus = utils.TryConvert(int, fh.readline().strip())
                stat = hv_base.HvInstanceState.RUNNING
                times = 0
                return (instance_name, inst_id, memory, vcpus, stat, times)
            finally:
                fh.close()
        except IOError, err:
            raise errors.HypervisorError("Failed to list instance %s: %s" %
                                         (instance_name, err))
示例#3
0
 def test(self):
     for src, fn, result in [
         ("1", int, 1),
         ("a", int, "a"),
         ("", bool, False),
         ("a", bool, True),
     ]:
         self.assertEqual(utils.TryConvert(fn, src), result)