File tree Expand file tree Collapse file tree 1 file changed +32
-0
lines changed
example-netbox-webhook-flask-app/helpers Expand file tree Collapse file tree 1 file changed +32
-0
lines changed Original file line number Diff line number Diff line change 1+ import re
12import pynetbox
23import requests
34import urllib
@@ -180,6 +181,37 @@ def proxmox_clone_vm(self, json_in):
180181 nb_obj_update_vmid .save ()
181182 except pynetbox .core .query .RequestError as e :
182183 raise e
184+
185+ # set scsi0 in NetBox
186+ try :
187+ proxmox_vm_config = self .proxmox_api .nodes (self .proxmox_api_config ['node' ]).qemu (new_vm_id ).config .get ()
188+
189+ if 'bootdisk' in proxmox_vm_config :
190+ os_disk = proxmox_vm_config ['bootdisk' ]
191+
192+ if os_disk in proxmox_vm_config :
193+ m = re .search (r'size=(\d+)([MG]){1}' , proxmox_vm_config [os_disk ])
194+
195+ if m :
196+ disk_raw_size = m .group (1 )
197+
198+ if m .group (2 ) == 'G' :
199+ disk_size = int (disk_raw_size ) * 1000
200+ elif m .group (2 ) == 'M' :
201+ disk_size = int (disk_raw_size )
202+
203+ nb_obj_add_vm_disk = self .netbox_api .virtualization .virtual_disks .create (
204+ virtual_machine = nb_obj_update_vmid ['id' ],
205+ name = proxmox_vm_config ['bootdisk' ],
206+ size = disk_size ,
207+ description = f"OS/boot disk for { json_in ['data' ]['name' ]} "
208+ )
209+
210+ if not nb_obj_add_vm_disk :
211+ raise ValueError ("Unable to add VM disk to NetBox" )
212+
213+ except pynetbox .core .query .RequestError as e :
214+ raise e
183215
184216 # update VM vcpus and memory if defined
185217 if json_in ['data' ]['vcpus' ]:
You can’t perform that action at this time.
0 commit comments