X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=src%2Fnepi%2Fresources%2Flinux%2Fnode.py;fp=src%2Fnepi%2Fresources%2Flinux%2Fnode.py;h=14aab1ad7497e453e61a0a7aee4a2ed9750f521b;hb=9f095b0a5b3f063dbbec097278fad8ba3cb4f37c;hp=ff19bbb6880cdf193e21387a691f1a2cb9929bf1;hpb=6b5d5c46b4d6c3c8bba46d3c84efab12be4e32bd;p=nepi.git diff --git a/src/nepi/resources/linux/node.py b/src/nepi/resources/linux/node.py index ff19bbb6..14aab1ad 100644 --- a/src/nepi/resources/linux/node.py +++ b/src/nepi/resources/linux/node.py @@ -28,7 +28,6 @@ import collections import os import random import re -import socket import tempfile import time import threading @@ -51,12 +50,12 @@ class OSType: """ Supported flavors of Linux OS """ - FEDORA_8 = "f8" - FEDORA_12 = "f12" - FEDORA_14 = "f14" - FEDORA = "fedora" - UBUNTU = "ubuntu" - DEBIAN = "debian" + DEBIAN = 1 + UBUNTU = 1 << 1 + FEDORA = 1 << 2 + FEDORA_8 = 1 << 3 | FEDORA + FEDORA_12 = 1 << 4 | FEDORA + FEDORA_14 = 1 << 5 | FEDORA @clsinit_copy class LinuxNode(ResourceManager): @@ -291,18 +290,18 @@ class LinuxNode(ResourceManager): out = self.get_os() - if out.find("Fedora release 8") == 0: - self._os = OSType.FEDORA_8 - elif out.find("Fedora release 12") == 0: - self._os = OSType.FEDORA_12 - elif out.find("Fedora release 14") == 0: - self._os = OSType.FEDORA_14 - elif out.find("Fedora release") == 0: - self._os = OSType.FEDORA - elif out.find("Debian") == 0: + if out.find("Debian") == 0: self._os = OSType.DEBIAN elif out.find("Ubuntu") ==0: self._os = OSType.UBUNTU + elif out.find("Fedora release") == 0: + self._os = OSType.FEDORA + if out.find("Fedora release 8") == 0: + self._os = OSType.FEDORA_8 + elif out.find("Fedora release 12") == 0: + self._os = OSType.FEDORA_12 + elif out.find("Fedora release 14") == 0: + self._os = OSType.FEDORA_14 else: msg = "Unsupported OS" self.error(msg, out) @@ -329,12 +328,11 @@ class LinuxNode(ResourceManager): @property def use_deb(self): - return self.os in [OSType.DEBIAN, OSType.UBUNTU] + return (self.os & (OSType.DEBIAN|OSType.UBUNTU)) @property def use_rpm(self): - return self.os in [OSType.FEDORA_12, OSType.FEDORA_14, OSType.FEDORA_8, - OSType.FEDORA] + return (self.os & OSType.FEDORA) @property def localhost(self): @@ -369,16 +367,11 @@ class LinuxNode(ResourceManager): # Get Public IP address if possible if not self.get("ip"): - ip = None - - if self.localhost: - ip = socket.gethostbyname(socket.gethostname()) - else: - try: - ip = socket.gethostbyname(self.get("hostname")) - except: - msg = "DNS can not resolve hostname %s" % self.get("hostname") - self.debug(msg) + try: + ip = sshfuncs.gethostbyname(self.get("hostname")) + except: + msg = "DNS can not resolve hostname %s" % self.get("hostname") + self.debug(msg) self.set("ip", ip)