Allow user to unset share network params
It is impossible to unset some value from share network if it was set. Allow user to set share network params (name, description, neutron_net_id, neutron_subnet_id) to empty value. Closes-bug: #1446695 Change-Id: I43315d49a3b721db9619812656702c1865155338
This commit is contained in:
parent
80eac1e73c
commit
d6ad3710b1
|
@ -316,7 +316,7 @@ class ManilaCLIClient(base.CLIClient):
|
|||
data['--neutron_subnet_id'] = neutron_subnet_id
|
||||
cmd = ''
|
||||
for key, value in data.items():
|
||||
cmd += "%(k)s='%(v)s' " % dict(k=key, v=value)
|
||||
cmd += "%(k)s=%(v)s " % dict(k=key, v=value)
|
||||
return cmd
|
||||
|
||||
@not_found_wrapper
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
# under the License.
|
||||
|
||||
import ddt
|
||||
import six
|
||||
from tempest_lib.common.utils import data_utils
|
||||
from tempest_lib import exceptions as tempest_lib_exc
|
||||
|
||||
|
@ -101,6 +102,11 @@ class ShareNetworksReadWriteTest(base.BaseTestCase):
|
|||
{'nova_net_id': 'fake_nova_net_id'},
|
||||
{'neutron_net_id': 'fake_neutron_net_id',
|
||||
'neutron_subnet_id': 'fake_neutron_subnet_id'},
|
||||
{'name': '""'},
|
||||
{'description': '""'},
|
||||
{'nova_net_id': '""'},
|
||||
{'neutron_net_id': '""'},
|
||||
{'neutron_subnet_id': '""'},
|
||||
)
|
||||
def test_create_update_share_network(self, net_data):
|
||||
sn = self.create_share_network(cleanup_in_class=False)
|
||||
|
@ -114,7 +120,9 @@ class ShareNetworksReadWriteTest(base.BaseTestCase):
|
|||
'neutron_net_id': 'None',
|
||||
'neutron_subnet_id': 'None',
|
||||
}
|
||||
expected_data.update(net_data)
|
||||
update_values = dict([(k, v) for k, v in six.iteritems(net_data)
|
||||
if v != '""'])
|
||||
expected_data.update(update_values)
|
||||
|
||||
for k, v in expected_data.items():
|
||||
self.assertEqual(v, update[k])
|
||||
|
|
|
@ -689,7 +689,17 @@ class ShellTest(test_utils.TestCase):
|
|||
'--name': 'fake_name',
|
||||
'--neutron_net_id': 'fake_neutron_net_id',
|
||||
'--neutron_subnet_id': 'fake_neutron_subnet_id',
|
||||
'--nova_net_id': 'fake_nova_net_id'})
|
||||
'--nova_net_id': 'fake_nova_net_id'},
|
||||
{'--name': '""'},
|
||||
{'--description': '""'},
|
||||
{'--nova_net_id': '""'},
|
||||
{'--neutron_net_id': '""'},
|
||||
{'--neutron_subnet_id': '""'},
|
||||
{'--description': '""',
|
||||
'--name': '""',
|
||||
'--neutron_net_id': '""',
|
||||
'--neutron_subnet_id': '""',
|
||||
'--nova_net_id': '""'},)
|
||||
def test_share_network_update(self, data):
|
||||
cmd = 'share-network-update 1111'
|
||||
expected = dict()
|
||||
|
|
|
@ -18,6 +18,8 @@ try:
|
|||
except ImportError:
|
||||
from urllib.parse import urlencode # noqa
|
||||
|
||||
import six
|
||||
|
||||
from manilaclient import base
|
||||
from manilaclient import exceptions
|
||||
from manilaclient.openstack.common.apiclient import base as common_base
|
||||
|
@ -127,17 +129,21 @@ class ShareNetworkManager(base.ManagerWithFind):
|
|||
:rtype: :class:`ShareNetwork`
|
||||
"""
|
||||
values = {}
|
||||
if neutron_net_id:
|
||||
if neutron_net_id is not None:
|
||||
values['neutron_net_id'] = neutron_net_id
|
||||
if neutron_subnet_id:
|
||||
if neutron_subnet_id is not None:
|
||||
values['neutron_subnet_id'] = neutron_subnet_id
|
||||
if nova_net_id:
|
||||
if nova_net_id is not None:
|
||||
values['nova_net_id'] = nova_net_id
|
||||
if name:
|
||||
if name is not None:
|
||||
values['name'] = name
|
||||
if description:
|
||||
if description is not None:
|
||||
values['description'] = description
|
||||
|
||||
for k, v in six.iteritems(values):
|
||||
if v == '':
|
||||
values[k] = None
|
||||
|
||||
if not values:
|
||||
msg = "Must specify fields to be updated"
|
||||
raise exceptions.CommandError(msg)
|
||||
|
|
Loading…
Reference in New Issue