Use tricircle cli instead of curl command

1. What is the problem
Tricircle cli has been implemented and can be used instead of curl,
it's more user friendly and convenient.

2. What is the solution for the problem
Update curl command with tricircle cli.

3. What the features need to be implemented to the
tricircle to realize the solution
None.

Change-Id: Ib272c9cb53db06eb7185661953af1b46f54790d0
This commit is contained in:
Dongfeng Huang 2017-07-24 17:44:19 +08:00
parent 6cd177b73c
commit ee34ea53e9
5 changed files with 45 additions and 79 deletions

View File

@ -47,14 +47,11 @@ token=$(openstack token issue | awk 'NR==5 {print $4}')
echo $token
curl -X POST http://127.0.0.1/tricircle/v1.0/pods -H "Content-Type: application/json" \
-H "X-Auth-Token: $token" -d '{"pod": {"region_name": "RegionOne"}}'
openstack multiregion networking pod create --region-name RegionOne
curl -X POST http://127.0.0.1/tricircle/v1.0/pods -H "Content-Type: application/json" \
-H "X-Auth-Token: $token" -d '{"pod": {"region_name": "Pod1", "az_name": "az1"}}'
openstack multiregion networking pod create --region-name Pod1 --availability-zone az1
curl -X POST http://127.0.0.1/tricircle/v1.0/pods -H "Content-Type: application/json" \
-H "X-Auth-Token: $token" -d '{"pod": {"region_name": "Pod2", "az_name": "az2"}}'
openstack multiregion networking pod create --region-name Pod2 --availability-zone az2
echo "******************************"
echo "* Verify Nova *"
@ -63,17 +60,12 @@ echo "******************************"
echo "Show nova aggregate:"
nova aggregate-list
curl -X POST http://127.0.0.1:9696/v2.0/networks -H "Content-Type: application/json" \
-H "X-Auth-Token: $token" \
-d '{"network": {"name": "net1", "admin_state_up": true, "availability_zone_hints": ["az1"]}}'
curl -X POST http://127.0.0.1:9696/v2.0/networks -H "Content-Type: application/json" \
-H "X-Auth-Token: $token" \
-d '{"network": {"name": "net2", "admin_state_up": true, "availability_zone_hints": ["az2"]}}'
neutron net-create --availability-zone-hint az1 net1
echo "Create external network ext-net by curl:"
curl -X POST http://127.0.0.1:9696/v2.0/networks -H "Content-Type: application/json" \
-H "X-Auth-Token: $token" \
-d '{"network": {"name": "ext-net", "admin_state_up": true, "router:external": true, "provider:network_type": "vlan", "provider:physical_network": "extern", "availability_zone_hints": ["Pod2"]}}'
neutron net-create --availability-zone-hint az2 net2
echo "Create external network ext-net:"
neutron net-create --router:external --provider:network_type vlan --provider:physical_network extern --availability-zone-hint Pod2 ext-net
echo "Create test flavor:"
nova flavor-create test 1 1024 10 1

View File

@ -43,11 +43,9 @@ token=$(openstack token issue | awk 'NR==5 {print $4}')
echo $token
curl -X POST http://127.0.0.1/tricircle/v1.0/pods -H "Content-Type: application/json" \
-H "X-Auth-Token: $token" -d '{"pod": {"region_name": "RegionOne"}}'
openstack multiregion networking pod create --region-name RegionOne
curl -X POST http://127.0.0.1/tricircle/v1.0/pods -H "Content-Type: application/json" \
-H "X-Auth-Token: $token" -d '{"pod": {"region_name": "Pod1", "az_name": "az1"}}'
openstack multiregion networking pod create --region-name Pod1 --availability-zone az1
echo "******************************"
echo "* Verify Nova *"

View File

@ -313,48 +313,41 @@ How to play
normal OpenStack regions which includes Nova, Neutron and Glance. Shared
Keystone service is registered in "RegionOne".
- 4 Get token for the later commands. Run ::
- 4 Create pod instances for the Tricircle to manage the mapping between
availability zones and OpenStack instances ::
openstack --os-region-name=RegionOne token issue
openstack multiregion networking pod create --region-name CentralRegion
- 5 Create pod instances for the Tricircle to manage the mapping between
availability zones and OpenStack instances, "$token" is obtained in step 4 ::
openstack multiregion networking pod create --region-name RegionOne --availability-zone az1
curl -X POST http://127.0.0.1/tricircle/v1.0/pods -H "Content-Type: application/json" \
-H "X-Auth-Token: $token" -d '{"pod": {"region_name": "CentralRegion"}}'
curl -X POST http://127.0.0.1/tricircle/v1.0/pods -H "Content-Type: application/json" \
-H "X-Auth-Token: $token" -d '{"pod": {"region_name": "RegionOne", "az_name": "az1"}}'
curl -X POST http://127.0.0.1/tricircle/v1.0/pods -H "Content-Type: application/json" \
-H "X-Auth-Token: $token" -d '{"pod": {"region_name": "RegionTwo", "az_name": "az2"}}'
openstack multiregion networking pod create --region-name RegionTwo --availability-zone az2
Pay attention to "region_name" parameter we specify when creating pod. Pod name
should exactly match the region name registered in Keystone. In the above
commands, we create pods named "CentralRegion", "RegionOne" and "RegionTwo".
- 6 Create necessary resources in central Neutron server ::
- 5 Create necessary resources in central Neutron server ::
neutron --os-region-name=CentralRegion net-create net1
neutron --os-region-name=CentralRegion net-create --availability-zone-hint RegionOne net1
neutron --os-region-name=CentralRegion subnet-create net1 10.0.1.0/24
neutron --os-region-name=CentralRegion net-create net2
neutron --os-region-name=CentralRegion net-create --availability-zone-hint RegionTwo net2
neutron --os-region-name=CentralRegion subnet-create net2 10.0.2.0/24
Please note that the net1 and net2 ID will be used in later step to boot VM.
- 7 Get image ID and flavor ID which will be used in VM booting ::
- 6 Get image ID and flavor ID which will be used in VM booting ::
glance --os-region-name=RegionOne image-list
nova --os-region-name=RegionOne flavor-list
glance --os-region-name=RegionTwo image-list
nova --os-region-name=RegionTwo flavor-list
- 8 Boot virtual machines ::
- 7 Boot virtual machines ::
nova --os-region-name=RegionOne boot --flavor 1 --image $image1_id --nic net-id=$net1_id vm1
nova --os-region-name=RegionTwo boot --flavor 1 --image $image2_id --nic net-id=$net2_id vm2
- 9 Verify the VMs are connected to the networks ::
- 8 Verify the VMs are connected to the networks ::
neutron --os-region-name=CentralRegion port-list
neutron --os-region-name=RegionOne port-list
@ -366,11 +359,9 @@ How to play
Neutron server. The port has same uuid in local Neutron server and central
Neutron Server.
- 10 Create external network and subnet ::
- 9 Create external network and subnet ::
curl -X POST http://127.0.0.1:20001/v2.0/networks -H "Content-Type: application/json" \
-H "X-Auth-Token: $token" \
-d '{"network": {"name": "ext-net", "admin_state_up": true, "router:external": true, "provider:network_type": "vlan", "provider:physical_network": "extern", "availability_zone_hints": ["RegionTwo"]}}'
neutron --os-region-name=CentralRegion net-create --router:external --provider:network_type vlan --provider:physical_network extern --availability-zone-hint RegionTwo ext-net
neutron --os-region-name=CentralRegion subnet-create --name ext-subnet --disable-dhcp ext-net 163.3.124.0/24
Pay attention that when creating external network, we need to pass
@ -382,13 +373,13 @@ How to play
bridge network when handling interface adding operation. This limitation will
be removed later.*
- 11 Create router and attach subnets in central Neutron server ::
- 10 Create router and attach subnets in central Neutron server ::
neutron --os-region-name=CentralRegion router-create router
neutron --os-region-name=CentralRegion router-interface-add router $subnet1_id
neutron --os-region-name=CentralRegion router-interface-add router $subnet2_id
- 12 Set router external gateway in central Neutron server ::
- 11 Set router external gateway in central Neutron server ::
neutron --os-region-name=CentralRegion router-gateway-set router ext-net
@ -397,18 +388,18 @@ How to play
to directly start a virtual machine in the external network to check the
network connectivity.
- 13 Launch VNC console and test connection ::
- 12 Launch VNC console and test connection ::
nova --os-region-name=RegionOne get-vnc-console vm1 novnc
nova --os-region-name=RegionTwo get-vnc-console vm2 novnc
You should be able to ping vm1 from vm2 and vice versa.
- 14 Create floating ip in central Neutron server ::
- 13 Create floating ip in central Neutron server ::
neutron --os-region-name=CentralRegion floatingip-create ext-net
- 15 Associate floating ip ::
- 14 Associate floating ip ::
neutron --os-region-name=CentralRegion floatingip-list
neutron --os-region-name=CentralRegion port-list

View File

@ -17,25 +17,25 @@ installing DevStack in virtual machine.
https://github.com/openstack/tricircle/blob/master/devstack/local.conf.sample
to local.conf, change password in the file if needed.
- 3 Run DevStack. In DevStack folder, run::
- 3 Run DevStack. In DevStack folder, run ::
./stack.sh
- 4 After DevStack successfully starts, we need to create environment variables for
the user (admin user as example in this document). In DevStack folder::
the user (admin user as example in this document). In DevStack folder ::
source openrc admin demo
- 5 Unset the region name environment variable, so that the command can be issued to
specified region in following commands as needed::
specified region in following commands as needed ::
unset OS_REGION_NAME
- 6 Check if services have been correctly registered. Run::
- 6 Check if services have been correctly registered. Run ::
openstack --os-region-name=RegionOne endpoint list
you should get output looks like as following::
you should get output looks like as following ::
+----------------------------------+---------------+--------------+----------------+
| ID | Region | Service Name | Service Type |
@ -59,41 +59,34 @@ installing DevStack in virtual machine.
"RegionOne" is the normal OpenStack region which includes Nova, Cinder,
Neutron.
- 7 Get token for the later commands. Run::
- 7 Create pod instances for the Tricircle to manage the mapping between
availability zone and OpenStack instances ::
openstack --os-region-name=RegionOne token issue
openstack multiregion networking pod create --region-name CentralRegion
- 8 Create pod instances for the Tricircle to manage the mapping between
availability zone and OpenStack instances, the "$token" is obtained in the
step 7::
curl -X POST http://127.0.0.1/tricircle/v1.0/pods -H "Content-Type: application/json" \
-H "X-Auth-Token: $token" -d '{"pod": {"region_name": "CentralRegion"}}'
curl -X POST http://127.0.0.1/tricircle/v1.0/pods -H "Content-Type: application/json" \
-H "X-Auth-Token: $token" -d '{"pod": {"region_name": "RegionOne", "az_name": "az1"}}'
openstack multiregion networking pod create --region-name RegionOne --availability-zone az1
Pay attention to "region_name" parameter we specify when creating pod. Pod name
should exactly match the region name registered in Keystone. In the above
commands, we create pods named "CentralRegion" and "RegionOne".
- 9 Create necessary resources in central Neutron server::
- 8 Create necessary resources in central Neutron server ::
neutron --os-region-name=CentralRegion net-create net1
neutron --os-region-name=CentralRegion net-create --availability-zone-hint RegionOne net1
neutron --os-region-name=CentralRegion subnet-create net1 10.0.0.0/24
Please note that the net1 ID will be used in later step to boot VM.
- 10 Get image ID and flavor ID which will be used in VM booting::
- 9 Get image ID and flavor ID which will be used in VM booting ::
glance --os-region-name=RegionOne image-list
nova --os-region-name=RegionOne flavor-list
- 11 Boot a virtual machine::
- 10 Boot a virtual machine ::
nova --os-region-name=RegionOne boot --flavor 1 --image $image_id --nic net-id=$net_id vm1
- 12 Verify the VM is connected to the net1::
- 11 Verify the VM is connected to the net1 ::
neutron --os-region-name=CentralRegion port-list
neutron --os-region-name=RegionOne port-list

View File

@ -36,20 +36,12 @@ unset OS_REGION_NAME
mytoken=$(openstack --os-region-name=RegionOne token issue | awk 'NR==5 {print $4}')
echo $mytoken
curl -X POST http://$PRIMARY_NODE_IP/tricircle/v1.0/pods \
-H "Content-Type: application/json" \
-H "X-Auth-Token: $mytoken" -d '{"pod": {"region_name": "CentralRegion"}}'
openstack multiregion networking pod create --region-name CentralRegion
curl -X POST http://$PRIMARY_NODE_IP/tricircle/v1.0/pods \
-H "Content-Type: application/json" \
-H "X-Auth-Token: $mytoken" \
-d '{"pod": {"region_name": "RegionOne", "az_name": "az1"}}'
openstack multiregion networking pod create --region-name RegionOne --availability-zone az1
if [ "$DEVSTACK_GATE_TOPOLOGY" == "multinode" ]; then
curl -X POST http://$PRIMARY_NODE_IP/tricircle/v1.0/pods \
-H "Content-Type: application/json" \
-H "X-Auth-Token: $mytoken" \
-d '{"pod": {"region_name": "RegionTwo", "az_name": "az2"}}'
openstack multiregion networking pod create --region-name RegionTwo --availability-zone az2
fi
# the usage of "nova flavor-create":