37 Commits

Author SHA1 Message Date
Tang Chen
dc7e4fc15d Fix dict.keys() compatibility for python 3
In Python 2, dict.keys() will return a list.
But in Python 3, it will return an iterator.
So we need to fix all the places that assuming
dict.keys() is a list.

Change-Id: I8d1cc536377b3e5c644cfaa0892e40d0bd7c11b1
Closes-Bug: #1556350
2016-03-12 10:58:28 +08:00
Jenkins
13a6857142 Merge "Use _get_columns() to obtain columns in network.py" 2016-03-07 16:05:01 +00:00
Tang Chen
fc24f37ae2 Trivial: Remove useless return
If a function returns nothing, do not add return in the end.

Change-Id: I298b8717462f68d3076a1619d674775be2a94c42
2016-03-07 17:54:06 +08:00
Tang Chen
7ba73845c1 Use _get_columns() to obtain columns in network.py
Objects returned by Network v2 and Compute v2 are different.
When getting columns to display, Network v2 uses obj.keys(),
while Compute v2 uses obj._info.keys(). But both of them could
obtain the keys of the object by _get_columns().

Change-Id: I347815f2d28822a95bd6f57d429b84b7ca96e0ee
2016-03-06 09:01:42 +08:00
Tang Chen
359dfa1a06 Support "network create" command in nova network
This patch only provide network name and subnet setting for
"network create" command.

The other options, such as --project which depends on
identity v2 or v3, will make the unit tests too complicated.
So I prefer to implement them in other patches.

Change-Id: I9ec93f0af813c8fae4170c36e16bbe8f0f53cbb6
Partial-Bug: 1543672
2016-03-02 14:39:00 +08:00
Tang Chen
07242fca3b Use update_parser_common() in ShowNetwork
ShowNetwork inherits from NetworkAndComputeCommand. So we should use
update_parser_common() in it, not overwrite parent's get_parser().

Change-Id: I21bb1407962344b9800fd31caee4b2582674fe24
2016-02-23 19:00:14 +08:00
Tang Chen
d9d1809907 Support "network show" command in nova network
"network show" command is not implemented in nova network.
This patch implements it.

Change-Id: I1fadd890fe36c4e3ac5c9ed389b20c5b2fff8aca
partial-Bug: 1543672
2016-02-17 17:09:51 +08:00
Tang Chen
ddc97c6dc5 Support "network list" command in nova network
"network list" command is not implemented in nova network.
This patch implements it.

The Network object in novaclient is quite different from
the one in sdk. And the output of "network list" using
Nova network is also quite different from using Neutron.

It is like this:

# openstack network list
+--------------------------------------+---------+-------------+
| ID                                   | Name    | Subnet      |
+--------------------------------------+---------+-------------+
| 96a98ec4-31f6-45f6-99e6-9384569b3bb5 | private | 10.0.0.0/24 |
+--------------------------------------+---------+-------------+

--long and --external options have not been implemented because
the attrs in Network object in novaclient is too much different.

This patch also introduces a new FakeNetwork class in compute/v2/fake.py
to fake nova network.

Change-Id: Id1fdf81fb2fa8b39f2c76b7bae37ac4fecafd0f7
Depends-On: I1b59264cd40aaf1062f4e8db233ccb7fd0e95f0e
partial-Bug: 1543672
2016-02-17 17:04:43 +08:00
Jenkins
67bec569f8 Merge "Rename parameter "identifier" to "network" in network commands" 2016-02-15 17:16:30 +00:00
Tang Chen
324e026f57 Rename parameter "identifier" to "network" in network commands
In other commands, the name or ID of an object is just the name
of the object. For example, name or ID of a server is "server",
router is "router". So, do not use "identifier" in network commands.

Also, the parameter in doc file network.rst is not "identifier",
but "network".

Change-Id: I1ec3beefbb878a207bca280b994ca176ef04ee2d
2016-02-14 18:57:34 +08:00
Tang Chen
27a0da65e3 Support "network delete" command in nova network
"network delete" command is not implemented in nova network.
This patch implements it.

Change-Id: I5dac1eed6eb8e67298bb446418835a6ab85c859c
Depends-On: I1b59264cd40aaf1062f4e8db233ccb7fd0e95f0e
partial-Bug: 1543672
2016-02-14 17:07:17 +08:00
Tang Chen
a83c1f0a42 Network: Abstract get_body() out to be a private helper.
get_body() is needed in each network files to construct a dict
to pass to sdk proxy. And it is also used by several functions
in each file. So define it as a file level private helper function.

The unified prototype should be:

    def _get_attrs(client_manager, parsed_args):

1. The name, in sdk, the parameter passed to proxy is named "attrs".
   And it is a private method. So let's call it _get_attrs().
2. The parameters, besides parsed_args, when we deal with project
   and project_domain, we have to make use of identity_client. So
   let's pass in the client manager.

Change-Id: Ib044ebd4ddedbcd805f46334a7fe99e4ebb5b249
2016-02-02 13:58:43 +08:00
Akihiro Motoki
258c1102cc log take_action parameters in a single place
Previously each command logs take_action parameters explicitly
by using @utils.log_method decorator or log.debug().
Some commands have no logging.

This commit calls a logger in the base class and
drops all logging definition from individual commands.

Closes-Bug: #1532294
Change-Id: I43cd0290a4353c68c075bade9571c940733da1be
2016-02-02 09:58:32 +09:00
Brad Behle
67ecf4ef43 Add availability zone support for network commands
Add --availability-zone-hint parm to network create. Also add
availability_zones and availability_zone_hints to the network list and network
show commands

Change-Id: Ib4dc2e3e7897939be7bef6b25a095c8222b885bc
Partially-implements: blueprint neutron-client
2016-01-28 15:54:27 -06:00
Jenkins
d31c301bd3 Merge "Map some of the SDK field names" 2016-01-01 17:27:23 +00:00
Tang Chen
e590597871 Trivial: Remove useless return from files in network
Change-Id: Ib871fbde7c7140eca875403332ad5ab65a7e940d
2015-12-18 18:05:41 +08:00
Terry Howe
1cf320302b Map some of the SDK field names
The keys() method returns the keys returned from Neutron, but
the SDK maps some things like tenant_id to project_id.  This
makes the output a little prettier.

Change-Id: Ibd8c890b61ffc94021f93fc1051fcf5dabd1e9ea
2015-12-10 15:22:38 -07:00
Tang Chen
2caf7b19e2 Trivial: Do not use plural format in command parameter in "network delete"
Since "network delete" could delete more than one network,
add a (s) to the doc.

And also, rename the parameter "networks" to "network".
The naming style is not using plural format in parameter.

Change-Id: Id434ea905af34457f84ea6bcb18addef5800429a
2015-12-11 19:39:36 +08:00
Tang Chen
4be716eb27 Migrate network client to SDK.
The previous patches have migrate all network commands to
the new version using sdk. This patch will remove the
temporary method, and implement a new make_client() to
create sdk network client.

And also, find() in openstackclient/network/common.py must
support sdk. The logic of this function will become much
easier than before, so this patch also removes two useless
test cases of find().

This patch will also remove the patched methods in tests.

Change-Id: Ic2f7bca073beb9757172d16f95d9b82c48cbbc12
Implements: blueprint neutron-client
Co-Authored-By: Terry Howe <terrylhowe@gmail.com>
Co-Authored-By: Tang Chen <tangchen@cn.fujitsu.com>
2015-12-09 09:30:29 +08:00
Tang Chen
2a2cb4f75d Migrate "network show" command to use SDK.
This patch makes "network show" command use sdk.

Since we have to keep the other commands runnable with
the old network client, we use a temporary method to
create sdk network client. And as a result, the tests
need to patch a method to fake the temporary method,
which will be removed at last.

There are two same test cases in the unit tests. This
patch will remove one.

And since the output has changed, we also need to fix
function test cases.

Change-Id: I4c06b4efad2db430767bbaa882b0876df3ab483a
Implements: blueprint neutron-client
Co-Authored-By: Terry Howe <terrylhowe@gmail.com>
Co-Authored-By: Tang Chen <tangchen@cn.fujitsu.com>
2015-12-09 09:30:13 +08:00
Tang Chen
45c644d428 Migrate "network set" command to use SDK.
This patch makes "network set" command use sdk.

Since we have to keep the other commands runnable with
the old network client, we use a temporary method to
create sdk network client. And as a result, the tests
need to patch a method to fake the temporary method,
which will be removed at last.

Change-Id: I794ac4b82d9200747298f1a9ee44611140e9b6d0
Implements: blueprint neutron-client
Co-Authored-By: Terry Howe <terrylhowe@gmail.com>
Co-Authored-By: Tang Chen <tangchen@cn.fujitsu.com>
2015-12-09 09:29:54 +08:00
Tang Chen
511e862294 Migrate "network delete" command to use SDK.
This patch makes "network delete" command use sdk.

Since we have to keep the other commands runnable with
the old network client, we use a temporary method to
create sdk network client. And as a result, the tests
need to patch a method to fake the temporary method,
which will be removed at last.

Change-Id: I1f2c404e4b0ff6727e4c535ce543aa406f2290ce
Implements: blueprint neutron-client
Co-Authored-By: Terry Howe <terrylhowe@gmail.com>
Co-Authored-By: Tang Chen <tangchen@cn.fujitsu.com>
2015-12-09 09:29:39 +08:00
Tang Chen
0b4fb0bb66 Migrate "network create" command to use SDK.
This patch makes "network create" command use sdk.

Since we have to keep the other commands runnable with
the old network client, we use a temporary method to
create sdk network client. And as a result, the tests
need to patch a method to fake the temporary method,
which will be removed at last.

Change-Id: I06559c675be1188747257f72f18d6b4d420d0285
Implements: blueprint neutron-client
Co-Authored-By: Terry Howe <terrylhowe@gmail.com>
Co-Authored-By: Tang Chen <tangchen@cn.fujitsu.com>
2015-12-09 09:29:26 +08:00
Tang Chen
56150de224 Migrate "network list" command to new version using SDK.
This patch makes "network list" command use sdk.

Since we have to keep the other commands runnable with
the old network client, we use a temporary method to
create sdk network client. And as a result, the tests
need to patch a method to fake the temporary method,
which will be removed at last.

Change-Id: I0882501cd7bb2c17917e10a6da4298f1452c9765
Implements: blueprint neutron-client
Co-Authored-By: Terry Howe <terrylhowe@gmail.com>
Co-Authored-By: Tang Chen <tangchen@cn.fujitsu.com>
2015-12-08 23:24:20 +08:00
Tang Chen
481b711fae SDK integration: Add a temporary method to create network client using sdk.
This patch adds a temporary method to create a network client using sdk.
This method will help to migrate network commands from neutronclient to sdk
one by one. The command which is being migrated will use this temporary
method to create the sdk client, and the rest ones will use the old client.

The temporary method will finally be removed and implement the same thing
in make_client().

This patch will also add sdk to requirements file.

And adds some formatter helper functions, which will be used in class
CreateNetwork, ListNetwork and ShowNetwork.

This patch is splited from TerryHowe <terrylhowe@gmail.com> 's original patch.

Change-Id: Ie9b35747680afeb66cf6922e2c654fbca7e03569
Implements: blueprint neutron-client
Co-Authored-By: TerryHowe <terrylhowe@gmail.com>
Co-Authored-By: Tang Chen <tangchen@cn.fujitsu.com>
2015-12-07 22:44:23 +08:00
TerryHowe
2d4a737160 Remove the --dhcp option to network list
The --dhcp option lists agents, not networks.  This does not make
a lot of sense.  Another command should be created to list agents.

BackwardsIncompatibleImpact
Closes-Bug: #1472613

Change-Id: I5ecfe3fc046a07eb64a4dabd41dbd99de7c2215f
2015-07-08 11:21:41 -06:00
Guojian Shao
8899bc4162 fix confused domain argument for network create v2
we have used domain scope arguments --project-domain, --user-domain
and --group-domain in identity commands, for example, role add v3,
to prevent resources conflict from same resource name existence.
To keep with the style of identity commands, it's better to rename
--domain to --project-domain.

Closes-Bug: #1468988
Change-Id: Ic6ccb895cf9be4a3d5f0001525e3b80cd340da8b
2015-06-26 12:08:22 +08:00
Colleen Murphy
6c224f5acf Add project and domain params to network create
Without this patch, openstackclient has no way to specify to which
project a network belongs upon creation. Instead, it uses the project
ID that the user is authenticating with to fill the tenant_id column.
This is a problem because an admin user is unable to specify a project
for a non-admin network. To fix this and to improve feature parity with
the neutron client, this patch adds project and domain parameters to
the network create command and uses the given project name to look up
the project ID.

Neutron does not allow the project to be changed after creation, so no
such parameter has been added to the neutron set command.

Neutron calls the field 'tenant_id', but this change exposes the
parameter as '--project' to support the newer terminology.

If no project is specified, the client defaults to the previous
behavior of using the auth project.

Change-Id: Ia33ff7d599542c5b88baf2a69b063a23089a3cc4
2015-03-19 23:49:02 -07:00
Dean Troyer
748e0ab6ce Begin low-level API for Network v2
api.network.APIv2 starts with network_list() support to flush out
the skeleton of the Network API.

list_dhcp_agent() supports the --dhcp option of 'network list'

Change-Id: I9a2b90cde84eced1f2ea6a014b769e2bae668211
2015-01-22 10:06:15 -06:00
Dean Troyer
20ec40e222 Command docs: network
Change-Id: Ia88b6c0ca5205fa5bfc3efa06ac7f84c4a9e5d4e
2015-01-21 17:49:43 -06:00
wanghong
470b7e53a8 add multi-delete support for compute/image/net/volume
This is part1, add support for these objects:
compute.server
imagev1.image
imagev2.image
network.network
volume.volume
volume.backup
volume.snapshot

Closes-Bug: #1400597
Change-Id: Ice21fee85203a8a55417e0ead8b509b8fd6705c1
2014-12-23 09:31:10 +08:00
Jenkins
6977ef8aec Merge "Network use enable/disable vs admin state up/down" 2014-09-08 17:29:37 +00:00
Jenkins
97d1bbdafd Merge "Create message variables for exceptions" 2014-08-24 20:20:08 +00:00
Steve Martinelli
c2b0cec6e3 Create message variables for exceptions
Instead of inline messages, let's create variables instead, as
it's easier to find strings, and mark them for translation.

Change-Id: Ibbcfdbc59d12a0cb4af50f73043d3ff7f3c76f99
2014-08-24 18:16:07 +00:00
Terry Howe
cecf1a7737 Network use enable/disable vs admin state up/down
Use --enable and --disable vs --admin-state-up/--admin-state-down

Change-Id: I90040b925cb537a8ba13d1dd609c51bb669cf149
2014-08-18 05:41:58 -06:00
Steve Martinelli
fc044c8847 Update help text for some network commands
Add help text for network delete, network set and network show

Change-Id: I80ad5eae35f0eba2bfe19e06786c9b8ed1522046
Closes-Bug: #1343659
2014-07-17 19:20:53 -04:00
Terry Howe
b157dc937e Move network stuff to v2 instead of v2_0
Rename network stuff v2

Change-Id: Ia9b8feda20dfd35b0f3712b8e2419d0bf5da0acd
2014-07-07 06:08:02 -06:00