Merge "Adding SDK support for ``glance md-namespace-properties-delete``"
This commit is contained in:
commit
fe18a3bef8
|
@ -1525,6 +1525,23 @@ class Proxy(proxy.Proxy):
|
|||
**query,
|
||||
)
|
||||
|
||||
def delete_all_metadef_properties(self, metadef_namespace):
|
||||
"""Delete all metadata definitions property inside a specific namespace.
|
||||
|
||||
:param metadef_namespace: The value can be either the name of a metadef
|
||||
namespace or a
|
||||
:class:`~openstack.image.v2.metadef_namespace.MetadefNamespace`
|
||||
instance.
|
||||
|
||||
:returns: ``None``
|
||||
:raises: :class:`~openstack.exceptions.ResourceNotFound` when no
|
||||
resource can be found.
|
||||
"""
|
||||
namespace = self._get_resource(
|
||||
_metadef_namespace.MetadefNamespace, metadef_namespace
|
||||
)
|
||||
return namespace.delete_all_properties(self)
|
||||
|
||||
# ====== SCHEMAS ======
|
||||
def get_images_schema(self):
|
||||
"""Get images schema
|
||||
|
|
|
@ -10,7 +10,9 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from openstack import exceptions
|
||||
from openstack import resource
|
||||
from openstack import utils
|
||||
|
||||
|
||||
class MetadefNamespace(resource.Resource):
|
||||
|
@ -71,3 +73,18 @@ class MetadefNamespace(resource.Resource):
|
|||
has_body=True,
|
||||
retry_on_conflict=None,
|
||||
)
|
||||
|
||||
def _delete_all(self, session, url):
|
||||
response = session.delete(url)
|
||||
exceptions.raise_from_response(response)
|
||||
self._translate_response(response, has_body=False)
|
||||
return self
|
||||
|
||||
def delete_all_properties(self, session):
|
||||
"""Delete all properties in a namespace.
|
||||
|
||||
:param session: The session to use for making this request
|
||||
:returns: The server response
|
||||
"""
|
||||
url = utils.urljoin(self.base_path, self.id, 'properties')
|
||||
return self._delete_all(session, url)
|
||||
|
|
|
@ -10,6 +10,12 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
|
||||
from unittest import mock
|
||||
|
||||
from keystoneauth1 import adapter
|
||||
|
||||
from openstack import exceptions
|
||||
from openstack.image.v2 import metadef_namespace
|
||||
from openstack.tests.unit import base
|
||||
|
||||
|
@ -71,3 +77,13 @@ class TestMetadefNamespace(base.TestCase):
|
|||
},
|
||||
sot._query_mapping._mapping,
|
||||
)
|
||||
|
||||
@mock.patch.object(exceptions, 'raise_from_response', mock.Mock())
|
||||
def test_delete_all_properties(self):
|
||||
sot = metadef_namespace.MetadefNamespace(**EXAMPLE)
|
||||
session = mock.Mock(spec=adapter.Adapter)
|
||||
sot._translate_response = mock.Mock()
|
||||
sot.delete_all_properties(session)
|
||||
session.delete.assert_called_with(
|
||||
'metadefs/namespaces/OS::Cinder::Volumetype/properties'
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue