def extend(self, source, new_image_name, s2i_args=None):
s2i_args = s2i_args or []<EOL>c = self._s2i_command(["<STR_LIT>"] + s2i_args + [source, self.get_full_name()])<EOL>if new_image_name:<EOL><INDENT>c.append(new_image_name)<EOL><DEDENT>try:<EOL><INDENT>run_cmd(c)<EOL><DEDENT>except subprocess.CalledProcessError as ex:<EOL><INDENT>raise ConuException("<STR_LIT>" % ex)<EOL><DEDENT>return S2IDockerImage(new_image_name)<EOL>
extend this s2i-enabled image using provided source, raises ConuException if
`s2i build` fails

:param source: str, source used to extend the image, can be path or url
:param new_image_name: str, name of the new, extended image
:param s2i_args: list of str, additional options and arguments provided to `s2i build`
:return: S2Image instance