UNPKG

@artilleryio/platform-fargate

Version:
1 lines 2.29 kB
const AWS=require("aws-sdk"),util=require("./util"),debug=require("debug")("util");async function getPublicPrivateSubnets(){}async function ecsDescribeTasks(params,ecs){var taskArnChunks=splitIntoSublists(params.tasks,100),results={tasks:[],failures:[]};for(let i=0;i<taskArnChunks.length;i++){var params2=Object.assign({},params,{tasks:taskArnChunks[i]});try{var ecsData=await ecs.describeTasks(params2).promise();results.tasks=results.tasks.concat(ecsData.tasks),results.failures=results.failures.concat(ecsData.failures)}catch(err){throw err}}return results}function splitIntoSublists(list,maxGroupSize){var result=[],numGroups=Math.ceil(list.length/maxGroupSize);for(let i=0;i<numGroups;i++)result.push(list.slice(i*maxGroupSize,i*maxGroupSize+maxGroupSize));return result}async function ensureParameterExists(ssmPath,defaultValue,type,region){region&&AWS.config.update({region:region});try{return await parameterExists(ssmPath)?Promise.resolve():putParameter(ssmPath,defaultValue,type)}catch(err){return Promise.reject(err)}}async function parameterExists(path,region){region&&AWS.config.update({region:region});region=new AWS.SSM({apiVersion:"2014-11-06"}),path={Name:path,WithDecryption:!0};try{await region.getParameter(path).promise();return Promise.resolve(!0)}catch(ssmErr){return"ParameterNotFound"===ssmErr.code?Promise.resolve(!1):Promise.reject(ssmErr)}}async function putParameter(path,value,type,region){region&&AWS.config.update({region:region});region=new AWS.SSM({apiVersion:"2014-11-06"}),path={Name:path,Type:type,Value:value,Overwrite:!0};try{await region.putParameter(path).promise();return Promise.resolve()}catch(ssmErr){return Promise.reject(ssmErr)}}async function getParameter(path,region){region&&AWS.config.update({region:region});region=new AWS.SSM({apiVersion:"2014-11-06"});try{var ssmResponse=await region.getParameter({Name:path,WithDecryption:!0}).promise();return debug({ssmResponse:ssmResponse}),ssmResponse.Parameter&&ssmResponse.Parameter.Value}catch(ssmErr){if("ParameterNotFound"===ssmErr.code)return!1;throw ssmErr}}module.exports={ecsDescribeTasks:ecsDescribeTasks,getPublicPrivateSubnets:getPublicPrivateSubnets,ensureParameterExists:ensureParameterExists,parameterExists:parameterExists,putParameter:putParameter,getParameter:getParameter};