Нужен интерфейс python для перемещения машины в другую папку

Я безуспешно пытаюсь найти поддержку кода в python для перемещения машины между папками Datacenter, я видел в pysphere, что вы можете определить папку только на этапе клонирования, а не после того, как машина уже клонирована.

Это кажется решением для моего проблема, но она в powershell, кто-нибудь знает поддержку для нее в python


person JavaSa    schedule 31.01.2017    source источник


Ответы (1)


Вы можете сделать это с помощью pyVmomi. Я бы избегал pysphere, потому что pyVmomi поддерживается VMWare, а pysphere не обновлялся в течение 4 или более лет.

Тем не менее, вот пример кода, который использует pyVmomi

service_instance = connect.SmartConnect(host=args.host,
                                        user=args.user,
                                        pwd=args.password,
                                        port=int(args.port))

search_index = service_instance.content.searchIndex
folder = search_index.FindByInventoryPath("LivingRoom/vm/new_folder")
vm_to_move = search_index.FindByInventoryPath("LivingRoom/vm/test-vm")
move_task = folder.MoveInto([vm_to_move])

В этом примере я создаю ServiceInstance, подключившись к vCenter, затем я получаю экземпляр SearchIndex. SearchIndex имеет несколько методов, которые можно использовать для поиска управляемых объектов. В этом примере я решил использовать метод FindByInventoryPath, но вы можете использовать любой, который вам подойдет. Сначала я нахожу экземпляр Folder с именем new_folder, в который я хочу переместить свой VirtualMachine. Затем я нахожу VirtualMachine, который хочу переместить. Наконец, я выполняю Task, который переместит виртуальную машину для меня. Эта задача принимает параметр списка объектов, которые нужно переместить в папку, и в этом случае это один список элементов, содержащий только одну виртуальную машину, которую я хочу переместить. Отсюда вы можете контролировать задачу, если хотите.

Имейте в виду, что если вы используете FindByInventoryPath, есть много скрытых папок, которые не видны из графического интерфейса. Я обнаружил, что с помощью ManagedObjectBrowser иногда очень полезен.

Полезные ссылки на документы:

person Michael Rice    schedule 31.01.2017
comment
Это было чрезвычайно полезно, спасибо! Просто для разъяснения тем, кто найдет это, LivingRoom в приведенном выше примере — это имя вашего центра обработки данных. - person Rekovni; 01.11.2017
comment
@ Рековни Да. кажется. - person Abhijeet Kasurde; 26.04.2018