def printDeployments(dep, check_revision=None): if check_revision: revisions = [d['revision'] for d in dep] if check_revision not in revisions: sys.exit('Error: proxy version %i not found' % check_revision) console.echo('Proxy version %i found' % check_revision) for d in dep: console.echo('Environment: %s' % d['environment']) console.echo(' Revision: %i BasePath = %s' % (d['revision'], d['basePath'])) console.echo(' State: %s' % d['state']) if d['state'] == 'missing': console.echo('Missing deployment. Attempting deletion...') try: Apis(Auth, Organization).undeploy_api_proxy_revision( Name, d['environment'], d['revision']) console.echo( Apis(Auth, Organization).delete_api_proxy_revision( Name, d['revision']).text) except HTTPError as e: if e.response.status_code != 400: raise e elif d['state'] != 'deployed': sys.exit(1) if 'error' in d: console.echo(' Error: %s' % d['error'])
def download_apis_snapshot(self): for api in Apis(self.auth, self.org_name, None).list_api_proxies( prefix=self.prefix, format='dict' ): self.snapshot_data.apis[api] = ( Apis(self.auth, self.org_name, None).get_api_proxy(api).json() ) write_file( self.snapshot_data.apis[api], self._gen_download_path(is_snapshot=True, subpaths=['apis', f'{api}.json']), fs_write=self.fs_write, indent=2, ) return self.snapshot_data.apis
def _pull( username, password, mfa_secret, token, zonename, org, profile, name, revision_number, environment, work_tree, dependencies=[], force=False, prefix=None, basepath=None, **kwargs, ): return Apis( gen_auth(username, password, mfa_secret, token, zonename), org, revision_number, environment, work_tree=work_tree, ).pull(name, force=force, prefix=prefix, basepath=basepath)
def _list_api_proxy_revisions( username, password, mfa_secret, token, zonename, org, profile, name, **kwargs ): return ( Apis(gen_auth(username, password, mfa_secret, token, zonename), org) .list_api_proxy_revisions(name) .text )
def _delete_api_proxy_revision( username, password, mfa_secret, token, zonename, org, profile, name, revision_number, **kwargs ): return ( Apis(gen_auth(username, password, mfa_secret, token, zonename), org) .delete_api_proxy_revision(name, revision_number) .text )
def download_apis_snapshot(self): for api in Apis(self.auth, self.org_name, None).list_api_proxies( prefix=self.prefix, format='dict' ): self.snapshot_data.apis[api] = ( Apis(self.auth, self.org_name, None).get_api_proxy(api).json() ) data = { 'snapshot': self.snapshot_data.apis[api], 'target_path': self._gen_snapshot_path(subpaths=['apis', f'{api}.json']), 'fs_write': self.fs_write, 'indent': 2, } write_file( data['snapshot'], data['target_path'], fs_write=data['fs_write'], indent=data['indent'], ) return self.snapshot_data.apis
def _list_api_proxies( username, password, mfa_secret, token, zonename, org, profile, prefix=None, format='json', **kwargs, ): return Apis(gen_auth(username, password, mfa_secret, token, zonename), org).list_api_proxies(prefix=prefix)
def download_apis(self): for api, metadata in self.snapshot_data.apis.items(): for revision in metadata['revision']: output_file = Backups.generate_download_path( self.org_path, subpaths=['apis', api, revision, f'{api}.zip'] ) target_directory = os.path.dirname(output_file) try: Apis(self.auth, self.org_name, None).export_api_proxy( api, revision, fs_write=True, output_file=output_file ) extract_zip(output_file, target_directory) os.remove(output_file) except HTTPError as e: Backups.log_error(e, append_msg=' for API Proxy ({api}, revision {revision})') self._Backups__progress_callback(desc='APIs')
def _delete_undeployed_revisions( username, password, mfa_secret, token, zonename, org, profile, name, save_last=0, dry_run=False, **kwargs, ): return Apis( gen_auth(username, password, mfa_secret, token, zonename), org ).delete_undeployed_revisions(name, save_last=save_last, dry_run=dry_run)
def _force_undeploy_api_proxy_revision( username, password, mfa_secret, token, zonename, org, profile, name, environment, revision_number, **kwargs, ): return (Apis(gen_auth(username, password, mfa_secret, token, zonename), org).force_undeploy_api_proxy_revision( name, environment, revision_number).text)
def download_apis(self): for api, metadata in self.snapshot_data.apis.items(): for revision in metadata['revision']: output_file = self._gen_download_path( subpaths=['apis', api, revision, f'{api}.zip'] ) target_directory = os.path.dirname(output_file) try: Apis(self.auth, self.org_name, None).export_api_proxy( api, revision, fs_write=True, output_file=output_file ) extract_zip(output_file, target_directory) os.remove(output_file) except HTTPError as e: console.echo( f'Ignoring {type(e).__name__} {e.response.status_code} error for API Proxy ({api}, revision {revision})' ) self._progress_callback(desc='APIs') return self.snapshot_data.apis
def _export_api_proxy( username, password, mfa_secret, token, zonename, org, profile, name, revision_number, fs_write=True, output_file=None, **kwargs, ): return Apis(gen_auth(username, password, mfa_secret, token, zonename), org).export_api_proxy( name, revision_number, fs_write=True, output_file=output_file if output_file else f'{name}.zip', )
def _deploy_api_proxy_revision( username, password, mfa_secret, token, zonename, org, profile, name, environment, revision_number, delay=0, override=False, **kwargs, ): return (Apis(gen_auth(username, password, mfa_secret, token, zonename), org).deploy_api_proxy_revision(name, environment, revision_number, delay=delay, override=override).text)
def _get_api_proxy(username, password, mfa_secret, token, zonename, org, profile, name, **kwargs): return ( Apis(gen_auth(username, password, mfa_secret, token, zonename), org) .get_api_proxy(name) .text )