Commit Graph

119 Commits

Author SHA1 Message Date
OpenDev Sysadmins 160b542ee6 OpenDev Migration Patch
This commit was bulk generated and pushed by the OpenDev sysadmins
as a part of the Git hosting and code review systems migration
detailed in these mailing list posts:

http://lists.openstack.org/pipermail/openstack-discuss/2019-March/003603.html
http://lists.openstack.org/pipermail/openstack-discuss/2019-April/004920.html

Attempts have been made to correct repository namespaces and
hostnames based on simple pattern matching, but it's possible some
were updated incorrectly or missed entirely. Please reach out to us
via the contact information listed at https://opendev.org/ with any
questions you may have.
2019-04-19 19:49:51 +00:00
zhiyuan_cai b502502f2f Cross Pod L3 Networking - Part1
Implement cross pod l3 networking functionality. In this first
patch, we finish the logic to prepare related resources when user
issues router-interface-add request, including bottom router,
bottom network, bridge network, etc.

In the first step, we only consider the scenario that networks
do not cross pods. Each tenant has a cross-pods VLAN network
(the bridge network mentioned above) to connect different tenant
networks in different pods and we use extra routes to route
packets between pods. We ultilize the AZ hint attribute of network
to figure out which pod the network belongs to, so we do not need
to wait for the creation of the first VM to know which pod to
create the bottom network.

The configuration of extra routes will be implemented in the
second patch.

Change-Id: Ia455812732bc825c9367df0e2c4e23c512d8f401
2016-01-13 19:06:01 +08:00
Chaoyi Huang 5e886aebda Volume CRD through Cinder API gateway
This patch is to implement basic volume operation: post/get_one
/get_all/detail/delete through Cinder API gateway

Some TODO work was left in the code for later implementation

BP: https://blueprints.launchpad.net/tricircle/+spec/implement-stateless

Change-Id: Id338894592a2522dc3e138d754d278c604b21758
Signed-off-by: Chaoyi Huang <joehuang@huawei.com>
2016-01-13 11:31:06 +08:00
Chaoyi Huang b1991481c8 Update README to reflect pod model migration
One AZ(availability zone) can have multiple pods, but one pod will
belong to only one AZ. Tricircle will serve as the OpenStack API
gateway to bottom pods.

BP: https://blueprints.launchpad.net/tricircle/+spec/implement-stateless

Change-Id: Ie7fc4faaa5ae4ca7c0e0153e993ea3f9f0cc252b
Signed-off-by: Chaoyi Huang <joehuang@huawei.com>
2016-01-06 16:48:43 +08:00
Chaoyi Huang 4ab2d380d4 Migrate pod_map model to pod model
One AZ(availability zone) can have multiple pods, but one pod will
belong to only one AZ. For pod_map model, it intends to support one
pod's az mapped to one top AZ, so that multiple bottom AZs in one pod
could be under different top AZ, this model is two complicated,
simplify the modle to only allow one pod under one top AZ.

BP: https://blueprints.launchpad.net/tricircle/+spec/implement-stateless

Change-Id: I4c924ca491aa4de7b9e20c21f7c12c59c2ab70fc
Signed-off-by: Chaoyi Huang <joehuang@huawei.com>
2016-01-05 11:28:58 +08:00
zhiyuan_cai fc7f344875 Migrate Site Model to Pod Model
As we discuss, pod is a more suitable term to represent bottom
OpenStack instance, so migrate Site model to Pod model. Also the
original Site API is removed and README is updated.

Change-Id: I3bf9b8150866cafaba371e7911d8016650b0532b
2015-12-29 19:46:39 +08:00
Chaoyi Huang aef7f17151 Create aggregate and az when adding AZ Pod Mapping
Allow one AZ has many pods, and each pod is one bottom OpenStack managed
by Tricircle. Tricircle forward regarding request according to the AZ pod
mapping. And one Tenant will be bound to one pod in one AZ, so that
resources of one tenant will be collocated inside one pod in one AZ.

During the AZ pod mapping creation, also automaticly adding aggregate
and az information according to pod_name(the bottom OpenStack region
name)

BP: https://blueprints.launchpad.net/tricircle/+spec/implement-stateless

Change-Id: I0d60687e36190b279837eba24a3d3c65386ea4c5
Signed-off-by: Chaoyi Huang <joehuang@huawei.com>
2015-12-28 12:06:35 +08:00
zhiyuan_cai 50176d04aa Fix network plugin database model init failure
Currently network plugin imports neutron.db.l3_db, which results
in database model init failure because of some dependency errors.
Since l3 functionality is not implemented yet in network plugin,
remove this import to avoid the failure.

Change-Id: I1e9585f5061d334bfb7752d9934f65b50c1d471b
2015-12-26 13:03:17 +08:00
Chaoyi Huang b2b786518f Add AZ Pod Mapping and Tenant Pod Bindings
Allow one AZ has many pods, and each pod is one bottom OpenStack managed
by Tricircle. Tricircle forward regarding request according to the AZ pod
mapping. And one Tenant will be bound to one pod in one AZ, so that resources
of one tenant will be collocated inside one pod in one AZ.

BP: https://blueprints.launchpad.net/tricircle/+spec/implement-stateless

Change-Id: Iee9572366539b4263ed7b51cbfe0e9cac1ce795f
Signed-off-by: Chaoyi Huang <joehuang@huawei.com>
2015-12-26 10:19:58 +08:00
zhiyuan_cai 2eb70ab74d Script to deploy stateless Tricircle
Deploy stateless Tricircle in one node using DevStack. Script
starts an extra Neutron server for bottom region, and updates
Keystone endpoint to move original Nova service to bottom region
as well as to register Tricircle Nova gateway as compute service
in top region.

This patch also updates readme file to introduce stateless
Tricircle depolyment.

Change-Id: I5c63d96bf2f7c93cc8ff56388f805425347bd8ea
2015-12-25 15:07:28 +08:00
zhiyuan_cai 3d0efc4677 Unit Test for Nova API Gateway
Add unit test for nova api gateway, also fix some bugs found
by unit test.

Change-Id: I838e622458bf75f50440f4ae7349351296500d8c
2015-12-24 14:31:04 +08:00
zhiyuan_cai cedf5fe045 Implement Nova API Gateway Controller
Implement controller for server, flavor and aggregate. Query and
creation operations are covered so we can basically boot a server
with flavor, image, availability zone and network.

Work not done in this patch:
(1) More booting parameters support
(2) Updating and deleting operation support
(3) Test

Change-Id: I77a5c5dd48a67dd6bb104601e95a4eb29bd802e1
Blueprint: https://blueprints.launchpad.net/tricircle/+spec/implement-stateless
2015-12-23 13:14:18 +08:00
Chaoyi Huang 4275d81719 Remove the host ip in local.conf.sample for devstack
The host ip setting HOST_IP=172.16.10.10 in local.conf.sample
for devstack should be removed. So that the host ip 127.0.0.1
will be used by default

Bug: https://bugs.launchpad.net/tricircle/+bug/1526204

Change-Id: Ided0f889de7317c6890a61334a6c917893d5d57e
Signed-off-by: Chaoyi Huang <joehuang@huawei.com>
2015-12-15 17:05:06 +08:00
zhiyuan_cai eb72e17653 Tricircle Neutron Plugin for Stateless
Implement Neutron plugin for stateless architecture. For creating operation,
it simply stores a resource entry in top layer database; for updating and
deleting operations it checks if there exists a resource routing entry, if
so, it not only updates database in top layer but also sends request to bottom
layers; for query, it returns data in bottom layers if routing entry exists,
otherwise returns data in top layer.

Plugin does not maintain routing entries itself, the creator of bottom layer
resources is responsible to add routing entries.

For test purpose, DevStack plugin script is updated to start two other Neutron
servers to simulate bottom layer services.

Blueprint: https://blueprints.launchpad.net/tricircle/+spec/implement-stateless
Change-Id: I238a8274e1d54df7c82c477321d4c827265db67d
2015-12-15 10:58:55 +08:00
Chaoyi Huang 3b8e791e18 Initial patch for Trircle stateless architecture(XJob)
Initial patch to implement the framework of Tricircle, this is
the part for XJob, establish rpc connection to message bus, and one
sample rpc call 'testrpc' from Nova-APIGW.

Blueprint: https://blueprints.launchpad.net/tricircle/+spec/implement-stateless

Change-Id: I8e538de187c075ad06e090edb7061ae6caa1deda
Signed-off-by: Chaoyi Huang <joehuang@huawei.com>
2015-12-11 13:06:43 +08:00
Chaoyi Huang 1aad4ae585 Initial patch for Trircle stateless architecture
Initial patch to implement the framework of Tricircle, this is
the part for Nova api gateway and Cinder api gateway, keystone
authentication integrated.

Change-Id: I7e33948d4850cf1eabeb9c865fc79c2475323988
Blueprint: https://blueprints.launchpad.net/tricircle/+spec/implement-stateless
2015-12-08 16:56:12 +08:00
zhiyuan_cai fe14b6f244 Add Tables for Stateless Architecture
In stateless architecture, we have our own nova and cinder api
gateway, which require tables to store resource models. Neutron
doesn't need this because we use its original tables. A resource
routing table is also added to map resources from top to bottom.
Besides, database access functions are moved from "models" module
to a new "api" module.

Change-Id: Ib4577fa494c232302dbbd6681b7d84b9a9cef00d
2015-12-07 11:17:01 +08:00
zhiyuan_cai 16015ac91a Init Patch for Stateless Architecture
Init patch for stateless architecture. API, db and client modules
are borrowed from master branch, but dispatcher and proxy modules
are removed. Also adapt OpenStack new project template.

Change-Id: I9f84cb029195cf26e9ad71ae3cbd69b2cc765bb2
2015-12-03 11:24:02 +08:00
zhiyuan_cai 552c49474c Test Multi Branch
Change-Id: Ib1a79c644a9cd516ce263fa020a83eca7cafa9cd
2015-12-02 11:39:25 +08:00
Jeremy Stanley 7472fa649c Update .gitreview for new namespace
Change-Id: Ia234dfce76e3ba3deb2eedad80c1098ae80a255b
2015-10-17 22:41:22 +00:00
zhiyuan_cai f9874c05ae Submit new code base
Change-Id: I233a1e0c8ecd9d35a66e28be0a6328b5c7215829
2015-06-18 11:58:12 +08:00
jiahaojie 8e9ac69910 modify l2-proxy to add network_delete function.
Change-Id: I4f1881e85adb051170ad7b3eb9a186f953ca5f7d
2015-03-23 19:57:10 +08:00
ChiZhang 3d605e13c5 refresh cinder proxy about attach volume
Change-Id: I3d1c5059748625303cdd518bd1f334b8302540e5
2015-03-18 11:37:04 +08:00
ChiZhang 71c31d988c add enabled_volume_types
Change-Id: I042953f09950850b942bfe00474bf3c91bfebab5
2015-02-09 22:33:48 +08:00
ChiZhang 4d146044fe add volume check before sync volumes
Change-Id: Ib42d0858c47baa85631f4d6fc0fa6dd321c1863c
2015-02-02 11:55:33 +08:00
ChiZhang c15bfa091c 1. check logical volume while sync vols
2. add clean_extra_cascaded_vol_flag
3. remove keyword "pool" for report cacading simu-driver info

Change-Id: I90df292f06c85245cbe3acb5a40045c3ca28c9cf
2015-01-29 16:03:37 +08:00
joey5678 432f175268 Modify port value to Integer when create http connection
Modify port value to Integer when create http connection.

Change-Id: If8e37c6dd4c8b4e15f7bc84aa778f336f33d21b7
2015-01-28 10:55:14 +08:00
joey5678 989caf0c9e Modify glance sync not auth loc when add glance-loc
Modify glance sync not auth loc when add glance-loc

Change-Id: I3c1ff1c11c688a89700329e679c9301b06e7fa50
2015-01-27 15:10:21 +08:00
joey5678 44c77a238e Add docstring for added/modified options
Add docstring for added/modified options

Change-Id: I5c86217ba801e27c1e9ae1e9a39b74530a0bc0b1
2015-01-27 14:50:36 +08:00
jiahaojie ff1c3a2971 add query_ports mode for l2proxy, query ports from novaproxy or cascaded neutron
Change-Id: I0e7f5a7aada15d8d55a1475d2a1e67f4708a0034
2015-01-22 20:00:44 +08:00
joey5678 bfe17a736a send port info to neutron
send port info to neutron

Change-Id: I93203eb051e02f224969478f44041a3695d02033
2015-01-22 19:31:29 +08:00
joey5678 bbdba3d866 Add config to controll the resource sync
By default, the resource synced is not used for performance reason.

Change-Id: Ide8e4ee127b28f1e1a9242443ee5c0580a331a18
2015-01-20 18:32:08 +08:00
joey5678 99109482e6 sync instance's metadata
sync instance's metadata when instance is created, reboot or resize.

Change-Id: I0e49091f647c742abf9feb541a7c930c587d4e66
2015-01-19 10:06:16 +08:00
ChiZhang 4f24979b3f refresh cinder proxy
Change-Id: I0d72486927914482ab9c9c477263ad132a759697
2015-01-19 09:41:35 +08:00
joey5678 a132561ddf Modify neutron name rule when created in nova
Just using cascading neutron object(net, subnet, port) uuid as name
of cascaded neutron object when creating these objects in nova.

Change-Id: I627d482c62e5f8c552623030104790f89da70533
2015-01-16 12:15:29 +08:00
joey5678 9ffd2755e7 Periodic update under aggregate/resources info for schedule (part 1)
Before, the cascading don't know the aggregates and resource info of
the cascadeds managed by proxys, so we cannot using the most filters
to choose the proper host with nova scheduler.

By updating the aggregates(includes hosts and metadata) and resource
used info in cascaded to the cascading periodically, this problem can
be solved.

Change-Id: If369f0023130c24544bbdbb3c1afbef05527d783
2015-01-15 16:10:44 +08:00
ChiZhang c8ce4e5ea7 add volume metadata sync function
Change-Id: Iff0a0f5c319014d4a69ef84b614711eaa7868c0e
2015-01-15 10:59:00 +08:00
jiahaojie 236e2167b0 modify l2-proxy to process unauthorized exception when query port
Change-Id: I1fee40f147d92631c38cef6dd0822cc6a7340a23
2015-01-14 10:25:58 +08:00
ChiZhang 22f28d5908 add keystoneclient/cinderclient token unauthorized exception caught
when cinderClient being generated, b/c this will be helpful to break
out from recursion when cinderclient being constructed from invalid
user/password

Change-Id: Id179b03b5d60af0af8cccfb64a7fad1ca709bf83
2015-01-13 16:29:00 +08:00
ChiZhang f295bfbc32 add token authorized exception caught when cinder client being generated
when cinder client unauthorized, exception will be caught and will break
out from recursion.

Change-Id: I038a1ea15c3f18e1b83a3da6a798ba69a523ead7
2015-01-13 16:08:26 +08:00
ChiZhang 77a6fa883e modify VOLUME_NAME_LENGTH to VOLUME_NAME_MAX_LEN
Change-Id: I28ccf8a8295d5af034f8845e8d51e19cef2a4344
2015-01-12 21:40:36 +08:00
ChiZhang b0f8521639 update notes for cinder proxy
Change-Id: I83a88f6f73c0af1293569336a851c068c22747df
2015-01-12 20:12:18 +08:00
joey5678 8fb4429a1e Add re-check logic when create network failed with conflict
Add re-check logic when create network faild with the Conflict Exception
whose status_code is 409, it's means another task of creating the same
network is happend and done. So there is no need to create it again, instead
we query if the network exists(by name). If we can not find the network,
then the exception raised.

Change-Id: I44a6909b3119be748d4445a0f560454c19687276
2015-01-12 16:41:24 +08:00
ChiZhang 8796babed2 fresh cinder proxy
Change-Id: I4d22e8261b06667f1f6abbd085e98a62a26ce375
2015-01-08 19:41:47 +08:00
ChiZhang 2ccb6a723c recovery mapping_uuid in cinder-proxy volume metadata
b/c this is useful for nova-proxy to attach volume

Change-Id: I18ab0bbaff168aa5f0260206208bdcd17a4e1415
2015-01-08 17:33:00 +08:00
ChiZhang 3dc060db63 refresh README.md and install script
Change-Id: I547111874c42e41599eb0b031fc68b3eb5897c40
2015-01-07 17:44:09 +08:00
joey5678 ca2f9eeb5e Add port name for mapping
When creating cascading port in nova proxy, add the 'name' field which
contains a cascading network_name and port uuid.

Change-Id: I730a0ca953513b9f965155141d04b90b39963432
2015-01-07 14:46:33 +08:00
joey5678 429e12ea34 Add port name for mapping
When creating cascading port in nova proxy, add the 'name' field which
contains a cascading network_name and port uuid.

Change-Id: I40418f24f4f4813b90add46fe11457819c2bf6ec
2015-01-07 11:37:47 +08:00
joey5678 954bf16900 refactor novaclient code
refactor novaclient code for cascaded.

Change-Id: I2f7efe3f2ffa070fa8d7296afb39ae4e381c5788
2015-01-05 17:47:43 +08:00
ChiZhang 87205df234 add volume sync timestamp flag
add flag to cinder-proxy for volume status sync based on timestamp between cascading and cascaded OpenStack

Change-Id: I0d396a729df7d9d1265012b6052405181e3d7531
2015-01-05 02:38:25 +00:00