Моя идея - собрать все версии компонентов, установленные во всех разных лабораториях по всему миру. Мой код работает, когда я даю детали явно.Чтение всех разделов в файле конфигурации
Мой код выглядит следующим образом
def UK_PDL_HE():
UK_PDL_List = {}
sorted_list = {}
slist = {}
HE_string = "UK_PDL_HE"
global config
config = ConfigParser.RawConfigParser()
print config.sections()
config.read('config.cfg')
env.user = config.get('UK_PDL','db.user_name')
env.password = config.get('UK_PDL','db.password')
host = config.get('UK_PDL','db.ip')
with settings(hide('warnings', 'running', 'stdout', 'stderr'), warn_only=True, host_string=host):
paramiko.util.log_to_file('UK_PDL.log')
files = run('ls -ltr /opt/nds')
with open("UK_PDL.txt", "w") as fo:
fo.write(files)
components = []
with open("UK_PDL.txt", 'rb') as fo:
strings = ("/installed/")
i=0
for line in fo:
if strings in line:
id = re.search('installed/(.+)',line)
if id:
components.append(id.group(1))
component,version = components[i].rstrip().split('-',1)
UK_PDL_List[component] = version
i+=1
write_data(UK_PDL_List, HE_string,1)
конфигурационный файл выглядит следующим образом
[UK_PDL]
db.user_name = user
db.password = password
db.ip = 101.815.117.193
[UK_DTH]
db.user_name = user
db.password = password
db.ip = 272.119.411.121
В настоящее время я написал для функции для каждого IP. Вместо этого, как я могу убедиться, что все записи считываются из конфигурации по одному и извлекают детали?
Я не совсем уверен, что вы просите ... вы просто хотите перебрать разделы конфигурационного файла, не зная названия разделов? – glibdud
Да. Вместо того, чтобы давать имена, мне нужно указать цифры 1, 2 и т. Д. В config [заменяя UK_PDL & UK_DTH]. Если у меня 10 разделов, одна функция должна искать все 10 разделов в конфигурации и выводить данные. –