def deploy_file(path, kwargs, config): with utils.directory(os.path.dirname(path)): config.update(kwargs) if 'FunctionName' not in config: clip.exit('You must provide a function name', err=True) # Zip up directory utils.make_zip(config['FunctionName']) # Upload! upload(config['FunctionName'], config)
def deploy_dir(path, kwargs): with utils.directory(path): config = utils.load_config() config['config'].update(kwargs) if 'FunctionName' not in config['config']: clip.exit('You must provide a function name', err=True) # Remove ignore paths for e in config['ignore'] + ['.git/', '.gitignore']: utils.delete_resource(e) # Run install command if 'install' in config: utils.shell(config['install']) # Zip up directory utils.make_zip(config['config']['FunctionName']) # Upload! params = config['config'] upload(params['FunctionName'], params)
def get(self): res = {"state": "fail"} try: project_code = request.args.get('project_code') basedir = os.path.abspath(os.path.dirname(__file__)) out_filename = basedir + '/static/zip/' + project_code + '.zip' db_res = db.require_attachments(project_code) if db_res['state'] == 'fail': res['reason'] = db_res['reason'] raise FError source_list = db_res['project_files'] make_zip(source_list, out_filename) res['state'] = 'Success' res['url'] = Config.DOMAIN_NAME + '/static/zip/' + project_code + '.zip' except: res['reason'] = '可能是打包错误,查看本地是否有数据库中的数据' # this is a test for keyboard. Well, not bad. I must admit that, this is better than mine. finally: return jsonify(res)
def upload(params): zipfile = params['FunctionName'] utils.make_zip(zipfile) # Zip up directory with open(zipfile + ".zip", 'rb') as f: zip_bytes = f.read() # Now we're ready to upload! clip.echo('Deploying function "{}"...'.format(zipfile)) client = boto3.client('lambda') upsert = params.pop('upsert', False) try: if upsert: # We can override an existing function, check if we need to try: client.get_function_configuration(FunctionName=zipfile) # If we made it here, we need to update response = client.update_function_code(FunctionName=zipfile, ZipFile=zip_bytes) clip.echo('Update code response: {}'.format( response['ResponseMetadata']['HTTPStatusCode'] )) params.pop('Runtime', None) response = client.update_function_configuration(**params) clip.echo('Update configuration response: {}'.format( response['ResponseMetadata']['HTTPStatusCode'] )) clip.echo('ARN: {}'.format(response['FunctionArn'])) return except Exception as e: if 'ResourceNotFoundException' not in str(e): raise e # Create the function from scratch params['Code'] = { 'ZipFile': zip_bytes } response = client.create_function(**params) clip.echo('Create response: {}'.format( response['ResponseMetadata']['HTTPStatusCode'] )) clip.echo('ARN: {}'.format(response['FunctionArn'])) except Exception as e: clip.exit(e, err=True)
def upload(params): zipfile = params['FunctionName'] utils.make_zip(zipfile) # Zip up directory with open(zipfile + ".zip", 'rb') as f: zip_bytes = f.read() # Now we're ready to upload! clip.echo('Deploying function "{}"...'.format(zipfile)) client = boto3.client('lambda') upsert = params.pop('upsert', False) try: if upsert: # We can override an existing function, check if we need to try: client.get_function_configuration(FunctionName=zipfile) # If we made it here, we need to update response = client.update_function_code(FunctionName=zipfile, ZipFile=zip_bytes) clip.echo('Update code response: {}'.format( response['ResponseMetadata']['HTTPStatusCode'])) params.pop('Runtime', None) response = client.update_function_configuration(**params) clip.echo('Update configuration response: {}'.format( response['ResponseMetadata']['HTTPStatusCode'])) clip.echo('ARN: {}'.format(response['FunctionArn'])) return except Exception as e: if 'ResourceNotFoundException' not in str(e): raise e # Create the function from scratch params['Code'] = {'ZipFile': zip_bytes} response = client.create_function(**params) clip.echo('Create response: {}'.format( response['ResponseMetadata']['HTTPStatusCode'])) clip.echo('ARN: {}'.format(response['FunctionArn'])) except Exception as e: clip.exit(e, err=True)
utils.delete_file(tc2_out) utils.delete_file(ttc_out) utils.delete_file(tresult) if clean_compare: if grp_type == 2: print(created_folders) utils.delete_folder(code2_out) utils.delete_folder(result) elif grp_type == 1: fend = (str(i).zfill(idx_len) if idx_out else "") + ".txt" c2sidx = code2_out.rfind('/') + 1 ressidx = code2_out.rfind('/') + 1 c2fname = code2_out[c2sidx:] resfname = result[ressidx:] for fld in created_folders: utils.delete_file(interm + fld + "/" + c2fname + fend) utils.delete_file(interm + fld + "/" + resfname + fend) if gen_zip: utils.delete_file(interm + interm[:-1] + ".zip") utils.make_zip(interm[:-1]) if clean_all: print("**WARNING**") print("Cleaning everything except report.") print("To avoid this set 'clean_all' flag to 'no' in your config") utils.delete_folders(interm, created_folders) print()