public async void RetrieveParameter_Scenario_RetrievesCorrectParameter()
        {
            // arrange
            var _ssmClient = new Mock <IAmazonSimpleSystemsManagement>();
            var param      = new Parameter();

            param.Name  = "test";
            param.Value = "test_value";
            var parametersResponse = new GetParametersResponse();

            parametersResponse.Parameters.Add(param);
            var paramsList = new List <string>()
            {
                "test"
            };

            _ssmClient.Setup(
                ssm => ssm.GetParametersAsync(It.IsAny <GetParametersRequest>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(parametersResponse);

            var configurationRepository = new ConfigurationRepository(_ssmClient.Object);

            // Act
            var response = await configurationRepository.RetrieveParameters(paramsList);


            // Assert
            Assert.Equal("test_value", response[response.FindIndex(p => p.Name == "test")].Value);
        }
        /// <summary>
        /// Unmarshaller the response from the service to the response class.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context)
        {
            GetParametersResponse response = new GetParametersResponse();

            context.Read();
            int targetDepth = context.CurrentDepth;

            while (context.ReadAtDepth(targetDepth))
            {
                if (context.TestExpression("InvalidParameters", targetDepth))
                {
                    var unmarshaller = new ListUnmarshaller <string, StringUnmarshaller>(StringUnmarshaller.Instance);
                    response.InvalidParameters = unmarshaller.Unmarshall(context);
                    continue;
                }
                if (context.TestExpression("Parameters", targetDepth))
                {
                    var unmarshaller = new ListUnmarshaller <Parameter, ParameterUnmarshaller>(ParameterUnmarshaller.Instance);
                    response.Parameters = unmarshaller.Unmarshall(context);
                    continue;
                }
            }

            return(response);
        }
        private void CheckParametersValidity(GetParametersResponse response)
        {
            if (response.InvalidParameters.Count > 0)
            {
                String wrongParams = "";
                foreach (var item in response.InvalidParameters)
                {
                    wrongParams = item + " ";
                }

                throw new Exception("You have requested invalid parameters " + wrongParams);
            }
        }
Esempio n. 4
0
        private async Task FillParameterValuesAsync(params string[] parameterNames)
        {
            GetParametersRequest request = new GetParametersRequest
            {
                Names          = parameterNames.ToList(),
                WithDecryption = true,
            };
            GetParametersResponse response = await _ssm.GetParametersAsync(request);

            foreach (string parameterName in parameterNames)
            {
                Parameter parameter = response.Parameters.Find(p => p.Name == parameterName);
                _parameterValues[parameterName] = parameter.Value;
            }
        }
Esempio n. 5
0
        private void CheckParametersValidity(GetParametersResponse response)
        {
            var requiredInvalidParameters = response.InvalidParameters.Where(item =>
                                                                             this.configurationSource.ParameterMapping.First(pm =>
                                                                                                                             pm.AwsName == item).Optional == false).ToList();

            if (requiredInvalidParameters.Count > 0)
            {
                var wrongParams = "";
                foreach (var item in requiredInvalidParameters)
                {
                    wrongParams += item + " ";
                }

                throw new Exception("You have requested invalid parameters: " + wrongParams);
            }
        }
Esempio n. 6
0
        private void processGetParametersResponse(GetParametersResponse i_Response)
        {
            if (i_Response.HttpStatusCode != HttpStatusCode.OK)
            {
                throw new ArgumentException("Could not get parameters from SSM", i_Response.HttpStatusCode.ToString());
            }

            if (i_Response.InvalidParameters != null && i_Response.InvalidParameters.Any())
            {
                m_InvalidParameters.UnionWith(i_Response.InvalidParameters);
            }

            if (i_Response.Parameters != null && i_Response.Parameters.Any())
            {
                i_Response.Parameters.ForEach(awsParameter => m_Parameters[awsParameter.Name] = new SSMParameter(awsParameter));
            }
        }
Esempio n. 7
0
        static async Task <Dictionary <string, string> > GetParameters(List <string> parameterNames)
        {
            // get "default" profile or environment variables or fallback to EC2 ECS profile
            Dictionary <string, string> parameters = new Dictionary <string, string>();

            GetParametersRequest req = new GetParametersRequest();

            req.Names          = parameterNames;
            req.WithDecryption = true;

            GetParametersResponse resp = await new AmazonSimpleSystemsManagementClient().GetParametersAsync(req);

            foreach (var parameter in resp.Parameters)
            {
                parameters.Add(parameter.Name, parameter.Value);
            }

            return(parameters);
        }
Esempio n. 8
0
 private void getParametersFromSSM(IEnumerable <string> i_Parameters)
 {
     if (m_Client != null)
     {
         if (i_Parameters != null && i_Parameters.Any())
         {
             for (int parametersIndex = 0; parametersIndex < i_Parameters.Count(); parametersIndex += 10)
             {
                 IEnumerable <string> partialParametersList = i_Parameters.Skip(parametersIndex).Take(10);
                 if (partialParametersList != null && partialParametersList.Any())
                 {
                     GetParametersRequest  parametersRequest  = buildRequest(partialParametersList);
                     GetParametersResponse parametersResponse = m_Client.GetParametersAsync(parametersRequest).Result;
                     processGetParametersResponse(parametersResponse);
                 }
             }
         }
     }
 }
        public static GetParametersResponse Unmarshall(UnmarshallerContext _ctx)
        {
            GetParametersResponse getParametersResponse = new GetParametersResponse();

            getParametersResponse.HttpResponse = _ctx.HttpResponse;
            getParametersResponse.RequestId    = _ctx.StringValue("GetParameters.RequestId");

            List <string> getParametersResponse_invalidParameters = new List <string>();

            for (int i = 0; i < _ctx.Length("GetParameters.InvalidParameters.Length"); i++)
            {
                getParametersResponse_invalidParameters.Add(_ctx.StringValue("GetParameters.InvalidParameters[" + i + "]"));
            }
            getParametersResponse.InvalidParameters = getParametersResponse_invalidParameters;

            List <GetParametersResponse.GetParameters_Parameter> getParametersResponse_parameters = new List <GetParametersResponse.GetParameters_Parameter>();

            for (int i = 0; i < _ctx.Length("GetParameters.Parameters.Length"); i++)
            {
                GetParametersResponse.GetParameters_Parameter parameter = new GetParametersResponse.GetParameters_Parameter();
                parameter.Id               = _ctx.StringValue("GetParameters.Parameters[" + i + "].Id");
                parameter.Name             = _ctx.StringValue("GetParameters.Parameters[" + i + "].Name");
                parameter.CreatedDate      = _ctx.StringValue("GetParameters.Parameters[" + i + "].CreatedDate");
                parameter.CreatedBy        = _ctx.StringValue("GetParameters.Parameters[" + i + "].CreatedBy");
                parameter.UpdatedDate      = _ctx.StringValue("GetParameters.Parameters[" + i + "].UpdatedDate");
                parameter.UpdatedBy        = _ctx.StringValue("GetParameters.Parameters[" + i + "].UpdatedBy");
                parameter.Description      = _ctx.StringValue("GetParameters.Parameters[" + i + "].Description");
                parameter.ShareType        = _ctx.StringValue("GetParameters.Parameters[" + i + "].ShareType");
                parameter.ParameterVersion = _ctx.IntegerValue("GetParameters.Parameters[" + i + "].ParameterVersion");
                parameter.Type             = _ctx.StringValue("GetParameters.Parameters[" + i + "].Type");
                parameter._Value           = _ctx.StringValue("GetParameters.Parameters[" + i + "].Value");
                parameter.Constraints      = _ctx.StringValue("GetParameters.Parameters[" + i + "].Constraints");
                parameter.Tags             = _ctx.StringValue("GetParameters.Parameters[" + i + "].Tags");

                getParametersResponse_parameters.Add(parameter);
            }
            getParametersResponse.Parameters = getParametersResponse_parameters;

            return(getParametersResponse);
        }
 internal void MapResult(GetParametersResponse response)
 {
     this.Data = response.Parameters.ToDictionary(
         x => this.configurationSource.ParameterMapping.First(pm => pm.AwsName == x.Name).SettingName,
         x => x.Value);
 }