def _to_node(self, domain):
        state, max_mem, memory, vcpu_count, used_cpu_time = domain.info()
        state = self.NODE_STATE_MAP.get(state, NodeState.UNKNOWN)

        public_ips, private_ips = [], []

        ip_addresses = self._get_ip_addresses_for_domain(domain)

        for ip_address in ip_addresses:
            if is_public_subnet(ip_address):
                public_ips.append(ip_address)
            else:
                private_ips.append(ip_address)

        extra = {
            'uuid': domain.UUIDString(),
            'os_type': domain.OSType(),
            'types': self.connection.getType(),
            'used_memory': memory / 1024,
            'vcpu_count': vcpu_count,
            'used_cpu_time': used_cpu_time
        }

        node = Node(id=domain.ID(),
                    name=domain.name(),
                    state=state,
                    public_ips=public_ips,
                    private_ips=private_ips,
                    driver=self,
                    extra=extra)
        node._uuid = domain.UUIDString()  # we want to use a custom UUID
        return node
Exemple #2
0
    def _to_node(self, vm):
        config = vm.summary.config
        datacenter = self._get_datacenter(vm)

        extra = {
            "path": config.vmPathName,
            "operating_system": config.guestFullName,
            "os_type": "windows" if "Microsoft" in config.guestFullName \
                       else "unix",
            "memory_MB": config.memorySizeMB,
            "cpus": config.numCpu,
            "overallStatus": str(vm.summary.overallStatus),
            "datacenter": datacenter,
        }

        kwargs = {
            "id":
            config.instanceUuid,
            "name":
            config.name,
            "state":
            self.NODE_STATE_MAP.get(vm.summary.runtime.powerState,
                                    NodeState.UNKNOWN),
            "public_ips": [],
            "private_ips": [],
            "driver":
            self,
            "extra":
            extra,
        }

        for nic in vm.guest.net:
            for addr in nic.ipAddress:
                try:
                    if is_public_subnet(addr):
                        kwargs['public_ips'].append(addr)
                    else:
                        kwargs['private_ips'].append(addr)
                except OSError:  # inet_aton error for ipv6 addrs
                    pass

        node = Node(**kwargs)
        node._uuid = kwargs['id']
        return node
Exemple #3
0
    def _to_node(self, domain):
        state, max_mem, memory, vcpu_count, used_cpu_time = domain.info()
        state = self.NODE_STATE_MAP.get(state, NodeState.UNKNOWN)

        public_ips, private_ips = [], []

        ip_addresses = self._get_ip_addresses_for_domain(domain)

        for ip_address in ip_addresses:
            if is_public_subnet(ip_address):
                public_ips.append(ip_address)
            else:
                private_ips.append(ip_address)

        extra = {'uuid': domain.UUIDString(), 'os_type': domain.OSType(),
                 'types': self.connection.getType(),
                 'used_memory': memory / 1024, 'vcpu_count': vcpu_count,
                 'used_cpu_time': used_cpu_time}

        node = Node(id=domain.ID(), name=domain.name(), state=state,
                    public_ips=public_ips, private_ips=private_ips,
                    driver=self, extra=extra)
        node._uuid = domain.UUIDString()  # we want to use a custom UUID
        return node