From 61a756c59da119c4c93a2ace4cbe6df812a4f089 Mon Sep 17 00:00:00 2001 From: Jake McDermott Date: Tue, 3 Sep 2019 15:00:54 -0400 Subject: [PATCH] add is_containerized to ig serializer --- awx/api/serializers.py | 7 ++++++- .../add-edit/edit-instance-group.controller.js | 10 +++++++++- .../edit-container-group.controller.js | 10 +++++++++- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/awx/api/serializers.py b/awx/api/serializers.py index 048bafa149..14d8944dc1 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -4730,6 +4730,11 @@ class InstanceGroupSerializer(BaseSerializer): 'Isolated groups have a designated controller group.'), read_only=True ) + is_containerized = serializers.BooleanField( + help_text=_('Indicates whether instances in this group are containerized.' + 'Containerized groups have a designated Openshift or Kubernetes cluster.'), + read_only=True + ) # NOTE: help_text is duplicated from field definitions, no obvious way of # both defining field details here and also getting the field's help_text policy_instance_percentage = serializers.IntegerField( @@ -4755,7 +4760,7 @@ class InstanceGroupSerializer(BaseSerializer): fields = ("id", "type", "url", "related", "name", "created", "modified", "capacity", "committed_capacity", "consumed_capacity", "percent_capacity_remaining", "jobs_running", "jobs_total", - "instances", "controller", "is_controller", "is_isolated", "credential", + "instances", "controller", "is_controller", "is_isolated", "is_containerized", "credential", "policy_instance_percentage", "policy_instance_minimum", "policy_instance_list", "pod_spec_override", "summary_fields") diff --git a/awx/ui/client/src/instance-groups/add-edit/edit-instance-group.controller.js b/awx/ui/client/src/instance-groups/add-edit/edit-instance-group.controller.js index 6b2d66bce4..18401ca08e 100644 --- a/awx/ui/client/src/instance-groups/add-edit/edit-instance-group.controller.js +++ b/awx/ui/client/src/instance-groups/add-edit/edit-instance-group.controller.js @@ -2,6 +2,14 @@ function EditController ($rootScope, $state, models, strings) { const vm = this || {}; const { instanceGroup } = models; + if (instanceGroup.get('is_containerized')) { + return $state.go( + 'instanceGroups.editContainerGroup', + { instance_group_id: instanceGroup.get('id') }, + { reload: true } + ); + } + $rootScope.breadcrumb.instance_group_name = instanceGroup.get('name'); vm.mode = 'edit'; @@ -51,4 +59,4 @@ EditController.$inject = [ 'InstanceGroupsStrings' ]; -export default EditController; \ No newline at end of file +export default EditController; diff --git a/awx/ui/client/src/instance-groups/container-groups/edit-container-group.controller.js b/awx/ui/client/src/instance-groups/container-groups/edit-container-group.controller.js index 463b289947..e242f073c4 100644 --- a/awx/ui/client/src/instance-groups/container-groups/edit-container-group.controller.js +++ b/awx/ui/client/src/instance-groups/container-groups/edit-container-group.controller.js @@ -1,10 +1,18 @@ function EditContainerGroupController($rootScope, $scope, $state, models, strings, i18n, EditContainerGroupDataset) { - const vm = this || {}; const { instanceGroup, credential } = models; + + if (!instanceGroup.get('is_containerized')) { + return $state.go( + 'instanceGroups.edit', + { instance_group_id: instanceGroup.get('id') }, + { reload: true } + ); + } + $rootScope.breadcrumb.instance_group_name = instanceGroup.get('name'); vm.mode = 'add';