Added option to purge remaining devices #199

Merged
geektophe merged 4 commits from fix/chriss/purge_remaining_devices into master 2022-02-21 11:36:39 +01:00
2 changed files with 12 additions and 0 deletions
Showing only changes of commit 58775c0950 - Show all commits

View file

@ -28,6 +28,8 @@ def get_config():
p.add_argument('--update-inventory', action='store_true', help='Update inventory')
p.add_argument('--update-location', action='store_true', help='Update location')
p.add_argument('--update-psu', action='store_true', help='Update PSU')
p.add_argument('--purge-old-devices', action='store_true',
help='Purge existing (old ?) devices having same name but different serial')
p.add_argument('--log_level', default='debug')
p.add_argument('--netbox.url', help='Netbox URL')

View file

@ -228,6 +228,13 @@ class ServerBase():
)
return new_blade
def _netbox_deduplicate_server(self):
serial = self.get_service_tag()
hostname = self.get_hostname()
server = nb.dcim.devices.get(name=hostname)
if server and server.serial != serial:
server.delete()
def _netbox_create_server(self, datacenter, tenant, rack):
device_role = get_device_role(config.device.server_role)
device_type = get_device_type(self.get_product_name())
@ -336,6 +343,9 @@ class ServerBase():
rack = self.get_netbox_rack()
tenant = self.get_netbox_tenant()
if config.purge_old_devices:
self._netbox_deduplicate_server()
if self.is_blade():
chassis = nb.dcim.devices.get(
serial=self.get_chassis_service_tag()