def _version(self):
     '''Function to read AIMS version value from single Feature pages
     @return: Integer. Feature version number 
     '''
     _,cid = SupplementalHack.strip(self.identifier)
     ce,jc = self.api.getOneFeature(FeedRef((self.etft.et,self.oft)),cid)
     if any(ce.values()): aimslog.error('Single-feature request failure {}'.format(ce))
     if jc['properties'].has_key('version'):
         return jc['properties']['version']
     else:
         #WORKAROUND
         aimslog.warn('No version number available for address/groupId={}'.format(self.identifier))
         return 1    
    def _xxxGetLinkedFeatureWorkaround(self, cid1):
        '''Workaround to handle supplementary links
        @param etft: Feed/Feature identifier
        @type etft: FeedRef
        @param cid: ChangeId
        @type cid: Integer
        @return: Dict of JSON response
        '''
        etft1 = FeedRef(FeatureType.ADDRESS, FeedType.FEATURES)
        cef, jcf = self.getOneFeature(etft1, cid1)

        cid2 = SupplementalHack.extractlink(jcf)

        etft2 = FeedRef(FeatureType.ADDRESS, FeedType.RESOLUTIONFEED)
        cer, jcr = self.getOneFeature(etft2, cid2)

        return cer, jcr
Beispiel #3
0
 def _xxxGetLinkedFeatureWorkaround(self,cid1):
     '''Workaround to handle supplementary links
     @param etft: Feed/Feature identifier
     @type etft: FeedRef
     @param cid: ChangeId
     @type cid: Integer
     @return: Dict of JSON response
     '''
     etft1 = FeedRef(FeatureType.ADDRESS,FeedType.FEATURES)
     cef,jcf = self.getOneFeature(etft1, cid1)
     
     cid2 = SupplementalHack.extractlink(jcf)
     
     etft2 = FeedRef(FeatureType.ADDRESS,FeedType.RESOLUTIONFEED)
     cer,jcr = self.getOneFeature(etft2, cid2)
     
     return cer,jcr
Beispiel #4
0
 def addressApprove(self,at,payload,cid):
     '''Perform an address approval action by posting a change on the AIMS resolutionfeed
     @param at: Approval type (acc/rej/upd) to AIMS address
     @type at: ApprovalType
     @param payload: JSON fomatted HTTP data request
     @type payload: String
     @param cid: ChangeId
     @type cid: Integer
     @return: Response from HTTP request
     '''
     #<HACK> (2) Bypass on supplemental
     sup,cid = SupplementalHack.strip(cid)
     if sup: return self._xxxGetLinkedFeatureWorkaround(cid)
     #</HACK>
     #aimslog.debug('{0}'.format(payload))
     '''Approve/Decline a change by submitting address to resolutionfeed'''
     et = FeatureType.reverse[FeatureType.ADDRESS].lower()
     ft = FeedType.reverse[FeedType.RESOLUTIONFEED].lower()
     url = '/'.join((self._url,et,ft,str(cid),ApprovalType.PATH[at].lower(),TESTPATH)).rstrip('/')
     resp, content = self._request(url,ApprovalType.HTTP[at], json.dumps(payload), self._headers)
     return self.handleResponse(url,resp["status"], json.loads(content) )
 def addressApprove(self, at, payload, cid):
     '''Perform an address approval action by posting a change on the AIMS resolutionfeed
     @param at: Approval type (acc/rej/upd) to AIMS address
     @type at: ApprovalType
     @param payload: JSON fomatted HTTP data request
     @type payload: String
     @param cid: ChangeId
     @type cid: Integer
     @return: Response from HTTP request
     '''
     #<HACK> (2) Bypass on supplemental
     sup, cid = SupplementalHack.strip(cid)
     if sup: return self._xxxGetLinkedFeatureWorkaround(cid)
     #</HACK>
     #aimslog.debug('{0}'.format(payload))
     '''Approve/Decline a change by submitting address to resolutionfeed'''
     et = FeatureType.reverse[FeatureType.ADDRESS].lower()
     ft = FeedType.reverse[FeedType.RESOLUTIONFEED].lower()
     url = '/'.join((self._url, et, ft, str(cid),
                     ApprovalType.PATH[at].lower(), TESTPATH)).rstrip('/')
     resp, content = self._request(url, ApprovalType.HTTP[at],
                                   json.dumps(payload), self._headers)
     return self.handleResponse(url, resp["status"], json.loads(content))