Added option to purge remaining devices #199
2 changed files with 12 additions and 0 deletions
|
@ -28,6 +28,8 @@ def get_config():
|
||||||
p.add_argument('--update-inventory', action='store_true', help='Update inventory')
|
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-location', action='store_true', help='Update location')
|
||||||
p.add_argument('--update-psu', action='store_true', help='Update PSU')
|
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('--log_level', default='debug')
|
||||||
p.add_argument('--netbox.url', help='Netbox URL')
|
p.add_argument('--netbox.url', help='Netbox URL')
|
||||||
|
|
|
@ -228,6 +228,13 @@ class ServerBase():
|
||||||
)
|
)
|
||||||
return new_blade
|
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):
|
def _netbox_create_server(self, datacenter, tenant, rack):
|
||||||
device_role = get_device_role(config.device.server_role)
|
device_role = get_device_role(config.device.server_role)
|
||||||
device_type = get_device_type(self.get_product_name())
|
device_type = get_device_type(self.get_product_name())
|
||||||
|
@ -336,6 +343,9 @@ class ServerBase():
|
||||||
rack = self.get_netbox_rack()
|
rack = self.get_netbox_rack()
|
||||||
tenant = self.get_netbox_tenant()
|
tenant = self.get_netbox_tenant()
|
||||||
|
|
||||||
|
if config.purge_old_devices:
|
||||||
|
self._netbox_deduplicate_server()
|
||||||
|
|
||||||
if self.is_blade():
|
if self.is_blade():
|
||||||
chassis = nb.dcim.devices.get(
|
chassis = nb.dcim.devices.get(
|
||||||
serial=self.get_chassis_service_tag()
|
serial=self.get_chassis_service_tag()
|
||||||
|
|
Loading…
Add table
Reference in a new issue