<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Validation callback in python in NSO Developer Hub Discussions</title>
    <link>https://community.cisco.com/t5/nso-developer-hub-discussions/validation-callback-in-python/m-p/3461531#M569</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jan,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a validation callback defined, similar to the example above. It seems I can't call error_seterr from cb_validate as it expects an _ncs.UserInfo object, which I don't have within cb_validate. Would I need a register_error_cb for that?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Marcelo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 16 Feb 2018 14:28:23 GMT</pubDate>
    <dc:creator>mareis</dc:creator>
    <dc:date>2018-02-16T14:28:23Z</dc:date>
    <item>
      <title>Validation callback in python</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/validation-callback-in-python/m-p/3461522#M560</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Python code demonstrating a validation callback.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="python" __jive_macro_name="code" class="jive_text_macro _jivemacro_uid_15020826094996635 jive_macro_code" jivemacro_uid="_15020826094996635" modifiedtitle="true"&gt;
&lt;P&gt;# -*- mode: python; python-indent: 4 -*-&lt;/P&gt;
&lt;P&gt;import ncs&lt;/P&gt;
&lt;P&gt;from ncs.dp import Daemon&lt;/P&gt;
&lt;P&gt;from ncs.maapi import Maapi&lt;/P&gt;
&lt;P&gt;from _ncs.dp import register_valpoint_cb, register_trans_validate_cb, trans_set_fd&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;class Validation(object):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def __init__(self, log):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.log = log&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.daemon = Daemon("foo-validation-daemon", log=log)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.maapi = Maapi()&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; register_trans_validate_cb(self.daemon.ctx(), self)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; register_valpoint_cb(self.daemon.ctx(),&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'the-validation-callpoint-name',&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.daemon.start()&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def cb_validate(self, tctx, kp, newval):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.log.info('validate called')&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # return ncs.CONFD_ERR to fail the validation otherwise&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # ncs.CONFD_OK&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ncs.CONFD_OK&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def cb_init(self, tctx):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.maapi.attach(tctx)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; trans_set_fd(tctx, self.daemon._wsock)&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def cb_stop(self, tctx):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.maapi.detach(tctx)&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;# ---------------------------------------------&lt;/P&gt;
&lt;P&gt;# COMPONENT THREAD THAT WILL BE STARTED BY NCS.&lt;/P&gt;
&lt;P&gt;# ---------------------------------------------&lt;/P&gt;
&lt;P&gt;class Main(ncs.application.Application):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def setup(self):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # The application class sets up logging for us. It is accessible&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # through 'self.log' and is a ncs.log.Log instance.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.log.info('Main RUNNING')&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.v = Validation(self.log)&lt;/P&gt;

&lt;/PRE&gt;&lt;PRE __default_attr="python" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_1502082609481857" jivemacro_uid="_1502082609481857"&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # If we registered any callback(s) above, the Application class&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # took care of creating a daemon (related to the service/action point).&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # When this setup method is finished, all registrations are&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # considered done and the application is 'started'.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def teardown(self):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # When the application is finished (which would happen if NCS went&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # down, packages were reloaded or some error occurred) this teardown&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # method will be called.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.log.info('Main FINISHED')&lt;/P&gt;

&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Mar 2019 11:56:58 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/validation-callback-in-python/m-p/3461522#M560</guid>
      <dc:creator>frjansso</dc:creator>
      <dc:date>2019-03-01T11:56:58Z</dc:date>
    </item>
    <item>
      <title>Re: Validation callback in python</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/validation-callback-in-python/m-p/3461523#M561</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Fredrik,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Great example as I had this question this week.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;One point that you may want to add is a description in the cb_validate() method where you clarify that there is where validation happens and which are the accepted outputs (other than CONFD_OK, I believe it is CONFD_ERR).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Finally, I was wondering what is the format for "newval" when the callback is applied to a list instead of a leaf. The values of the keys? are they comma separated?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Roque&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 06 Aug 2017 21:52:27 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/validation-callback-in-python/m-p/3461523#M561</guid>
      <dc:creator>rogaglia</dc:creator>
      <dc:date>2017-08-06T21:52:27Z</dc:date>
    </item>
    <item>
      <title>Re: Validation callback in python</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/validation-callback-in-python/m-p/3461524#M562</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Not sure what newval actually does, it's always 'undefined' in my tests. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you have a list, cb_validation is called once for each list entry.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Aug 2017 05:14:15 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/validation-callback-in-python/m-p/3461524#M562</guid>
      <dc:creator>frjansso</dc:creator>
      <dc:date>2017-08-07T05:14:15Z</dc:date>
    </item>
    <item>
      <title>Re: Validation callback in python</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/validation-callback-in-python/m-p/3461525#M563</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;newval is supposed to hold the new value of the leaf, if the validation point is placed on a leaf. Did you try that, and if so, did you find the mechanism is broken?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Aug 2017 11:08:38 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/validation-callback-in-python/m-p/3461525#M563</guid>
      <dc:creator>Jan Lindblad</dc:creator>
      <dc:date>2017-08-07T11:08:38Z</dc:date>
    </item>
    <item>
      <title>Re: Validation callback in python</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/validation-callback-in-python/m-p/3461526#M564</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jan,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Personally, that was my understanding and why I was asking how tailf:validate works on lists.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Roque&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Aug 2017 11:18:02 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/validation-callback-in-python/m-p/3461526#M564</guid>
      <dc:creator>rogaglia</dc:creator>
      <dc:date>2017-08-07T11:18:02Z</dc:date>
    </item>
    <item>
      <title>Re: Validation callback in python</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/validation-callback-in-python/m-p/3461527#M565</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;For a validation point placed on a list (or container, type empty leaf, ...) , newval will be undefined. You will need to read the value(s) you want using MAAGIC/MAAPI etc.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Aug 2017 11:28:02 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/validation-callback-in-python/m-p/3461527#M565</guid>
      <dc:creator>Jan Lindblad</dc:creator>
      <dc:date>2017-08-07T11:28:02Z</dc:date>
    </item>
    <item>
      <title>Re: Validation callback in python</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/validation-callback-in-python/m-p/3461528#M566</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Makes sense now, I never tried to att the validation point to a single leaf.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Aug 2017 14:27:55 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/validation-callback-in-python/m-p/3461528#M566</guid>
      <dc:creator>frjansso</dc:creator>
      <dc:date>2017-08-07T14:27:55Z</dc:date>
    </item>
    <item>
      <title>Re: Validation callback in python</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/validation-callback-in-python/m-p/3461529#M567</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Fredrik,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm looking for a way to return a message to the user when validation fails.&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;Returning ncs.CONFD_ERR I get:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;admin@ncs(config-device-IOS-0)# description srt&lt;/P&gt;&lt;P&gt;admin@ncs(config-device-IOS-0)# commit&lt;/P&gt;&lt;P&gt;Aborted: application error&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;Which is not very user friendly. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;By raising an exception I can customize a message to the user. For instance:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;admin@ncs(config-device-IOS-0)# description 123&lt;/P&gt;&lt;P&gt;admin@ncs(config-device-IOS-0)# commit&lt;/P&gt;&lt;P&gt;Aborted: 'services loopback device IOS-0 description': Python cb_validate error. This is not a good description&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is that the proper way to do it or is there a better option?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Marcelo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 16 Feb 2018 00:15:33 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/validation-callback-in-python/m-p/3461529#M567</guid>
      <dc:creator>mareis</dc:creator>
      <dc:date>2018-02-16T00:15:33Z</dc:date>
    </item>
    <item>
      <title>Re: Validation callback in python</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/validation-callback-in-python/m-p/3461530#M568</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You have a python validation callback defined? Or an error message register_error_cb(...) formatter callback? &lt;SPAN style="font-size: 10pt;"&gt;Not entirely clear. Basically y&lt;/SPAN&gt;ou can use error_seterr(...)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 16 Feb 2018 09:17:00 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/validation-callback-in-python/m-p/3461530#M568</guid>
      <dc:creator>Jan Lindblad</dc:creator>
      <dc:date>2018-02-16T09:17:00Z</dc:date>
    </item>
    <item>
      <title>Re: Validation callback in python</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/validation-callback-in-python/m-p/3461531#M569</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jan,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a validation callback defined, similar to the example above. It seems I can't call error_seterr from cb_validate as it expects an _ncs.UserInfo object, which I don't have within cb_validate. Would I need a register_error_cb for that?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Marcelo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 16 Feb 2018 14:28:23 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/validation-callback-in-python/m-p/3461531#M569</guid>
      <dc:creator>mareis</dc:creator>
      <dc:date>2018-02-16T14:28:23Z</dc:date>
    </item>
    <item>
      <title>Re: Validation callback in python</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/validation-callback-in-python/m-p/3791851#M3216</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As per the example of above, New Daemon(Independent Thread) is registered to handle tailf:validation.&lt;/P&gt;
&lt;P&gt;Can we attach the validation callback to existing Service(Service uses Daemon internally)&lt;/P&gt;
&lt;P&gt;Or this is the only way exists ?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards&lt;/P&gt;
&lt;P&gt;Zahid&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 31 Jan 2019 06:24:06 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/validation-callback-in-python/m-p/3791851#M3216</guid>
      <dc:creator>mohamkh7</dc:creator>
      <dc:date>2019-01-31T06:24:06Z</dc:date>
    </item>
    <item>
      <title>Re: Validation callback in python</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/validation-callback-in-python/m-p/3798010#M3258</link>
      <description>&lt;P&gt;You mean to tie the validation callback to a service class? I'm actually not sure... but I guess the question is why? &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 08 Feb 2019 17:59:36 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/validation-callback-in-python/m-p/3798010#M3258</guid>
      <dc:creator>frjansso</dc:creator>
      <dc:date>2019-02-08T17:59:36Z</dc:date>
    </item>
    <item>
      <title>Re: Validation callback in python</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/validation-callback-in-python/m-p/3798011#M3259</link>
      <description>&lt;P&gt;You mean to tie the validation callback to a service class? I'm actually not sure... but I guess my question is why? &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 08 Feb 2019 18:00:09 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/validation-callback-in-python/m-p/3798011#M3259</guid>
      <dc:creator>frjansso</dc:creator>
      <dc:date>2019-02-08T18:00:09Z</dc:date>
    </item>
  </channel>
</rss>

