| |
| |
| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="utf-8"> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| <meta name="viewport" content="width=device-width, initial-scale=1"> |
| |
| <meta name="description" content="Apache Ozone Documentation"> |
| |
| <title>Documentation for Apache Ozone</title> |
| |
| |
| <link href="../css/bootstrap.min.css" rel="stylesheet"> |
| |
| |
| <link href="../css/ozonedoc.css" rel="stylesheet"> |
| |
| |
| |
| <link href="../swagger-resources/swagger-ui.css" rel="stylesheet"> |
| |
| |
| <script> |
| var _paq = window._paq = window._paq || []; |
| |
| |
| |
| _paq.push(['disableCookies']); |
| |
| |
| _paq.push(['trackPageView']); |
| _paq.push(['enableLinkTracking']); |
| (function() { |
| var u="//analytics.apache.org/"; |
| _paq.push(['setTrackerUrl', u+'matomo.php']); |
| _paq.push(['setSiteId', '34']); |
| var d=document, g=d.createElement('script'), |
| s=d.getElementsByTagName('script')[0]; |
| g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); |
| })(); |
| </script> |
| |
| |
| </head> |
| |
| |
| <body> |
| |
| |
| <nav class="navbar navbar-inverse navbar-fixed-top"> |
| <div class="container-fluid"> |
| <div class="navbar-header"> |
| <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#sidebar" aria-expanded="false" aria-controls="navbar"> |
| <span class="sr-only">Toggle navigation</span> |
| <span class="icon-bar"></span> |
| <span class="icon-bar"></span> |
| <span class="icon-bar"></span> |
| </button> |
| <a href="../index.html" class="navbar-left ozone-logo"> |
| <img src="../ozone-logo-small.png"/> |
| </a> |
| <a class="navbar-brand hidden-xs" href="../index.html"> |
| Apache Ozone/HDDS Documentation |
| </a> |
| <a class="navbar-brand visible-xs-inline" href="#">Apache Ozone</a> |
| </div> |
| <div id="navbar" class="navbar-collapse collapse"> |
| <ul class="nav navbar-nav navbar-right"> |
| <li><a href="https://github.com/apache/ozone">Source</a></li> |
| <li><a href="https://ozone.apache.org">Apache Ozone</a></li> |
| <li><a href="https://apache.org">ASF</a></li> |
| </ul> |
| </div> |
| </div> |
| </nav> |
| |
| |
| <div class="wrapper"> |
| <div class="container-fluid"> |
| <div class="row"> |
| |
| <div class="col-sm-2 col-md-2 sidebar" id="sidebar"> |
| <ul class="nav nav-sidebar"> |
| |
| |
| |
| <li class=""> |
| |
| <a href="../index.html"> |
| |
| |
| |
| <span>Overview</span> |
| </a> |
| </li> |
| |
| |
| |
| <li class=""> |
| |
| <a href="../start.html"> |
| |
| |
| |
| <span>Getting Started</span> |
| </a> |
| </li> |
| |
| |
| |
| <li class=""> |
| <a href="../concept.html"> |
| |
| <span>Architecture</span> |
| </a> |
| <ul class="nav"> |
| |
| <li class=""> |
| |
| <a href="../concept/overview.html">Overview</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../concept/ozonemanager.html">Ozone Manager</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../concept/storagecontainermanager.html">Storage Container Manager</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../concept/containers.html">Containers</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../concept/datanodes.html">Datanodes</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../concept/recon.html">Recon</a> |
| |
| </li> |
| |
| </ul> |
| </li> |
| |
| |
| |
| <li class=""> |
| <a href="../feature.html"> |
| |
| <span>Features</span> |
| </a> |
| <ul class="nav"> |
| |
| <li class=""> |
| |
| <a href="../feature/decommission.html">Decommissioning</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../feature/om-ha.html">OM High Availability</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../feature/erasurecoding.html">Ozone Erasure Coding</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../feature/snapshot.html">Ozone Snapshot</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../feature/scm-ha.html">SCM High Availability</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../feature/streaming-write-pipeline.html">Streaming Write Pipeline</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../feature/dn-merge-rocksdb.html">Merge Container RocksDB in DN</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../feature/prefixfso.html">Prefix based File System Optimization</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../feature/topology.html">Topology awareness</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../feature/quota.html">Quota in Ozone</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../feature/recon.html">Recon Server</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../feature/observability.html">Observability</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../feature/nonrolling-upgrade.html">Non-Rolling Upgrades and Downgrades</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../feature/s3-multi-tenancy.html"> |
| |
| <span>S3 Multi-Tenancy</span> |
| </a> |
| <ul class="nav"> |
| |
| <li class=""> |
| <a href="../feature/s3-multi-tenancy-setup.html">Setup</a> |
| </li> |
| |
| <li class=""> |
| <a href="../feature/s3-tenant-commands.html">Tenant commands</a> |
| </li> |
| |
| <li class=""> |
| <a href="../feature/s3-multi-tenancy-access-control.html">Access Control</a> |
| </li> |
| |
| </ul> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../feature/reconfigurability.html">Reconfigurability</a> |
| |
| </li> |
| |
| </ul> |
| </li> |
| |
| |
| |
| <li class=""> |
| <a href="../interface.html"> |
| |
| <span>Client Interfaces</span> |
| </a> |
| <ul class="nav"> |
| |
| <li class=""> |
| |
| <a href="../interface/ofs.html">Ofs (Hadoop compatible)</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../interface/o3fs.html">O3fs (Hadoop compatible)</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../interface/s3.html">S3 Protocol</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../interface/cli.html">Command Line Interface</a> |
| |
| </li> |
| |
| <li class="active"> |
| |
| <a href="../interface/reconapi.html">Recon API</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../interface/javaapi.html">Java API</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../interface/csi.html">CSI Protocol</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../interface/httpfs.html">HttpFS Gateway</a> |
| |
| </li> |
| |
| </ul> |
| </li> |
| |
| |
| |
| <li class=""> |
| <a href="../security.html"> |
| |
| <span>Security</span> |
| </a> |
| <ul class="nav"> |
| |
| <li class=""> |
| |
| <a href="../security/secureozone.html">Securing Ozone</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../security/securingtde.html">Transparent Data Encryption</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../security/gdpr.html">GDPR in Ozone</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../security/securingdatanodes.html">Securing Datanodes</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../security/securingozonehttp.html">Securing HTTP</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../security/securings3.html">Securing S3</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../security/securityacls.html">Ozone ACLs</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../security/securitywithranger.html">Apache Ranger</a> |
| |
| </li> |
| |
| </ul> |
| </li> |
| |
| |
| |
| <li class=""> |
| |
| <a href="../tools.html"> |
| |
| |
| |
| <span>Tools</span> |
| </a> |
| </li> |
| |
| |
| |
| <li class=""> |
| |
| <a href="../recipe.html"> |
| |
| |
| |
| <span>Recipes</span> |
| </a> |
| </li> |
| |
| |
| <li><a href="../design.html"><span><b>Design docs</b></span></a></li> |
| <li class="visible-xs"><a href="#">References</a> |
| <ul class="nav"> |
| <li><a href="https://github.com/apache/ozone"><span class="glyphicon glyphicon-new-window" aria-hidden="true"></span> Source</a></li> |
| <li><a href="https://ozone.apache.org"><span class="glyphicon glyphicon-new-window" aria-hidden="true"></span> Apache Ozone</a></li> |
| <li><a href="https://apache.org"><span class="glyphicon glyphicon-new-window" aria-hidden="true"></span> ASF</a></li> |
| </ul></li> |
| </ul> |
| |
| </div> |
| |
| <div class="col-sm-10 col-sm-offset-2 col-md-10 col-md-offset-2 main-content"> |
| |
| |
| |
| <div class="col-md-9"> |
| <nav aria-label="breadcrumb"> |
| <ol class="breadcrumb"> |
| <li class="breadcrumb-item"><a href="../index.html">Home</a></li> |
| <li class="breadcrumb-item" aria-current="page"><a href="../interface.html">Client Interfaces</a></li> |
| <li class="breadcrumb-item active" aria-current="page">Recon API</li> |
| </ol> |
| </nav> |
| |
| |
| |
| <div class="pull-right"> |
| |
| |
| |
| |
| |
| <a href="../zh/interface/reconapi.html"><span class="label label-success">ä¸æ–‡</span></a> |
| |
| |
| </div> |
| |
| |
| <div class="col-md-9"> |
| <h1>Recon API</h1> |
| |
| <!--- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <p>The Recon API v1 is a set of HTTP endpoints that help you understand the current |
| state of an Ozone cluster and to troubleshoot if needed.</p> |
| <p>Endpoints that are marked as <em>admin only</em> can only be accessed by Kerberos users |
| specified in the <strong>ozone.administrators</strong> or <strong>ozone.recon.administrators</strong> |
| configurations of a secure cluster. See <a href="../security/secureozone.html">Securing Ozone</a> for more information. |
| To restrict access to these endpoints, set the following configurations:</p> |
| <table> |
| <thead> |
| <tr> |
| <th>Property</th> |
| <th>Value</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td>ozone.security.enabled</td> |
| <td><em>true</em></td> |
| </tr> |
| <tr> |
| <td>ozone.security.http.kerberos.enabled</td> |
| <td><em>true</em></td> |
| </tr> |
| <tr> |
| <td>ozone.acl.enabled</td> |
| <td><em>true</em></td> |
| </tr> |
| </tbody> |
| </table> |
| <p>Checkout an interactive version of the API powered by Swagger <a href="../interface/swaggerreconapi.html">here</a></p> |
| <h2 id="containers-admin-only">Containers (admin only)</h2> |
| <h3 id="get-apiv1containers">GET /api/v1/containers</h3> |
| <p><strong>Parameters</strong></p> |
| <ul> |
| <li> |
| <p>prevKey (optional)</p> |
| <p>Only returns the containers with ID greater than the given prevKey. |
| Example: prevKey=1</p> |
| </li> |
| <li> |
| <p>limit (optional)</p> |
| <p>Only returns the limited number of results. The default limit is 1000.</p> |
| </li> |
| </ul> |
| <p><strong>Returns</strong></p> |
| <p>Returns all the ContainerMetadata objects.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json"> { |
| <span style="color:#f92672">"data"</span>: { |
| <span style="color:#f92672">"totalCount"</span>: <span style="color:#ae81ff">3</span>, |
| <span style="color:#f92672">"containers"</span>: [ |
| { |
| <span style="color:#f92672">"ContainerID"</span>: <span style="color:#ae81ff">1</span>, |
| <span style="color:#f92672">"NumberOfKeys"</span>: <span style="color:#ae81ff">834</span> |
| }, |
| { |
| <span style="color:#f92672">"ContainerID"</span>: <span style="color:#ae81ff">2</span>, |
| <span style="color:#f92672">"NumberOfKeys"</span>: <span style="color:#ae81ff">833</span> |
| }, |
| { |
| <span style="color:#f92672">"ContainerID"</span>: <span style="color:#ae81ff">3</span>, |
| <span style="color:#f92672">"NumberOfKeys"</span>: <span style="color:#ae81ff">833</span> |
| } |
| ] |
| } |
| } |
| </code></pre></div><h3 id="get-apiv1containersidkeys">GET /api/v1/containers/:id/keys</h3> |
| <p><strong>Parameters</strong></p> |
| <ul> |
| <li> |
| <p>prevKey (optional)</p> |
| <p>Only returns the keys that are present after the given prevKey key prefix. |
| Example: prevKey=/vol1/bucket1/key1</p> |
| </li> |
| <li> |
| <p>limit (optional)</p> |
| <p>Only returns the limited number of results. The default limit is 1000.</p> |
| </li> |
| </ul> |
| <p><strong>Returns</strong></p> |
| <p>Returns all the KeyMetadata objects for the given ContainerID.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json"> { |
| <span style="color:#f92672">"totalCount"</span>:<span style="color:#ae81ff">7</span>, |
| <span style="color:#f92672">"keys"</span>: [ |
| { |
| <span style="color:#f92672">"Volume"</span>:<span style="color:#e6db74">"vol-1-73141"</span>, |
| <span style="color:#f92672">"Bucket"</span>:<span style="color:#e6db74">"bucket-3-35816"</span>, |
| <span style="color:#f92672">"Key"</span>:<span style="color:#e6db74">"key-0-43637"</span>, |
| <span style="color:#f92672">"DataSize"</span>:<span style="color:#ae81ff">1000</span>, |
| <span style="color:#f92672">"Versions"</span>:[<span style="color:#ae81ff">0</span>], |
| <span style="color:#f92672">"Blocks"</span>: { |
| <span style="color:#f92672">"0"</span>: [ |
| { |
| <span style="color:#f92672">"containerID"</span>:<span style="color:#ae81ff">1</span>, |
| <span style="color:#f92672">"localID"</span>:<span style="color:#ae81ff">105232659753992201</span> |
| } |
| ] |
| }, |
| <span style="color:#f92672">"CreationTime"</span>:<span style="color:#e6db74">"2020-11-18T18:09:17.722Z"</span>, |
| <span style="color:#f92672">"ModificationTime"</span>:<span style="color:#e6db74">"2020-11-18T18:09:30.405Z"</span> |
| }, |
| <span style="color:#960050;background-color:#1e0010">...</span> |
| ] |
| } |
| </code></pre></div><h3 id="get-apiv1containersmissing">GET /api/v1/containers/missing</h3> |
| <p><strong>Parameters</strong></p> |
| <ul> |
| <li> |
| <p>limit (optional)</p> |
| <p>Only returns the limited number of results. The default limit is 1000.</p> |
| </li> |
| </ul> |
| <p><strong>Returns</strong></p> |
| <p>Returns the MissingContainerMetadata objects for all the missing containers.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json"> { |
| <span style="color:#f92672">"totalCount"</span>: <span style="color:#ae81ff">26</span>, |
| <span style="color:#f92672">"containers"</span>: [{ |
| <span style="color:#f92672">"containerID"</span>: <span style="color:#ae81ff">1</span>, |
| <span style="color:#f92672">"missingSince"</span>: <span style="color:#ae81ff">1605731029145</span>, |
| <span style="color:#f92672">"keys"</span>: <span style="color:#ae81ff">7</span>, |
| <span style="color:#f92672">"pipelineID"</span>: <span style="color:#e6db74">"88646d32-a1aa-4e1a"</span>, |
| <span style="color:#f92672">"replicas"</span>: [{ |
| <span style="color:#f92672">"containerId"</span>: <span style="color:#ae81ff">1</span>, |
| <span style="color:#f92672">"datanodeHost"</span>: <span style="color:#e6db74">"localhost-1"</span>, |
| <span style="color:#f92672">"firstReportTimestamp"</span>: <span style="color:#ae81ff">1605724047057</span>, |
| <span style="color:#f92672">"lastReportTimestamp"</span>: <span style="color:#ae81ff">1605731201301</span> |
| }, |
| <span style="color:#960050;background-color:#1e0010">...</span> |
| ] |
| }, |
| <span style="color:#960050;background-color:#1e0010">...</span> |
| ] |
| } |
| </code></pre></div><h3 id="get-apiv1containersidreplicahistory">GET /api/v1/containers/:id/replicaHistory</h3> |
| <p><strong>Parameters</strong></p> |
| <p>No parameters.</p> |
| <p><strong>Returns</strong></p> |
| <p>Returns all the ContainerHistory objects for the given ContainerID.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json"> [ |
| { |
| <span style="color:#f92672">"containerId"</span>: <span style="color:#ae81ff">1</span>, |
| <span style="color:#f92672">"datanodeHost"</span>: <span style="color:#e6db74">"localhost-1"</span>, |
| <span style="color:#f92672">"firstReportTimestamp"</span>: <span style="color:#ae81ff">1605724047057</span>, |
| <span style="color:#f92672">"lastReportTimestamp"</span>: <span style="color:#ae81ff">1605730421294</span> |
| }, |
| <span style="color:#960050;background-color:#1e0010">...</span> |
| ] |
| </code></pre></div><h3 id="get-apiv1containersunhealthy">GET /api/v1/containers/unhealthy</h3> |
| <p><strong>Parameters</strong></p> |
| <ul> |
| <li> |
| <p>batchNum (optional)</p> |
| <p>The batch number (like “page number”) of results to return. |
| Passing 1, will return records 1 to limit. 2 will return |
| limit + 1 to 2 * limit, etc.</p> |
| </li> |
| <li> |
| <p>limit (optional)</p> |
| <p>Only returns the limited number of results. The default limit is 1000.</p> |
| </li> |
| </ul> |
| <p><strong>Returns</strong></p> |
| <p>Returns the UnhealthyContainerMetadata objects for all the unhealthycontainers.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json"> { |
| <span style="color:#f92672">"missingCount"</span>: <span style="color:#ae81ff">2</span>, |
| <span style="color:#f92672">"underReplicatedCount"</span>: <span style="color:#ae81ff">0</span>, |
| <span style="color:#f92672">"overReplicatedCount"</span>: <span style="color:#ae81ff">0</span>, |
| <span style="color:#f92672">"misReplicatedCount"</span>: <span style="color:#ae81ff">0</span>, |
| <span style="color:#f92672">"containers"</span>: [{ |
| <span style="color:#f92672">"containerID"</span>: <span style="color:#ae81ff">1</span>, |
| <span style="color:#f92672">"containerState"</span>: <span style="color:#e6db74">"MISSING"</span>, |
| <span style="color:#f92672">"unhealthySince"</span>: <span style="color:#ae81ff">1605731029145</span>, |
| <span style="color:#f92672">"expectedReplicaCount"</span>: <span style="color:#ae81ff">3</span>, |
| <span style="color:#f92672">"actualReplicaCount"</span>: <span style="color:#ae81ff">0</span>, |
| <span style="color:#f92672">"replicaDeltaCount"</span>: <span style="color:#ae81ff">3</span>, |
| <span style="color:#f92672">"reason"</span>: <span style="color:#66d9ef">null</span>, |
| <span style="color:#f92672">"keys"</span>: <span style="color:#ae81ff">7</span>, |
| <span style="color:#f92672">"pipelineID"</span>: <span style="color:#e6db74">"88646d32-a1aa-4e1a"</span>, |
| <span style="color:#f92672">"replicas"</span>: [{ |
| <span style="color:#f92672">"containerId"</span>: <span style="color:#ae81ff">1</span>, |
| <span style="color:#f92672">"datanodeHost"</span>: <span style="color:#e6db74">"localhost-1"</span>, |
| <span style="color:#f92672">"firstReportTimestamp"</span>: <span style="color:#ae81ff">1605722960125</span>, |
| <span style="color:#f92672">"lastReportTimestamp"</span>: <span style="color:#ae81ff">1605731230509</span> |
| }, |
| <span style="color:#960050;background-color:#1e0010">...</span> |
| ] |
| }, |
| <span style="color:#960050;background-color:#1e0010">...</span> |
| ] |
| } |
| </code></pre></div><h3 id="get-apiv1containersunhealthystate">GET /api/v1/containers/unhealthy/:state</h3> |
| <p><strong>Parameters</strong></p> |
| <ul> |
| <li> |
| <p>batchNum (optional)</p> |
| <p>The batch number (like “page number”) of results to return. |
| Passing 1, will return records 1 to limit. 2 will return |
| limit + 1 to 2 * limit, etc.</p> |
| </li> |
| <li> |
| <p>limit (optional)</p> |
| <p>Only returns the limited number of results. The default limit is 1000.</p> |
| </li> |
| </ul> |
| <p><strong>Returns</strong></p> |
| <p>Returns the UnhealthyContainerMetadata objects for the containers in the given state. |
| Possible unhealthy container states are <code>MISSING</code>, <code>MIS_REPLICATED</code>,<code>UNDER_REPLICATED</code>, <code>OVER_REPLICATED</code>. |
| The response structure is same as <code>/containers/unhealthy</code>.</p> |
| <h3 id="get-apiv1containersmismatch">GET /api/v1/containers/mismatch</h3> |
| <p><strong>Returns</strong></p> |
| <p>Returns the list of mis-matched containers between OM and SCM</p> |
| <ul> |
| <li>Containers are present in OM, but not in SCM.</li> |
| <li>Containers are present in SCM, but not in OM.</li> |
| </ul> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json">[ |
| { |
| <span style="color:#f92672">"containerId"</span> : <span style="color:#ae81ff">1</span>, |
| <span style="color:#f92672">"numberOfKeys"</span> : <span style="color:#ae81ff">3</span>, |
| <span style="color:#f92672">"pipelines"</span> : [ |
| <span style="color:#e6db74">"pipelineId"</span> <span style="color:#960050;background-color:#1e0010">:</span> <span style="color:#e6db74">"1423ghjds832403232"</span>, |
| <span style="color:#e6db74">"pipelineId"</span> <span style="color:#960050;background-color:#1e0010">:</span> <span style="color:#e6db74">"32vds94943fsdh4443"</span>, |
| <span style="color:#e6db74">"pipelineId"</span> <span style="color:#960050;background-color:#1e0010">:</span> <span style="color:#e6db74">"32vds94943fsdhs443"</span> |
| ], |
| <span style="color:#f92672">"existsAt"</span> : <span style="color:#e6db74">"OM"</span> |
| } |
| <span style="color:#960050;background-color:#1e0010">...</span> |
| ] |
| </code></pre></div><h3 id="get-apiv1containersmismatchdeleted">GET /api/v1/containers/mismatch/deleted</h3> |
| <p><strong>Parameters</strong></p> |
| <ul> |
| <li> |
| <p>prevKey (optional)</p> |
| <p>Returns the set of deleted containers in SCM which are present in OM to find out |
| list of keys mapped to such DELETED state containers after the given prevKey (ContainerId). |
| Example: prevKey=5, skip containers till it seeks correctly to the previous containerId.</p> |
| </li> |
| <li> |
| <p>limit (optional)</p> |
| <p>Only returns the limited number of results. The default limit is 1000.</p> |
| </li> |
| </ul> |
| <p><strong>Returns</strong></p> |
| <p>Returns the set of deleted containers in SCM which are present in OM to find out |
| list of keys mapped to such DELETED state containers.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json">[ |
| { |
| <span style="color:#f92672">"containerId"</span>: <span style="color:#ae81ff">2</span>, |
| <span style="color:#f92672">"numberOfKeys"</span>: <span style="color:#ae81ff">2</span>, |
| <span style="color:#f92672">"pipelines"</span>: [] |
| } |
| <span style="color:#960050;background-color:#1e0010">...</span> |
| ] |
| </code></pre></div><h3 id="get-apiv1keysopen">GET /api/v1/keys/open</h3> |
| <p><strong>Parameters</strong></p> |
| <ul> |
| <li> |
| <p>prevKey (optional)</p> |
| <p>Returns the set of keys/files which are open and present after the given prevKey id. |
| Example: prevKey=/vol1/bucket1/key1, this will skip keys till it seeks correctly to the given prevKey.</p> |
| </li> |
| <li> |
| <p>limit (optional)</p> |
| <p>Only returns the limited number of results. The default limit is 1000.</p> |
| </li> |
| </ul> |
| <p><strong>Returns</strong></p> |
| <p>Returns set of keys/files which are open.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json">{ |
| <span style="color:#f92672">"lastKey"</span>: <span style="color:#e6db74">"/vol1/fso-bucket/dir1/dir2/file2"</span>, |
| <span style="color:#f92672">"replicatedTotal"</span>: <span style="color:#ae81ff">13824</span>, |
| <span style="color:#f92672">"unreplicatedTotal"</span>: <span style="color:#ae81ff">4608</span>, |
| <span style="color:#f92672">"entities"</span>: [ |
| { |
| <span style="color:#f92672">"path"</span>: <span style="color:#e6db74">"/vol1/bucket1/key1"</span>, |
| <span style="color:#f92672">"keyState"</span>: <span style="color:#e6db74">"Open"</span>, |
| <span style="color:#f92672">"inStateSince"</span>: <span style="color:#ae81ff">1667564193026</span>, |
| <span style="color:#f92672">"size"</span>: <span style="color:#ae81ff">1024</span>, |
| <span style="color:#f92672">"replicatedSize"</span>: <span style="color:#ae81ff">3072</span>, |
| <span style="color:#f92672">"unreplicatedSize"</span>: <span style="color:#ae81ff">1024</span>, |
| <span style="color:#f92672">"replicationType"</span>: <span style="color:#e6db74">"RATIS"</span>, |
| <span style="color:#f92672">"replicationFactor"</span>: <span style="color:#e6db74">"THREE"</span> |
| }, |
| { |
| <span style="color:#f92672">"path"</span>: <span style="color:#e6db74">"/vol1/bucket1/key2"</span>, |
| <span style="color:#f92672">"keyState"</span>: <span style="color:#e6db74">"Open"</span>, |
| <span style="color:#f92672">"inStateSince"</span>: <span style="color:#ae81ff">1667564193026</span>, |
| <span style="color:#f92672">"size"</span>: <span style="color:#ae81ff">512</span>, |
| <span style="color:#f92672">"replicatedSize"</span>: <span style="color:#ae81ff">1536</span>, |
| <span style="color:#f92672">"unreplicatedSize"</span>: <span style="color:#ae81ff">512</span>, |
| <span style="color:#f92672">"replicationType"</span>: <span style="color:#e6db74">"RATIS"</span>, |
| <span style="color:#f92672">"replicationFactor"</span>: <span style="color:#e6db74">"THREE"</span> |
| }, |
| { |
| <span style="color:#f92672">"path"</span>: <span style="color:#e6db74">"/vol1/fso-bucket/dir1/file1"</span>, |
| <span style="color:#f92672">"keyState"</span>: <span style="color:#e6db74">"Open"</span>, |
| <span style="color:#f92672">"inStateSince"</span>: <span style="color:#ae81ff">1667564193026</span>, |
| <span style="color:#f92672">"size"</span>: <span style="color:#ae81ff">1024</span>, |
| <span style="color:#f92672">"replicatedSize"</span>: <span style="color:#ae81ff">3072</span>, |
| <span style="color:#f92672">"unreplicatedSize"</span>: <span style="color:#ae81ff">1024</span>, |
| <span style="color:#f92672">"replicationType"</span>: <span style="color:#e6db74">"RATIS"</span>, |
| <span style="color:#f92672">"replicationFactor"</span>: <span style="color:#e6db74">"THREE"</span> |
| }, |
| { |
| <span style="color:#f92672">"path"</span>: <span style="color:#e6db74">"/vol1/fso-bucket/dir1/dir2/file2"</span>, |
| <span style="color:#f92672">"keyState"</span>: <span style="color:#e6db74">"Open"</span>, |
| <span style="color:#f92672">"inStateSince"</span>: <span style="color:#ae81ff">1667564193026</span>, |
| <span style="color:#f92672">"size"</span>: <span style="color:#ae81ff">2048</span>, |
| <span style="color:#f92672">"replicatedSize"</span>: <span style="color:#ae81ff">6144</span>, |
| <span style="color:#f92672">"unreplicatedSize"</span>: <span style="color:#ae81ff">2048</span>, |
| <span style="color:#f92672">"replicationType"</span>: <span style="color:#e6db74">"RATIS"</span>, |
| <span style="color:#f92672">"replicationFactor"</span>: <span style="color:#e6db74">"THREE"</span> |
| } |
| ] |
| } |
| </code></pre></div><h3 id="get-apiv1keysdeletepending">GET /api/v1/keys/deletePending</h3> |
| <p><strong>Parameters</strong></p> |
| <ul> |
| <li> |
| <p>prevKey (optional)</p> |
| <p>Returns the set of keys/files pending for deletion that are present after the given prevKey id. |
| Example: prevKey=/vol1/bucket1/key1, this will skip keys till it seeks correctly to the given prevKey.</p> |
| </li> |
| <li> |
| <p>limit (optional)</p> |
| <p>Only returns the limited number of results. The default limit is 1000.</p> |
| </li> |
| </ul> |
| <p><strong>Returns</strong></p> |
| <p>Returns set of keys/files pending for deletion.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json">{ |
| <span style="color:#f92672">"lastKey"</span>: <span style="color:#e6db74">"sampleVol/bucketOne/key_one"</span>, |
| <span style="color:#f92672">"replicatedTotal"</span>: <span style="color:#ae81ff">-1530804718628866300</span>, |
| <span style="color:#f92672">"unreplicatedTotal"</span>: <span style="color:#ae81ff">-1530804718628866300</span>, |
| <span style="color:#f92672">"deletedkeyinfo"</span>: [ |
| { |
| <span style="color:#f92672">"omKeyInfoList"</span>: [ |
| { |
| <span style="color:#f92672">"metadata"</span>: {}, |
| <span style="color:#f92672">"objectID"</span>: <span style="color:#ae81ff">0</span>, |
| <span style="color:#f92672">"updateID"</span>: <span style="color:#ae81ff">0</span>, |
| <span style="color:#f92672">"parentObjectID"</span>: <span style="color:#ae81ff">0</span>, |
| <span style="color:#f92672">"volumeName"</span>: <span style="color:#e6db74">"sampleVol"</span>, |
| <span style="color:#f92672">"bucketName"</span>: <span style="color:#e6db74">"bucketOne"</span>, |
| <span style="color:#f92672">"keyName"</span>: <span style="color:#e6db74">"key_one"</span>, |
| <span style="color:#f92672">"dataSize"</span>: <span style="color:#ae81ff">-1530804718628866300</span>, |
| <span style="color:#f92672">"keyLocationVersions"</span>: [], |
| <span style="color:#f92672">"creationTime"</span>: <span style="color:#ae81ff">0</span>, |
| <span style="color:#f92672">"modificationTime"</span>: <span style="color:#ae81ff">0</span>, |
| <span style="color:#f92672">"replicationConfig"</span>: { |
| <span style="color:#f92672">"replicationFactor"</span>: <span style="color:#e6db74">"ONE"</span>, |
| <span style="color:#f92672">"requiredNodes"</span>: <span style="color:#ae81ff">1</span>, |
| <span style="color:#f92672">"replicationType"</span>: <span style="color:#e6db74">"STANDALONE"</span> |
| }, |
| <span style="color:#f92672">"fileChecksum"</span>: <span style="color:#66d9ef">null</span>, |
| <span style="color:#f92672">"fileName"</span>: <span style="color:#e6db74">"key_one"</span>, |
| <span style="color:#f92672">"acls"</span>: [], |
| <span style="color:#f92672">"path"</span>: <span style="color:#e6db74">"0/key_one"</span>, |
| <span style="color:#f92672">"file"</span>: <span style="color:#66d9ef">false</span>, |
| <span style="color:#f92672">"latestVersionLocations"</span>: <span style="color:#66d9ef">null</span>, |
| <span style="color:#f92672">"replicatedSize"</span>: <span style="color:#ae81ff">-1530804718628866300</span>, |
| <span style="color:#f92672">"fileEncryptionInfo"</span>: <span style="color:#66d9ef">null</span>, |
| <span style="color:#f92672">"objectInfo"</span>: <span style="color:#e6db74">"OMKeyInfo{volume='sampleVol', bucket='bucketOne', key='key_one', dataSize='-1530804718628866186', creationTime='0', objectID='0', parentID='0', replication='STANDALONE/ONE', fileChecksum='null}"</span>, |
| <span style="color:#f92672">"updateIDset"</span>: <span style="color:#66d9ef">false</span> |
| } |
| ] |
| } |
| ], |
| <span style="color:#f92672">"status"</span>: <span style="color:#e6db74">"OK"</span> |
| } |
| </code></pre></div><h3 id="get-apiv1keysdeletependingdirs">GET /api/v1/keys/deletePending/dirs</h3> |
| <p><strong>Parameters</strong></p> |
| <ul> |
| <li> |
| <p>prevKey (optional)</p> |
| <p>Returns the set of directories pending for deletion that are present after the given prevKey id. |
| Example: prevKey=/vol1/bucket1/bucket1/dir1, this will skip directories till it seeks correctly to the given prevKey.</p> |
| </li> |
| <li> |
| <p>limit (optional)</p> |
| <p>Only returns the limited number of results. The default limit is 1000.</p> |
| </li> |
| </ul> |
| <p><strong>Returns</strong></p> |
| <p>Returns set of directories pending for deletion.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json">{ |
| <span style="color:#f92672">"lastKey"</span>: <span style="color:#e6db74">"vol1/bucket1/bucket1/dir1"</span>, |
| <span style="color:#f92672">"replicatedTotal"</span>: <span style="color:#ae81ff">-1530804718628866300</span>, |
| <span style="color:#f92672">"unreplicatedTotal"</span>: <span style="color:#ae81ff">-1530804718628866300</span>, |
| <span style="color:#f92672">"deletedkeyinfo"</span>: [ |
| { |
| <span style="color:#f92672">"omKeyInfoList"</span>: [ |
| { |
| <span style="color:#f92672">"metadata"</span>: {}, |
| <span style="color:#f92672">"objectID"</span>: <span style="color:#ae81ff">0</span>, |
| <span style="color:#f92672">"updateID"</span>: <span style="color:#ae81ff">0</span>, |
| <span style="color:#f92672">"parentObjectID"</span>: <span style="color:#ae81ff">0</span>, |
| <span style="color:#f92672">"volumeName"</span>: <span style="color:#e6db74">"sampleVol"</span>, |
| <span style="color:#f92672">"bucketName"</span>: <span style="color:#e6db74">"bucketOne"</span>, |
| <span style="color:#f92672">"keyName"</span>: <span style="color:#e6db74">"key_one"</span>, |
| <span style="color:#f92672">"dataSize"</span>: <span style="color:#ae81ff">-1530804718628866300</span>, |
| <span style="color:#f92672">"keyLocationVersions"</span>: [], |
| <span style="color:#f92672">"creationTime"</span>: <span style="color:#ae81ff">0</span>, |
| <span style="color:#f92672">"modificationTime"</span>: <span style="color:#ae81ff">0</span>, |
| <span style="color:#f92672">"replicationConfig"</span>: { |
| <span style="color:#f92672">"replicationFactor"</span>: <span style="color:#e6db74">"ONE"</span>, |
| <span style="color:#f92672">"requiredNodes"</span>: <span style="color:#ae81ff">1</span>, |
| <span style="color:#f92672">"replicationType"</span>: <span style="color:#e6db74">"STANDALONE"</span> |
| }, |
| <span style="color:#f92672">"fileChecksum"</span>: <span style="color:#66d9ef">null</span>, |
| <span style="color:#f92672">"fileName"</span>: <span style="color:#e6db74">"key_one"</span>, |
| <span style="color:#f92672">"acls"</span>: [], |
| <span style="color:#f92672">"path"</span>: <span style="color:#e6db74">"0/key_one"</span>, |
| <span style="color:#f92672">"file"</span>: <span style="color:#66d9ef">false</span>, |
| <span style="color:#f92672">"latestVersionLocations"</span>: <span style="color:#66d9ef">null</span>, |
| <span style="color:#f92672">"replicatedSize"</span>: <span style="color:#ae81ff">-1530804718628866300</span>, |
| <span style="color:#f92672">"fileEncryptionInfo"</span>: <span style="color:#66d9ef">null</span>, |
| <span style="color:#f92672">"objectInfo"</span>: <span style="color:#e6db74">"OMKeyInfo{volume='sampleVol', bucket='bucketOne', key='key_one', dataSize='-1530804718628866186', creationTime='0', objectID='0', parentID='0', replication='STANDALONE/ONE', fileChecksum='null}"</span>, |
| <span style="color:#f92672">"updateIDset"</span>: <span style="color:#66d9ef">false</span> |
| } |
| ] |
| } |
| ], |
| <span style="color:#f92672">"status"</span>: <span style="color:#e6db74">"OK"</span> |
| } |
| </code></pre></div><h2 id="blocks-metadata-admin-only">Blocks Metadata (admin only)</h2> |
| <h3 id="get-apiv1blocksdeletepending">GET /api/v1/blocks/deletePending</h3> |
| <p><strong>Parameters</strong></p> |
| <ul> |
| <li> |
| <p>prevKey (optional)</p> |
| <p>Only returns the list of blocks pending for deletion, that are present after the given block id (prevKey). |
| Example: prevKey=4, this will skip deletedBlocks table key to skip records before prevKey.</p> |
| </li> |
| <li> |
| <p>limit (optional)</p> |
| <p>Only returns the limited number of results. The default limit is 1000.</p> |
| </li> |
| </ul> |
| <p><strong>Returns</strong></p> |
| <p>Returns list of blocks pending for deletion.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json">{ |
| <span style="color:#f92672">"OPEN"</span>: [ |
| { |
| <span style="color:#f92672">"containerId"</span>: <span style="color:#ae81ff">100</span>, |
| <span style="color:#f92672">"localIDList"</span>: [ |
| <span style="color:#ae81ff">1</span>, |
| <span style="color:#ae81ff">2</span>, |
| <span style="color:#ae81ff">3</span>, |
| <span style="color:#ae81ff">4</span> |
| ], |
| <span style="color:#f92672">"localIDCount"</span>: <span style="color:#ae81ff">4</span>, |
| <span style="color:#f92672">"txID"</span>: <span style="color:#ae81ff">1</span> |
| } |
| ] |
| } |
| </code></pre></div><h2 id="namespace-metadata-admin-only">Namespace Metadata (admin only)</h2> |
| <h3 id="get-apiv1namespacesummary">GET /api/v1/namespace/summary</h3> |
| <p><strong>Parameters</strong></p> |
| <ul> |
| <li> |
| <p>path</p> |
| <p>The path request in string without any protocol prefix.</p> |
| </li> |
| </ul> |
| <p><strong>Returns</strong></p> |
| <p>Returns a basic summary of the path, including entity type and aggregate count |
| of objects under the path.</p> |
| <p><code>status</code> is <code>OK</code> if path exists, <code>PATH_NOT_FOUND</code> otherwise.</p> |
| <p>Example: /api/v1/namespace/summary?path=/</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json"> { |
| <span style="color:#f92672">"status"</span>: <span style="color:#960050;background-color:#1e0010">OK</span>, |
| <span style="color:#f92672">"type"</span>: <span style="color:#960050;background-color:#1e0010">ROOT</span>, |
| <span style="color:#f92672">"numVolume"</span>: <span style="color:#ae81ff">10</span>, |
| <span style="color:#f92672">"numBucket"</span>: <span style="color:#ae81ff">100</span>, |
| <span style="color:#f92672">"numDir"</span>: <span style="color:#ae81ff">1000</span>, |
| <span style="color:#f92672">"numKey"</span>: <span style="color:#ae81ff">10000</span> |
| } |
| </code></pre></div><p>Example: /api/v1/namespace/summary?path=/volume1</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json"> { |
| <span style="color:#f92672">"status"</span>: <span style="color:#960050;background-color:#1e0010">OK</span>, |
| <span style="color:#f92672">"type"</span>: <span style="color:#960050;background-color:#1e0010">VOLUME</span>, |
| <span style="color:#f92672">"numVolume"</span>: <span style="color:#ae81ff">-1</span>, |
| <span style="color:#f92672">"numBucket"</span>: <span style="color:#ae81ff">10</span>, |
| <span style="color:#f92672">"numDir"</span>: <span style="color:#ae81ff">100</span>, |
| <span style="color:#f92672">"numKey"</span>: <span style="color:#ae81ff">1000</span> |
| } |
| </code></pre></div><p>Example: /api/v1/namespace/summary?path=/volume1/bucket1</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json"> { |
| <span style="color:#f92672">"status"</span>: <span style="color:#960050;background-color:#1e0010">OK</span>, |
| <span style="color:#f92672">"type"</span>: <span style="color:#960050;background-color:#1e0010">BUCKET</span>, |
| <span style="color:#f92672">"numVolume"</span>: <span style="color:#ae81ff">-1</span>, |
| <span style="color:#f92672">"numBucket"</span>: <span style="color:#ae81ff">-1</span>, |
| <span style="color:#f92672">"numDir"</span>: <span style="color:#ae81ff">50</span>, |
| <span style="color:#f92672">"numKey"</span>: <span style="color:#ae81ff">500</span> |
| } |
| </code></pre></div><p>Example: /api/v1/namespace/summary?path=/volume1/bucket1/dir</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json"> { |
| <span style="color:#f92672">"status"</span>: <span style="color:#960050;background-color:#1e0010">OK</span>, |
| <span style="color:#f92672">"type"</span>: <span style="color:#960050;background-color:#1e0010">DIRECTORY</span>, |
| <span style="color:#f92672">"numVolume"</span>: <span style="color:#ae81ff">-1</span>, |
| <span style="color:#f92672">"numBucket"</span>: <span style="color:#ae81ff">-1</span>, |
| <span style="color:#f92672">"numDir"</span>: <span style="color:#ae81ff">10</span>, |
| <span style="color:#f92672">"numKey"</span>: <span style="color:#ae81ff">100</span> |
| } |
| </code></pre></div><p>Example: /api/v1/namespace/summary?path=/volume1/bucket1/dir/nestedDir</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json"> { |
| <span style="color:#f92672">"status"</span>: <span style="color:#960050;background-color:#1e0010">OK</span>, |
| <span style="color:#f92672">"type"</span>: <span style="color:#960050;background-color:#1e0010">DIRECTORY</span>, |
| <span style="color:#f92672">"numVolume"</span>: <span style="color:#ae81ff">-1</span>, |
| <span style="color:#f92672">"numBucket"</span>: <span style="color:#ae81ff">-1</span>, |
| <span style="color:#f92672">"numDir"</span>: <span style="color:#ae81ff">5</span>, |
| <span style="color:#f92672">"numKey"</span>: <span style="color:#ae81ff">50</span> |
| } |
| </code></pre></div><p>If any <code>num</code> field is <code>-1</code>, the path request is not applicable to such an entity type.</p> |
| <h3 id="get-apiv1namespacedu">GET /api/v1/namespace/du</h3> |
| <p><strong>Parameters</strong></p> |
| <ul> |
| <li> |
| <p>path</p> |
| <p>The path request in string without any protocol prefix.</p> |
| </li> |
| <li> |
| <p>files (optional)</p> |
| <p>A boolean with a default value of <code>false</code>. If set to <code>true</code>, computes disk usage for keys |
| under the path.</p> |
| </li> |
| <li> |
| <p>replica (optional)</p> |
| <p>A boolean with a default value of <code>false</code>. If set to <code>true</code>, computes disk usage with replicated |
| size of keys.</p> |
| </li> |
| </ul> |
| <p><strong>Returns</strong></p> |
| <p>Returns disk usage of all sub-paths under the path. Normalizes <code>path</code> fields, returns |
| total size of keys directly under the path as <code>sizeDirectKey</code>, and returns |
| <code>size</code>/<code>sizeWithReplica</code> in number of bytes.</p> |
| <p><code>status</code> is <code>OK</code> if path exists, <code>PATH_NOT_FOUND</code> otherwise.</p> |
| <p>Example: /api/v1/namespace/du?path=/vol1/bucket1&files=true&replica=true</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json"> { |
| <span style="color:#f92672">"status"</span>: <span style="color:#960050;background-color:#1e0010">OK</span>, |
| <span style="color:#f92672">"path"</span>: <span style="color:#e6db74">"/vol1/bucket1"</span>, |
| <span style="color:#f92672">"size"</span>: <span style="color:#ae81ff">100000</span>, |
| <span style="color:#f92672">"sizeWithReplica"</span>: <span style="color:#ae81ff">300000</span>, |
| <span style="color:#f92672">"subPathCount"</span>: <span style="color:#ae81ff">4</span>, |
| <span style="color:#f92672">"subPaths"</span>: [ |
| { |
| <span style="color:#f92672">"path"</span>: <span style="color:#e6db74">"/vol1/bucket1/dir1-1"</span>, |
| <span style="color:#f92672">"size"</span>: <span style="color:#ae81ff">30000</span>, |
| <span style="color:#f92672">"sizeWithReplica"</span>: <span style="color:#ae81ff">90000</span>, |
| <span style="color:#f92672">"isKey"</span>: <span style="color:#66d9ef">false</span> |
| }, |
| { |
| <span style="color:#f92672">"path"</span>: <span style="color:#e6db74">"/vol1/bucket1/dir1-2"</span>, |
| <span style="color:#f92672">"size"</span>: <span style="color:#ae81ff">30000</span>, |
| <span style="color:#f92672">"sizeWithReplica"</span>: <span style="color:#ae81ff">90000</span>, |
| <span style="color:#f92672">"isKey"</span>: <span style="color:#66d9ef">false</span> |
| }, |
| { |
| <span style="color:#f92672">"path"</span>: <span style="color:#e6db74">"/vol1/bucket1/dir1-3"</span>, |
| <span style="color:#f92672">"size"</span>: <span style="color:#ae81ff">30000</span>, |
| <span style="color:#f92672">"sizeWithReplica"</span>: <span style="color:#ae81ff">90000</span>, |
| <span style="color:#f92672">"isKey"</span>: <span style="color:#66d9ef">false</span> |
| }, |
| { |
| <span style="color:#f92672">"path"</span>: <span style="color:#e6db74">"/vol1/bucket1/key1-1"</span>, |
| <span style="color:#f92672">"size"</span>: <span style="color:#ae81ff">10000</span>, |
| <span style="color:#f92672">"sizeWithReplica"</span>: <span style="color:#ae81ff">30000</span>, |
| <span style="color:#f92672">"isKey"</span>: <span style="color:#66d9ef">true</span> |
| } |
| ], |
| <span style="color:#f92672">"sizeDirectKey"</span>: <span style="color:#ae81ff">10000</span> |
| } |
| </code></pre></div><p>If <code>files</code> is set to <code>false</code>, sub-path <code>/vol1/bucket1/key1-1</code> is omitted. |
| If <code>replica</code> is set to <code>false</code>, <code>sizeWithReplica</code> returns <code>-1</code>. If the path’s entity type |
| cannot have direct keys (Root, Volume), <code>sizeDirectKey</code> returns <code>-1</code>.</p> |
| <h3 id="get-apiv1namespacequota">GET /api/v1/namespace/quota</h3> |
| <p><strong>Parameters</strong></p> |
| <ul> |
| <li> |
| <p>path</p> |
| <p>The path request in string without any protocol prefix.</p> |
| </li> |
| </ul> |
| <p><strong>Returns</strong></p> |
| <p>Returns the quota allowed and used under the path. Only volumes and buckets |
| have quota. Other types are not applicable to the quota request.</p> |
| <p><code>status</code> is <code>OK</code> if the request is valid, <code>PATH_NOT_FOUND</code> if path doesn’t exist, |
| <code>TYPE_NOT_APPLICABLE</code> if path exists, but the path’s entity type is not applicable |
| to the request.</p> |
| <p>Example: /api/v1/namespace/quota?path=/vol</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json"> { |
| <span style="color:#f92672">"status"</span>: <span style="color:#960050;background-color:#1e0010">OK</span>, |
| <span style="color:#f92672">"allowed"</span>: <span style="color:#ae81ff">200000</span>, |
| <span style="color:#f92672">"used"</span>: <span style="color:#ae81ff">160000</span> |
| } |
| </code></pre></div><p>If quota is not set, <code>allowed</code> returns <code>-1</code>. More on [Quota in Ozone] |
| (<a href="https://ci-hadoop.apache.org/view/Hadoop%20Ozone/job/ozone-doc-master/lastSuccessfulBuild/artifact/hadoop-hdds/docs/public/feature/quota.html">https://ci-hadoop.apache.org/view/Hadoop%20Ozone/job/ozone-doc-master/lastSuccessfulBuild/artifact/hadoop-hdds/docs/public/feature/quota.html</a>)</p> |
| <h3 id="get-apiv1namespacedist">GET /api/v1/namespace/dist</h3> |
| <p><strong>Parameters</strong></p> |
| <ul> |
| <li> |
| <p>path</p> |
| <p>The path request in string without any protocol prefix.</p> |
| </li> |
| </ul> |
| <p><strong>Returns</strong></p> |
| <p>Returns the file size distribution of all keys under the path.</p> |
| <p><code>status</code> is <code>OK</code> if the request is valid, <code>PATH_NOT_FOUND</code> if path doesn’t exist, |
| <code>TYPE_NOT_APPLICABLE</code> if path exists, but the path is a key, which does not have |
| a file size distribution.</p> |
| <p>Example: /api/v1/namespace/dist?path=/</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json"> { |
| <span style="color:#f92672">"status"</span>: <span style="color:#960050;background-color:#1e0010">OK</span>, |
| <span style="color:#f92672">"dist"</span>: [ |
| <span style="color:#ae81ff">0</span>, |
| <span style="color:#ae81ff">0</span>, |
| <span style="color:#ae81ff">10</span>, |
| <span style="color:#ae81ff">20</span>, |
| <span style="color:#ae81ff">0</span>, |
| <span style="color:#ae81ff">30</span>, |
| <span style="color:#ae81ff">0</span>, |
| <span style="color:#ae81ff">100</span>, |
| <span style="color:#960050;background-color:#1e0010">...</span> |
| ] |
| } |
| </code></pre></div><p>Recon keeps track of all keys with size from <code>1 KB</code> to <code>1 PB</code>. For keys smaller than <code>1 KB</code>, |
| map to the first bin (index); for keys larger than <code>1 PB</code>, map to the last bin (index).</p> |
| <p>Each index of <code>dist</code> is mapped to a file size range (e.g. <code>1 MB</code> - <code>2 MB</code>).</p> |
| <h2 id="clusterstate">ClusterState</h2> |
| <h3 id="get-apiv1clusterstate">GET /api/v1/clusterState</h3> |
| <p><strong>Parameters</strong></p> |
| <p>No parameters.</p> |
| <p><strong>Returns</strong></p> |
| <p>Returns a summary of the current state of the Ozone cluster.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json"> { |
| <span style="color:#f92672">"pipelines"</span>: <span style="color:#ae81ff">5</span>, |
| <span style="color:#f92672">"totalDatanodes"</span>: <span style="color:#ae81ff">4</span>, |
| <span style="color:#f92672">"healthyDatanodes"</span>: <span style="color:#ae81ff">4</span>, |
| <span style="color:#f92672">"storageReport"</span>: { |
| <span style="color:#f92672">"capacity"</span>: <span style="color:#ae81ff">1081719668736</span>, |
| <span style="color:#f92672">"used"</span>: <span style="color:#ae81ff">1309212672</span>, |
| <span style="color:#f92672">"remaining"</span>: <span style="color:#ae81ff">597361258496</span> |
| }, |
| <span style="color:#f92672">"containers"</span>: <span style="color:#ae81ff">26</span>, |
| <span style="color:#f92672">"volumes"</span>: <span style="color:#ae81ff">6</span>, |
| <span style="color:#f92672">"buckets"</span>: <span style="color:#ae81ff">26</span>, |
| <span style="color:#f92672">"keys"</span>: <span style="color:#ae81ff">25</span> |
| } |
| </code></pre></div><h2 id="volumes-admin-only">Volumes (admin only)</h2> |
| <h3 id="get-apiv1volumes">GET /api/v1/volumes</h3> |
| <p><strong>Parameters</strong></p> |
| <ul> |
| <li> |
| <p>prevKey (optional)</p> |
| <p>Only returns the volume after the given prevKey. |
| Example: prevKey=vol1</p> |
| </li> |
| <li> |
| <p>limit (optional)</p> |
| <p>Only returns the limited number of results. The default limit is 1000.</p> |
| </li> |
| </ul> |
| <p><strong>Returns</strong></p> |
| <p>Returns all the volumes in the cluster.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json"> { |
| <span style="color:#f92672">"totalCount"</span>: <span style="color:#ae81ff">4</span>, |
| <span style="color:#f92672">"volumes"</span>: [{ |
| <span style="color:#f92672">"volume"</span>: <span style="color:#e6db74">"vol1"</span>, |
| <span style="color:#f92672">"owner"</span>: <span style="color:#e6db74">"testuser"</span>, |
| <span style="color:#f92672">"admin"</span>: <span style="color:#e6db74">"ozone"</span>, |
| <span style="color:#f92672">"creationTime"</span>: <span style="color:#ae81ff">1665588176660</span> , |
| <span style="color:#f92672">"modificationTime"</span>: <span style="color:#ae81ff">1665590397315</span>, |
| <span style="color:#f92672">"quotaInNamespace"</span>: <span style="color:#ae81ff">2048</span>, |
| <span style="color:#f92672">"quotaInBytes"</span>: <span style="color:#ae81ff">1073741824</span>, |
| <span style="color:#f92672">"usedNamespace"</span>: <span style="color:#ae81ff">10</span>, |
| <span style="color:#f92672">"acls"</span>: [ |
| { |
| <span style="color:#f92672">"type"</span>: <span style="color:#e6db74">"USER"</span>, |
| <span style="color:#f92672">"name"</span>: <span style="color:#e6db74">"testuser"</span>, |
| <span style="color:#f92672">"scope"</span>: <span style="color:#e6db74">"ACCESS"</span>, |
| <span style="color:#f92672">"aclList"</span>: [ |
| <span style="color:#e6db74">"WRITE"</span>, |
| <span style="color:#e6db74">"READ"</span>, |
| <span style="color:#e6db74">"DELETE"</span> |
| ] |
| } |
| ] |
| }, |
| <span style="color:#960050;background-color:#1e0010">...</span> |
| ] |
| } |
| </code></pre></div><h2 id="buckets-admin-only">Buckets (admin only)</h2> |
| <h3 id="get-apiv1buckets">GET /api/v1/buckets</h3> |
| <p><strong>Parameters</strong></p> |
| <ul> |
| <li> |
| <p>volume (optional)</p> |
| <p>The volume in string without any protocol prefix.</p> |
| </li> |
| <li> |
| <p>prevKey (optional)</p> |
| <p>Only returns the bucket after the given prevKey. prevKey is ignored if volume is not specified. |
| Example: prevKey=bucket1</p> |
| </li> |
| <li> |
| <p>limit (optional)</p> |
| <p>Only returns the limited number of results. The default limit is 1000.</p> |
| </li> |
| </ul> |
| <p><strong>Returns</strong></p> |
| <p>Returns all the buckets in the cluster if volume is not specified or it is an empty string. |
| If <code>volume</code> is specified, it returns only the buckets under <code>volume</code>.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json"> { |
| <span style="color:#f92672">"totalCount"</span>: <span style="color:#ae81ff">5</span>, |
| <span style="color:#f92672">"buckets"</span>: [{ |
| <span style="color:#f92672">"volumeName"</span>: <span style="color:#e6db74">"vol1"</span>, |
| <span style="color:#f92672">"bucketName"</span>: <span style="color:#e6db74">"buck1"</span>, |
| <span style="color:#f92672">"versioning"</span>: <span style="color:#66d9ef">false</span>, |
| <span style="color:#f92672">"storageType"</span>: <span style="color:#e6db74">"DISK"</span>, |
| <span style="color:#f92672">"creationTime"</span>: <span style="color:#ae81ff">1665588176616</span>, |
| <span style="color:#f92672">"modificationTime"</span>: <span style="color:#ae81ff">1665590392293</span>, |
| <span style="color:#f92672">"usedBytes"</span>: <span style="color:#ae81ff">943718400</span>, |
| <span style="color:#f92672">"usedNamespace"</span>: <span style="color:#ae81ff">40000</span>, |
| <span style="color:#f92672">"quotaInBytes"</span>: <span style="color:#ae81ff">1073741824</span>, |
| <span style="color:#f92672">"quotaInNamespace"</span>: <span style="color:#ae81ff">50000</span>, |
| <span style="color:#f92672">"owner"</span>: <span style="color:#e6db74">"testuser"</span>, |
| <span style="color:#f92672">"bucketLayout"</span>: <span style="color:#e6db74">"OBJECT_STORE"</span>, |
| <span style="color:#f92672">"acls"</span>: [ |
| { |
| <span style="color:#f92672">"type"</span>: <span style="color:#e6db74">"USER"</span>, |
| <span style="color:#f92672">"name"</span>: <span style="color:#e6db74">"testuser"</span>, |
| <span style="color:#f92672">"scope"</span>: <span style="color:#e6db74">"ACCESS"</span>, |
| <span style="color:#f92672">"aclList"</span>: [ |
| <span style="color:#e6db74">"WRITE"</span>, |
| <span style="color:#e6db74">"READ"</span>, |
| <span style="color:#e6db74">"DELETE"</span> |
| ] |
| } |
| ] |
| }, |
| <span style="color:#960050;background-color:#1e0010">...</span> |
| ] |
| } |
| </code></pre></div><h2 id="datanodes">Datanodes</h2> |
| <h3 id="get-apiv1datanodes">GET /api/v1/datanodes</h3> |
| <p><strong>Parameters</strong></p> |
| <p>No parameters.</p> |
| <p><strong>Returns</strong></p> |
| <p>Returns all the datanodes in the cluster.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json"> { |
| <span style="color:#f92672">"totalCount"</span>: <span style="color:#ae81ff">4</span>, |
| <span style="color:#f92672">"datanodes"</span>: [{ |
| <span style="color:#f92672">"uuid"</span>: <span style="color:#e6db74">"f8f8cb45-3ab2-4123"</span>, |
| <span style="color:#f92672">"hostname"</span>: <span style="color:#e6db74">"localhost-1"</span>, |
| <span style="color:#f92672">"state"</span>: <span style="color:#e6db74">"HEALTHY"</span>, |
| <span style="color:#f92672">"lastHeartbeat"</span>: <span style="color:#ae81ff">1605738400544</span>, |
| <span style="color:#f92672">"storageReport"</span>: { |
| <span style="color:#f92672">"capacity"</span>: <span style="color:#ae81ff">270429917184</span>, |
| <span style="color:#f92672">"used"</span>: <span style="color:#ae81ff">358805504</span>, |
| <span style="color:#f92672">"remaining"</span>: <span style="color:#ae81ff">119648149504</span> |
| }, |
| <span style="color:#f92672">"pipelines"</span>: [{ |
| <span style="color:#f92672">"pipelineID"</span>: <span style="color:#e6db74">"b9415b20-b9bd-4225"</span>, |
| <span style="color:#f92672">"replicationType"</span>: <span style="color:#e6db74">"RATIS"</span>, |
| <span style="color:#f92672">"replicationFactor"</span>: <span style="color:#ae81ff">3</span>, |
| <span style="color:#f92672">"leaderNode"</span>: <span style="color:#e6db74">"localhost-2"</span> |
| }, { |
| <span style="color:#f92672">"pipelineID"</span>: <span style="color:#e6db74">"3bf4a9e9-69cc-4d20"</span>, |
| <span style="color:#f92672">"replicationType"</span>: <span style="color:#e6db74">"RATIS"</span>, |
| <span style="color:#f92672">"replicationFactor"</span>: <span style="color:#ae81ff">1</span>, |
| <span style="color:#f92672">"leaderNode"</span>: <span style="color:#e6db74">"localhost-1"</span> |
| }], |
| <span style="color:#f92672">"containers"</span>: <span style="color:#ae81ff">17</span>, |
| <span style="color:#f92672">"leaderCount"</span>: <span style="color:#ae81ff">1</span> |
| }, |
| <span style="color:#960050;background-color:#1e0010">...</span> |
| ] |
| } |
| </code></pre></div><h2 id="pipelines">Pipelines</h2> |
| <h3 id="get-apiv1pipelines">GET /api/v1/pipelines</h3> |
| <p><strong>Parameters</strong></p> |
| <p>No parameters.</p> |
| <p><strong>Returns</strong></p> |
| <p>Returns all the pipelines in the cluster.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json"> { |
| <span style="color:#f92672">"totalCount"</span>: <span style="color:#ae81ff">5</span>, |
| <span style="color:#f92672">"pipelines"</span>: [{ |
| <span style="color:#f92672">"pipelineId"</span>: <span style="color:#e6db74">"b9415b20-b9bd-4225"</span>, |
| <span style="color:#f92672">"status"</span>: <span style="color:#e6db74">"OPEN"</span>, |
| <span style="color:#f92672">"leaderNode"</span>: <span style="color:#e6db74">"localhost-1"</span>, |
| <span style="color:#f92672">"datanodes"</span>: [<span style="color:#e6db74">"localhost-1"</span>, <span style="color:#e6db74">"localhost-2"</span>, <span style="color:#e6db74">"localhost-3"</span>], |
| <span style="color:#f92672">"lastLeaderElection"</span>: <span style="color:#ae81ff">0</span>, |
| <span style="color:#f92672">"duration"</span>: <span style="color:#ae81ff">23166128</span>, |
| <span style="color:#f92672">"leaderElections"</span>: <span style="color:#ae81ff">0</span>, |
| <span style="color:#f92672">"replicationType"</span>: <span style="color:#e6db74">"RATIS"</span>, |
| <span style="color:#f92672">"replicationFactor"</span>: <span style="color:#ae81ff">3</span>, |
| <span style="color:#f92672">"containers"</span>: <span style="color:#ae81ff">0</span> |
| }, |
| <span style="color:#960050;background-color:#1e0010">...</span> |
| ] |
| } |
| </code></pre></div><h2 id="tasks">Tasks</h2> |
| <h3 id="get-apiv1taskstatus">GET /api/v1/task/status</h3> |
| <p><strong>Parameters</strong></p> |
| <p>No parameters.</p> |
| <p><strong>Returns</strong></p> |
| <p>Returns the status of all the Recon tasks.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json"> [ |
| { |
| <span style="color:#f92672">"taskName"</span>: <span style="color:#e6db74">"OmDeltaRequest"</span>, |
| <span style="color:#f92672">"lastUpdatedTimestamp"</span>: <span style="color:#ae81ff">1605724099147</span>, |
| <span style="color:#f92672">"lastUpdatedSeqNumber"</span>: <span style="color:#ae81ff">186</span> |
| }, |
| <span style="color:#960050;background-color:#1e0010">...</span> |
| ] |
| </code></pre></div><h2 id="utilization">Utilization</h2> |
| <h3 id="get-apiv1utilizationfilecount">GET /api/v1/utilization/fileCount</h3> |
| <p><strong>Parameters</strong></p> |
| <ul> |
| <li> |
| <p>volume (optional)</p> |
| <p>Filters the results based on the given volume name.</p> |
| </li> |
| <li> |
| <p>bucket (optional)</p> |
| <p>Filters the results based on the given bucket name.</p> |
| </li> |
| <li> |
| <p>fileSize (optional)</p> |
| <p>Filters the results based on the given fileSize.</p> |
| </li> |
| </ul> |
| <p><strong>Returns</strong></p> |
| <p>Returns the file counts within different file ranges with <code>fileSize</code> in the |
| response object being the upper cap for file size range.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json"> [{ |
| <span style="color:#f92672">"volume"</span>: <span style="color:#e6db74">"vol-2-04168"</span>, |
| <span style="color:#f92672">"bucket"</span>: <span style="color:#e6db74">"bucket-0-11685"</span>, |
| <span style="color:#f92672">"fileSize"</span>: <span style="color:#ae81ff">1024</span>, |
| <span style="color:#f92672">"count"</span>: <span style="color:#ae81ff">1</span> |
| }, { |
| <span style="color:#f92672">"volume"</span>: <span style="color:#e6db74">"vol-2-04168"</span>, |
| <span style="color:#f92672">"bucket"</span>: <span style="color:#e6db74">"bucket-1-41795"</span>, |
| <span style="color:#f92672">"fileSize"</span>: <span style="color:#ae81ff">1024</span>, |
| <span style="color:#f92672">"count"</span>: <span style="color:#ae81ff">1</span> |
| }, { |
| <span style="color:#f92672">"volume"</span>: <span style="color:#e6db74">"vol-2-04168"</span>, |
| <span style="color:#f92672">"bucket"</span>: <span style="color:#e6db74">"bucket-2-93377"</span>, |
| <span style="color:#f92672">"fileSize"</span>: <span style="color:#ae81ff">1024</span>, |
| <span style="color:#f92672">"count"</span>: <span style="color:#ae81ff">1</span> |
| }, { |
| <span style="color:#f92672">"volume"</span>: <span style="color:#e6db74">"vol-2-04168"</span>, |
| <span style="color:#f92672">"bucket"</span>: <span style="color:#e6db74">"bucket-3-50336"</span>, |
| <span style="color:#f92672">"fileSize"</span>: <span style="color:#ae81ff">1024</span>, |
| <span style="color:#f92672">"count"</span>: <span style="color:#ae81ff">2</span> |
| }] |
| </code></pre></div><h2 id="metrics">Metrics</h2> |
| <h3 id="get-apiv1metricsapi">GET /api/v1/metrics/:api</h3> |
| <p><strong>Parameters</strong></p> |
| <p>Refer to <a href="https://prometheus.io/docs/prometheus/latest/querying/api/">Prometheus HTTP API Reference</a> |
| for complete documentation on querying.</p> |
| <p><strong>Returns</strong></p> |
| <p>This is a proxy endpoint for Prometheus and returns the same response as |
| the prometheus endpoint. |
| Example: /api/v1/metrics/query?query=ratis_leader_election_electionCount</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json"> { |
| <span style="color:#f92672">"status"</span>: <span style="color:#e6db74">"success"</span>, |
| <span style="color:#f92672">"data"</span>: { |
| <span style="color:#f92672">"resultType"</span>: <span style="color:#e6db74">"vector"</span>, |
| <span style="color:#f92672">"result"</span>: [ |
| { |
| <span style="color:#f92672">"metric"</span>: { |
| <span style="color:#f92672">"__name__"</span>: <span style="color:#e6db74">"ratis_leader_election_electionCount"</span>, |
| <span style="color:#f92672">"exported_instance"</span>: <span style="color:#e6db74">"33a5ac1d-8c65-4c74-a0b8-9314dfcccb42"</span>, |
| <span style="color:#f92672">"group"</span>: <span style="color:#e6db74">"group-03CA9397D54B"</span>, |
| <span style="color:#f92672">"instance"</span>: <span style="color:#e6db74">"ozone_datanode_1:9882"</span>, |
| <span style="color:#f92672">"job"</span>: <span style="color:#e6db74">"ozone"</span> |
| }, |
| <span style="color:#f92672">"value"</span>: [ |
| <span style="color:#ae81ff">1599159384.455</span>, |
| <span style="color:#e6db74">"5"</span> |
| ] |
| } |
| ] |
| } |
| } |
| </code></pre></div> |
| |
| |
| <a class="btn btn-success btn-lg" href="../interface/javaapi.html">Next >></a> |
| |
| </div> |
| |
| </div> |
| </div> |
| </div> |
| </div> |
| <div class="push"></div> |
| </div> |
| |
| |
| |
| <footer class="footer"> |
| <div class="container"> |
| <span class="small text-muted"> |
| Version: 1.5.0-SNAPSHOT, Last Modified: February 27, 2024 <a class="hide-child link primary-color" href="https://github.com/apache/ozone/commit/7939faf7d6c904bf1e4ad32baa5d6d0c1de19003">7939faf</a> |
| </span> |
| </div> |
| </footer> |
| |
| |
| |
| <script src="../js/jquery-3.5.1.min.js"></script> |
| <script src="../js/ozonedoc.js"></script> |
| <script src="../js/bootstrap.min.js"></script> |
| |
| |
| </body> |
| |
| </html> |