cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
954
Views
0
Helpful
2
Replies

Diiferentiate create or update in Python ServiceCallbacks

houlee
Cisco Employee
Cisco Employee

Hi experts,

 

Is there a quick way to differentiate if a ServiceCallbacks is updating the service or creating a service in python?

 

To be more specific, in pre_modification decorator, there is an op parameter that can differentiate create, update or delete

@Service.pre_modification
def cb_pre_modification(self, tctx, op, kp, root, proplist):

Is there a similar thing in the ServiceCallbacks?

 

class ServiceCallbacks(Service):
    @Service.create
    def cb_create(self, tctx, root, service, proplist):

 

Thanks.

 

2 Replies 2

lmanor
Cisco Employee
Cisco Employee

So, the purpose of the Create callback - and Fastmap - is to write only the create function for the service instance and allow Fastmap to infer the update and delete functionality from that.  Placing create/update/delete specific code within the create_cb() is not advised as it may effect Fastmap operation.

The pre/post mod functions are 'outside' of the Fastmap operations, thus the potential need to differentiate create/update/delete functions.

Curious what you are attempting where you need to differentiate in create code.

 

houlee
Cisco Employee
Cisco Employee

My use case is about adding and placing an access-rule to a Check Point device. In the case of creation, the service creates a new access-rule and moves it to the bottom of the section. While in the case of an update, to maintain the order of the access-rules in the section, the service only updates the content of the access-rule and does not move around the access-rule. In other words, ideally, the service code moves the rule while creating the service and doesn't move the rule while updating the service.

Polls
AI-powered tools for network troubleshooting are likely to be part of everyone’s workflow sooner or later. What is the single biggest challenge or concern you see with adopting these tools in your organization?