Blocks creation of Hosts, Groups, and IS for Smart Inventories

* Updated View unit tests

* Refactored Validators

* Validator Fix for Blocking
This commit is contained in:
adamscmRH
2017-07-24 11:52:37 -04:00
parent 6856c77a8e
commit 3dcd6ef2c2
6 changed files with 75 additions and 5 deletions

View File

@@ -1289,6 +1289,11 @@ class HostSerializer(BaseSerializerWithVariables):
host, port = self._get_host_port_from_name(name)
return value
def validate_inventory(self, value):
if value.kind == 'smart':
raise serializers.ValidationError({"detail": _("Cannot create Host for Smart Inventory")})
return value
def validate(self, attrs):
name = force_text(attrs.get('name', self.instance and self.instance.name or ''))
host, port = self._get_host_port_from_name(name)
@@ -1406,6 +1411,11 @@ class GroupSerializer(BaseSerializerWithVariables):
if value in ('all', '_meta'):
raise serializers.ValidationError(_('Invalid group name.'))
return value
def validate_inventory(self, value):
if value.kind == 'smart':
raise serializers.ValidationError({"detail": _("Cannot create Group for Smart Inventory")})
return value
def to_representation(self, obj):
ret = super(GroupSerializer, self).to_representation(obj)
@@ -1660,6 +1670,11 @@ class InventorySourceSerializer(UnifiedJobTemplateSerializer, InventorySourceOpt
raise serializers.ValidationError(_("Setting not compatible with existing schedules."))
return value
def validate_inventory(self, value):
if value.kind == 'smart':
raise serializers.ValidationError({"detail": _("Cannot create Inventory Source for Smart Inventory")})
return value
def validate(self, attrs):
def get_field_from_model_or_attrs(fd):
return attrs.get(fd, self.instance and getattr(self.instance, fd) or None)