async def addNodeTag(self, iden, tag, valu=(None, None)):
        '''
        Add a tag to a node specified by iden.

        Args:
            iden (str): A hex encoded node BUID.
            tag (str):  A tag string.
            valu (tuple):  A time interval tuple or (None, None).
        '''
        buid = s_common.uhex(iden)

        parts = tag.split('.')
        self._reqUserAllowed('tag:add', *parts)

        async with await self.cell.snap(user=self.user) as snap:
            with s_provenance.claim('coreapi', meth='tag:add', user=snap.user.iden):

                node = await snap.getNodeByBuid(buid)
                if node is None:
                    raise s_exc.NoSuchIden(iden=iden)

                await node.addTag(tag, valu=valu)
                return node.pack()
async def addNodeTag ( self , iden , tag , valu = ( None , None ) ) : buid = s_common . uhex ( iden ) parts = tag . split ( '.' ) self . _reqUserAllowed ( 'tag:add' , * parts ) async with await self . cell . snap ( user = self . user ) as snap : with s_provenance . claim ( 'coreapi' , meth = 'tag:add' , user = snap . user . iden ) : node = await snap . getNodeByBuid ( buid ) if node is None : raise s_exc . NoSuchIden ( iden = iden ) await node . addTag ( tag , valu = valu ) return node . pack ( )
Add a tag to a node specified by iden.

        Args:
            iden (str): A hex encoded node BUID.
            tag (str):  A tag string.
            valu (tuple):  A time interval tuple or (None, None).