mirror of
https://github.com/ansible/awx.git
synced 2026-03-24 04:15:02 -02:30
Merge pull request #5233 from rebeccahhh/devel
Set policy variables to defaults when an instance group is containerized Reviewed-by: https://github.com/apps/softwarefactory-project-zuul
This commit is contained in:
@@ -270,6 +270,11 @@ class InstanceGroup(HasPolicyEditsMixin, BaseModel, RelatedJobsMixin):
|
|||||||
.filter(capacity__gt=0, enabled=True)
|
.filter(capacity__gt=0, enabled=True)
|
||||||
.values_list('hostname', flat=True)))
|
.values_list('hostname', flat=True)))
|
||||||
|
|
||||||
|
def set_default_policy_fields(self):
|
||||||
|
self.policy_instance_list = []
|
||||||
|
self.policy_instance_minimum = 0
|
||||||
|
self.policy_instance_percentage = 0
|
||||||
|
|
||||||
|
|
||||||
class TowerScheduleState(SingletonModel):
|
class TowerScheduleState(SingletonModel):
|
||||||
schedule_last_run = models.DateTimeField(auto_now_add=True)
|
schedule_last_run = models.DateTimeField(auto_now_add=True)
|
||||||
@@ -289,6 +294,8 @@ def on_instance_group_saved(sender, instance, created=False, raw=False, **kwargs
|
|||||||
if created or instance.has_policy_changes():
|
if created or instance.has_policy_changes():
|
||||||
if not instance.is_containerized:
|
if not instance.is_containerized:
|
||||||
schedule_policy_task()
|
schedule_policy_task()
|
||||||
|
elif created or instance.is_containerized:
|
||||||
|
instance.set_default_policy_fields()
|
||||||
|
|
||||||
|
|
||||||
@receiver(post_save, sender=Instance)
|
@receiver(post_save, sender=Instance)
|
||||||
|
|||||||
@@ -274,3 +274,21 @@ def test_instance_group_update_fields(patch, instance, instance_group, admin, co
|
|||||||
assert ["Containerized instances may not be managed via the API"] == resp.data['policy_instance_minimum']
|
assert ["Containerized instances may not be managed via the API"] == resp.data['policy_instance_minimum']
|
||||||
resp = patch(cg_url, {'policy_instance_list':[instance.hostname]}, admin)
|
resp = patch(cg_url, {'policy_instance_list':[instance.hostname]}, admin)
|
||||||
assert ["Containerized instances may not be managed via the API"] == resp.data['policy_instance_list']
|
assert ["Containerized instances may not be managed via the API"] == resp.data['policy_instance_list']
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_containerized_group_default_fields(instance_group, kube_credential):
|
||||||
|
ig = InstanceGroup(name="test_policy_field_defaults")
|
||||||
|
ig.policy_instance_list = [1]
|
||||||
|
ig.policy_instance_minimum = 5
|
||||||
|
ig.policy_instance_percentage = 5
|
||||||
|
ig.save()
|
||||||
|
assert ig.policy_instance_list == [1]
|
||||||
|
assert ig.policy_instance_minimum == 5
|
||||||
|
assert ig.policy_instance_percentage == 5
|
||||||
|
ig.credential = kube_credential
|
||||||
|
ig.save()
|
||||||
|
assert ig.policy_instance_list == []
|
||||||
|
assert ig.policy_instance_minimum == 0
|
||||||
|
assert ig.policy_instance_percentage == 0
|
||||||
|
|
||||||
Reference in New Issue
Block a user