Thanks Service Template creation using REST API works. 

Regarding Service Instance creation , 
I observed the following sequence of steps/REST APIs triggered by Contrail UI 

1. POST http://contrail-api:8082/service-instances 
2. POST http://contrail-api:8082/port-tuples 
3. PUT http://contrail-api:8082/virtual-machine-interface/<id> Management, 
Left, Right Network 
Update the Port tuple in the VMI 

4. PUT http://contrail-api:8082/service-instance/<id> 
update the port tuple in the SI 
5. POST http://contrail-api:8082/instance-ips 
Creating a new Right,Left,Mgmt IP for service instance 

I think, the existing service-instance.py script doest not updated to support 
version 2 service instance. 
Do we have any other CLI scripts/methods to create SI ? 

Thanks 
Suresh. 


From: "Vedamurthy Ananth Joshi" <vjo...@juniper.net> 
To: "Suresh Kumar S" <sureshkuma...@altencalsoftlabs.com>, "users" 
<users@lists.opencontrail.org>, "Dev" <dev-boun...@lists.opencontrail.org> 
Sent: Tuesday, June 27, 2017 9:47:46 PM 
Subject: Re: [Users] Error in service template creation 

http://configuration-schema-documentation.s3-website-us-west-1.amazonaws.com/R3.2/contrail_openapi.html#service-template
 

Below sample should help 
root@nodeb8:~# contrail-logs --module contrail-api --message-type 
VncApiConfigLog --last 10m 

2017 Jun 28 00:54:18.181708 nodeb8 
[Config:contrail-api:0:__default__][SYS_INFO] : VncApiConfigLog:245 
[VncApiCommon: object_type = service_template, identifier_name = 
default-domain:test1, url = http://10.204.216.201:9100/service-templates, 
operation = post, useragent = Restler for node.js, remote_ip = 
10.204.216.201:9100, body = {"service-template": {"display_name": "test1", 
"name": "test1", "parent_type": "domain", "perms2": {"owner": 
"f9e4b6aa638e42768d406856de6b2d4a", "owner_access": 7, "global_access": 0, 
"share": []}, "service_template_properties": {"instance_data": null, 
"availability_zone_enable": null, "service_virtualization_type": 
"virtual-machine", "interface_type": [{"service_interface_type": "management"}, 
{"service_interface_type": "left"}, {"service_interface_type": "right"}], 
"image_name": null, "service_mode": "in-network", "version": 2, "service_type": 
"firewall", "flavor": null, "service_scaling": null, "vrouter_instance_type": 
null, "ordered_interfaces": true}, "versionList": [{"text": "v1", "id": 1}, 
{"text": "v2", "id": 2}], "fq_name": ["default-domain", "test1"], 
"owner_visible": false, "id_perms": {"enable": true, "uuid": null, "creator": 
null, "created": null, "user_visible": true, "last_modified": null, 
"permissions": {"owner": "cloud-admin", "owner_access": 7, "other_access": 7, 
"group": "cloud-admin-group", "group_access": 7}, "description": null}}}, 
domain = default-domain, project = ctest-TestECMPSanity-63415890, user = admin] 


Vedu 

From: Users < users-boun...@lists.opencontrail.org > on behalf of OpenContrail 
Users List - 2 < users@lists.opencontrail.org > 
Reply-To: Suresh Kumar S < sureshkuma...@altencalsoftlabs.com > 
Date: Tuesday, June 27, 2017 at 4:39 PM 
To: OpenContrail Users List - 2 < users@lists.opencontrail.org >, Dev < 
dev-boun...@lists.opencontrail.org > 
Subject: [Users] Error in service template creation 

Hi, 

In Contrail 3.2, 
I am trying to create a service template using REST API as below, 

POST http://contrail-api:8082/service-templates 

{ 
"name": "fw_st", 
"version" : 2, 
"service_mode": "in-network", 
"service_type": "firewall", 
"interface_type": ["management","left","right"], 
"service_virtualization_type": "virtual-machine" 
} 

The response is "500 Internal Server Error". The logs are below. 
Any suggestions to fix this error? 

Thanks 
suresh 



Contrail API Server Logs 
===================== 

06/27/2017 11:05:33 AM [contrail-api]: SANDESH: [DROP: NoSession] __default__ 
[SYS_ERR]: VncApiError: <type 'exceptions.KeyError'> 
Python 2.7.6: /usr/bin/python 
Tue Jun 27 11:05:33 2017 

A problem occurred in a Python script. Here is the sequence of 
function calls leading up to the error, in the order they occurred. 

/usr/lib/python2.7/dist-packages/vnc_cfg_api_server/vnc_cfg_api_server.py in 
handler_trap_exception(*args=(), **kwargs={}) 
1712 (code, err_msg) = status 
1713 raise cfgm_common.exceptions.HttpError(code, err_msg) 
1714 response = handler(*args, **kwargs) 
1715 self._generate_rest_api_response_trace(trace, response) 
1716 
response undefined 
handler = <functools.partial object> 
args = () 
kwargs = {} 
/usr/lib/python2.7/dist-packages/cfgm_common/vnc_api_stats.py in 
wrapper(api_server_obj=<vnc_cfg_api_server.vnc_cfg_api_server.VncApiServer 
object>, resource_type='service_template', *args=(), **kwargs={}) 
15 statistics = VncApiStatistics( 
16 obj_type=resource_type.replace('-', '_')) 
17 response = func(api_server_obj, resource_type, *args, **kwargs) 
18 statistics.response_size = len(str(response)) 
19 statistics.response_code = bottle.response.status_code 
response undefined 
func = <function http_resource_create> 
api_server_obj = <vnc_cfg_api_server.vnc_cfg_api_server.VncApiServer object> 
resource_type = 'service_template' 
args = () 
kwargs = {} 

/usr/lib/python2.7/dist-packages/vnc_cfg_api_server/vnc_cfg_api_server.py in 
http_resource_create(self=<vnc_cfg_api_server.vnc_cfg_api_server.VncApiServer 
object>, obj_type='service_template') 
414 def http_resource_create(self, obj_type): 
415 resource_type, r_class = self._validate_resource_type(obj_type) 
416 obj_dict = get_request().json[resource_type] 
417 
418 # check visibility 
obj_dict undefined 
global get_request = <function get_request> 
).json undefined 
resource_type = 'service-template' 
<type 'exceptions.KeyError'>: 'service-template' 
__class__ = <type 'exceptions.KeyError'> 
__delattr__ = <method-wrapper '__delattr__' of exceptions.KeyError object> 
__dict__ = {} 
__doc__ = 'Mapping key not found.' 
__format__ = <built-in method __format__ of exceptions.KeyError object> 
__getattribute__ = <method-wrapper '__getattribute__' of exceptions.KeyError 
object> 
__getitem__ = <method-wrapper '__getitem__' of exceptions.KeyError object> 
__getslice__ = <method-wrapper '__getslice__' of exceptions.KeyError object> 
__hash__ = <method-wrapper '__hash__' of exceptions.KeyError object> 
__init__ = <method-wrapper '__init__' of exceptions.KeyError object> 
__new__ = <built-in method __new__ of type object> 
__reduce__ = <built-in method __reduce__ of exceptions.KeyError object> 
__reduce_ex__ = <built-in method __reduce_ex__ of exceptions.KeyError object> 
__repr__ = <method-wrapper '__repr__' of exceptions.KeyError object> 
__setattr__ = <method-wrapper '__setattr__' of exceptions.KeyError object> 
__setstate__ = <built-in method __setstate__ of exceptions.KeyError object> 
__sizeof__ = <built-in method __sizeof__ of exceptions.KeyError object> 
__str__ = <method-wrapper '__str__' of exceptions.KeyError object> 
__subclasshook__ = <built-in method __subclasshook__ of type object> 
__unicode__ = <built-in method __unicode__ of exceptions.KeyError object> 
args = ('service-template',) 
message = 'service-template' 

The above is a description of an error in a Python program. Here is 
the original traceback: 

Traceback (most recent call last): 
File 
"/usr/lib/python2.7/dist-packages/vnc_cfg_api_server/vnc_cfg_api_server.py", 
line 1714, in handler_trap_exception 
response = handler(*args, **kwargs) 
File "/usr/lib/python2.7/dist-packages/cfgm_common/vnc_api_stats.py", line 17, 
in wrapper 
response = func(api_server_obj, resource_type, *args, **kwargs) 
File 
"/usr/lib/python2.7/dist-packages/vnc_cfg_api_server/vnc_cfg_api_server.py", 
line 416, in http_resource_create 
obj_dict = get_request().json[resource_type] 
KeyError: 'service-template' 


_______________________________________________
Users mailing list
Users@lists.opencontrail.org
http://lists.opencontrail.org/mailman/listinfo/users_lists.opencontrail.org

Reply via email to