Fixed hdsdiscover utils.py bug and updated networking validation
Change-Id: I44488ed2f52f3c1fe9a56050e383176d117ca97f
This commit is contained in:
parent
f7508f3f33
commit
65d9d18c74
@ -298,7 +298,6 @@ class _APIClient(Client):
|
||||
print "Start to deploy the cluster!....."
|
||||
deploy_req = {"deploy": deploy_list}
|
||||
code, resp = self.deploy_hosts(cluster_id, raw_data=deploy_req)
|
||||
print "======>resp-----%s" % resp
|
||||
print "---Cluster Info---"
|
||||
print "cluster_id url"
|
||||
print (" %s %s"
|
||||
|
@ -227,7 +227,8 @@ def is_valid_networking_config(config):
|
||||
"search_path": {"req": 1, "validator": ""},
|
||||
"gateway": {"req": 1, "validator": is_valid_gateway},
|
||||
"proxy": {"req": 0, "validator": ""},
|
||||
"ntp_server": {"req": 0, "validator": ""}
|
||||
"ntp_server": {"req": 0, "validator": ""},
|
||||
"ha_vip": {"req": 0, "validator": is_valid_ip}
|
||||
}
|
||||
is_valid_format, err = is_valid_keys(global_section, global_config,
|
||||
"global")
|
||||
|
@ -231,10 +231,10 @@ def snmpget_by_cl(host, credential, oid, timeout=8, retries=3):
|
||||
community = credential['community']
|
||||
cmd = "snmpget -v %s -c %s -Ob -r %s -t %s %s %s" % (
|
||||
version, community, retries, timeout, host, oid)
|
||||
output = None
|
||||
output, err = exec_command(cmd)
|
||||
|
||||
if err:
|
||||
returncode, output, err = exec_command(cmd)
|
||||
|
||||
if returncode and err:
|
||||
logging.error("[snmpget_by_cl] %s", err)
|
||||
raise TimeoutError(err.strip('\n'))
|
||||
|
||||
@ -253,9 +253,9 @@ def snmpwalk_by_cl(host, credential, oid, timeout=5, retries=3):
|
||||
cmd = "snmpwalk -v %s -c %s -Cc -r %s -t %s -Ob %s %s" % (
|
||||
version, community, retries, timeout, host, oid)
|
||||
|
||||
output, err = exec_command(cmd)
|
||||
returncode, output, err = exec_command(cmd)
|
||||
|
||||
if err:
|
||||
if returncode and err:
|
||||
logging.debug("[snmpwalk_by_cl] %s ", err)
|
||||
raise TimeoutError(err)
|
||||
|
||||
@ -278,10 +278,11 @@ def snmpwalk_by_cl(host, credential, oid, timeout=5, retries=3):
|
||||
|
||||
def exec_command(command):
|
||||
"""Execute command.
|
||||
Return a tuple of output and error message(None if no error).
|
||||
Return a tuple: returncode, output and error message(None if no error).
|
||||
"""
|
||||
sub_p = subprocess.Popen(command,
|
||||
shell=True,
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE)
|
||||
return sub_p.communicate()
|
||||
output, err_msg = sub_p.communicate()
|
||||
return (sub_p.returncode, output, err_msg)
|
||||
|
@ -1,3 +1,3 @@
|
||||
id,name,security_config.server_credentials.username,security_config.server_credentials.password,security_config.service_credentials.username,security_config.service_credentials.password,security_config.console_credentials.username,security_config.console_credentials.password,networking_config.interfaces.management.nic,networking_config.interfaces.management.netmask,networking_config.interfaces.management.promisc,networking_config.interfaces.management.ip_end,networking_config.interfaces.management.gateway,networking_config.interfaces.management.ip_start,networking_config.interfaces.storage.nic,networking_config.interfaces.storage.netmask,networking_config.interfaces.storage.promisc,networking_config.interfaces.storage.ip_end,networking_config.interfaces.storage.gateway,networking_config.interfaces.storage.ip_start,networking_config.interfaces.public.nic,networking_config.interfaces.public.netmask,networking_config.interfaces.public.promisc,networking_config.interfaces.public.ip_end,networking_config.interfaces.public.gateway,networking_config.interfaces.public.ip_start,networking_config.interfaces.tenant.nic,networking_config.interfaces.tenant.netmask,networking_config.interfaces.tenant.promisc,networking_config.interfaces.tenant.ip_end,networking_config.interfaces.tenant.gateway,networking_config.interfaces.tenant.ip_start,networking_config.global.nameservers,networking_config.global.ntp_server,networking_config.global.gateway,networking_config.global.proxy,networking_config.global.search_path,partition_config,adapter_id,state
|
||||
1,cluster_01,root,root,service,admin,console,admin,eth0,255.255.255.0,1,10.120.1.200,None,10.120.1.100,eth3,255.255.255.0,0,172.29.1.200,None,172.29.1.100,eth2,255.255.255.0,0,12.145.1.200,None,12.145.1.100,eth1,255.255.255.0,0,192.168.1.200,None,192.168.1.100,8.8.8.8,127.0.0.1,192.168.1.1,http://127.0.0.1:3128,ods.com,"/home 20%;/tmp 10%;/var 30%;",1,READY
|
||||
2,cluster_02,root,root,service,admin,console,admin,eth0,255.255.255.0,1,10.120.2.200,None,10.120.2.100,eth3,255.255.255.0,0,172.29.2.200,None,172.29.2.100,eth2,255.255.255.0,0,12.145.2.200,None,12.145.2.100,eth1,255.255.255.0,0,192.168.2.200,None,192.168.2.100,8.8.8.8,127.0.0.1,192.168.1.1,http://127.0.0.1:3128,ods.com,"/home 20%;/tmp 10%;/var 30%;",1,ERROR
|
||||
id,name,security_config.server_credentials.username,security_config.server_credentials.password,security_config.service_credentials.username,security_config.service_credentials.password,security_config.console_credentials.username,security_config.console_credentials.password,networking_config.interfaces.management.nic,networking_config.interfaces.management.netmask,networking_config.interfaces.management.promisc,networking_config.interfaces.management.ip_end,networking_config.interfaces.management.gateway,networking_config.interfaces.management.ip_start,networking_config.interfaces.storage.nic,networking_config.interfaces.storage.netmask,networking_config.interfaces.storage.promisc,networking_config.interfaces.storage.ip_end,networking_config.interfaces.storage.gateway,networking_config.interfaces.storage.ip_start,networking_config.interfaces.public.nic,networking_config.interfaces.public.netmask,networking_config.interfaces.public.promisc,networking_config.interfaces.public.ip_end,networking_config.interfaces.public.gateway,networking_config.interfaces.public.ip_start,networking_config.interfaces.tenant.nic,networking_config.interfaces.tenant.netmask,networking_config.interfaces.tenant.promisc,networking_config.interfaces.tenant.ip_end,networking_config.interfaces.tenant.gateway,networking_config.interfaces.tenant.ip_start,networking_config.global.nameservers,networking_config.global.ntp_server,networking_config.global.gateway,networking_config.global.ha_vip,networking_config.global.proxy,networking_config.global.search_path,partition_config,adapter_id,state
|
||||
1,cluster_01,root,root,service,admin,console,admin,eth0,255.255.255.0,1,10.120.1.200,None,10.120.1.100,eth3,255.255.255.0,0,172.29.1.200,None,172.29.1.100,eth2,255.255.255.0,0,12.145.1.200,None,12.145.1.100,eth1,255.255.255.0,0,192.168.1.200,None,192.168.1.100,8.8.8.8,127.0.0.1,192.168.1.1,None,http://127.0.0.1:3128,ods.com,"/home 20%;/tmp 10%;/var 30%;",1,READY
|
||||
2,cluster_02,root,root,service,admin,console,admin,eth0,255.255.255.0,1,10.120.2.200,None,10.120.2.100,eth3,255.255.255.0,0,172.29.2.200,None,172.29.2.100,eth2,255.255.255.0,0,12.145.2.200,None,12.145.2.100,eth1,255.255.255.0,0,192.168.2.200,None,192.168.2.100,8.8.8.8,127.0.0.1,192.168.1.1,None,http://127.0.0.1:3128,ods.com,"/home 20%;/tmp 10%;/var 30%;",1,ERROR
|
||||
|
|
@ -367,7 +367,8 @@ class TestClusterAPI(ApiTestCase):
|
||||
"proxy": "",
|
||||
"ntp_server": "",
|
||||
"nameservers": "8.8.8.8",
|
||||
"search_path": "ods.com,ods1.com"}}
|
||||
"search_path": "ods.com,ods1.com",
|
||||
"ha_vip": "192.168.20.1"}}
|
||||
|
||||
def setUp(self):
|
||||
super(TestClusterAPI, self).setUp()
|
||||
@ -1141,7 +1142,8 @@ class TestAPIWorkFlow(ApiTestCase):
|
||||
"search_path": "ods.com",
|
||||
"gateway": "192.168.1.1",
|
||||
"proxy": "http://127.0.0.1:3128",
|
||||
"ntp_server": "127.0.0.1"
|
||||
"ntp_server": "127.0.0.1",
|
||||
"ha_vip": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1378,7 +1380,8 @@ class TestExport(ApiTestCase):
|
||||
"search_path": "ods.com",
|
||||
"gateway": "192.168.1.1",
|
||||
"proxy": "http://127.0.0.1:3128",
|
||||
"ntp_server": "127.0.0.1"
|
||||
"ntp_server": "127.0.0.1",
|
||||
"ha_vip": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1591,7 +1594,6 @@ class TestExport(ApiTestCase):
|
||||
self.assertDictEqual(export_row, expected_row)
|
||||
self.maxDiff = None
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
flags.init()
|
||||
logsetting.init()
|
||||
|
@ -1,4 +1,4 @@
|
||||
id,name,security_config.server_credentials.username,security_config.server_credentials.password,security_config.service_credentials.username,security_config.service_credentials.password,security_config.console_credentials.username,security_config.console_credentials.password,networking_config.interfaces.management.nic,networking_config.interfaces.management.netmask,networking_config.interfaces.management.promisc,networking_config.interfaces.management.ip_end,networking_config.interfaces.management.gateway,networking_config.interfaces.management.ip_start,networking_config.interfaces.storage.nic,networking_config.interfaces.storage.netmask,networking_config.interfaces.storage.promisc,networking_config.interfaces.storage.ip_end,networking_config.interfaces.storage.gateway,networking_config.interfaces.storage.ip_start,networking_config.interfaces.public.nic,networking_config.interfaces.public.netmask,networking_config.interfaces.public.promisc,networking_config.interfaces.public.ip_end,networking_config.interfaces.public.gateway,networking_config.interfaces.public.ip_start,networking_config.interfaces.tenant.nic,networking_config.interfaces.tenant.netmask,networking_config.interfaces.tenant.promisc,networking_config.interfaces.tenant.ip_end,networking_config.interfaces.tenant.gateway,networking_config.interfaces.tenant.ip_start,networking_config.global.nameservers,networking_config.global.ntp_server,networking_config.global.gateway,networking_config.global.proxy,networking_config.global.search_path,partition_config,adapter_id,state
|
||||
1,cluster_01,root,root,service,admin,console,admin,eth0,255.255.255.0,1,10.120.1.200,None,10.120.1.100,eth3,255.255.255.0,0,172.29.1.200,None,172.29.1.100,eth2,255.255.255.0,0,12.145.1.200,None,12.145.1.100,eth1,255.255.255.0,0,192.168.1.200,None,192.168.1.100,8.8.8.8,127.0.0.1,192.168.1.1,http://127.0.0.1:3128,ods.com,"/home 20%;/tmp 10%;/var 30%;",1,READY
|
||||
2,cluster_02,root,root,service,admin,console,admin,eth0,255.255.255.0,1,10.120.2.200,None,10.120.2.100,eth3,255.255.255.0,0,172.29.2.200,None,172.29.2.100,eth2,255.255.255.0,0,12.145.2.200,None,12.145.2.100,eth1,255.255.255.0,0,192.168.2.200,None,192.168.2.100,8.8.8.8,127.0.0.1,192.168.1.1,http://127.0.0.1:3128,ods.com,"/home 20%;/tmp 10%;/var 30%;",1,ERROR
|
||||
3,cluster_03,root,admin,service,admin,console,admin,eth0,255.255.255.0,1,10.120.3.200,None,10.120.3.100,eth3,255.255.255.0,0,172.29.3.200,None,172.29.3.100,eth2,255.255.255.0,0,12.145.3.200,None,12.145.3.100,eth1,255.255.255.0,0,192.168.3.200,None,192.168.3.100,8.8.8.8,120.0.0.1,192.168.1.1,http://localhost:3128,ods.com,"/home 40%;/tmp 20%;/var 30%;",1,None
|
||||
id,name,security_config.server_credentials.username,security_config.server_credentials.password,security_config.service_credentials.username,security_config.service_credentials.password,security_config.console_credentials.username,security_config.console_credentials.password,networking_config.interfaces.management.nic,networking_config.interfaces.management.netmask,networking_config.interfaces.management.promisc,networking_config.interfaces.management.ip_end,networking_config.interfaces.management.gateway,networking_config.interfaces.management.ip_start,networking_config.interfaces.storage.nic,networking_config.interfaces.storage.netmask,networking_config.interfaces.storage.promisc,networking_config.interfaces.storage.ip_end,networking_config.interfaces.storage.gateway,networking_config.interfaces.storage.ip_start,networking_config.interfaces.public.nic,networking_config.interfaces.public.netmask,networking_config.interfaces.public.promisc,networking_config.interfaces.public.ip_end,networking_config.interfaces.public.gateway,networking_config.interfaces.public.ip_start,networking_config.interfaces.tenant.nic,networking_config.interfaces.tenant.netmask,networking_config.interfaces.tenant.promisc,networking_config.interfaces.tenant.ip_end,networking_config.interfaces.tenant.gateway,networking_config.interfaces.tenant.ip_start,networking_config.global.nameservers,networking_config.global.ntp_server,networking_config.global.gateway,networking_config.global.ha_vip,networking_config.global.proxy,networking_config.global.search_path,partition_config,adapter_id,state
|
||||
1,cluster_01,root,root,service,admin,console,admin,eth0,255.255.255.0,1,10.120.1.200,None,10.120.1.100,eth3,255.255.255.0,0,172.29.1.200,None,172.29.1.100,eth2,255.255.255.0,0,12.145.1.200,None,12.145.1.100,eth1,255.255.255.0,0,192.168.1.200,None,192.168.1.100,8.8.8.8,127.0.0.1,192.168.1.1,None,http://127.0.0.1:3128,ods.com,"/home 20%;/tmp 10%;/var 30%;",1,READY
|
||||
2,cluster_02,root,root,service,admin,console,admin,eth0,255.255.255.0,1,10.120.2.200,None,10.120.2.100,eth3,255.255.255.0,0,172.29.2.200,None,172.29.2.100,eth2,255.255.255.0,0,12.145.2.200,None,12.145.2.100,eth1,255.255.255.0,0,192.168.2.200,None,192.168.2.100,8.8.8.8,127.0.0.1,192.168.1.1,None,http://127.0.0.1:3128,ods.com,"/home 20%;/tmp 10%;/var 30%;",1,ERROR
|
||||
3,cluster_03,root,admin,service,admin,console,admin,eth0,255.255.255.0,1,10.120.3.200,None,10.120.3.100,eth3,255.255.255.0,0,172.29.3.200,None,172.29.3.100,eth2,255.255.255.0,0,12.145.3.200,None,12.145.3.100,eth1,255.255.255.0,0,192.168.3.200,None,192.168.3.100,8.8.8.8,120.0.0.1,192.168.1.1,None,http://localhost:3128,ods.com,"/home 40%;/tmp 20%;/var 30%;",1,None
|
||||
|
|
@ -71,19 +71,19 @@ class UtilsTest(unittest2.TestCase):
|
||||
incorr_credentials,
|
||||
oid))
|
||||
# Switch timeout, failed to execute SNMPGET
|
||||
mock_exec_command.return_value = (None, "Timeout")
|
||||
mock_exec_command.return_value = (1, None, "Timeout")
|
||||
with self.assertRaises(TimeoutError):
|
||||
utils.snmpget_by_cl(self.host, self.credentials, oid)
|
||||
|
||||
# Successfully get system information
|
||||
mock_exec_command.return_value = ("Huawei Technologies", None)
|
||||
mock_exec_command.return_value = (0, "Huawei Technologies", None)
|
||||
result = utils.snmpget_by_cl(self.host, self.credentials, oid)
|
||||
self.assertEqual("Huawei Technologies", result)
|
||||
|
||||
def test_snmpwalk_by_cl(self):
|
||||
oid = "BRIDGE-MIB::dot1dTpFdbPort"
|
||||
# the result of SNMPWALK is None
|
||||
utils.exec_command = Mock(return_value=(None, None))
|
||||
utils.exec_command = Mock(return_value=(0, None, None))
|
||||
result = utils.snmpwalk_by_cl(self.host, self.credentials, oid)
|
||||
self.assertEqual([], result)
|
||||
|
||||
@ -94,7 +94,7 @@ class UtilsTest(unittest2.TestCase):
|
||||
{"iid": "0.12.41.112.143.193", "value": "47"},
|
||||
{"iid": "0.12.41.139.17.124", "value": "47"}
|
||||
]
|
||||
utils.exec_command = Mock(return_value=(return_value, None))
|
||||
utils.exec_command = Mock(return_value=(0, return_value, None))
|
||||
result = utils.snmpwalk_by_cl(self.host, self.credentials, oid)
|
||||
self.assertEqual(expected_result, result)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user