예제 #1
0
    def create_member_objects(self, regh, keyspec, msg, user_data):
        """This function  implements the data member APIs  to create, update and read objects
        """
        logger.info("Creating member data objects !!!")

        id = 1
        for id in range(1, 10):
          emp = RwDtsToyTaskletYang.Employee()
          emp.name = 'jdoe' + str(id)
          emp.age = 30 + id
          emp.phone = '978-863-00' + str(id)
          emp.ssn = '123-45-000' + str(id)
          path = '/rw-dts-toy-tasklet:employee[rw-dts-toy-tasklet:name=\'jdoe' + str(id) + '\']'
          status, ks = self.apih.keyspec_from_xpath(path)
          logger.debug("keyspec_from_xpath returned %s for path %s", status, ks)
          status = self.mbdreg.create_element_keyspec(ks, emp.to_pbcm())
          logger.debug("create_element_keyspec returned %s for path %s", status, ks)

        #Update an element
        path = '/rw-dts-toy-tasklet:employee[rw-dts-toy-tasklet:name=\'jdoe9\']'
        status, ks = self.apih.keyspec_from_xpath(path)
        logger.debug("keyspec_from_xpath returned %s for path %s", status, ks)
        emp = RwDtsToyTaskletYang.Employee()
        emp.name = 'jdoe9' + str(id)
        emp.age = 41
        emp.phone = '978-863-099'
        emp.ssn = '123-45-0099'
        status = self.mbdreg.update_element_keyspec(ks, emp.to_pbcm(), RwDts.XactFlag.REPLACE)
        logger.info("Updated the object with key = %s status = %s", path, status)

        # Now read it back
        status, out_ks, pbcm = self.mbdreg.get_element_keyspec(ks)
        logger.info("Get returned status=%s, pbcm=%s out_ks = %s", status, pbcm, out_ks)
        employee = RwDtsToyTaskletYang.Employee.from_pbcm(pbcm)
        logger.info("Read record is %s", employee)

        # Now read with xpath
        status, pbcm,out_ks = self.mbdreg.get_element_xpath('C,/rw-dts-toy-tasklet:employee[rw-dts-toy-tasklet:name=\'jdoe8\']')
        logger.info("Get returned using xpath status=%s pbcm=%s out_ks = %s", status, pbcm, out_ks)
        employee = RwDtsToyTaskletYang.Employee.from_pbcm(pbcm)
        logger.info("Read record  using xpath is %s", employee)

        # Get a cursor and walk the list
        cursor =  self.mbdreg.get_current_cursor()
        msg, ks = self.mbdreg.get_next_element(cursor)

        while msg is not None:
          employee = RwDtsToyTaskletYang.Employee.from_pbcm(msg)
          logger.info("Read record  using get next api  %s", employee)
          msg, ks = self.mbdreg.get_next_element(cursor)