First commit"
Change-Id: I3bd0289dd7415db9f6edb39163aeb42a9bcf1baf
This commit is contained in:
parent
58e19d2cda
commit
abdbee8261
|
@ -0,0 +1,8 @@
|
|||
[run]
|
||||
branch = True
|
||||
source = manila
|
||||
omit = manila/test*
|
||||
concurrency = eventlet
|
||||
|
||||
[report]
|
||||
precision = 0
|
|
@ -0,0 +1,47 @@
|
|||
*.DS_Store
|
||||
*.orig
|
||||
*.log
|
||||
*.mo
|
||||
*.pyc
|
||||
*.sqlite
|
||||
# Linux swap files range from .saa to .swp
|
||||
*.s[a-w][a-p]
|
||||
.manila-venv
|
||||
.coverage
|
||||
.stestr/*
|
||||
.tox
|
||||
.venv
|
||||
.idea
|
||||
*.egg*
|
||||
AUTHORS
|
||||
Authors
|
||||
build/*
|
||||
build-stamp
|
||||
CA/
|
||||
ChangeLog
|
||||
cover/*
|
||||
covhtml
|
||||
dist/*
|
||||
etc/manila/manila.conf.sample
|
||||
instances
|
||||
keeper
|
||||
keys
|
||||
local_settings.py
|
||||
subunit.log
|
||||
tools/conf/manila.conf*
|
||||
tags
|
||||
# Files created by Sphinx build
|
||||
doc/build
|
||||
doc/source/_static
|
||||
.autogenerated
|
||||
api-ref/build
|
||||
|
||||
# Files created by releasenotes build
|
||||
releasenotes/build
|
||||
|
||||
# Development environment files
|
||||
.project
|
||||
.pydevproject
|
||||
|
||||
# Lock dirs and files
|
||||
manila_locks
|
|
@ -0,0 +1,39 @@
|
|||
---
|
||||
default_language_version:
|
||||
# force all unspecified python hooks to run python3
|
||||
python: python3
|
||||
repos:
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v4.4.0
|
||||
hooks:
|
||||
- id: trailing-whitespace
|
||||
- id: mixed-line-ending
|
||||
args: ['--fix', 'lf']
|
||||
exclude: '.*\.(svg)$'
|
||||
- id: check-byte-order-marker
|
||||
- id: check-executables-have-shebangs
|
||||
- id: check-merge-conflict
|
||||
- id: debug-statements
|
||||
- id: check-yaml
|
||||
files: .*\.(yaml|yml)$
|
||||
exclude: '^(zuul.d|rally-jobs)/.*$'
|
||||
- repo: https://github.com/PyCQA/doc8
|
||||
rev: v1.1.1
|
||||
hooks:
|
||||
- id: doc8
|
||||
args: ['--ignore', 'D001']
|
||||
- repo: https://github.com/openstack/bashate
|
||||
rev: 2.1.1
|
||||
hooks:
|
||||
- id: bashate
|
||||
args: ['--ignore', 'E006,E042,E043']
|
||||
- repo: local
|
||||
hooks:
|
||||
- id: flake8
|
||||
name: flake8
|
||||
additional_dependencies:
|
||||
- hacking>=6.1.0,<6.2.0
|
||||
language: python
|
||||
entry: flake8
|
||||
files: '^.*\.py$'
|
||||
exclude: '^(doc|releasenotes|tools)/.*$'
|
|
@ -0,0 +1,188 @@
|
|||
[MASTER]
|
||||
|
||||
# A comma-separated list of package or module names from where C extensions may
|
||||
# be loaded. Extensions are loading into the active Python interpreter and may
|
||||
# run arbitrary code.
|
||||
extension-pkg-whitelist=
|
||||
|
||||
# Add files or directories to the blacklist. They should be base names, not
|
||||
# paths.
|
||||
ignore=CVS,tests,test
|
||||
|
||||
# Add files or directories matching the regex patterns to the blacklist. The
|
||||
# regex matches against base names, not paths.
|
||||
ignore-patterns=
|
||||
|
||||
# Python code to execute, usually for sys.path manipulation such as
|
||||
# pygtk.require().
|
||||
#init-hook=
|
||||
|
||||
# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the
|
||||
# number of processors available to use.
|
||||
jobs=1
|
||||
|
||||
# Control the amount of potential inferred values when inferring a single
|
||||
# object. This can help the performance when dealing with large functions or
|
||||
# complex, nested conditions.
|
||||
limit-inference-results=100
|
||||
|
||||
# List of plugins (as comma separated values of python modules names) to load,
|
||||
# usually to register additional checkers.
|
||||
load-plugins=
|
||||
|
||||
# Pickle collected data for later comparisons.
|
||||
persistent=yes
|
||||
|
||||
# Specify a configuration file.
|
||||
#rcfile=
|
||||
|
||||
# When enabled, pylint would attempt to guess common misconfiguration and emit
|
||||
# user-friendly hints instead of false-positive error messages.
|
||||
suggestion-mode=yes
|
||||
|
||||
# Allow loading of arbitrary C extensions. Extensions are imported into the
|
||||
# active Python interpreter and may run arbitrary code.
|
||||
unsafe-load-any-extension=no
|
||||
|
||||
|
||||
[MESSAGES CONTROL]
|
||||
|
||||
# Only show warnings with the listed confidence levels. Leave empty to show
|
||||
# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED.
|
||||
confidence=
|
||||
|
||||
# Disable the message, report, category or checker with the given id(s). You
|
||||
# can either give multiple identifiers separated by comma (,) or put this
|
||||
# option multiple times (only on the command line, not in the configuration
|
||||
# file where it should appear only once). You can also use "--disable=all" to
|
||||
# disable everything first and then reenable specific checks. For example, if
|
||||
# you want to run only the similarities checker, you can use "--disable=all
|
||||
# --enable=similarities". If you want to run only the classes checker, but have
|
||||
# no Warning level messages displayed, use "--disable=all --enable=classes
|
||||
# --disable=W".
|
||||
disable=
|
||||
# "F" Fatal errors that prevent further processing
|
||||
import-error,
|
||||
# "I" Informational noise
|
||||
locally-disabled,
|
||||
c-extension-no-member,
|
||||
# "E" Error for important programming issues (likely bugs)
|
||||
no-member,
|
||||
too-many-function-args,
|
||||
not-callable,
|
||||
assignment-from-none,
|
||||
unsubscriptable-object,
|
||||
used-prior-global-declaration,
|
||||
not-an-iterable,
|
||||
# "W" Warnings for stylistic problems or minor programming issues
|
||||
unused-argument,
|
||||
bad-indentation,
|
||||
unused-variable,
|
||||
useless-else-on-loop,
|
||||
pointless-string-statement,
|
||||
unused-import,
|
||||
redefined-outer-name,
|
||||
redefined-builtin,
|
||||
attribute-defined-outside-init,
|
||||
abstract-method,
|
||||
fixme,
|
||||
exec-used,
|
||||
anomalous-backslash-in-string,
|
||||
broad-except,
|
||||
protected-access,
|
||||
arguments-differ,
|
||||
undefined-loop-variable,
|
||||
try-except-raise,
|
||||
global-statement,
|
||||
super-init-not-called,
|
||||
pointless-statement,
|
||||
global-statement,
|
||||
unnecessary-lambda,
|
||||
keyword-arg-before-vararg,
|
||||
deprecated-method,
|
||||
useless-super-delegation,
|
||||
eval-used,
|
||||
wildcard-import,
|
||||
reimported,
|
||||
expression-not-assigned,
|
||||
cell-var-from-loop,
|
||||
signature-differs,
|
||||
# "C" Coding convention violations
|
||||
missing-docstring,
|
||||
invalid-name,
|
||||
wrong-import-order,
|
||||
len-as-condition,
|
||||
wrong-import-position,
|
||||
bad-continuation,
|
||||
too-many-lines,
|
||||
misplaced-comparison-constant,
|
||||
bad-mcs-classmethod-argument,
|
||||
ungrouped-imports,
|
||||
superfluous-parens,
|
||||
unidiomatic-typecheck,
|
||||
consider-iterating-dictionary,
|
||||
bad-whitespace,
|
||||
dangerous-default-value,
|
||||
line-too-long,
|
||||
consider-using-enumerate,
|
||||
useless-import-alias,
|
||||
singleton-comparison,
|
||||
# "R" Refactor recommendations
|
||||
no-self-use,
|
||||
no-else-return,
|
||||
too-many-locals,
|
||||
too-many-public-methods,
|
||||
consider-using-set-comprehension,
|
||||
inconsistent-return-statements,
|
||||
useless-object-inheritance,
|
||||
too-few-public-methods,
|
||||
too-many-boolean-expressions,
|
||||
too-many-instance-attributes,
|
||||
too-many-return-statements,
|
||||
literal-comparison,
|
||||
too-many-statements,
|
||||
too-many-ancestors,
|
||||
literal-comparison,
|
||||
consider-merging-isinstance,
|
||||
too-many-nested-blocks,
|
||||
trailing-comma-tuple,
|
||||
simplifiable-if-statement,
|
||||
consider-using-in,
|
||||
consider-using-ternary,
|
||||
too-many-arguments
|
||||
|
||||
[REPORTS]
|
||||
# Tells whether to display a full report or only the messages.
|
||||
reports=no
|
||||
|
||||
[BASIC]
|
||||
# Variable names can be 1 to 31 characters long, with lowercase and underscores
|
||||
variable-rgx=[a-z_][a-z0-9_]{0,30}$
|
||||
|
||||
# Argument names can be 2 to 31 characters long, with lowercase and underscores
|
||||
argument-rgx=[a-z_][a-z0-9_]{1,30}$
|
||||
|
||||
# Method names should be at least 3 characters long
|
||||
# and be lowercased with underscores
|
||||
method-rgx=([a-z_][a-z0-9_]{2,}|setUp|tearDown)$
|
||||
|
||||
# Module names matching neutron-* are ok (files in bin/)
|
||||
module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+)|(neutron-[a-z0-9_-]+))$
|
||||
|
||||
# Don't require docstrings on tests.
|
||||
no-docstring-rgx=((__.*__)|([tT]est.*)|setUp|tearDown)$
|
||||
|
||||
|
||||
[FORMAT]
|
||||
# Maximum number of characters on a single line.
|
||||
max-line-length=79
|
||||
|
||||
|
||||
[VARIABLES]
|
||||
# List of additional names supposed to be defined in builtins. Remember that
|
||||
# you should avoid to define new builtins when possible.
|
||||
additional-builtins=_
|
||||
|
||||
[TYPECHECK]
|
||||
# List of module names for which member attributes should not be checked
|
||||
ignored-modules=six.moves,_MovedItems,alembic.op
|
|
@ -0,0 +1,3 @@
|
|||
[DEFAULT]
|
||||
test_path=./manila/tests
|
||||
top_dir=./
|
|
@ -0,0 +1,23 @@
|
|||
The source repository for this project can be found at:
|
||||
|
||||
https://opendev.org/openstack/manila
|
||||
|
||||
This repository is mirrored to GitHub at:
|
||||
|
||||
https://github.com/openstack/manila
|
||||
|
||||
Pull requests submitted through GitHub are not monitored.
|
||||
|
||||
To start contributing to OpenStack, follow the steps in the contribution guide
|
||||
to set up and use Gerrit:
|
||||
|
||||
https://docs.openstack.org/contributors/code-and-documentation/quick-start.html
|
||||
|
||||
Bugs should be filed on Launchpad:
|
||||
|
||||
https://bugs.launchpad.net/manila
|
||||
|
||||
For more specific information about contributing to this repository, see the
|
||||
Manila contributor guide:
|
||||
|
||||
https://docs.openstack.org/manila/latest/contributor/contributing.html
|
|
@ -0,0 +1,106 @@
|
|||
Manila Style Commandments
|
||||
=========================
|
||||
|
||||
- Step 1: Read the OpenStack Style Commandments
|
||||
https://docs.openstack.org/hacking/latest/
|
||||
- Step 2: Read on
|
||||
|
||||
|
||||
Manila Specific Commandments
|
||||
----------------------------
|
||||
|
||||
- [M310] Check for improper use of logging format arguments.
|
||||
- [M313] Use assertTrue(...) rather than assertEqual(True, ...).
|
||||
- [M323] Ensure that the _() function is explicitly imported to ensure proper translations.
|
||||
- [M326] Translated messages cannot be concatenated. String should be
|
||||
included in translated message.
|
||||
- [M333] ``oslo_`` should be used instead of ``oslo.``
|
||||
- [M336] Must use a dict comprehension instead of a dict constructor
|
||||
with a sequence of key-value pairs.
|
||||
- [M337] Ensure to not use xrange().
|
||||
- [M338] Ensure to not use LOG.warn().
|
||||
- [M339] Ensure 'mock' is not imported/used. Use 'unittest.mock' instead.
|
||||
- [M354] Use oslo_utils.uuidutils to generate UUID instead of uuid4().
|
||||
- [M359] Validate that log messages are not translated.
|
||||
|
||||
LOG Translations
|
||||
----------------
|
||||
|
||||
Beginning with the Pike series, OpenStack no longer supports log translation.
|
||||
It is not useful to add translation instructions to new code, the
|
||||
instructions can be removed from old code, and the hacking checks that
|
||||
enforced use of special translation markers for log messages have been
|
||||
removed.
|
||||
|
||||
Other user-facing strings, e.g. in exception messages, should be translated
|
||||
using ``_()``.
|
||||
|
||||
A common pattern is to define a single message object and use it more
|
||||
than once, for the log call and the exception. In that case, ``_()``
|
||||
must be used because the message is going to appear in an exception that
|
||||
may be presented to the user.
|
||||
|
||||
For more details about translations, see
|
||||
https://docs.openstack.org/oslo.i18n/latest/user/guidelines.html
|
||||
|
||||
Creating Unit Tests
|
||||
-------------------
|
||||
For every new feature, unit tests should be created that both test and
|
||||
(implicitly) document the usage of said feature. If submitting a patch for a
|
||||
bug that had no unit test, a new passing unit test should be added. If a
|
||||
submitted bug fix does have a unit test, be sure to add a new one that fails
|
||||
without the patch and passes with the patch.
|
||||
|
||||
For more information on creating unit tests and utilizing the testing
|
||||
infrastructure in OpenStack Manila, please read manila/testing/README.rst.
|
||||
|
||||
|
||||
Running Tests
|
||||
-------------
|
||||
The testing system is based on a combination of tox and testr. If you just
|
||||
want to run the whole suite, run `tox` and all will be fine. However, if
|
||||
you'd like to dig in a bit more, you might want to learn some things about
|
||||
testr itself. A basic walkthrough for OpenStack can be found at
|
||||
http://wiki.openstack.org/testr
|
||||
|
||||
|
||||
OpenStack Trademark
|
||||
-------------------
|
||||
|
||||
OpenStack is a registered trademark of OpenStack, LLC, and uses the
|
||||
following capitalization:
|
||||
|
||||
OpenStack
|
||||
|
||||
|
||||
Commit Messages
|
||||
---------------
|
||||
Using a common format for commit messages will help keep our git history
|
||||
readable. Follow these guidelines:
|
||||
|
||||
First, provide a brief summary (it is recommended to keep the commit title
|
||||
under 50 chars).
|
||||
|
||||
The first line of the commit message should provide an accurate
|
||||
description of the change, not just a reference to a bug or
|
||||
blueprint. It must be followed by a single blank line.
|
||||
|
||||
If the change relates to a specific driver (libvirt, xenapi, qpid, etc...),
|
||||
begin the first line of the commit message with the driver name, lowercased,
|
||||
followed by a colon.
|
||||
|
||||
Following your brief summary, provide a more detailed description of
|
||||
the patch, manually wrapping the text at 72 characters. This
|
||||
description should provide enough detail that one does not have to
|
||||
refer to external resources to determine its high-level functionality.
|
||||
|
||||
Once you use 'git review', two lines will be appended to the commit
|
||||
message: a blank line followed by a 'Change-Id'. This is important
|
||||
to correlate this commit with a specific review in Gerrit, and it
|
||||
should not be modified.
|
||||
|
||||
For further information on constructing high quality commit messages,
|
||||
and how to split up commits into a series of changes, consult the
|
||||
project wiki:
|
||||
|
||||
http://wiki.openstack.org/GitCommitMessages
|
|
@ -0,0 +1,176 @@
|
|||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
64
README.rst
64
README.rst
|
@ -1,6 +1,60 @@
|
|||
CI sandbox
|
||||
==========
|
||||
========================
|
||||
Team and repository tags
|
||||
========================
|
||||
|
||||
This repository is a sandbox for testing your third party CI setup.
|
||||
For detail, see the `Third Party Testing document
|
||||
<http://docs.openstack.org/infra/system-config/third_party.html>`_.
|
||||
.. image:: https://governance.openstack.org/tc/badges/manila.svg
|
||||
:target: https://governance.openstack.org/tc/reference/tags/index.html
|
||||
|
||||
.. Change things from this point on
|
||||
|
||||
======
|
||||
MANILA
|
||||
======
|
||||
|
||||
You have come across an OpenStack shared file system service. It has
|
||||
identified itself as "Manila." It was abstracted from the Cinder
|
||||
project.
|
||||
|
||||
* Wiki: https://wiki.openstack.org/wiki/Manila
|
||||
* Developer docs: https://docs.openstack.org/manila/latest/
|
||||
|
||||
Getting Started
|
||||
---------------
|
||||
|
||||
If you'd like to run from the master branch, you can clone the git repo:
|
||||
|
||||
git clone https://opendev.org/openstack/manila
|
||||
|
||||
For developer information please see
|
||||
`HACKING.rst <https://opendev.org/openstack/manila/src/branch/master/HACKING.rst>`_
|
||||
|
||||
You can raise bugs here https://bugs.launchpad.net/manila
|
||||
|
||||
Python client
|
||||
-------------
|
||||
|
||||
https://opendev.org/openstack/python-manilaclient
|
||||
|
||||
* Documentation for the project can be found at:
|
||||
|
||||
https://docs.openstack.org/manila/latest/
|
||||
|
||||
* Release notes for the project can be found at:
|
||||
|
||||
https://docs.openstack.org/releasenotes/manila/
|
||||
|
||||
* Source for the project:
|
||||
|
||||
https://opendev.org/openstack/manila
|
||||
|
||||
* Bugs:
|
||||
|
||||
https://bugs.launchpad.net/manila
|
||||
|
||||
* Blueprints:
|
||||
|
||||
https://blueprints.launchpad.net/manila
|
||||
|
||||
* Design specifications are tracked at:
|
||||
|
||||
https://specs.openstack.org/openstack/manila-specs/
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
.. -*- rst -*-
|
||||
|
||||
Availability zones
|
||||
==================
|
||||
|
||||
Describes availability zones that the Shared File Systems service is
|
||||
configured with.
|
||||
|
||||
.. important::
|
||||
|
||||
For API versions 2.6 and prior, replace ``availability-zones`` in the URLs
|
||||
with ``os-availability-zone``.
|
||||
|
||||
|
||||
List availability zones
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. rest_method:: GET /v2/availability-zones
|
||||
|
||||
Lists all availability zones.
|
||||
|
||||
Response codes
|
||||
--------------
|
||||
|
||||
.. rest_status_code:: success status.yaml
|
||||
|
||||
- 200
|
||||
|
||||
.. rest_status_code:: error status.yaml
|
||||
|
||||
- 400
|
||||
- 401
|
||||
- 403
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- project_id: project_id_path
|
||||
|
||||
Response parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- availability_zones: availability_zones
|
||||
- id: availability_zone_id
|
||||
- name: availability_zone_name
|
||||
- created_at: created_at
|
||||
- updated_at: updated_at
|
||||
|
||||
Response example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/availability-zones-list-response.json
|
||||
:language: javascript
|
|
@ -0,0 +1,6 @@
|
|||
.. note::
|
||||
Since API version 2.51, a share network is allowed to span multiple subnets
|
||||
and the fields ``neutron_net_id``, ``neutron_subnet_id``, ``network_type``,
|
||||
``cidr``, ``ip_version``, ``gateway``, ``segmentation_id`` and ``mtu`` were
|
||||
moved from the share network to the subnet. The response will look like the
|
||||
below example.
|
|
@ -0,0 +1,304 @@
|
|||
# Licensed 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.
|
||||
#
|
||||
# manila documentation build configuration file, created by
|
||||
# sphinx-quickstart on Sat May 7 13:35:27 2016.
|
||||
#
|
||||
# This file is execfile()d with the current directory set to its
|
||||
# containing dir.
|
||||
#
|
||||
# Note that not all possible configuration values are present in this
|
||||
# autogenerated file.
|
||||
#
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
html_theme = 'openstackdocs'
|
||||
html_theme_options = {
|
||||
"sidebar_mode": "toc",
|
||||
}
|
||||
|
||||
extensions = [
|
||||
'os_api_ref',
|
||||
'openstackdocstheme',
|
||||
]
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
sys.path.insert(0, os.path.abspath('../../'))
|
||||
sys.path.insert(0, os.path.abspath('../'))
|
||||
sys.path.insert(0, os.path.abspath('./'))
|
||||
|
||||
# -- General configuration ------------------------------------------------
|
||||
|
||||
# If your documentation needs a minimal Sphinx version, state it here.
|
||||
# needs_sphinx = '1.0'
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be
|
||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||
# ones.
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
# templates_path = ['_templates']
|
||||
|
||||
# The suffix(es) of source filenames.
|
||||
# You can specify multiple suffix as a list of string:
|
||||
# source_suffix = ['.rst', '.md']
|
||||
source_suffix = '.rst'
|
||||
|
||||
# The encoding of source files.
|
||||
# source_encoding = 'utf-8-sig'
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = 'index'
|
||||
|
||||
# General information about the project.
|
||||
copyright = u'2010-present, OpenStack Foundation'
|
||||
|
||||
# openstackdocstheme options
|
||||
openstackdocs_repo_name = 'openstack/manila'
|
||||
openstackdocs_bug_project = 'manila'
|
||||
openstackdocs_bug_tag = 'api-ref'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
#
|
||||
# This is also used if you do content translation via gettext catalogs.
|
||||
# Usually you set "language" from the command line for these cases.
|
||||
# language = None
|
||||
|
||||
# There are two options for replacing |today|: either, you set today to some
|
||||
# non-false value, then it is used:
|
||||
# today = ''
|
||||
# Else, today_fmt is used as the format for a strftime call.
|
||||
# today_fmt = '%B %d, %Y'
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
# This patterns also effect to html_static_path and html_extra_path
|
||||
exclude_patterns = []
|
||||
|
||||
# The reST default role (used for this markup: `text`) to use for all
|
||||
# documents.
|
||||
# default_role = None
|
||||
|
||||
# If true, '()' will be appended to :func: etc. cross-reference text.
|
||||
# add_function_parentheses = True
|
||||
|
||||
# If true, the current module name will be prepended to all description
|
||||
# unit titles (such as .. function::).
|
||||
add_module_names = False
|
||||
|
||||
# If true, sectionauthor and moduleauthor directives will be shown in the
|
||||
# output. They are ignored by default.
|
||||
show_authors = False
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = 'native'
|
||||
|
||||
# A list of ignored prefixes for module index sorting.
|
||||
# modindex_common_prefix = []
|
||||
|
||||
# If true, keep warnings as "system message" paragraphs in the built documents.
|
||||
# keep_warnings = False
|
||||
|
||||
# If true, `todo` and `todoList` produce output, else they produce nothing.
|
||||
todo_include_todos = False
|
||||
|
||||
|
||||
# -- Options for HTML output ----------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
# html_theme = 'alabaster'
|
||||
|
||||
# Theme options are theme-specific and customize the look and feel of a theme
|
||||
# further. For a list of options available for each theme, see the
|
||||
# documentation.
|
||||
# html_theme_options = {}
|
||||
|
||||
# Add any paths that contain custom themes here, relative to this directory.
|
||||
# html_theme_path = []
|
||||
|
||||
# The name for this set of Sphinx documents.
|
||||
# "<project> v<release> documentation" by default.
|
||||
# html_title = u'Shared File Systems API Reference v2'
|
||||
|
||||
# A shorter title for the navigation bar. Default is the same as html_title.
|
||||
# html_short_title = None
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top
|
||||
# of the sidebar.
|
||||
# html_logo = None
|
||||
|
||||
# The name of an image file (relative to this directory) to use as a favicon of
|
||||
# the docs. This file should be a Windows icon file (.ico) being 16x16 or
|
||||
# 32x32 pixels large.
|
||||
# html_favicon = None
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
# html_static_path = ['_static']
|
||||
|
||||
# Add any extra paths that contain custom files (such as robots.txt or
|
||||
# .htaccess) here, relative to this directory. These files are copied
|
||||
# directly to the root of the documentation.
|
||||
# html_extra_path = []
|
||||
|
||||
# If true, SmartyPants will be used to convert quotes and dashes to
|
||||
# typographically correct entities.
|
||||
# html_use_smartypants = True
|
||||
|
||||
# Custom sidebar templates, maps document names to template names.
|
||||
# html_sidebars = {}
|
||||
|
||||
# Additional templates that should be rendered to pages, maps page names to
|
||||
# template names.
|
||||
# html_additional_pages = {}
|
||||
|
||||
# If false, no module index is generated.
|
||||
# html_domain_indices = True
|
||||
|
||||
# If false, no index is generated.
|
||||
# html_use_index = True
|
||||
|
||||
# If true, the index is split into individual pages for each letter.
|
||||
# html_split_index = False
|
||||
|
||||
# If true, links to the reST sources are added to the pages.
|
||||
# html_show_sourcelink = True
|
||||
|
||||
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
|
||||
# html_show_sphinx = True
|
||||
|
||||
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
|
||||
# html_show_copyright = True
|
||||
|
||||
# If true, an OpenSearch description file will be output, and all pages will
|
||||
# contain a <link> tag referring to it. The value of this option must be the
|
||||
# base URL from which the finished HTML is served.
|
||||
# html_use_opensearch = ''
|
||||
|
||||
# This is the file name suffix for HTML files (e.g. ".xhtml").
|
||||
# html_file_suffix = None
|
||||
|
||||
# Language to be used for generating the HTML full-text search index.
|
||||
# Sphinx supports the following languages:
|
||||
# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja'
|
||||
# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr', 'zh'
|
||||
# html_search_language = 'en'
|
||||
|
||||
# A dictionary with options for the search language support, empty by default.
|
||||
# 'ja' uses this config value.
|
||||
# 'zh' user can custom change `jieba` dictionary path.
|
||||
# html_search_options = {'type': 'default'}
|
||||
|
||||
# The name of a javascript file (relative to the configuration directory) that
|
||||
# implements a search results scorer. If empty, the default will be used.
|
||||
# html_search_scorer = 'scorer.js'
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
htmlhelp_basename = 'maniladoc'
|
||||
|
||||
# -- Options for LaTeX output ---------------------------------------------
|
||||
|
||||
latex_elements = {
|
||||
# The paper size ('letterpaper' or 'a4paper').
|
||||
# 'papersize': 'letterpaper',
|
||||
|
||||
# The font size ('10pt', '11pt' or '12pt').
|
||||
# 'pointsize': '10pt',
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
# 'preamble': '',
|
||||
|
||||
# Latex figure (float) alignment
|
||||
# 'figure_align': 'htbp',
|
||||
}
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title,
|
||||
# author, documentclass [howto, manual, or own class]).
|
||||
latex_documents = [
|
||||
(master_doc, 'manila.tex',
|
||||
u'OpenStack Shared File Systems API Documentation',
|
||||
u'OpenStack Foundation', 'manual'),
|
||||
]
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top of
|
||||
# the title page.
|
||||
# latex_logo = None
|
||||
|
||||
# For "manual" documents, if this is true, then toplevel headings are parts,
|
||||
# not chapters.
|
||||
# latex_use_parts = False
|
||||
|
||||
# If true, show page references after internal links.
|
||||
# latex_show_pagerefs = False
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
# latex_show_urls = False
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
# latex_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
# latex_domain_indices = True
|
||||
|
||||
|
||||
# -- Options for manual page output ---------------------------------------
|
||||
|
||||
# One entry per manual page. List of tuples
|
||||
# (source start file, name, description, authors, manual section).
|
||||
man_pages = [
|
||||
(master_doc, 'manila', u'OpenStack Shared File Systems API Documentation',
|
||||
u'Openstack Foundation', 1)
|
||||
]
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
# man_show_urls = False
|
||||
|
||||
|
||||
# -- Options for Texinfo output -------------------------------------------
|
||||
|
||||
# Grouping the document tree into Texinfo files. List of tuples
|
||||
# (source start file, target name, title, author,
|
||||
# dir menu entry, description, category)
|
||||
texinfo_documents = [
|
||||
(master_doc, 'Manila', u'OpenStack Shared File Systems API Documentation',
|
||||
u'OpenStack Foundation', 'Manila', 'OpenStack Shared File Systems',
|
||||
'Miscellaneous'),
|
||||
]
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
# texinfo_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
# texinfo_domain_indices = True
|
||||
|
||||
# How to display URL addresses: 'footnote', 'no', or 'inline'.
|
||||
# texinfo_show_urls = 'footnote'
|
||||
|
||||
# If true, do not generate a @detailmenu in the "Top" node's menu.
|
||||
# texinfo_no_detailmenu = False
|
|
@ -0,0 +1,14 @@
|
|||
.. -*- rst -*-
|
||||
|
||||
=================
|
||||
Experimental APIs
|
||||
=================
|
||||
|
||||
.. important::
|
||||
|
||||
The following APIs are part of the `experimental feature <https://docs.
|
||||
openstack.org/manila/latest/contributor/experimental_apis.html>`_ introduced
|
||||
in version 2.4. The APIs may change or be removed in future versions of the
|
||||
Shared File Systems API. All experimental APIs require the
|
||||
``X-OpenStack-Manila-API-Experimental: True`` header to be sent in the
|
||||
requests.
|
|
@ -0,0 +1,51 @@
|
|||
.. -*- rst -*-
|
||||
|
||||
API extensions
|
||||
==============
|
||||
|
||||
Lists available Shared File Systems API extensions.
|
||||
|
||||
|
||||
List extensions
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
.. rest_method:: GET /v2/extensions
|
||||
|
||||
Lists all extensions.
|
||||
|
||||
Response codes
|
||||
--------------
|
||||
|
||||
.. rest_status_code:: success status.yaml
|
||||
|
||||
- 200
|
||||
|
||||
.. rest_status_code:: error status.yaml
|
||||
|
||||
- 400
|
||||
- 401
|
||||
- 403
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- project_id: project_id_path
|
||||
|
||||
Response parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- name: extension_name
|
||||
- links: extension_links
|
||||
- description: extension_description
|
||||
- alias: extension_alias
|
||||
- updated: updated_at_extensions
|
||||
|
||||
Response example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/extensions-list-response.json
|
||||
:language: javascript
|
|
@ -0,0 +1,69 @@
|
|||
:tocdepth: 3
|
||||
|
||||
=======================
|
||||
Shared File Systems API
|
||||
=======================
|
||||
|
||||
This is a reference for version 2 of the OpenStack Shared File Systems API
|
||||
which is provided by the Manila project. Manila provides a RESTful HTTP service
|
||||
through which it offers on-demand, scalable, self-service access to
|
||||
shared file system storage resources.
|
||||
|
||||
.. important::
|
||||
|
||||
Prior to the Wallaby release, Shared File System service required the
|
||||
caller to specify their "project_id" in the API URLs. This requirement has
|
||||
been dropped. The API service now behaves the same way whether or not
|
||||
"project_id" is included in the URLs. If your cloud does not yet support
|
||||
version 2.60, all the resource URLs below will require a project ID. For
|
||||
example:
|
||||
|
||||
GET /v2/{project_id}/shares
|
||||
|
||||
.. rest_expand_all::
|
||||
|
||||
.. include:: versions.inc
|
||||
.. include:: extensions.inc
|
||||
.. include:: limits.inc
|
||||
.. include:: shares.inc
|
||||
.. include:: share-export-locations.inc
|
||||
.. include:: share-metadata.inc
|
||||
.. include:: share-actions.inc
|
||||
.. include:: snapshots.inc
|
||||
.. include:: snapshot-metadata.inc
|
||||
.. include:: snapshot-instances.inc
|
||||
.. include:: share-replicas.inc
|
||||
.. include:: share-replica-export-locations.inc
|
||||
.. include:: share-networks.inc
|
||||
.. include:: share-network-subnets.inc
|
||||
.. include:: share-network-subnets-metadata.inc
|
||||
.. include:: security-services.inc
|
||||
.. include:: share-servers.inc
|
||||
.. include:: share-instances.inc
|
||||
.. include:: share-instance-export-locations.inc
|
||||
.. include:: share-types.inc
|
||||
.. include:: scheduler-stats.inc
|
||||
.. include:: services.inc
|
||||
.. include:: availability-zones.inc
|
||||
.. include:: os-share-manage.inc
|
||||
.. include:: quota-sets.inc
|
||||
.. include:: quota-classes.inc
|
||||
.. include:: user-messages.inc
|
||||
.. include:: share-access-rules.inc
|
||||
.. include:: share-access-rule-metadata.inc
|
||||
.. include:: share-groups.inc
|
||||
.. include:: share-group-types.inc
|
||||
.. include:: share-group-snapshots.inc
|
||||
.. include:: share-transfers.inc
|
||||
.. include:: resource-locks.inc
|
||||
|
||||
======================================
|
||||
Shared File Systems API (EXPERIMENTAL)
|
||||
======================================
|
||||
|
||||
.. rest_expand_all::
|
||||
|
||||
.. include:: experimental.inc
|
||||
.. include:: share-migration.inc
|
||||
.. include:: share-server-migration.inc
|
||||
.. include:: share-backups.inc
|
|
@ -0,0 +1,98 @@
|
|||
.. -*- rst -*-
|
||||
|
||||
Limits
|
||||
======
|
||||
|
||||
Limits are the resource limitations that are allowed for each
|
||||
tenant (project). An administrator can configure limits in the
|
||||
``manila.conf`` file.
|
||||
|
||||
Users can query their rate and absolute limits. The absolute limits
|
||||
contain information about:
|
||||
|
||||
- Total maximum share memory, in GiBs.
|
||||
|
||||
- Number of share-networks.
|
||||
|
||||
- Number of share-snapshots.
|
||||
|
||||
- Number of shares.
|
||||
|
||||
- Shares and total used memory, in GiBs.
|
||||
|
||||
- Snapshots and total used memory, in GiBs.
|
||||
|
||||
- Number of share replicas (since API version 2.53).
|
||||
|
||||
- Share replicas and total used memory, in GiBs (since API version 2.53).
|
||||
|
||||
Rate limits control the frequency at which users can issue specific
|
||||
API requests. Administrators use rate limiting to configure limits
|
||||
on the type and number of API calls that can be made in a specific
|
||||
time interval. For example, a rate limit can control the number of
|
||||
GET requests that can be processed during a one-minute period.
|
||||
|
||||
|
||||
List share limits
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. rest_method:: GET /v2/limits
|
||||
|
||||
Lists share limits.
|
||||
|
||||
Response codes
|
||||
--------------
|
||||
|
||||
.. rest_status_code:: success status.yaml
|
||||
|
||||
- 200
|
||||
|
||||
.. rest_status_code:: error status.yaml
|
||||
|
||||
- 400
|
||||
- 401
|
||||
- 403
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- project_id: project_id_path
|
||||
|
||||
Response parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- maxTotalShareGigabytes: maxTotalShareGigabytes
|
||||
- maxTotalSnapshotGigabytes: maxTotalSnapshotGigabytes
|
||||
- maxTotalShares: maxTotalShares
|
||||
- maxTotalShareSnapshots: maxTotalShareSnapshots
|
||||
- maxTotalShareNetworks: maxTotalShareNetworks
|
||||
- maxTotalShareReplicas: maxTotalShareReplicas
|
||||
- maxTotalReplicaGigabytes: maxTotalReplicaGigabytes
|
||||
- maxTotalShareBackups: maxTotalShareBackups
|
||||
- maxTotalBackupGigabytes: maxTotalBackupGigabytes
|
||||
- totalSharesUsed: totalSharesUsed
|
||||
- totalShareSnapshotsUsed: totalShareSnapshotsUsed
|
||||
- totalShareNetworksUsed: totalShareNetworksUsed
|
||||
- totalShareGigabytesUsed: totalShareGigabytesUsed
|
||||
- totalSnapshotGigabytesUsed: totalSnapshotGigabytesUsed
|
||||
- totalShareReplicasUsed: totalShareReplicasUsed
|
||||
- totalReplicaGigabytesUsed: totalReplicaGigabytesUsed
|
||||
- totalShareBackupsUsed: totalShareBackupsUsed
|
||||
- totalBackupGigabytesUsed: totalBackupGigabytesUsed
|
||||
- uri: uri
|
||||
- regex: regex
|
||||
- value: value
|
||||
- verb: verb
|
||||
- remaining: remaining
|
||||
- unit: unit
|
||||
- next-available: next-available
|
||||
|
||||
Response example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/limits-response.json
|
||||
:language: javascript
|
|
@ -0,0 +1,155 @@
|
|||
.. -*- rst -*-
|
||||
|
||||
Manage and unmanage shares (DEPRECATED)
|
||||
=======================================
|
||||
|
||||
Allows bringing shared file systems under service management.
|
||||
|
||||
|
||||
Manage share (DEPRECATED)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. warning::
|
||||
|
||||
This API is deprecated starting with microversion 2.7 and requests to
|
||||
this API will fail with a 404 starting from microversion 2.7. Use
|
||||
`Share Manage API <#manage-share-since-api-v2-7>`_ instead of this API
|
||||
from version 2.7.
|
||||
|
||||
.. rest_method:: POST /v2/os-share-manage
|
||||
|
||||
Use this API to bring a share under the management of the Shared File
|
||||
Systems service. In the service, the share will be represented as a resource
|
||||
in the database. It can have a user defined name and description.
|
||||
|
||||
Administrator only. Use the ``policy.yaml`` file to grant permissions for this
|
||||
action to other roles.
|
||||
|
||||
Response codes
|
||||
--------------
|
||||
|
||||
.. rest_status_code:: success status.yaml
|
||||
|
||||
- 200
|
||||
|
||||
.. rest_status_code:: error status.yaml
|
||||
|
||||
- 400
|
||||
- 401
|
||||
- 403
|
||||
- 404
|
||||
- 409
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- project_id: project_id_path
|
||||
- share: share
|
||||
- protocol: protocol
|
||||
- name: name_request
|
||||
- display_name: display_name_request
|
||||
- share_type: share_type_request
|
||||
- driver_options: driver_options
|
||||
- export_path: export_path
|
||||
- service_host: service_host
|
||||
- description: description_request
|
||||
- display_description: display_description_request
|
||||
|
||||
Request example
|
||||
---------------
|
||||
|
||||
.. literalinclude:: samples/share-manage-request.json
|
||||
:language: javascript
|
||||
|
||||
Response parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- share: share
|
||||
- links: links
|
||||
- availability_zone: availability_zone
|
||||
- share_network_id: share_network_id
|
||||
- export_locations: export_locations
|
||||
- share_server_id: share_server_id
|
||||
- snapshot_id: snapshot_id_shares_response
|
||||
- id: share_id_response
|
||||
- size: size_response
|
||||
- share_type: share_type_shares_response
|
||||
- share_type_name: share_type_name
|
||||
- export_location: export_location
|
||||
- project_id: project_id
|
||||
- metadata: metadata
|
||||
- status: share_status_response
|
||||
- description: description
|
||||
- host: host_resource_response
|
||||
- is_public: is_public_shares_response
|
||||
- snapshot_support: snapshot_support
|
||||
- name: name
|
||||
- created_at: created_at
|
||||
- share_proto: share_proto
|
||||
|
||||
Response example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/share-manage-response.json
|
||||
:language: javascript
|
||||
|
||||
|
||||
Unmanage share (DEPRECATED)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. warning::
|
||||
|
||||
This API is deprecated starting with microversion 2.7 and requests to
|
||||
this API will fail with a 404 starting from microversion 2.7. Use
|
||||
`Share Unmanage API <#unmanage-share-since-api-v2-7>`_ instead of this
|
||||
API from version 2.7.
|
||||
|
||||
.. rest_method:: POST /v2/os-share-unmanage/{share_id}/unmanage
|
||||
|
||||
Use this API to remove a share from the management of the Shared File
|
||||
Systems service without deleting the share.
|
||||
|
||||
Administrator only. Use the ``policy.yaml`` file to grant permissions for this
|
||||
action to other roles.
|
||||
|
||||
|
||||
Preconditions:
|
||||
|
||||
- This API does not support unmanaging shares that are created on top
|
||||
of share servers (i.e. created with share networks).
|
||||
- You should remove any snapshots and share replicas before attempting to
|
||||
unmanage a share.
|
||||
|
||||
|
||||
Response codes
|
||||
--------------
|
||||
|
||||
.. rest_status_code:: success status.yaml
|
||||
|
||||
- 202
|
||||
|
||||
.. rest_status_code:: error status.yaml
|
||||
|
||||
- 400
|
||||
- 401
|
||||
- 403
|
||||
- 404
|
||||
- 409
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- project_id: project_id_path
|
||||
- share_id: share_id
|
||||
|
||||
|
||||
Response parameters
|
||||
-------------------
|
||||
|
||||
There is no body content for the response.
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,142 @@
|
|||
.. -*- rst -*-
|
||||
|
||||
Quota class set
|
||||
===============
|
||||
|
||||
Quota classes can be shown and updated for a project.
|
||||
|
||||
.. important::
|
||||
Share replicas and replica gigabytes were added to quota management
|
||||
APIs in API version 2.53.
|
||||
Per share gigabytes was added to quota management APIs in API
|
||||
version 2.62.
|
||||
Share backups and backup gigabytes were added to quota management
|
||||
APIs in API version 2.80.
|
||||
|
||||
|
||||
Show quota classes for a project
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. rest_method:: GET /v2/quota-class-sets/{quota_class_name}
|
||||
|
||||
Shows quota class set for a project. If no specific value for the quota class
|
||||
resource exists, then the default value will be reported.
|
||||
|
||||
Response codes
|
||||
--------------
|
||||
|
||||
.. rest_status_code:: success status.yaml
|
||||
|
||||
- 200
|
||||
|
||||
.. rest_status_code:: error status.yaml
|
||||
|
||||
- 403
|
||||
- 404
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- project_id: project_id_path
|
||||
- quota_class_name: quota_class_name
|
||||
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- quota_class_set: quota_class_set
|
||||
- share_groups: maxTotalShareGroups
|
||||
- gigabytes: maxTotalShareGigabytes
|
||||
- share_group_snapshots: maxTotalShareGroupSnapshots
|
||||
- snapshots: maxTotalShareSnapshots
|
||||
- snapshot_gigabytes: maxTotalSnapshotGigabytes
|
||||
- shares: maxTotalShares
|
||||
- id: quota_class_id
|
||||
- share_networks: maxTotalShareNetworks
|
||||
- share_replicas: maxTotalShareReplicas
|
||||
- replica_gigabytes: maxTotalReplicaGigabytes
|
||||
- per_share_gigabytes: perShareGigabytes
|
||||
- backups: maxTotalShareBackups
|
||||
- backup_gigabytes: maxTotalBackupGigabytes
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: ./samples/quota-classes-show-response.json
|
||||
:language: javascript
|
||||
|
||||
|
||||
Update quota classes for a project
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. rest_method:: PUT /v2/quota-class-sets/{quota_class_name}
|
||||
|
||||
Updates quota class set for a project. If the ``quota_class_name`` key does not
|
||||
exist, then the API will create one.
|
||||
|
||||
Response codes
|
||||
--------------
|
||||
|
||||
.. rest_status_code:: success status.yaml
|
||||
|
||||
- 200
|
||||
|
||||
.. rest_status_code:: error status.yaml
|
||||
|
||||
- 400
|
||||
- 403
|
||||
- 404
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- project_id: project_id_path
|
||||
- quota_class_name: quota_class_name
|
||||
- shares: maxTotalSharesOptional
|
||||
- snapshots: maxTotalShareSnapshotsOptional
|
||||
- gigabytes: maxTotalShareGigabytesOptional
|
||||
- snapshot-gigabytes: maxTotalSnapshotGigabytesOptional
|
||||
- share-networks: maxTotalShareNetworksOptional
|
||||
- share-replicas: maxTotalShareReplicasOptional
|
||||
- replica-gigabytes: maxTotalReplicaGigabytesOptional
|
||||
- per-share-gigabytes: perShareGigabytesOptional
|
||||
- backups: maxTotalShareBackupsOptional
|
||||
- backup-gigabytes: maxTotalBackupGigabytesOptional
|
||||
|
||||
Request Example
|
||||
---------------
|
||||
|
||||
.. literalinclude:: ./samples/quota-classes-update-request.json
|
||||
:language: javascript
|
||||
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- quota_class_set: quota_class_set
|
||||
- share_groups: maxTotalShareGroups
|
||||
- gigabytes: maxTotalShareGigabytes
|
||||
- share_group_snapshots: maxTotalShareGroupSnapshots
|
||||
- snapshots: maxTotalShareSnapshots
|
||||
- snapshot_gigabytes: maxTotalSnapshotGigabytes
|
||||
- shares: maxTotalShares
|
||||
- share_networks: maxTotalShareNetworks
|
||||
- share_replicas: maxTotalShareReplicas
|
||||
- replica_gigabytes: maxTotalReplicaGigabytes
|
||||
- per_share_gigabytes: perShareGigabytes
|
||||
- backups: maxTotalShareBackups
|
||||
- backup_gigabytes: maxTotalBackupGigabytes
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: ./samples/quota-classes-update-response.json
|
||||
:language: javascript
|
|
@ -0,0 +1,338 @@
|
|||
.. -*- rst -*-
|
||||
|
||||
Quota sets
|
||||
==========
|
||||
|
||||
Provides quotas management support.
|
||||
|
||||
.. important::
|
||||
|
||||
For API versions 2.6 and prior, replace ``quota-sets`` in the URLs with
|
||||
``os-quota-sets``.
|
||||
|
||||
Share type quotas were added in API version 2.39. It is possible to set
|
||||
quotas per share type for the following quota resources:
|
||||
|
||||
- ``gigabytes``
|
||||
- ``snapshots``
|
||||
- ``shares``
|
||||
- ``snapshot_gigabytes``
|
||||
- ``share_groups`` (since API version 2.40)
|
||||
- ``share_group_snapshots`` (since API version 2.40)
|
||||
- ``share_replicas`` (since API version 2.53)
|
||||
- ``replica_gigabytes`` (since API version 2.53)
|
||||
- ``per_share_gigabytes`` (since API version 2.62)
|
||||
- ``backups`` (since API version 2.80)
|
||||
- ``backup_gigabytes`` (since API version 2.80)
|
||||
|
||||
In order to manipulate share type quotas, the requests will be similar
|
||||
to the examples below, except that the ``user_id={user_id}`` must be
|
||||
replaced by ``share_type={share_type_name_or_id}`` in the request path.
|
||||
|
||||
Share groups and share group snapshots were added to quota management
|
||||
APIs in API version 2.40.
|
||||
|
||||
Share replicas and replica gigabytes were added to quota management
|
||||
APIs in API version 2.53.
|
||||
|
||||
Per share gigabytes was added to quota management APIs in API
|
||||
version 2.62.
|
||||
|
||||
Share backups and backup gigabytes were added to quota management
|
||||
APIs in API version 2.80.
|
||||
|
||||
|
||||
Show default quota set
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. rest_method:: GET /v2/quota-sets/{project_id_quota_request_path}/defaults
|
||||
|
||||
Shows default quotas for a given project.
|
||||
|
||||
Response codes
|
||||
--------------
|
||||
|
||||
.. rest_status_code:: success status.yaml
|
||||
|
||||
- 200
|
||||
|
||||
.. rest_status_code:: error status.yaml
|
||||
|
||||
- 400
|
||||
- 401
|
||||
- 403
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- project_id: project_id_path
|
||||
- project_id_quota_request_path: project_id_quota_request_path
|
||||
|
||||
Response parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- quota_set: quota_set
|
||||
- id: quota_project_id
|
||||
- gigabytes: quota_gigabytes
|
||||
- snapshots: quota_snapshots
|
||||
- shares: quota_shares
|
||||
- snapshot_gigabytes: quota_snapshot_gigabytes
|
||||
- share_networks: quota_share_networks
|
||||
- share_groups: quota_share_groups
|
||||
- share_group_snapshots: quota_share_group_snapshots
|
||||
- share_networks: quota_share_networks_default
|
||||
- share_replicas: quota_share_replicas
|
||||
- replica_gigabytes: quota_replica_gigabytes
|
||||
- per_share_gigabytes: quota_per_share_gigabytes
|
||||
- backups: quota_backups
|
||||
- backup_gigabytes: quota_backup_gigabytes
|
||||
|
||||
Response example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/quota-show-response.json
|
||||
:language: javascript
|
||||
|
||||
|
||||
Show quota set
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
.. rest_method:: GET /v2/quota-sets/{project_id_quota_request_path}?user_id={user_id}
|
||||
|
||||
Shows quotas for a given project..
|
||||
|
||||
If you specify the optional ``user_id`` query parameter, you get
|
||||
the quotas for this user in the project. If you omit this parameter,
|
||||
you get the quotas for the project.
|
||||
|
||||
Response codes
|
||||
--------------
|
||||
|
||||
.. rest_status_code:: success status.yaml
|
||||
|
||||
- 200
|
||||
|
||||
.. rest_status_code:: error status.yaml
|
||||
|
||||
- 400
|
||||
- 401
|
||||
- 403
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- project_id: project_id_path
|
||||
- project_id_quota_request_path: project_id_quota_request_path
|
||||
- user_id: user_id_query
|
||||
- share_type: share_type_for_quota
|
||||
|
||||
Response parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- quota_set: quota_set
|
||||
- id: quota_project_id
|
||||
- gigabytes: quota_gigabytes
|
||||
- snapshots: quota_snapshots
|
||||
- shares: quota_shares
|
||||
- snapshot_gigabytes: quota_snapshot_gigabytes
|
||||
- share_networks: quota_share_networks
|
||||
- share_groups: quota_share_groups
|
||||
- share_group_snapshots: quota_share_group_snapshots
|
||||
- share_replicas: quota_share_replicas
|
||||
- replica_gigabytes: quota_replica_gigabytes
|
||||
- per_share_gigabytes: quota_per_share_gigabytes
|
||||
- backups: quota_backups
|
||||
- backup_gigabytes: quota_backup_gigabytes
|
||||
|
||||
Response example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/quota-show-response.json
|
||||
:language: javascript
|
||||
|
||||
|
||||
Show quota set in detail (since API v2.25)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. rest_method:: GET /v2/quota-sets/{project_id_quota_request_path}/detail?user_id={user_id}
|
||||
|
||||
.. versionadded:: 2.25
|
||||
|
||||
Shows quotas for a project in detail.
|
||||
|
||||
If you specify the optional ``user_id`` query parameter, you get
|
||||
the quotas for this user in the project. If you omit this parameter,
|
||||
you get the quotas for the project.
|
||||
|
||||
Response codes
|
||||
--------------
|
||||
|
||||
.. rest_status_code:: success status.yaml
|
||||
|
||||
- 200
|
||||
|
||||
.. rest_status_code:: error status.yaml
|
||||
|
||||
- 400
|
||||
- 401
|
||||
- 403
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- project_id: project_id_path
|
||||
- project_id_quota_request_path: project_id_quota_request_path
|
||||
- user_id: user_id_query
|
||||
- share_type: share_type_for_quota
|
||||
|
||||
Response parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- quota_set: quota_set
|
||||
- id: quota_project_id
|
||||
- gigabytes: quota_gigabytes_detail
|
||||
- snapshots: quota_snapshots_detail
|
||||
- shares: quota_shares_detail
|
||||
- snapshot_gigabytes: quota_snapshot_gigabytes_detail
|
||||
- share_networks: quota_share_networks_detail
|
||||
- share_groups: quota_share_groups_detail
|
||||
- share_group_snapshots: quota_share_group_snapshots_detail
|
||||
- share_replicas: quota_share_replicas_detail
|
||||
- replica_gigabytes: quota_replica_gigabytes_detail
|
||||
- per_share_gigabytes: quota_per_share_gigabytes_detail
|
||||
- backups: quota_backups_detail
|
||||
- backup_gigabytes: quota_backup_gigabytes_detail
|
||||
|
||||
Response example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/quota-show-detail-response.json
|
||||
:language: javascript
|
||||
|
||||
|
||||
Update quota set
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
.. rest_method:: PUT /v2/quota-sets/{project_id_quota_request_path}?user_id={user_id}
|
||||
|
||||
Updates quotas for a project.
|
||||
|
||||
If you specify the optional ``user_id`` query parameter, you update
|
||||
the quotas for this user in the project. If you omit this parameter,
|
||||
you update the quotas for the project.
|
||||
|
||||
Response codes
|
||||
--------------
|
||||
|
||||
.. rest_status_code:: success status.yaml
|
||||
|
||||
- 200
|
||||
|
||||
.. rest_status_code:: error status.yaml
|
||||
|
||||
- 400
|
||||
- 401
|
||||
- 403
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- project_id: project_id_path
|
||||
- project_id_quota_request_path: project_id_quota_request_path
|
||||
- user_id: user_id_query
|
||||
- quota_set: quota_set
|
||||
- force: force
|
||||
- gigabytes: quota_gigabytes_request
|
||||
- snapshots: quota_snapshots_request
|
||||
- snapshot_gigabytes: quota_snapshot_gigabytes_request
|
||||
- shares: quota_shares_request
|
||||
- share_networks: quota_share_networks_request
|
||||
- share_groups: quota_share_groups_request
|
||||
- share_group_snapshots: quota_share_group_snapshots_request
|
||||
- share_type: share_type_for_quota
|
||||
- share_replicas: quota_share_replicas_request
|
||||
- replica_gigabytes: quota_replica_gigabytes_request
|
||||
- per_share_gigabytes: quota_per_share_gigabytes_request
|
||||
- backups: quota_backups_request
|
||||
- backup_gigabytes: quota_backup_gigabytes_request
|
||||
|
||||
Request example
|
||||
---------------
|
||||
|
||||
.. literalinclude:: samples/quota-update-request.json
|
||||
:language: javascript
|
||||
|
||||
Response parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- quota_set: quota_set
|
||||
- id: quota_project_id
|
||||
- gigabytes: quota_gigabytes
|
||||
- snapshots: quota_snapshots
|
||||
- shares: quota_shares
|
||||
- snapshot_gigabytes: quota_snapshot_gigabytes
|
||||
- share_networks: quota_share_networks
|
||||
- share_groups: quota_share_groups
|
||||
- share_group_snapshots: quota_share_group_snapshots
|
||||
- share_replicas: quota_share_replicas
|
||||
- replica_gigabytes: quota_replica_gigabytes
|
||||
- per_share_gigabytes: quota_per_share_gigabytes
|
||||
- backups: quota_backups
|
||||
- backup_gigabytes: quota_backup_gigabytes
|
||||
|
||||
Response example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/quota-update-response.json
|
||||
:language: javascript
|
||||
|
||||
|
||||
Delete quota set
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
.. rest_method:: DELETE /v2/quota-sets/{project_id_quota_request_path}?user_id={user_id}
|
||||
|
||||
Deletes quotas for a project. The quota reverts to the default quota.
|
||||
|
||||
If you specify the optional ``user_id`` query parameter, you delete
|
||||
the quotas for this user in the project. If you omit this parameter,
|
||||
you delete the quotas for the project.
|
||||
|
||||
Response codes
|
||||
--------------
|
||||
|
||||
.. rest_status_code:: success status.yaml
|
||||
|
||||
- 202
|
||||
|
||||
.. rest_status_code:: error status.yaml
|
||||
|
||||
- 400
|
||||
- 401
|
||||
- 403
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- project_id: project_id_path
|
||||
- project_id_quota_request_path: project_id_quota_request_path
|
||||
- user_id: user_id_query
|
||||
- share_type: share_type_for_quota
|
|
@ -0,0 +1,325 @@
|
|||
.. -*- rst -*-
|
||||
|
||||
Resource Locks (since API v2.81)
|
||||
================================
|
||||
|
||||
Create, list, update and delete locks on user actions on resources.
|
||||
|
||||
|
||||
Create a resource lock
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. rest_method:: POST /v2/resource-locks
|
||||
|
||||
.. versionadded:: 2.81
|
||||
|
||||
Lock a specific action on a given resource.
|
||||
|
||||
Not all resources are supported, and not actions on supported resources can
|
||||
be prevented with this mechanism. A lock can only be removed or manipulated
|
||||
by the user that created it, or by a more privileged user. The cloud
|
||||
administrator can use a ``policy.yaml`` file to tweak permissions on who
|
||||
can manipulate and delete locks created by other users.
|
||||
|
||||
Response codes
|
||||
--------------
|
||||
|
||||
.. rest_status_code:: success status.yaml
|
||||
|
||||
- 200
|
||||
|
||||
.. rest_status_code:: error status.yaml
|
||||
|
||||
- 400
|
||||
- 401
|
||||
- 403
|
||||
- 404
|
||||
- 409
|
||||
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- service_token: service_token_locks
|
||||
- resource_lock: resource_lock_object
|
||||
- resource_id: resource_lock_resource_id
|
||||
- resource_type: resource_lock_resource_type
|
||||
- resource_action: resource_lock_resource_action_create_optional
|
||||
- lock_reason: resource_lock_lock_reason_optional
|
||||
|
||||
Request Example
|
||||
---------------
|
||||
|
||||
.. literalinclude:: ./samples/resource-lock-create-request.json
|
||||
:language: javascript
|
||||
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- resource_lock: resource_lock_object
|
||||
- id: resource_lock_id
|
||||
- user_id: resource_lock_user_id
|
||||
- project_id: resource_lock_project_id
|
||||
- lock_context: resource_lock_lock_context
|
||||
- resource_type: resource_lock_resource_type
|
||||
- resource_id: resource_lock_resource_id
|
||||
- resource_action: resource_lock_resource_action
|
||||
- lock_reason: resource_lock_lock_reason
|
||||
- created_at: created_at
|
||||
- updated_at: updated_at
|
||||
- links: links
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: ./samples/resource-lock-create-response.json
|
||||
:language: javascript
|
||||
|
||||
|
||||
List resource locks
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. rest_method:: GET /v2/resource-locks
|
||||
|
||||
.. versionadded:: 2.81
|
||||
|
||||
Retrieve resource locks with filters
|
||||
|
||||
Response codes
|
||||
--------------
|
||||
|
||||
.. rest_status_code:: success status.yaml
|
||||
|
||||
- 200
|
||||
|
||||
.. rest_status_code:: error status.yaml
|
||||
|
||||
- 401
|
||||
- 403
|
||||
- 404
|
||||
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- service_token: service_token_locks
|
||||
- id: resource_lock_id_query
|
||||
- resource_id: resource_lock_resource_id_query
|
||||
- resource_action: resource_lock_resource_action_query
|
||||
- resource_type: resource_lock_resource_type_query
|
||||
- user_id: resource_lock_user_id_query
|
||||
- project_id: resource_lock_project_id_query
|
||||
- all_projects: resource_lock_all_projects_query
|
||||
- lock_context: resource_lock_lock_context_query
|
||||
- created_since: created_since_query
|
||||
- created_before: created_before_query
|
||||
- lock_reason: resource_lock_lock_reason_query
|
||||
- lock_reason~: resource_lock_lock_reason_inexact_query
|
||||
- sort_key: sort_key_resource_locks
|
||||
- sort_dir: sort_dir
|
||||
- offset: offset
|
||||
- with_count: with_count_query_without_min_version
|
||||
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- resource_locks: resource_locks_object
|
||||
- id: resource_lock_id
|
||||
- user_id: resource_lock_user_id
|
||||
- project_id: resource_lock_project_id
|
||||
- lock_context: resource_lock_lock_context
|
||||
- resource_type: resource_lock_resource_type
|
||||
- resource_id: resource_lock_resource_id
|
||||
- resource_action: resource_lock_resource_action
|
||||
- lock_reason: resource_lock_lock_reason
|
||||
- created_at: created_at
|
||||
- updated_at: updated_at
|
||||
- links: links
|
||||
- count: count_without_min_version
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: ./samples/resource-lock-get-all-response.json
|
||||
:language: javascript
|
||||
|
||||
|
||||
Get a resource lock
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. rest_method:: GET /v2/resource-locks/{resource-lock-id}
|
||||
|
||||
.. versionadded:: 2.81
|
||||
|
||||
Retrieve a specific resource lock
|
||||
|
||||
By default, resource locks can be viewed by all users within a project that
|
||||
owns the locks. The cloud administrator can use a ``policy.yaml`` file to tweak
|
||||
this behavior.
|
||||
|
||||
Response codes
|
||||
--------------
|
||||
|
||||
.. rest_status_code:: success status.yaml
|
||||
|
||||
- 200
|
||||
|
||||
.. rest_status_code:: error status.yaml
|
||||
|
||||
- 401
|
||||
- 403
|
||||
- 404
|
||||
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- service_token: service_token_locks
|
||||
- resource_id: resource_lock_id_path
|
||||
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- resource_lock: resource_lock_object
|
||||
- id: resource_lock_id
|
||||
- user_id: resource_lock_user_id
|
||||
- project_id: resource_lock_project_id
|
||||
- lock_context: resource_lock_lock_context
|
||||
- resource_type: resource_lock_resource_type
|
||||
- resource_id: resource_lock_resource_id
|
||||
- resource_action: resource_lock_resource_action
|
||||
- lock_reason: resource_lock_lock_reason
|
||||
- created_at: created_at
|
||||
- updated_at: updated_at
|
||||
- links: links
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: ./samples/resource-lock-get-response.json
|
||||
:language: javascript
|
||||
|
||||
|
||||
Update a resource lock
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. rest_method:: PUT /v2/resource-locks/{resource-lock-id}
|
||||
|
||||
.. versionadded:: 2.81
|
||||
|
||||
Update a specific resource lock
|
||||
|
||||
By default, resource locks can be updated by the user that created the lock
|
||||
unless the ``lock_context`` is set to ``admin`` or ``service``. A user with
|
||||
``service`` role is required to manipulate locks that have a ``lock_context``
|
||||
set to ``service``. Users with ``admin`` role can manipulate all locks.
|
||||
Administrators can use ``policy.yaml`` to tweak this behavior.
|
||||
|
||||
Response codes
|
||||
--------------
|
||||
|
||||
.. rest_status_code:: success status.yaml
|
||||
|
||||
- 200
|
||||
|
||||
.. rest_status_code:: error status.yaml
|
||||
|
||||
- 401
|
||||
- 403
|
||||
- 404
|
||||
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- service_token: service_token_locks
|
||||
- resource_id: resource_lock_id_path
|
||||
- resource_lock: resource_lock_object
|
||||
- resource_action: resource_lock_resource_action_optional
|
||||
- lock_reason: resource_lock_lock_reason_optional
|
||||
|
||||
Request Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: ./samples/resource-lock-update-request.json
|
||||
:language: javascript
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- resource_lock: resource_lock_object
|
||||
- id: resource_lock_id
|
||||
- user_id: resource_lock_user_id
|
||||
- project_id: resource_lock_project_id
|
||||
- lock_context: resource_lock_lock_context
|
||||
- resource_type: resource_lock_resource_type
|
||||
- resource_id: resource_lock_resource_id
|
||||
- resource_action: resource_lock_resource_action
|
||||
- lock_reason: resource_lock_lock_reason
|
||||
- created_at: created_at
|
||||
- updated_at: updated_at
|
||||
- links: links
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: ./samples/resource-lock-update-response.json
|
||||
:language: javascript
|
||||
|
||||
|
||||
Delete a resource lock
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. rest_method:: DELETE /v2/resource-locks/{resource-lock-id}
|
||||
|
||||
.. versionadded:: 2.81
|
||||
|
||||
Delete a specific resource lock
|
||||
|
||||
By default, resource locks can be deleted by the user that created the lock
|
||||
unless the ``lock_context`` is set to ``admin`` or ``service``. A user with
|
||||
``service`` role is required to delete locks that have a ``lock_context``
|
||||
set to ``service``. Users with ``admin`` role can delete any lock.
|
||||
Administrators can use ``policy.yaml`` to tweak this behavior.
|
||||
|
||||
This request provides no response body.
|
||||
|
||||
Response codes
|
||||
--------------
|
||||
|
||||
.. rest_status_code:: success status.yaml
|
||||
|
||||
- 204
|
||||
|
||||
.. rest_status_code:: error status.yaml
|
||||
|
||||
- 401
|
||||
- 403
|
||||
- 404
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- service_token: service_token_locks
|
||||
- resource_id: resource_lock_id_path
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"availability_zones": [
|
||||
{
|
||||
"name": "nova",
|
||||
"created_at": "2015-09-18T09:50:55.000000",
|
||||
"updated_at": null,
|
||||
"id": "388c983d-258e-4a0e-b1ba-10da37d766db"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"export_locations": [
|
||||
{
|
||||
"path": "10.254.0.3:/shares/share-e1c2d35e-fe67-4028-ad7a-45f668732b1d",
|
||||
"share_instance_id": "e1c2d35e-fe67-4028-ad7a-45f668732b1d",
|
||||
"is_admin_only": false,
|
||||
"id": "b6bd76ce-12a2-42a9-a30a-8a43b503867d",
|
||||
"preferred": false
|
||||
},
|
||||
{
|
||||
"path": "10.0.0.3:/shares/share-e1c2d35e-fe67-4028-ad7a-45f668732b1d",
|
||||
"share_instance_id": "e1c2d35e-fe67-4028-ad7a-45f668732b1d",
|
||||
"is_admin_only": true,
|
||||
"id": "6921e862-88bc-49a5-a2df-efeed9acd583",
|
||||
"preferred": false
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"export_location": {
|
||||
"created_at": "2016-03-24T14:20:47.000000",
|
||||
"updated_at": "2016-03-24T14:20:47.000000",
|
||||
"preferred": false,
|
||||
"is_admin_only": true,
|
||||
"share_instance_id": "e1c2d35e-fe67-4028-ad7a-45f668732b1d",
|
||||
"path": "10.0.0.3:/shares/share-e1c2d35e-fe67-4028-ad7a-45f668732b1d",
|
||||
"id": "6921e862-88bc-49a5-a2df-efeed9acd583"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,102 @@
|
|||
{
|
||||
"extensions": [
|
||||
{
|
||||
"alias": "os-extended-quotas",
|
||||
"updated": "2013-06-09T00:00:00+00:00",
|
||||
"name": "ExtendedQuotas",
|
||||
"links": [],
|
||||
"description": "Extend quotas. Adds ability for admins to delete quota and optionally force the update Quota command."
|
||||
},
|
||||
{
|
||||
"alias": "os-quota-sets",
|
||||
"updated": "2011-08-08T00:00:00+00:00",
|
||||
"name": "Quotas",
|
||||
"links": [],
|
||||
"description": "Quotas management support."
|
||||
},
|
||||
{
|
||||
"alias": "os-quota-class-sets",
|
||||
"updated": "2012-03-12T00:00:00+00:00",
|
||||
"name": "QuotaClasses",
|
||||
"links": [],
|
||||
"description": "Quota classes management support."
|
||||
},
|
||||
{
|
||||
"alias": "os-share-unmanage",
|
||||
"updated": "2015-02-17T00:00:00+00:00",
|
||||
"name": "ShareUnmanage",
|
||||
"links": [],
|
||||
"description": "Enable share unmanage operation."
|
||||
},
|
||||
{
|
||||
"alias": "os-types-manage",
|
||||
"updated": "2011-08-24T00:00:00+00:00",
|
||||
"name": "TypesManage",
|
||||
"links": [],
|
||||
"description": "Types manage support."
|
||||
},
|
||||
{
|
||||
"alias": "share-actions",
|
||||
"updated": "2012-08-14T00:00:00+00:00",
|
||||
"name": "ShareActions",
|
||||
"links": [],
|
||||
"description": "Enable share actions."
|
||||
},
|
||||
{
|
||||
"alias": "os-availability-zone",
|
||||
"updated": "2015-07-28T00:00:00+00:00",
|
||||
"name": "AvailabilityZones",
|
||||
"links": [],
|
||||
"description": "Describe Availability Zones."
|
||||
},
|
||||
{
|
||||
"alias": "os-user-quotas",
|
||||
"updated": "2013-07-18T00:00:00+00:00",
|
||||
"name": "UserQuotas",
|
||||
"links": [],
|
||||
"description": "Project user quota support."
|
||||
},
|
||||
{
|
||||
"alias": "os-share-type-access",
|
||||
"updated": "2015-03-02T00:00:00Z",
|
||||
"name": "ShareTypeAccess",
|
||||
"links": [],
|
||||
"description": "share type access support."
|
||||
},
|
||||
{
|
||||
"alias": "os-types-extra-specs",
|
||||
"updated": "2011-08-24T00:00:00+00:00",
|
||||
"name": "TypesExtraSpecs",
|
||||
"links": [],
|
||||
"description": "Type extra specs support."
|
||||
},
|
||||
{
|
||||
"alias": "os-admin-actions",
|
||||
"updated": "2015-08-03T00:00:00+00:00",
|
||||
"name": "AdminActions",
|
||||
"links": [],
|
||||
"description": "Enable admin actions."
|
||||
},
|
||||
{
|
||||
"alias": "os-used-limits",
|
||||
"updated": "2014-03-27T00:00:00+00:00",
|
||||
"name": "UsedLimits",
|
||||
"links": [],
|
||||
"description": "Provide data on limited resources that are being used."
|
||||
},
|
||||
{
|
||||
"alias": "os-services",
|
||||
"updated": "2012-10-28T00:00:00-00:00",
|
||||
"name": "Services",
|
||||
"links": [],
|
||||
"description": "Services support."
|
||||
},
|
||||
{
|
||||
"alias": "os-share-manage",
|
||||
"updated": "2015-02-17T00:00:00+00:00",
|
||||
"name": "ShareManage",
|
||||
"links": [],
|
||||
"description": "Allows existing share to be 'managed' by Manila."
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"limits": {
|
||||
"rate": [],
|
||||
"absolute": {
|
||||
"totalShareNetworksUsed": 0,
|
||||
"maxTotalShareGigabytes": 1000,
|
||||
"maxTotalShareNetworks": 10,
|
||||
"totalSharesUsed": 0,
|
||||
"totalShareGigabytesUsed": 0,
|
||||
"totalShareSnapshotsUsed": 0,
|
||||
"maxTotalShares": 50,
|
||||
"totalSnapshotGigabytesUsed": 0,
|
||||
"maxTotalSnapshotGigabytes": 1000,
|
||||
"maxTotalShareSnapshots": 50,
|
||||
"maxTotalShareReplicas": 100,
|
||||
"maxTotalReplicaGigabytes": 1000,
|
||||
"totalShareReplicasUsed": 0,
|
||||
"totalReplicaGigabytesUsed": 0,
|
||||
"maxTotalShareBackups": 100,
|
||||
"maxTotalBackupGigabytes": 1000,
|
||||
"totalShareBackupsUsed": 0,
|
||||
"totalBackupGigabytesUsed": 0
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,120 @@
|
|||
{
|
||||
"pools": [
|
||||
{
|
||||
"name": "opencloud@alpha#ALPHA_pool",
|
||||
"host": "opencloud",
|
||||
"backend": "alpha",
|
||||
"pool": "ALPHA_pool",
|
||||
"capabilities": {
|
||||
"pool_name": "ALPHA_pool",
|
||||
"total_capacity_gb": 1230.0,
|
||||
"free_capacity_gb": 1210.0,
|
||||
"reserved_percentage": 0,
|
||||
"share_backend_name": "ALPHA",
|
||||
"storage_protocol": "NFS_CIFS",
|
||||
"vendor_name": "Open Source",
|
||||
"driver_version": "1.0",
|
||||
"timestamp": "2019-05-07T00:28:02.935569",
|
||||
"driver_handles_share_servers": true,
|
||||
"snapshot_support": true,
|
||||
"create_share_from_snapshot_support": true,
|
||||
"revert_to_snapshot_support": true,
|
||||
"mount_snapshot_support": true,
|
||||
"dedupe": false,
|
||||
"compression": false,
|
||||
"replication_type": null,
|
||||
"replication_domain": null,
|
||||
"sg_consistent_snapshot_support": "pool",
|
||||
"ipv4_support": true,
|
||||
"ipv6_support": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "opencloud@beta#BETA_pool",
|
||||
"host": "opencloud",
|
||||
"backend": "beta",
|
||||
"pool": "BETA_pool",
|
||||
"capabilities": {
|
||||
"pool_name": "BETA_pool",
|
||||
"total_capacity_gb": 1230.0,
|
||||
"free_capacity_gb": 1210.0,
|
||||
"reserved_percentage": 0,
|
||||
"share_backend_name": "BETA",
|
||||
"storage_protocol": "NFS_CIFS",
|
||||
"vendor_name": "Open Source",
|
||||
"driver_version": "1.0",
|
||||
"timestamp": "2019-05-07T00:28:02.817309",
|
||||
"driver_handles_share_servers": true,
|
||||
"snapshot_support": true,
|
||||
"create_share_from_snapshot_support": true,
|
||||
"revert_to_snapshot_support": true,
|
||||
"mount_snapshot_support": true,
|
||||
"dedupe": false,
|
||||
"compression": false,
|
||||
"replication_type": null,
|
||||
"replication_domain": null,
|
||||
"sg_consistent_snapshot_support": "pool",
|
||||
"ipv4_support": true,
|
||||
"ipv6_support": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "opencloud@gamma#GAMMA_pool",
|
||||
"host": "opencloud",
|
||||
"backend": "gamma",
|
||||
"pool": "GAMMA_pool",
|
||||
"capabilities": {
|
||||
"pool_name": "GAMMA_pool",
|
||||
"total_capacity_gb": 1230.0,
|
||||
"free_capacity_gb": 1210.0,
|
||||
"reserved_percentage": 0,
|
||||
"replication_type": "readable",
|
||||
"share_backend_name": "GAMMA",
|
||||
"storage_protocol": "NFS_CIFS",
|
||||
"vendor_name": "Open Source",
|
||||
"driver_version": "1.0",
|
||||
"timestamp": "2019-05-07T00:28:02.899888",
|
||||
"driver_handles_share_servers": false,
|
||||
"snapshot_support": true,
|
||||
"create_share_from_snapshot_support": true,
|
||||
"revert_to_snapshot_support": true,
|
||||
"mount_snapshot_support": true,
|
||||
"dedupe": false,
|
||||
"compression": false,
|
||||
"replication_domain": "replica_domain_store1",
|
||||
"sg_consistent_snapshot_support": "pool",
|
||||
"ipv4_support": true,
|
||||
"ipv6_support": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "opencloud@delta#DELTA_pool",
|
||||
"host": "opencloud",
|
||||
"backend": "delta",
|
||||
"pool": "DELTA_pool",
|
||||
"capabilities": {
|
||||
"pool_name": "DELTA_pool",
|
||||
"total_capacity_gb": 1230.0,
|
||||
"free_capacity_gb": 1210.0,
|
||||
"reserved_percentage": 0,
|
||||
"replication_type": "readable",
|
||||
"share_backend_name": "DELTA",
|
||||
"storage_protocol": "NFS_CIFS",
|
||||
"vendor_name": "Open Source",
|
||||
"driver_version": "1.0",
|
||||
"timestamp": "2019-05-07T00:28:02.963660",
|
||||
"driver_handles_share_servers": false,
|
||||
"snapshot_support": true,
|
||||
"create_share_from_snapshot_support": true,
|
||||
"revert_to_snapshot_support": true,
|
||||
"mount_snapshot_support": true,
|
||||
"dedupe": false,
|
||||
"compression": false,
|
||||
"replication_domain": "replica_domain_store1",
|
||||
"sg_consistent_snapshot_support": "pool",
|
||||
"ipv4_support": true,
|
||||
"ipv6_support": false
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
"pools": [
|
||||
{
|
||||
"name": "opencloud@alpha#ALPHA_pool",
|
||||
"host": "opencloud",
|
||||
"backend": "alpha",
|
||||
"pool": "ALPHA_pool"
|
||||
},
|
||||
{
|
||||
"name": "opencloud@beta#BETA_pool",
|
||||
"host": "opencloud",
|
||||
"backend": "beta",
|
||||
"pool": "BETA_pool"
|
||||
},
|
||||
{
|
||||
"name": "opencloud@gamma#GAMMA_pool",
|
||||
"host": "opencloud",
|
||||
"backend": "gamma",
|
||||
"pool": "GAMMA_pool"
|
||||
},
|
||||
{
|
||||
"name": "opencloud@delta#DELTA_pool",
|
||||
"host": "opencloud",
|
||||
"backend": "delta",
|
||||
"pool": "DELTA_pool"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"quota_class_set": {
|
||||
"share_groups": 50,
|
||||
"gigabytes": 1000,
|
||||
"share_group_snapshots": 50,
|
||||
"snapshots": 50,
|
||||
"snapshot_gigabytes": 1000,
|
||||
"shares": 50,
|
||||
"id": "default",
|
||||
"share_networks": 10,
|
||||
"share_replicas": 100,
|
||||
"replica_gigabytes": 1000,
|
||||
"per_share_gigabytes": -1,
|
||||
"backups": 50,
|
||||
"backup_gigabytes": 1000
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"quota_class_set": {
|
||||
"class_name": "test-qupta-class-update",
|
||||
"gigabytes": 20
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"quota_class_set": {
|
||||
"share_groups": 50,
|
||||
"gigabytes": 20,
|
||||
"share_group_snapshots": 50,
|
||||
"snapshots": 50,
|
||||
"snapshot_gigabytes": 1000,
|
||||
"shares": 50,
|
||||
"share_networks": 10,
|
||||
"share_replicas": 100,
|
||||
"replica_gigabytes": 1000,
|
||||
"per_share_gigabytes": -1,
|
||||
"backups": 50,
|
||||
"backup_gigabytes": 1000
|
||||
}
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"quota_set": {
|
||||
"id": "16e1ab15c35a457e9c2b2aa189f544e1",
|
||||
"gigabytes": {"in_use": 0,
|
||||
"limit": 1000,
|
||||
"reserved": 0},
|
||||
"shares": {"in_use": 0,
|
||||
"limit": 50,
|
||||
"reserved": 0},
|
||||
"snapshot_gigabytes": {"in_use": 0,
|
||||
"limit": 1000,
|
||||
"reserved": 0},
|
||||
"snapshots": {"in_use": 0,
|
||||
"limit": 50,
|
||||
"reserved": 0},
|
||||
"share_networks": {"in_use": 0,
|
||||
"limit": 10,
|
||||
"reserved": 0},
|
||||
"share_groups": {"in_use": 0,
|
||||
"limit": 10,
|
||||
"reserved": 0},
|
||||
"share_group_snapshots": {"in_use": 0,
|
||||
"limit": 10,
|
||||
"reserved": 0},
|
||||
"share_replicas": {"in_use": 0,
|
||||
"limit": 100,
|
||||
"reserved": 0},
|
||||
"replica_gigabytes": {"in_use": 0,
|
||||
"limit": 1000,
|
||||
"reserved": 0},
|
||||
"per_share_gigabytes": {"in_use": 0,
|
||||
"limit": -1,
|
||||
"reserved": 0},
|
||||
"backup_gigabytes": {"in_use": 0,
|
||||
"limit": 1000,
|
||||
"reserved": 0},
|
||||
"backups": {"in_use": 0,
|
||||
"limit": 50,
|
||||
"reserved": 0}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"quota_set": {
|
||||
"gigabytes": 1000,
|
||||
"shares": 50,
|
||||
"snapshot_gigabytes": 1000,
|
||||
"snapshots": 50,
|
||||
"id": "16e1ab15c35a457e9c2b2aa189f544e1",
|
||||
"share_networks": 10,
|
||||
"share_groups": 10,
|
||||
"share_group_snapshots": 10,
|
||||
"share_replicas": 100,
|
||||
"replica_gigabytes": 1000,
|
||||
"per_share_gigabytes": -1,
|
||||
"backups": 50,
|
||||
"backup_gigabytes": 1000
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"quota_set": {
|
||||
"snapshot_gigabytes": 999,
|
||||
"snapshots": 49,
|
||||
"share_networks": 9,
|
||||
"share_replicas": 89,
|
||||
"per_share_gigabytes": 5
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"quota_set": {
|
||||
"gigabytes": 1000,
|
||||
"snapshot_gigabytes": 999,
|
||||
"shares": 50,
|
||||
"snapshots": 49,
|
||||
"share_networks": 9,
|
||||
"share_groups": 12,
|
||||
"share_group_snapshots": 12,
|
||||
"share_replicas": 89,
|
||||
"replica_gigabytes": 1000,
|
||||
"per_share_gigabytes": -1,
|
||||
"backups": 40,
|
||||
"backup_gigabytes": 500
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"resource_lock": {
|
||||
"resource_id": "5a313549-d346-44b6-9650-738ce08a9fee",
|
||||
"resource_type": "share",
|
||||
"resource_action": "delete",
|
||||
"lock_reason": "Locked for deletion until year end audit."
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"resource_lock": {
|
||||
"id": "713dc92d-bf5e-4b04-875b-2b2d284d8f94",
|
||||
"user_id": "89de351d3b5744b9853ec4829aa0e714",
|
||||
"project_id": "db2e72fef7864bbbbf210f22da7f1158",
|
||||
"lock_context": "user",
|
||||
"resource_type": "share",
|
||||
"resource_id": "5a313549-d346-44b6-9650-738ce08a9fee",
|
||||
"resource_action": "delete",
|
||||
"lock_reason": "Locked for deletion until year end audit.",
|
||||
"created_at": "2023-07-17T22:11:48.144302",
|
||||
"updated_at": null,
|
||||
"links": [
|
||||
{
|
||||
"rel": "self",
|
||||
"href": "http://203.0.113.30/share/v2/resource_locks/713dc92d-bf5e-4b04-875b-2b2d284d8f94"
|
||||
},
|
||||
{
|
||||
"rel": "bookmark",
|
||||
"href": "http://203.0.113.30/share/resource_locks/713dc92d-bf5e-4b04-875b-2b2d284d8f94"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
{
|
||||
"resource_locks": [
|
||||
{
|
||||
"id": "118750ee-b62b-4cae-9a94-7da29a4f831f",
|
||||
"user_id": "89de351d3b5744b9853ec4829aa0e714",
|
||||
"project_id": "db2e72fef7864bbbbf210f22da7f1158",
|
||||
"lock_context": "user",
|
||||
"resource_type": "share",
|
||||
"resource_id": "4c0b4d35-4ea8-4811-a1e2-a065c64225a8",
|
||||
"resource_action": "delete",
|
||||
"lock_reason": null,
|
||||
"created_at": "2023-07-17T22:53:18.894553",
|
||||
"updated_at": null,
|
||||
"links": [
|
||||
{
|
||||
"rel": "self",
|
||||
"href": "http://203.0.113.30/share/v2/resource_locks/118750ee-b62b-4cae-9a94-7da29a4f831f"
|
||||
},
|
||||
{
|
||||
"rel": "bookmark",
|
||||
"href": "http://203.0.113.30/share/resource_locks/118750ee-b62b-4cae-9a94-7da29a4f831f"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "713dc92d-bf5e-4b04-875b-2b2d284d8f94",
|
||||
"user_id": "89de351d3b5744b9853ec4829aa0e714",
|
||||
"project_id": "db2e72fef7864bbbbf210f22da7f1158",
|
||||
"lock_context": "user",
|
||||
"resource_type": "share",
|
||||
"resource_id": "5a313549-d346-44b6-9650-738ce08a9fee",
|
||||
"resource_action": "delete",
|
||||
"lock_reason": "Locked for deletion until year end audit.",
|
||||
"created_at": "2023-07-17T22:11:48.144302",
|
||||
"updated_at": null,
|
||||
"links": [
|
||||
{
|
||||
"rel": "self",
|
||||
"href": "http://203.0.113.30/share/v2/resource_locks/713dc92d-bf5e-4b04-875b-2b2d284d8f94"
|
||||
},
|
||||
{
|
||||
"rel": "bookmark",
|
||||
"href": "http://203.0.113.30/share/resource_locks/713dc92d-bf5e-4b04-875b-2b2d284d8f94"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"resource_lock": {
|
||||
"id": "713dc92d-bf5e-4b04-875b-2b2d284d8f94",
|
||||
"user_id": "89de351d3b5744b9853ec4829aa0e714",
|
||||
"project_id": "db2e72fef7864bbbbf210f22da7f1158",
|
||||
"lock_context": "user",
|
||||
"resource_type": "share",
|
||||
"resource_id": "5a313549-d346-44b6-9650-738ce08a9fee",
|
||||
"resource_action": "delete",
|
||||
"lock_reason": "Locked for deletion until year end audit.",
|
||||
"created_at": "2023-07-17T22:11:48.144302",
|
||||
"updated_at": null,
|
||||
"links": [
|
||||
{
|
||||
"rel": "self",
|
||||
"href": "http://203.0.113.30/share/v2/resource_locks/713dc92d-bf5e-4b04-875b-2b2d284d8f94"
|
||||
},
|
||||
{
|
||||
"rel": "bookmark",
|
||||
"href": "http://203.0.113.30/share/resource_locks/713dc92d-bf5e-4b04-875b-2b2d284d8f94"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"resource_lock": {
|
||||
"lock_reason": "This is a protected share"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"resource_lock": {
|
||||
"id": "118750ee-b62b-4cae-9a94-7da29a4f831f",
|
||||
"user_id": "89de351d3b5744b9853ec4829aa0e714",
|
||||
"project_id": "db2e72fef7864bbbbf210f22da7f1158",
|
||||
"lock_context": "user",
|
||||
"resource_type": "share",
|
||||
"resource_id": "4c0b4d35-4ea8-4811-a1e2-a065c64225a8",
|
||||
"resource_action": "delete",
|
||||
"lock_reason": "This is a protected share",
|
||||
"created_at": "2023-07-17T22:53:18.894553",
|
||||
"updated_at": "2023-07-17T23:18:44.284565",
|
||||
"links": [
|
||||
{
|
||||
"rel": "self",
|
||||
"href": "http://203.0.113.30/share/v2/resource_locks/118750ee-b62b-4cae-9a94-7da29a4f831f"
|
||||
},
|
||||
{
|
||||
"rel": "bookmark",
|
||||
"href": "http://203.0.113.30/share/resource_locks/118750ee-b62b-4cae-9a94-7da29a4f831f"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"security_service": {
|
||||
"description": "Creating my first Security Service",
|
||||
"dns_ip": "10.0.0.0/24",
|
||||
"user": "demo",
|
||||
"password": "***",
|
||||
"type": "kerberos",
|
||||
"name": "SecServ1"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"security_service": {
|
||||
"status": "new",
|
||||
"domain": null,
|
||||
"ou": null,
|
||||
"project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
|
||||
"name": "SecServ1",
|
||||
"created_at": "2015-09-07T12:19:10.695211",
|
||||
"updated_at": null,
|
||||
"server": null,
|
||||
"default_ad_site": null,
|
||||
"dns_ip": "10.0.0.0/24",
|
||||
"user": "demo",
|
||||
"password": "supersecret",
|
||||
"type": "kerberos",
|
||||
"id": "3c829734-0679-4c17-9637-801da48c0d5f",
|
||||
"description": "Creating my first Security Service"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"security_service": {
|
||||
"status": "new",
|
||||
"domain": null,
|
||||
"ou": null,
|
||||
"project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
|
||||
"name": "SecServ1",
|
||||
"created_at": "2015-09-07T12:19:10.000000",
|
||||
"updated_at": null,
|
||||
"server": null,
|
||||
"default_ad_site": null,
|
||||
"dns_ip": "10.0.0.0/24",
|
||||
"user": "demo",
|
||||
"password": "supersecret",
|
||||
"type": "kerberos",
|
||||
"id": "3c829734-0679-4c17-9637-801da48c0d5f",
|
||||
"description": "Creating my first Security Service"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"security_service": {
|
||||
"domain": "my_domain",
|
||||
"ou": "CN=Computers",
|
||||
"password": "***",
|
||||
"user": "new_user",
|
||||
"description": "Adding a description"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"security_service": {
|
||||
"status": "new",
|
||||
"domain": "my_domain",
|
||||
"ou": "CN=Computers",
|
||||
"project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
|
||||
"name": "SecServ1",
|
||||
"created_at": "2015-09-07T12:19:10.000000",
|
||||
"updated_at": "2015-09-07T12:47:21.858737",
|
||||
"server": null,
|
||||
"dns_ip": "10.0.0.0/24",
|
||||
"user": "new_user",
|
||||
"password": "pass",
|
||||
"type": "kerberos",
|
||||
"id": "3c829734-0679-4c17-9637-801da48c0d5f",
|
||||
"description": "Adding a description"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
{
|
||||
"security_services": [
|
||||
{
|
||||
"status": "new",
|
||||
"domain": null,
|
||||
"ou": null,
|
||||
"project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
|
||||
"name": "SecServ1",
|
||||
"created_at": "2015-09-07T12:19:10.000000",
|
||||
"description": "Creating my first Security Service",
|
||||
"updated_at": null,
|
||||
"server": null,
|
||||
"default_ad_site": null,
|
||||
"dns_ip": "10.0.0.0/24",
|
||||
"user": "demo",
|
||||
"password": "supersecret",
|
||||
"type": "kerberos",
|
||||
"id": "3c829734-0679-4c17-9637-801da48c0d5f",
|
||||
"share_networks": []
|
||||
},
|
||||
{
|
||||
"status": "new",
|
||||
"domain": null,
|
||||
"ou": null,
|
||||
"project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
|
||||
"name": "SecServ2",
|
||||
"created_at": "2015-09-07T12:25:03.000000",
|
||||
"description": "Creating my second Security Service",
|
||||
"updated_at": null,
|
||||
"server": null,
|
||||
"default_ad_site": null,
|
||||
"dns_ip": "10.0.0.0/24",
|
||||
"user": null,
|
||||
"password": null,
|
||||
"type": "ldap",
|
||||
"id": "5a1d3a12-34a7-4087-8983-50e9ed03509a",
|
||||
"share_networks": []
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
{
|
||||
"security_services": [
|
||||
{
|
||||
"status": "new",
|
||||
"domain": null,
|
||||
"ou": null,
|
||||
"project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
|
||||
"name": "SecServ1",
|
||||
"created_at": "2015-09-07T12:19:10.000000",
|
||||
"description": "Creating my first Security Service",
|
||||
"updated_at": null,
|
||||
"server": null,
|
||||
"default_ad_site": null,
|
||||
"dns_ip": "10.0.0.0/24",
|
||||
"user": "demo",
|
||||
"password": "supersecret",
|
||||
"type": "kerberos",
|
||||
"id": "3c829734-0679-4c17-9637-801da48c0d5f",
|
||||
"share_networks": [
|
||||
"d8ae6799-2567-4a89-aafb-fa4424350d2b"
|
||||
]
|
||||
},
|
||||
{
|
||||
"status": "new",
|
||||
"domain": null,
|
||||
"ou": null,
|
||||
"project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
|
||||
"name": "SecServ2",
|
||||
"created_at": "2015-09-07T12:25:03.000000",
|
||||
"description": "Creating my second Security Service",
|
||||
"updated_at": null,
|
||||
"server": null,
|
||||
"default_ad_site": null,
|
||||
"dns_ip": "10.0.0.0/24",
|
||||
"user": null,
|
||||
"password": null,
|
||||
"type": "ldap",
|
||||
"id": "5a1d3a12-34a7-4087-8983-50e9ed03509a",
|
||||
"share_networks": [
|
||||
"d8ae6799-2567-4a89-aafb-fa4424350d2b"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"security_services": [
|
||||
{
|
||||
"status": "new",
|
||||
"type": "kerberos",
|
||||
"id": "3c829734-0679-4c17-9637-801da48c0d5f",
|
||||
"name": "SecServ1"
|
||||
},
|
||||
{
|
||||
"status": "new",
|
||||
"type": "ldap",
|
||||
"id": "5a1d3a12-34a7-4087-8983-50e9ed03509a",
|
||||
"name": "SecServ2"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"binary": "manila-share",
|
||||
"host": "openstackhost@generic#pool_0",
|
||||
"disabled_reason": "Service taken down for maintenance until May"
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"binary": "manila-share",
|
||||
"host": "openstackhost@generic#pool_0",
|
||||
"status": "disabled",
|
||||
"disabled_reason": "Service taken down for maintenance until May"
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"binary": "manila-share",
|
||||
"host": "openstackhost@generic#pool_0"
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"binary": "manila-share",
|
||||
"host": "openstackhost@generic#pool_0",
|
||||
"status": "enabled",
|
||||
"disabled_reason": ""
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"services": [
|
||||
{
|
||||
"status": "enabled",
|
||||
"binary": "manila-share",
|
||||
"zone": "nova",
|
||||
"host": "manila2@generic1",
|
||||
"updated_at": "2015-09-07T13:03:57.000000",
|
||||
"state": "up",
|
||||
"id": 1
|
||||
},
|
||||
{
|
||||
"status": "enabled",
|
||||
"binary": "manila-scheduler",
|
||||
"zone": "nova",
|
||||
"host": "manila2",
|
||||
"updated_at": "2015-09-07T13:03:57.000000",
|
||||
"state": "up",
|
||||
"id": 2
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"services": [
|
||||
{
|
||||
"status": "enabled",
|
||||
"binary": "manila-share",
|
||||
"zone": "nova",
|
||||
"host": "manila2@generic1",
|
||||
"updated_at": "2015-09-07T13:14:27.000000",
|
||||
"state": "up",
|
||||
"id": 1
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"access_list": [
|
||||
{
|
||||
"access_level": "rw",
|
||||
"state": "error",
|
||||
"id": "507bf114-36f2-4f56-8cf4-857985ca87c1",
|
||||
"access_type": "cert",
|
||||
"access_to": "example.com",
|
||||
"access_key": null,
|
||||
"created_at": "2018-07-17T02:01:04.000000",
|
||||
"updated_at": "2018-07-17T02:01:04.000000",
|
||||
"metadata": {
|
||||
"key1": "value1",
|
||||
"key2": "value2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"access_level": "rw",
|
||||
"state": "active",
|
||||
"id": "a25b2df3-90bd-4add-afa6-5f0dbbd50452",
|
||||
"access_type": "ip",
|
||||
"access_to": "0.0.0.0/0",
|
||||
"access_key": null,
|
||||
"created_at": "2018-07-16T01:03:21.000000",
|
||||
"updated_at": "2018-07-16T01:03:21.000000",
|
||||
"metadata": {
|
||||
"key3": "value3",
|
||||
"key4": "value4"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"access": {
|
||||
"access_level": "rw",
|
||||
"state": "error",
|
||||
"id": "507bf114-36f2-4f56-8cf4-857985ca87c1",
|
||||
"share_id": "fb213952-2352-41b4-ad7b-2c4c69d13eef",
|
||||
"access_type": "cert",
|
||||
"access_to": "example.com",
|
||||
"access_key": null,
|
||||
"created_at": "2018-07-17T02:01:04.000000",
|
||||
"updated_at": "2018-07-17T02:01:04.000000",
|
||||
"metadata": {
|
||||
"key1": "value1",
|
||||
"key2": "value2"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"metadata": {
|
||||
"aim": "changed_doc",
|
||||
"speed": "my_fast_access",
|
||||
"new_metadata_key": "new_information"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"metadata": {
|
||||
"aim": "changed_doc",
|
||||
"speed": "my_fast_access",
|
||||
"new_metadata_key": "new_information"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"extend": {
|
||||
"new_size": 2,
|
||||
"force": "true"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"force_delete": null
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"allow_access": {
|
||||
"access_level": "rw",
|
||||
"access_type": "ip",
|
||||
"access_to": "0.0.0.0/0",
|
||||
"metadata":{
|
||||
"key1": "value1",
|
||||
"key2": "value2"
|
||||
},
|
||||
"lock_visibility": false,
|
||||
"lock_deletion": true,
|
||||
"lock_reason": "Locked for deletion until year end audit."
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"access": {
|
||||
"share_id": "406ea93b-32e9-4907-a117-148b3945749f",
|
||||
"created_at": "2015-09-07T09:14:48.000000",
|
||||
"updated_at": null,
|
||||
"access_type": "ip",
|
||||
"access_to": "0.0.0.0/0",
|
||||
"access_level": "rw",
|
||||
"access_key": null,
|
||||
"id": "a25b2df3-90bd-4add-afa6-5f0dbbd50452",
|
||||
"metadata":{
|
||||
"key1": "value1",
|
||||
"key2": "value2"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"access_list": null
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"access_list": [
|
||||
{
|
||||
"access_level": "rw",
|
||||
"state": "error",
|
||||
"id": "507bf114-36f2-4f56-8cf4-857985ca87c1",
|
||||
"access_type": "cert",
|
||||
"access_to": "example.com",
|
||||
"access_key": null
|
||||
},
|
||||
{
|
||||
"access_level": "rw",
|
||||
"state": "active",
|
||||
"id": "a25b2df3-90bd-4add-afa6-5f0dbbd50452",
|
||||
"access_type": "ip",
|
||||
"access_to": "0.0.0.0/0",
|
||||
"access_key": null
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"reset_status": {
|
||||
"status": "error"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"restore": null
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"revert": {
|
||||
"snapshot_id": "6020af24-a305-4155-9a29-55e20efcb0e8"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"deny_access": {
|
||||
"access_id": "a25b2df3-90bd-4add-afa6-5f0dbbd50452",
|
||||
"unrestrict": true
|
||||
}
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"shrink": {
|
||||
"new_size": 1
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"soft_delete": null
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"unmanage": null
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"share_backup": {
|
||||
"share_id": "7b11dd53-546e-43cd-af0e-875434238c30",
|
||||
"backup_options": {},
|
||||
"description": null,
|
||||
"name": "backup1"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"share_backup": {
|
||||
"id": "c1cdc0ce-4ddc-4018-9796-505d2e26fcc7",
|
||||
"share_id": "7b11dd53-546e-43cd-af0e-875434238c30",
|
||||
"status": "creating",
|
||||
"name": "backup1",
|
||||
"description": null,
|
||||
"size": 1,
|
||||
"created_at": "2023-08-16T13:03:59.020692",
|
||||
"updated_at": "2023-08-16T13:03:59.020692",
|
||||
"availability_zone": null,
|
||||
"progress": "0",
|
||||
"restore_progress": "0"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"reset_status": {
|
||||
"status": "error"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"restore": null
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"restore": {
|
||||
"backup_id": "c1cdc0ce-4ddc-4018-9796-505d2e26fcc7",
|
||||
"share_id": "7b11dd53-546e-43cd-af0e-875434238c30"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"share_backup": {
|
||||
"id": "c1cdc0ce-4ddc-4018-9796-505d2e26fcc7",
|
||||
"share_id": "7b11dd53-546e-43cd-af0e-875434238c30",
|
||||
"status": "available",
|
||||
"name": "backup1",
|
||||
"description": null,
|
||||
"size": 1,
|
||||
"created_at": "2023-08-16T13:03:59.000000",
|
||||
"updated_at": "2023-08-16T13:04:15.000000",
|
||||
"availability_zone": null,
|
||||
"progress": "100",
|
||||
"restore_progress": "0"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"share_backup": {
|
||||
"display_name": "backup2",
|
||||
"display_description": "I am changing a description also. Here is a backup"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"share_backup": {
|
||||
"id": "fa32a89f-ed0f-4906-b1d7-92eedf98fbb5",
|
||||
"share_id": "7b11dd53-546e-43cd-af0e-875434238c30",
|
||||
"status": "available",
|
||||
"name": "backup2",
|
||||
"description": "I am changing a description also. Here is a backup",
|
||||
"size": 1,
|
||||
"created_at": "2023-08-16T13:18:55.000000",
|
||||
"updated_at": "2023-08-16T13:33:15.000000",
|
||||
"availability_zone": null,
|
||||
"progress": "100",
|
||||
"restore_progress": "0"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
{
|
||||
"share_backups": [
|
||||
{
|
||||
"id": "1125c47a-0216-4ee0-a517-0460d63301a6",
|
||||
"share_id": "112dffd-f033-4248-a315-319ca2bd70c8",
|
||||
"status": "available",
|
||||
"name": "backup3",
|
||||
"description": null,
|
||||
"size": 1,
|
||||
"created_at": "2023-08-16T12:34:57.000000",
|
||||
"updated_at": "2023-08-17T12:14:15.000000",
|
||||
"availability_zone": null,
|
||||
"progress": "100",
|
||||
"restore_progress": "0"
|
||||
},
|
||||
{
|
||||
"id": "c1cdc0ce-4ddc-4018-9796-505d2e26fcc7",
|
||||
"share_id": "7b11dd53-546e-43cd-af0e-875434238c30",
|
||||
"status": "creating",
|
||||
"name": "backup1",
|
||||
"description": null,
|
||||
"size": 1,
|
||||
"created_at": "2023-08-16T13:03:59.020692",
|
||||
"updated_at": "2023-08-16T13:13:15.000002",
|
||||
"availability_zone": null,
|
||||
"progress": "0",
|
||||
"restore_progress": "0"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"share_backups": [
|
||||
{
|
||||
"id": "1125c47a-0216-4ee0-a517-0460d63301a6",
|
||||
"name": "backup3",
|
||||
"share_id": "112dffd-f033-4248-a315-319ca2bd70c8",
|
||||
"status": "available"
|
||||
},
|
||||
{
|
||||
"id": "c1cdc0ce-4ddc-4018-9796-505d2e26fcc7",
|
||||
"name": "backup1",
|
||||
"share_id": "7b11dd53-546e-43cd-af0e-875434238c30",
|
||||
"status": "creating"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"share": {
|
||||
"description": "My custom share London",
|
||||
"share_type": null,
|
||||
"share_proto": "nfs",
|
||||
"share_network_id": "713df749-aac0-4a54-af52-10f6c991e80c",
|
||||
"share_group_id": null,
|
||||
"name": "share_London",
|
||||
"snapshot_id": null,
|
||||
"is_public": true,
|
||||
"size": 1,
|
||||
"metadata": {
|
||||
"project": "my_app",
|
||||
"aim": "doc"
|
||||
},
|
||||
"scheduler_hints": {
|
||||
"same_host": "d9c66489-cf02-4156-b0f2-527f3211b243,4ffee55f-ba98-42d2-a8ce-e7cecb169182",
|
||||
"different_host": "903685eb-f242-4105-903d-4bef2db94be4"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
{
|
||||
"share": {
|
||||
"status": null,
|
||||
"progress": null,
|
||||
"share_server_id": null,
|
||||
"project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
|
||||
"name": "share_London",
|
||||
"share_type": "25747776-08e5-494f-ab40-a64b9d20d8f7",
|
||||
"share_type_name": "default",
|
||||
"availability_zone": null,
|
||||
"created_at": "2015-09-18T10:25:24.533287",
|
||||
"export_location": null,
|
||||
"links": [
|
||||
{
|
||||
"href": "http://172.18.198.54:8786/v1/16e1ab15c35a457e9c2b2aa189f544e1/shares/011d21e2-fbc3-4e4a-9993-9ea223f73264",
|
||||
"rel": "self"
|
||||
},
|
||||
{
|
||||
"href": "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/shares/011d21e2-fbc3-4e4a-9993-9ea223f73264",
|
||||
"rel": "bookmark"
|
||||
}
|
||||
],
|
||||
"share_network_id": null,
|
||||
"share_group_id": null,
|
||||
"export_locations": [],
|
||||
"share_proto": "NFS",
|
||||
"host": null,
|
||||
"access_rules_status": "active",
|
||||
"has_replicas": false,
|
||||
"replication_type": null,
|
||||
"task_state": null,
|
||||
"snapshot_support": true,
|
||||
"volume_type": "default",
|
||||
"snapshot_id": null,
|
||||
"is_public": true,
|
||||
"metadata": {
|
||||
"project": "my_app",
|
||||
"aim": "doc"
|
||||
},
|
||||
"id": "011d21e2-fbc3-4e4a-9993-9ea223f73264",
|
||||
"size": 1,
|
||||
"description": "My custom share London"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"share_group": {
|
||||
"share_types": ["ecd11f4c-d811-4471-b656-c755c77e02ba"],
|
||||
"name": "my_group",
|
||||
"description": "for_test",
|
||||
"share_group_type_id": "89861c2a-10bf-4013-bdd4-3d020466aee4",
|
||||
"availability_zone": "nova",
|
||||
"share_network_id": "82168c2a-10bf-4013-bcc4-3d984136aee3",
|
||||
"source_share_group_snapshot_id": "69861c2a-10bf-4013-bcc4-3d020466aee3"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
"share_groups": {
|
||||
"status": "creating",
|
||||
"description": null,
|
||||
"links": [
|
||||
{
|
||||
"href": "http://192.168.98.191:8786/v2/e23850eeb91d4fa3866af634223e454c/share_groups/f9c1f80c-2392-4e34-bd90-fc89cdc5bf93",
|
||||
"rel": "self"
|
||||
},
|
||||
{
|
||||
"href": "http://192.168.98.191:8786/e23850eeb91d4fa3866af634223e454c/share_groups/f9c1f80c-2392-4e34-bd90-fc89cdc5bf93",
|
||||
"rel": "bookmark"
|
||||
}
|
||||
],
|
||||
"availability_zone": null,
|
||||
"source_share_group_snapshot_id": null,
|
||||
"share_network_id": null,
|
||||
"share_server_id": null,
|
||||
"host": null,
|
||||
"share_group_type_id": "89861c2a-10bf-4013-bdd4-3d020466aee4",
|
||||
"consistent_snapshot_support": null,
|
||||
"id": "f9c1f80c-2392-4e34-bd90-fc89cdc5bf93",
|
||||
"name": null,
|
||||
"created_at": "2017-08-03T19:20:33.974421",
|
||||
"project_id": "e23850eeb91d4fa3866af634223e454c",
|
||||
"share_types": ["ecd11f4c-d811-4471-b656-c755c77e02ba"]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"reset_status": {
|
||||
"status": "error"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"share_groups": {
|
||||
"links": [
|
||||
{
|
||||
"href": "http://172.18.198.54:8786/v2/16e1ab15c35a457e9c2b2aa189f544e1/share_groups/011d21e2-fbc3-4e4a-9993-9ea223f73264",
|
||||
"rel": "self"
|
||||
},
|
||||
{
|
||||
"href": "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/share_groups/011d21e2-fbc3-4e4a-9993-9ea223f73264",
|
||||
"rel": "bookmark"
|
||||
}
|
||||
],
|
||||
"availability_zone": "nova",
|
||||
"consistent_snapshot_support": true,
|
||||
"share_group_type_id": "313df749-aac0-1a54-af52-10f6c991e80c",
|
||||
"share_network_id": "713df749-aac0-4a54-af52-10f6c991e80c",
|
||||
"id": "011d21e2-fbc3-4e4a-9993-9ea223f73264",
|
||||
"share_types": ["25747776-08e5-494f-ab40-a64b9d20d8f7"],
|
||||
"project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
|
||||
"status": "available",
|
||||
"description": "My custom share London",
|
||||
"host": "manila2@generic1#GENERIC1",
|
||||
"source_share_group_snapshot_id": null,
|
||||
"name": "share_London",
|
||||
"created_at": "2015-09-18T10:25:24.000000"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"reset_status": {
|
||||
"status": "error"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"share_group_snapshot": {
|
||||
"share_group_id": "cd7a3d06-23b3-4d05-b4ca-7c9a20faa95f",
|
||||
"name": "test",
|
||||
"description": "test description"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"share_group_snapshot": {
|
||||
"status": "creating",
|
||||
"share_group_id": "cd7a3d06-23b3-4d05-b4ca-7c9a20faa95f",
|
||||
"links": [
|
||||
{
|
||||
"href": "http://192.168.98.191:8786/v2/e23850eeb91d4fa3866af634223e454c/share_group_snapshot/46bf5875-58d6-4816-948f-8828423b0b9f",
|
||||
"rel": "self"
|
||||
},
|
||||
{
|
||||
"href": "http://192.168.98.191:8786/e23850eeb91d4fa3866af634223e454c/share_group_snapshot/46bf5875-58d6-4816-948f-8828423b0b9f",
|
||||
"rel": "bookmark"
|
||||
}
|
||||
],
|
||||
"name": null,
|
||||
"members": [],
|
||||
"created_at": "2017-08-10T03:01:39.442509",
|
||||
"project_id": "e23850eeb91d4fa3866af634223e454c",
|
||||
"id": "46bf5875-58d6-4816-948f-8828423b0b9f",
|
||||
"description": null
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"share_group_snapshot": {
|
||||
"status": "creating",
|
||||
"share_group_id": "cd7a3d06-23b3-4d05-b4ca-7c9a20faa95f",
|
||||
"links": [
|
||||
{
|
||||
"href": "http://192.168.98.191:8786/v2/e23850eeb91d4fa3866af634223e454c/share_group_snapshot/46bf5875-58d6-4816-948f-8828423b0b9f",
|
||||
"rel": "self"
|
||||
},
|
||||
{
|
||||
"href": "http://192.168.98.191:8786/e23850eeb91d4fa3866af634223e454c/share_group_snapshot/46bf5875-58d6-4816-948f-8828423b0b9f",
|
||||
"rel": "bookmark"
|
||||
}
|
||||
],
|
||||
"name": null,
|
||||
"members": [],
|
||||
"created_at": "2017-08-10T03:01:39.442509",
|
||||
"project_id": "e23850eeb91d4fa3866af634223e454c",
|
||||
"id": "46bf5875-58d6-4816-948f-8828423b0b9f",
|
||||
"description": null
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"share_group_snapshot": {
|
||||
"name": "update name",
|
||||
"description": "update description"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"share_group_snapshot": {
|
||||
"status": "creating",
|
||||
"share_group_id": "cd7a3d06-23b3-4d05-b4ca-7c9a20faa95f",
|
||||
"links": [
|
||||
{
|
||||
"href": "http://192.168.98.191:8786/v2/e23850eeb91d4fa3866af634223e454c/share_group_snapshot/46bf5875-58d6-4816-948f-8828423b0b9f",
|
||||
"rel": "self"
|
||||
},
|
||||
{
|
||||
"href": "http://192.168.98.191:8786/e23850eeb91d4fa3866af634223e454c/share_group_snapshot/46bf5875-58d6-4816-948f-8828423b0b9f",
|
||||
"rel": "bookmark"
|
||||
}
|
||||
],
|
||||
"name": null,
|
||||
"members": [],
|
||||
"created_at": "2017-08-10T03:01:39.442509",
|
||||
"project_id": "e23850eeb91d4fa3866af634223e454c",
|
||||
"id": "46bf5875-58d6-4816-948f-8828423b0b9f",
|
||||
"description": null
|
||||
}
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
{
|
||||
"share_group_snapshots": [
|
||||
{
|
||||
"status": "available",
|
||||
"share_group_id": "cd7a3d06-23b3-4d05-b4ca-7c9a20faa95f",
|
||||
"links": [
|
||||
{
|
||||
"href": "http://192.168.98.191:8786/v2/e23850eeb91d4fa3866af634223e454c/share_group_snapshot/46bf5875-58d6-4816-948f-8828423b0b9f",
|
||||
"rel": "self"
|
||||
},
|
||||
{
|
||||
"href": "http://192.168.98.191:8786/e23850eeb91d4fa3866af634223e454c/share_group_snapshot/46bf5875-58d6-4816-948f-8828423b0b9f",
|
||||
"rel": "bookmark"
|
||||
}
|
||||
],
|
||||
"name": null,
|
||||
"members": [],
|
||||
"created_at": "2017-08-10T03:01:39.000000",
|
||||
"project_id": "e23850eeb91d4fa3866af634223e454c",
|
||||
"id": "46bf5875-58d6-4816-948f-8828423b0b9f",
|
||||
"description": null
|
||||
},
|
||||
{
|
||||
"status": "available",
|
||||
"share_group_id": "cd7a3d06-23b3-4d05-b4ca-7c9a20faa95f",
|
||||
"links": [
|
||||
{
|
||||
"href": "http://192.168.98.191:8786/v2/e23850eeb91d4fa3866af634223e454c/share_group_snapshot/9d8ed9be-4454-4df0-b0ae-8360b623d93d",
|
||||
"rel": "self"
|
||||
},
|
||||
{
|
||||
"href": "http://192.168.98.191:8786/e23850eeb91d4fa3866af634223e454c/share_group_snapshot/9d8ed9be-4454-4df0-b0ae-8360b623d93d",
|
||||
"rel": "bookmark"
|
||||
}
|
||||
],
|
||||
"name": null,
|
||||
"members": [],
|
||||
"created_at": "2017-08-10T03:01:28.000000",
|
||||
"project_id": "e23850eeb91d4fa3866af634223e454c",
|
||||
"id": "9d8ed9be-4454-4df0-b0ae-8360b623d93d",
|
||||
"description": null
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"share_group_snapshot_members": [
|
||||
{
|
||||
"status": "available",
|
||||
"share_id": "406ea93b-32e9-4907-a117-148b3945749f",
|
||||
"created_at": "2017-09-07T11:50:39.000000",
|
||||
"share_proto": "NFS",
|
||||
"share_size": 1,
|
||||
"id": "6d221c1d-0200-461e-8d20-24b4776b9ddb",
|
||||
"size": 1
|
||||
},
|
||||
{
|
||||
"status": "available",
|
||||
"share_id": "406ea93b-32e9-4907-a117-148b3945749f",
|
||||
"created_at": "2015-09-07T11:50:39.000000",
|
||||
"share_proto": "NFS",
|
||||
"share_size": 1,
|
||||
"id": "6d221c1d-0200-461e-8d20-24b4776b9ddb",
|
||||
"size": 1
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"share_group_snapshot": [
|
||||
{
|
||||
"links": [
|
||||
{
|
||||
"href": "http://192.168.98.191:8786/v2/e23850eeb91d4fa3866af634223e454c/share_group_snapshot/46bf5875-58d6-4816-948f-8828423b0b9f",
|
||||
"rel": "self"
|
||||
},
|
||||
{
|
||||
"href": "http://192.168.98.191:8786/e23850eeb91d4fa3866af634223e454c/share_group_snapshot/46bf5875-58d6-4816-948f-8828423b0b9f",
|
||||
"rel": "bookmark"
|
||||
}
|
||||
],
|
||||
"name": null,
|
||||
"id": "46bf5875-58d6-4816-948f-8828423b0b9f"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"share_group_type": {
|
||||
"is_public": true,
|
||||
"group_specs": {
|
||||
"snapshot_support": true
|
||||
},
|
||||
"share_types": ["ecd11f4c-d811-4471-b656-c755c77e02ba"],
|
||||
"name": "my_new_group_type"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"share_group_type": {
|
||||
"is_public": true,
|
||||
"group_specs": {},
|
||||
"share_types": ["ecd11f4c-d811-4471-b656-c755c77e02ba"],
|
||||
"id": "89861c2a-10bf-4013-bdd4-3d020466aee4",
|
||||
"name": "test_group_type",
|
||||
"is_default": false
|
||||
}
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"addProjectAccess": {
|
||||
"project": "e1284adea3ee4d2482af5ed214f3ad90"
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue