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
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
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))