def targets_registered(name, targets, region=None, key=None, keyid=None,
                       profile=None, **kwargs):
    '''
    .. versionadded:: 2017.7.0

    Add targets to an Application Load Balancer target group. This state will not remove targets.

    name
        The ARN of the Application Load Balancer Target Group to add targets to.

    targets
        A list of target IDs or a string of a single target that this target group should
        distribute traffic to.

    .. code-block:: yaml

        add-targets:
          boto_elb.targets_registered:
            - name: arn:myloadbalancer
            - targets:
              - instance-id1
              - instance-id2
    '''
    ret = {'name': name, 'result': None, 'comment': '', 'changes': {}}

    if __salt__['boto_elbv2.target_group_exists'](name, region, key, keyid, profile):
        health = __salt__['boto_elbv2.describe_target_health'](name,
                                                               region=region,
                                                               key=key,
                                                               keyid=keyid,
                                                               profile=profile)
        failure = False
        changes = False
        newhealth_mock = copy.copy(health)

        if isinstance(targets, six.string_types):
            targets = [targets]

        for target in targets:
            if target in health and health.get(target) != "draining":
                ret['comment'] = ret['comment'] + 'Target/s {0} already registered and is {1}.\n'.format(target, health[target])
                ret['result'] = True
            else:
                if __opts__['test']:
                    changes = True
                    newhealth_mock.update({target: "initial"})
                else:
                    state = __salt__['boto_elbv2.register_targets'](name,
                                                                    targets,
                                                                    region=region,
                                                                    key=key,
                                                                    keyid=keyid,
                                                                    profile=profile)
                    if state:
                        changes = True
                        ret['result'] = True
                    else:
                        ret['comment'] = 'Target Group {0} failed to add targets'.format(name)
                        failure = True
        if failure:
            ret['result'] = False
        if changes:
            ret['changes']['old'] = health
            if __opts__['test']:
                ret['comment'] = 'Target Group {0} would be changed'.format(name)
                ret['result'] = None
                ret['changes']['new'] = newhealth_mock
            else:
                ret['comment'] = 'Target Group {0} has been changed'.format(name)
                newhealth = __salt__['boto_elbv2.describe_target_health'](name,
                                                                          region=region,
                                                                          key=key,
                                                                          keyid=keyid,
                                                                          profile=profile)
                ret['changes']['new'] = newhealth
        return ret
    else:
        ret['comment'] = 'Could not find target group {0}'.format(name)
    return ret
def targets_registered ( name , targets , region = None , key = None , keyid = None , profile = None , ** kwargs ) : ret = { 'name' : name , 'result' : None , 'comment' : '' , 'changes' : { } } if __salt__ [ 'boto_elbv2.target_group_exists' ] ( name , region , key , keyid , profile ) : health = __salt__ [ 'boto_elbv2.describe_target_health' ] ( name , region = region , key = key , keyid = keyid , profile = profile ) failure = False changes = False newhealth_mock = copy . copy ( health ) if isinstance ( targets , six . string_types ) : targets = [ targets ] for target in targets : if target in health and health . get ( target ) != "draining" : ret [ 'comment' ] = ret [ 'comment' ] + 'Target/s {0} already registered and is {1}.\n' . format ( target , health [ target ] ) ret [ 'result' ] = True else : if __opts__ [ 'test' ] : changes = True newhealth_mock . update ( { target : "initial" } ) else : state = __salt__ [ 'boto_elbv2.register_targets' ] ( name , targets , region = region , key = key , keyid = keyid , profile = profile ) if state : changes = True ret [ 'result' ] = True else : ret [ 'comment' ] = 'Target Group {0} failed to add targets' . format ( name ) failure = True if failure : ret [ 'result' ] = False if changes : ret [ 'changes' ] [ 'old' ] = health if __opts__ [ 'test' ] : ret [ 'comment' ] = 'Target Group {0} would be changed' . format ( name ) ret [ 'result' ] = None ret [ 'changes' ] [ 'new' ] = newhealth_mock else : ret [ 'comment' ] = 'Target Group {0} has been changed' . format ( name ) newhealth = __salt__ [ 'boto_elbv2.describe_target_health' ] ( name , region = region , key = key , keyid = keyid , profile = profile ) ret [ 'changes' ] [ 'new' ] = newhealth return ret else : ret [ 'comment' ] = 'Could not find target group {0}' . format ( name ) return ret
.. versionadded:: 2017.7.0

    Add targets to an Application Load Balancer target group. This state will not remove targets.

    name
        The ARN of the Application Load Balancer Target Group to add targets to.

    targets
        A list of target IDs or a string of a single target that this target group should
        distribute traffic to.

    .. code-block:: yaml

        add-targets:
          boto_elb.targets_registered:
            - name: arn:myloadbalancer
            - targets:
              - instance-id1
              - instance-id2