'Returns a clone of the ``ep`` profile.  ``kwargs`` can be specified to update attributes
of the returned profile.
This is a shallow clone, so any objects referenced by the profile are shared. This means Load Balancing Policy
is maintained by inclusion in the active profiles. It also means updating any other rich objects will be seen
by the active profile. In cases where this is not desirable, be sure to replace the instance instead of manipulating
the shared object.'

def execution_profile_clone_update(self, ep, **kwargs):

    clone = copy(self._get_execution_profile(ep))
    for (attr, value) in kwargs.items():
        setattr(clone, attr, value)
    return clone
