First commit"

Change-Id: I3bd0289dd7415db9f6edb39163aeb42a9bcf1baf
This commit is contained in:
Volodymyr Boiko 2024-05-11 22:04:44 +03:00
parent 58e19d2cda
commit b5bd9d394b
2100 changed files with 426238 additions and 9 deletions

8
.coveragerc Normal file
View File

@ -0,0 +1,8 @@
[run]
branch = True
source = manila
omit = manila/test*
concurrency = eventlet
[report]
precision = 0

47
.gitignore vendored Normal file
View File

@ -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

39
.pre-commit-config.yaml Normal file
View File

@ -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)/.*$'

188
.pylintrc Normal file
View File

@ -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

3
.stestr.conf Normal file
View File

@ -0,0 +1,3 @@
[DEFAULT]
test_path=./manila/tests
top_dir=./

23
CONTRIBUTING.rst Normal file
View File

@ -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

106
HACKING.rst Normal file
View File

@ -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

176
LICENSE Normal file
View File

@ -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.

View File

@ -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/

View File

@ -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

View File

@ -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.

304
api-ref/source/conf.py Normal file
View File

@ -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

View File

@ -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.

View File

@ -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

69
api-ref/source/index.rst Normal file
View File

@ -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

98
api-ref/source/limits.inc Normal file
View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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"
}
]
}

View File

@ -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
}
]
}

View File

@ -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"
}
}

View File

@ -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."
}
]
}

View File

@ -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
}
}
}

View File

@ -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
}
}
]
}

View File

@ -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"
}
]
}

View File

@ -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
}
}

View File

@ -0,0 +1,6 @@
{
"quota_class_set": {
"class_name": "test-qupta-class-update",
"gigabytes": 20
}
}

View File

@ -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
}
}

View File

@ -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}
}
}

View File

@ -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
}
}

View File

@ -0,0 +1,9 @@
{
"quota_set": {
"snapshot_gigabytes": 999,
"snapshots": 49,
"share_networks": 9,
"share_replicas": 89,
"per_share_gigabytes": 5
}
}

View File

@ -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
}
}

View File

@ -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."
}
}

View File

@ -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"
}
]
}
}

View File

@ -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"
}
]
}
]
}

View File

@ -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"
}
]
}
}

View File

@ -0,0 +1,5 @@
{
"resource_lock": {
"lock_reason": "This is a protected share"
}
}

View File

@ -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"
}
]
}
}

View File

@ -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"
}
}

View File

@ -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"
}
}

View File

@ -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"
}
}

View File

@ -0,0 +1,9 @@
{
"security_service": {
"domain": "my_domain",
"ou": "CN=Computers",
"password": "***",
"user": "new_user",
"description": "Adding a description"
}
}

View File

@ -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"
}
}

View File

@ -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": []
}
]
}

View File

@ -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"
]
}
]
}

View File

@ -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"
}
]
}

View File

@ -0,0 +1,5 @@
{
"binary": "manila-share",
"host": "openstackhost@generic#pool_0",
"disabled_reason": "Service taken down for maintenance until May"
}

View File

@ -0,0 +1,6 @@
{
"binary": "manila-share",
"host": "openstackhost@generic#pool_0",
"status": "disabled",
"disabled_reason": "Service taken down for maintenance until May"
}

View File

@ -0,0 +1,4 @@
{
"binary": "manila-share",
"host": "openstackhost@generic#pool_0"
}

View File

@ -0,0 +1,6 @@
{
"binary": "manila-share",
"host": "openstackhost@generic#pool_0",
"status": "enabled",
"disabled_reason": ""
}

View File

@ -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
}
]
}

View File

@ -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
}
]
}

View File

@ -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"
}
}
]
}

View File

@ -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"
}
}
}

View File

@ -0,0 +1,7 @@
{
"metadata": {
"aim": "changed_doc",
"speed": "my_fast_access",
"new_metadata_key": "new_information"
}
}

View File

@ -0,0 +1,7 @@
{
"metadata": {
"aim": "changed_doc",
"speed": "my_fast_access",
"new_metadata_key": "new_information"
}
}

View File

@ -0,0 +1,6 @@
{
"extend": {
"new_size": 2,
"force": "true"
}
}

View File

@ -0,0 +1,3 @@
{
"force_delete": null
}

View File

@ -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."
}
}

View File

@ -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"
}
}
}

View File

@ -0,0 +1,3 @@
{
"access_list": null
}

View File

@ -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
}
]
}

View File

@ -0,0 +1,5 @@
{
"reset_status": {
"status": "error"
}
}

View File

@ -0,0 +1,3 @@
{
"restore": null
}

View File

@ -0,0 +1,5 @@
{
"revert": {
"snapshot_id": "6020af24-a305-4155-9a29-55e20efcb0e8"
}
}

View File

@ -0,0 +1,6 @@
{
"deny_access": {
"access_id": "a25b2df3-90bd-4add-afa6-5f0dbbd50452",
"unrestrict": true
}
}

View File

@ -0,0 +1,5 @@
{
"shrink": {
"new_size": 1
}
}

View File

@ -0,0 +1,3 @@
{
"soft_delete": null
}

View File

@ -0,0 +1,3 @@
{
"unmanage": null
}

View File

@ -0,0 +1,8 @@
{
"share_backup": {
"share_id": "7b11dd53-546e-43cd-af0e-875434238c30",
"backup_options": {},
"description": null,
"name": "backup1"
}
}

View File

@ -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"
}
}

View File

@ -0,0 +1,5 @@
{
"reset_status": {
"status": "error"
}
}

View File

@ -0,0 +1,3 @@
{
"restore": null
}

View File

@ -0,0 +1,6 @@
{
"restore": {
"backup_id": "c1cdc0ce-4ddc-4018-9796-505d2e26fcc7",
"share_id": "7b11dd53-546e-43cd-af0e-875434238c30"
}
}

View File

@ -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"
}
}

View File

@ -0,0 +1,6 @@
{
"share_backup": {
"display_name": "backup2",
"display_description": "I am changing a description also. Here is a backup"
}
}

View File

@ -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"
}
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
}
}

View File

@ -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"
}
}

View File

@ -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"
}
}

View File

@ -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"]
}
}

View File

@ -0,0 +1,5 @@
{
"reset_status": {
"status": "error"
}
}

View File

@ -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"
}
}

View File

@ -0,0 +1,5 @@
{
"reset_status": {
"status": "error"
}
}

View File

@ -0,0 +1,7 @@
{
"share_group_snapshot": {
"share_group_id": "cd7a3d06-23b3-4d05-b4ca-7c9a20faa95f",
"name": "test",
"description": "test description"
}
}

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -0,0 +1,6 @@
{
"share_group_snapshot": {
"name": "update name",
"description": "update description"
}
}

View File

@ -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
}
}

View File

@ -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
}
]
}

View File

@ -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
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
}

View File

@ -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
}
}

View File

@ -0,0 +1,5 @@
{
"addProjectAccess": {
"project": "e1284adea3ee4d2482af5ed214f3ad90"
}
}

Some files were not shown because too many files have changed in this diff Show More