When creating external network in top pod, az hint is passed to
specify which pod bottom external network is located. So plugin
can get bottom router ID with top router ID and bottom pod ID
from resource routing table.
Plugin fist updates router in top pod to remove gateway, then
sends "remove_gateway" request to target bottom pod to update
bottom router.
Change-Id: I69e411188e758016ea789a91298ccd243bdc31cd
Controller retrieves the routing entry according to the volume
ID and sends updating request to the correct bottom pod. If
controller gets a 404 error when updating the volume in the
bottom pod, meaning that the bottom volume no longer exists,
controller will remove the routing entry.
Change-Id: I119b0ec31c869179c7c921245c9e06963aa6f866
Currently volume list supports most of the filters since it
directly passes filter parameters to bottom pods. But
availability zone filter can not be implememted like that
because we don't require top pod and bottom pod to have
availability zones with the same name. Since each bottom pod
belongs to an availability zone defined in top pod, instead
of passing the availability zone filter to bottom pods, we
directly filter bottom pods by the availability zone filter
then send list request to these filtered bottom pods.
With change in this patch, tempest test test_volumes_list can
be passed.
Change-Id: I8e448a1262ca370ff3bfa9948fee636240a7fb78
Change the following to pass tempest list_server_filters test:
(1) Change response body of Nova API gateway image controller
(2) Add network controller
(3) Add server list filters support
(4) Change response body of server list
Change-Id: I96013e2a3c871640b530611e36fa0a219c5e0516
Bug in DevStack[1] which affects multi-region deployment has been
fixed. Update readme to adapt this DevStack change.
[1] https://bugs.launchpad.net/devstack/+bug/1540802
Change-Id: I19876c359910741e5fe5babdd209b06f126b0d4f
Change cinder delete response to pecan.response instead of a
"{}" to avoid ValueError in tempest test for cinder.
Change-Id: I5b37e7f2e23fdc0822d38e56b840e64aa87d066f
Closes-Bug: #1570306
Implement asynchronous job management to ensure jobs can be
successfully completed even if those jobs temporally fail
for some reasons. The detailed design can be found in section
9 in design document.
This patch focuses on enabling workers to rerun failed job.
Workers started with configuration option 'periodic_enable'
set to 'True' are responsible to this work.
Purging old job records will be covered in later patches.
Change-Id: I2631a98af67e663f929f293bdfb7e7779fe8018e
Refactory the exception class to include the failure code,
and parameter format for output, and deal with the exception
during the parameter formatting.
BP: https://blueprints.launchpad.net/tricircle/+spec/implement-stateless
Change-Id: Iec54fc66589199a3dbfc15c4df283466a62e4a10
Signed-off-by: Chaoyi Huang <joehuang@huawei.com>
Implement asynchronous job management to ensure jobs can be
successfully completed even if those jobs temporally fail
for some reasons. The detailed design can be found in section
9 in design document.
This patch focuses on defining database schema and building
lock mechanism to avoid running the same type of jobs at the
same time.
Enabling workers to rerun failed job and purge old job records
will be covered in the following patches.
Change-Id: I87d0056a95eb7cb963e1c3599062a60299472298
Recent Neutron commit moves NetworkSegment table out of the ML2
code tree. This patch adapts this change.
Change-Id: I8d63cfd3cebca97c614ec547fbf58b0bfff4dda7
The task Neutron plugin needs to finish for security group
functionality is simple. When a rule is created or deleted
in a security group, it just updates the corresponding
bottom security group. Also, creating or deleting a rule
with "remote_group_id and changing rules in default
security group will be rejected by plugin.
Currently this task runs in synchronous way. Later it can
be implemented in asynchronous way for better response time.
Change-Id: Ibbf46c2e91382986c02324d86bc22887e93267eb
Nova API gateway needs to finish two tasks for security group
functionality. One is to create security group in bottom pod if
it does not exist. Only when the user boot a server can we know
which pod to create the security group. The other one is to
handle default security group. We decide to replace the default
"remote group" rules with several "remote ip prefix" rules.
Each rule points to a CIDR of one of the project's subnets.
Since the collection of subnets may change, we need to update
bottom security group rules.
Currently these two tasks both run in synchronous way. For
better response time the second task can be implemented in
asynchronous way later.
Neutron plugin part for security group functionality will be
covered in next patch.
Change-Id: I1822ff16e3dfc2a89c34f7833adcc1ad1d952462
Check whether network AZ and server AZ are the same when booting
server if the network is created with AZ specified. API gateway
returns 400 error if the two AZs are different.
Change-Id: Ib43f431a8747915b32d844c3252760c107c9b0d3
Closes-Bug: #1533940
Invoke _make_port_dict for top port query to transfer query object
to dictionary so port information can be displayed correctly in
neutron client.
Change-Id: I8b025be7db36aaef0ae5e0465ceacd5da7c91742
Closes-Bug: #1551616
Explicitly register "core_plugin" option in test cases, otherwise
unit test will complain "Neutron core_plugin not configured!".
Change-Id: Iee01d6f2e9a4fb202a10e8635afb6dc314d65bcc
Port and modify the quota management code mostly from Cinder, for
Cinder has implemented for hierarchy multi-tenancy quota management
The code is modified as following:
1. combine the Nova quota resources
2. add AllQuotaEngine and QuotaSetOperation
3. not implemented the volume_type, user based quota management
4. not process is_force
5. update and add test use cases to reflect the new added code and
resources
The quota management and control in Tricircle is described in the
design doc:
https://docs.google.com/document/d/18kZZ1snMOCD9IQvUKI5NVDzSASpw-QKj7l2zNqMEd3g/
BP: https://blueprints.launchpad.net/tricircle/+spec/implement-stateless
Change-Id: I636d21b5bd7e51949f1431d642dac49321496fbd
Signed-off-by: Chaoyi Huang <joehuang@huawei.com>
Implement l3 north-south networking functionality. In our current
design, external network is hosted in one of the bottom pod, VMs
hosted in other bottom pods are connected to this external network
via a bridge network, using the same physical network as the east-
west networking, but different vlan.
Change-Id: I953322737aa97b2d1ebd9a15dc479d7aba753678
Implement cross pod l3 networking functionality. In this second
patch, we implement an extra job to configure extra routes. README
is updated to introduce this networking solution and how to test
it with DevStack.
Change-Id: I3dafd9ef15c211a941e85b690be1992416d3f3eb
The statless design was developed in the experiment branch, the experiment
shows advantage in removing the status synchronization, uuid mapping
compared to the stateful design, and also fully reduce the coupling with
OpenStack services like Nova, Cinder. The overhead query latency for
resources also acceptable. It's time to move the statless design to the
master branch
BP: https://blueprints.launchpad.net/tricircle/+spec/implement-stateless
Change-Id: I51bbb60dc07da5b2e79f25e02209aa2eb72711ac
Signed-off-by: Chaoyi Huang <joehuang@huawei.com>
Change the gate to OpenStack infrastrcuture and update the README.md
to reflect the work on the stateless design proposal and branch.
BP: https://blueprints.launchpad.net/tricircle/+spec/new-design
Change-Id: I51accdf33d8d9e50774c16d7649975ca91c2f5ec
Signed-off-by: Chaoyi Huang <joehuang@huawei.com>
Initial patch for compute proxy, now we can boot a vm and the
RPC request will be captured by dispatcher then sent to proxy.
Change-Id: I361d18e0b87ece3db113f6549f2b3c9bf50e1006
Implement site create RPC. Now tricircle api can utilize RPC
to notify cascade service to start rpc server for new site.
Partially implements: blueprint implement-api
Ref: https://blueprints.launchpad.net/tricircle/+spec/implement-api
Change-Id: I73879a84d31b5ac9004cfe3f18cb9a984d53099c
Implement site create API. This patch only covers database model
creation and aggregate creation.
Partially implements: blueprint implement-api
Change-Id: I299f367900b7b15ea992fe6f0eaf614f83a1a70e
A recent patch containing a pep8 error was merged without pep8
check since CI was down at that time. Do a quick fix here.
Change-Id: I8e9e5297c9e31d9f4089091274d59ec2e2bc96b0
Make client wrapper support create and delete operation so we
can create and delete aggregate in top OpenStack layer via DAL.
Change-Id: I13b7a0256e366f834965b817a6cd0237e52a6002