1
0
mirror of https://github.com/ansible/awx.git synced 2024-10-27 09:25:10 +03:00

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:
softwarefactory-project-zuul[bot] 2019-11-12 19:55:41 +00:00 committed by GitHub
commit 06c53c14be
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 0 deletions

View File

@ -270,6 +270,11 @@ class InstanceGroup(HasPolicyEditsMixin, BaseModel, RelatedJobsMixin):
.filter(capacity__gt=0, enabled=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):
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 not instance.is_containerized:
schedule_policy_task()
elif created or instance.is_containerized:
instance.set_default_policy_fields()
@receiver(post_save, sender=Instance)

View File

@ -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']
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']
@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