def test_get_asset_by_sn_or_barcode(self): category = AssetCategoryFactory() model = AssetModelFactory(category=category) asset = DCAssetFactory(model=model, ) # by sn asset_data = get_asset_by_sn_or_barcode(asset.sn) self.assertEqual(asset_data['sn'], asset.sn) self.assertEqual(asset_data['barcode'], asset.barcode) # by barcode asset_data = get_asset_by_sn_or_barcode(asset.barcode) self.assertEqual(asset_data['sn'], asset.sn) self.assertEqual(asset_data['barcode'], asset.barcode) # not exists self.assertEqual(get_asset_by_sn_or_barcode('foo_ziew_123'), None)
def create_deployments(data, user, mass_deployment): for item in data: mac = MACAddressField.normalize(item['mac']) dev = None try: dev = Device.objects.get(ethernet__mac=mac) except Device.DoesNotExist: if 'ralph_assets' in settings.INSTALLED_APPS and item[ 'asset_identity']: from ralph_assets.api_ralph import get_asset_by_sn_or_barcode asset = get_asset_by_sn_or_barcode(item['asset_identity']) if asset: try: dev = Device.objects.get(pk=asset['device_id']) except Device.DoesNotExist: pass if not dev: dev = _create_device(item) Deployment.objects.create( user=user, device=dev, mac=mac, ip=item['ip'], hostname=item['hostname'], preboot=item['preboot'], venture=item['venture'], venture_role=item['venture_role'], mass_deployment=mass_deployment, service=ServiceCatalog.objects.get(name=item['service']), device_environment=DeviceEnvironment.objects.get( name=item['device_environment'], ), )
def create_deployments(data, user, mass_deployment): for item in data: mac = MACAddressField.normalize(item['mac']) dev = None try: dev = Device.objects.get(ethernet__mac=mac) except Device.DoesNotExist: if 'ralph_assets' in settings.INSTALLED_APPS and item[ 'asset_identity' ]: from ralph_assets.api_ralph import get_asset_by_sn_or_barcode asset = get_asset_by_sn_or_barcode(item['asset_identity']) if asset: try: dev = Device.objects.get(pk=asset['device_id']) except Device.DoesNotExist: pass if not dev: dev = _create_device(item) Deployment.objects.create( user=user, device=dev, mac=mac, ip=item['ip'], hostname=item['hostname'], preboot=item['preboot'], venture=item['venture'], venture_role=item['venture_role'], mass_deployment=mass_deployment, )
def test_get_asset_by_sn_or_barcode(self): category = AssetCategoryFactory() model = AssetModelFactory(category=category) asset = DCAssetFactory( model=model, ) # by sn asset_data = get_asset_by_sn_or_barcode(asset.sn) self.assertEqual(asset_data['sn'], asset.sn) self.assertEqual(asset_data['barcode'], asset.barcode) # by barcode asset_data = get_asset_by_sn_or_barcode(asset.barcode) self.assertEqual(asset_data['sn'], asset.sn) self.assertEqual(asset_data['barcode'], asset.barcode) # not exists self.assertEqual(get_asset_by_sn_or_barcode('foo_ziew_123'), None)
def _find_device(mac, asset_identity=None): """Find the device to be re-used for this deployment. Return None if no matching device is found. """ mac = MACAddressField.normalize(mac) try: return Device.admin_objects.get(ethernet__mac=mac) except Device.DoesNotExist: if 'ralph_assets' not in settings.INSTALLED_APPS or not asset_identity: return from ralph_assets.api_ralph import get_asset_by_sn_or_barcode asset = get_asset_by_sn_or_barcode(asset_identity) if not asset or not asset['device_id']: return try: return Device.objects.get(pk=asset['device_id']) except Device.DoesNotExist: return
def _find_device(mac, asset_identity=None): """Find the device to be re-used for this deployment. Return None if no matching device is found. """ mac = MACAddressField.normalize(mac) try: return Device.admin_objects.get(ethernet__mac=mac) except Device.DoesNotExist: if 'ralph_assets' not in settings.INSTALLED_APPS or not asset_identity: return from ralph_assets.api_ralph import get_asset_by_sn_or_barcode asset = get_asset_by_sn_or_barcode(asset_identity) if not asset or not asset['device_id']: return try: return Device.objects.get(pk=asset['device_id']) except Device.DoesNotExist: return
def _validate_asset_identity(identity, row_number, mac=None): if 'ralph_assets' not in settings.INSTALLED_APPS: return # nothing to do from ralph_assets.api_ralph import get_asset_by_sn_or_barcode asset = get_asset_by_sn_or_barcode(identity) if not asset: raise forms.ValidationError( "Row %d: Asset with sn or barcode `%s` does not exist." % (row_number, identity)) if not mac or not asset['device_id']: return mac = MACAddressField.normalize(mac) try: device = Device.admin_objects.get(ethernet__mac=mac) except Device.DoesNotExist: return if device.id != asset['device_id']: raise forms.ValidationError( "Row %d: Found asset by sn or barcode and found device by " "MAC address are not the same." % row_number)
def _validate_asset_identity(identity, row_number, mac=None): if 'ralph_assets' not in settings.INSTALLED_APPS: return # nothing to do from ralph_assets.api_ralph import get_asset_by_sn_or_barcode asset = get_asset_by_sn_or_barcode(identity) if not asset: raise forms.ValidationError( "Row %d: Asset with sn or barcode `%s` does not exist." % (row_number, identity) ) if not mac or not asset['device_id']: return mac = MACAddressField.normalize(mac) try: device = Device.admin_objects.get(ethernet__mac=mac) except Device.DoesNotExist: return if device.id != asset['device_id']: raise forms.ValidationError( "Row %d: Found asset by sn or barcode and found device by " "MAC address are not the same." % row_number )