<p dir="auto">Add new "local" snapshot repository type that would be similar to shared filesystem repository but will allow storing all snapshot file on a local file system of a single node.</p>
<p dir="auto"><strong>Elasticsearch version</strong>: v5.0.0-alpha5</p>
<p dir="auto"><strong>Plugins installed</strong>: x-pack</p>
<p dir="auto"><strong>JVM version</strong>: jdk1.8.0_92</p>
<p dir="auto"><strong>OS version</strong>: Mac 10.11.5</p>
<p dir="auto"><strong>Description of the problem including expected versus actual behavior</strong>:<br>
When using an ingest pipeline with a rename processor that tries to rename the element to a nested one where the parent object name is the same as the current object, it fails.</p>
<p dir="auto"><strong>Steps to reproduce</strong>:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="POST _ingest/pipeline/_simulate
{
  &quot;pipeline&quot;: {
    &quot;processors&quot;: [
      {
        &quot;rename&quot;: {
          &quot;field&quot;: &quot;version&quot;,
          &quot;target_field&quot;: &quot;version.displayName&quot;
        }
      }
    ]
  },
  &quot;docs&quot;: [
    {
      &quot;_index&quot;: &quot;myindex&quot;,
      &quot;_type&quot;: &quot;doc&quot;,
      &quot;_id&quot;: &quot;1&quot;,
      &quot;_source&quot;: {
        &quot;version&quot;: &quot;1.1.0&quot;
      }
    }
  ]
}"><pre class="notranslate"><code class="notranslate">POST _ingest/pipeline/_simulate
{
  "pipeline": {
    "processors": [
      {
        "rename": {
          "field": "version",
          "target_field": "version.displayName"
        }
      }
    ]
  },
  "docs": [
    {
      "_index": "myindex",
      "_type": "doc",
      "_id": "1",
      "_source": {
        "version": "1.1.0"
      }
    }
  ]
}
</code></pre></div>
<p dir="auto">Results in the following error:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="{
  &quot;docs&quot;: [
    {
      &quot;error&quot;: {
        &quot;root_cause&quot;: [
          {
            &quot;type&quot;: &quot;exception&quot;,
            &quot;reason&quot;: &quot;java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: cannot set [displayName] with parent object of type [java.lang.String] as part of path [version.displayName]&quot;,
            &quot;header&quot;: {
              &quot;processor_type&quot;: &quot;rename&quot;
            }
          }
        ],
        &quot;type&quot;: &quot;exception&quot;,
        &quot;reason&quot;: &quot;java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: cannot set [displayName] with parent object of type [java.lang.String] as part of path [version.displayName]&quot;,
        &quot;caused_by&quot;: {
          &quot;type&quot;: &quot;illegal_argument_exception&quot;,
          &quot;reason&quot;: &quot;java.lang.IllegalArgumentException: cannot set [displayName] with parent object of type [java.lang.String] as part of path [version.displayName]&quot;,
          &quot;caused_by&quot;: {
            &quot;type&quot;: &quot;illegal_argument_exception&quot;,
            &quot;reason&quot;: &quot;cannot set [displayName] with parent object of type [java.lang.String] as part of path [version.displayName]&quot;
          }
        },
        &quot;header&quot;: {
          &quot;processor_type&quot;: &quot;rename&quot;
        }
      }
    }
  ]
}"><pre class="notranslate"><code class="notranslate">{
  "docs": [
    {
      "error": {
        "root_cause": [
          {
            "type": "exception",
            "reason": "java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: cannot set [displayName] with parent object of type [java.lang.String] as part of path [version.displayName]",
            "header": {
              "processor_type": "rename"
            }
          }
        ],
        "type": "exception",
        "reason": "java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: cannot set [displayName] with parent object of type [java.lang.String] as part of path [version.displayName]",
        "caused_by": {
          "type": "illegal_argument_exception",
          "reason": "java.lang.IllegalArgumentException: cannot set [displayName] with parent object of type [java.lang.String] as part of path [version.displayName]",
          "caused_by": {
            "type": "illegal_argument_exception",
            "reason": "cannot set [displayName] with parent object of type [java.lang.String] as part of path [version.displayName]"
          }
        },
        "header": {
          "processor_type": "rename"
        }
      }
    }
  ]
}
</code></pre></div>
<p dir="auto">Desired expectation is that this would work. The workaround right now is to rename to a temporary name. So for example:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="POST _ingest/pipeline/_simulate
{
  &quot;pipeline&quot;: {
    &quot;processors&quot;: [
      {
        &quot;rename&quot;: {
          &quot;field&quot;: &quot;version&quot;,
          &quot;target_field&quot;: &quot;versionTemp&quot;
        }
      },
      {
        &quot;rename&quot;: {
          &quot;field&quot;: &quot;versionTemp&quot;,
          &quot;target_field&quot;: &quot;version.displayName&quot;
        }
      }
    ]
  },
  &quot;docs&quot;: [
    {
      &quot;_index&quot;: &quot;myindex&quot;,
      &quot;_type&quot;: &quot;doc&quot;,
      &quot;_id&quot;: &quot;1&quot;,
      &quot;_source&quot;: {
        &quot;version&quot;: &quot;1.1.0&quot;
      }
    }
  ]
}"><pre class="notranslate"><code class="notranslate">POST _ingest/pipeline/_simulate
{
  "pipeline": {
    "processors": [
      {
        "rename": {
          "field": "version",
          "target_field": "versionTemp"
        }
      },
      {
        "rename": {
          "field": "versionTemp",
          "target_field": "version.displayName"
        }
      }
    ]
  },
  "docs": [
    {
      "_index": "myindex",
      "_type": "doc",
      "_id": "1",
      "_source": {
        "version": "1.1.0"
      }
    }
  ]
}
</code></pre></div>