Можете ли да получите операционна система за гости с помощта на PySphere?

Бих искал да намеря всички Linux машини на моя VMServer.

Мога да изпълня следното, за да получа списък с всички виртуални машини.

vms = server.get_registered_vms()
mylist = []
for vm in vms:
    virtual_machine = server.get_vm_by_path(vm)
    mylist.append(virtual_machine.get_properties)
    print vm

Но има ли някакъв начин да вземете Guest OS, която VMServer има. Т.е. не искам заобиколно решение, което изисква машината да е включена и да трябва да въвеждате много пароли.


person user3520245    schedule 09.01.2015    source източник


Отговори (1)


PySphere предлага методите get_properties и get_property(property_name). Ако свойството guest_full_name е зададено, можете да го намерите тук.

От документите:

>>> vm1.get_properties()
{'guest_id': 'ubuntuGuest',
 'path': '[DataStore1] Ubuntu/Ubuntu-10.vmx',
 'guest_full_name': 'Ubuntu Linux (32-bit)',
 'name': 'Ubuntu 10.10 Desktop 2200',
 'mac_address': '00:50:56:aa:01:a7'
}

Следователно, за да добавите към вашия скрипт, можете да направите:

vms = server.get_registered_vms()
mylist = []
for vm in vms:
    virtual_machine = server.get_vm_by_path(vm)
    guest_os = virtual_machine.get_property('guest_full_name')
    if server_guest_is_linux(guest_os):
        mylist.append(virtual_machine)
        print vm

def server_guest_is_linux(guest_os):
    if 'linux' in guest_os.lower() \
            or 'ubuntu' in guest_os.lower() \
            or 'centos' in guest_os.lower():
        return True
    return False
person Reina Abolofia    schedule 12.01.2015
comment
По принцип това е само virtual_machine.get_property('guest_full_name') - person Its not blank; 04.08.2017