def _to_node()

in libcloud/compute/drivers/cloudsigma.py [0:0]


    def _to_node(self, data):
        if data:
            try:
                state = self.NODE_STATE_MAP[data["status"]]
            except KeyError:
                state = NodeState.UNKNOWN

            if "server" not in data:
                # Response does not contain server UUID if the server
                # creation failed because of insufficient funds.

                return None

            public_ips = []

            if "nic:0:dhcp" in data:
                if isinstance(data["nic:0:dhcp"], list):
                    public_ips = data["nic:0:dhcp"]
                else:
                    public_ips = [data["nic:0:dhcp"]]

            extra = {}
            extra_keys = [
                ("cpu", "int"),
                ("smp", "auto"),
                ("mem", "int"),
                ("status", "str"),
            ]

            for key, value_type in extra_keys:
                if key in data:
                    value = data[key]

                    if value_type == "int":
                        value = int(value)
                    elif value_type == "auto":
                        try:
                            value = int(value)
                        except ValueError:
                            pass

                    extra.update({key: value})

            if "vnc:ip" in data and "vnc:password" in data:
                extra.update({"vnc_ip": data["vnc:ip"], "vnc_password": data["vnc:password"]})

            node = Node(
                id=data["server"],
                name=data["name"],
                state=state,
                public_ips=public_ips,
                private_ips=None,
                driver=self.connection.driver,
                extra=extra,
            )

            return node

        return None