diff options
| -rw-r--r-- | src/com.gluster.storage.management.server.scripts/src/common/NetworkUtils.py | 23 | ||||
| -rwxr-xr-x | src/com.gluster.storage.management.server.scripts/src/nodes/get_server_details.py | 7 | 
2 files changed, 28 insertions, 2 deletions
diff --git a/src/com.gluster.storage.management.server.scripts/src/common/NetworkUtils.py b/src/com.gluster.storage.management.server.scripts/src/common/NetworkUtils.py index f8a5de30..7a854564 100644 --- a/src/com.gluster.storage.management.server.scripts/src/common/NetworkUtils.py +++ b/src/com.gluster.storage.management.server.scripts/src/common/NetworkUtils.py @@ -177,6 +177,26 @@ def writeIfcfgConfFile(deviceName, conf, root="", deviceFile=None):      return True +def getNetModel(deviceName): +    rv = runCommandFG("ifconfig %s" % deviceName, stdout=True, root=True) +    if rv["Status"] != 0: +        return False +    for line in rv["Stdout"].split(): +        tokens = line.strip().split(":") +        if tokens[0].upper() == "ENCAP": +            return tokens[1].strip().upper() +    return None + +def getNetSpeed(deviceName): +    rv = runCommandFG("ethtool %s" % deviceName, stdout=True, root=True) +    if rv["Status"] != 0: +        return False +    for line in rv["Stdout"].split("\n"): +        tokens = line.strip().split(":") +        if tokens[0].upper() == "SPEED": +            return tokens[1].strip().upper() +    return None +  def getLinkStatus(deviceName):      return True      ## ethtool takes very long time to respond.  So its disabled now @@ -276,6 +296,9 @@ def getNetDeviceList(root=""):          netDevice["type"] = None          netDevice["link"] = getLinkStatus(deviceName)          netDevice["mode"] = getBondMode(deviceName, root + Globals.MODPROBE_CONF_FILE) +        netDevice["model"] = getNetModel(deviceName) +        netDevice["speed"] = getNetSpeed(deviceName) +          try:              netDevice["hwaddr"] = open("/sys/class/net/%s/address" % deviceName).read().strip()          except IOError: diff --git a/src/com.gluster.storage.management.server.scripts/src/nodes/get_server_details.py b/src/com.gluster.storage.management.server.scripts/src/nodes/get_server_details.py index 67148586..8737b69e 100755 --- a/src/com.gluster.storage.management.server.scripts/src/nodes/get_server_details.py +++ b/src/com.gluster.storage.management.server.scripts/src/nodes/get_server_details.py @@ -117,16 +117,18 @@ def getServerDetails():      #TODO: probe and retrieve timezone, ntp-server, preferred-network details and update the tags      deviceList = {} +    interfaces = responseDom.createTag("networkInterfaces", None)      for device in getNetDeviceList():          deviceList[device["device"]] = device          try:              macAddress = open("/sys/class/net/%s/address" % device["device"]).read().strip()          except IOError:              continue -        interfaces = responseDom.createTag("networkInterfaces", None)          interfaceTag = responseDom.createTag("networkInterface", None)          interfaceTag.appendChild(responseDom.createTag("name",      device["device"])) -        interfaceTag.appendChild(responseDom.createTag("hwaddr",      macAddress)) +        interfaceTag.appendChild(responseDom.createTag("hwAddr",      macAddress)) +        interfaceTag.appendChild(responseDom.createTag("speed",      device["speed"])) +        interfaceTag.appendChild(responseDom.createTag("model",      device["model"]))          if deviceList[device["device"]]:              if deviceList[device["device"]]["onboot"]:                  interfaceTag.appendChild(responseDom.createTag("onboot", "yes")) @@ -147,6 +149,7 @@ def getServerDetails():              interfaceTag.appendChild(responseDom.createTag("bootProto", "none"))          interfaces.appendChild(interfaceTag)      serverTag.appendChild(interfaces) +      responseDom.appendTag(serverTag)      serverTag.appendChild(responseDom.createTag("numOfCPUs", int(os.sysconf('SC_NPROCESSORS_ONLN'))))  | 
