Added support for SSM get_parameters_by_path. (#1299)

* Added support for SSM get_parameters_by_path.

Signed-off-by: Kai Xia <xiaket@gmail.com>

* add logic to handle trailing '/'.

Also, fix pep8.

Signed-off-by: Kai Xia <kai.xia@sportsbet.com.au>

* add tests for parameter value in response.

Signed-off-by: Kai Xia <kai.xia@sportsbet.com.au>
This commit is contained in:
Kai Xia(夏恺) 2017-11-06 20:44:54 +11:00 committed by Terry Cain
commit 3740db8059
3 changed files with 79 additions and 0 deletions

View file

@ -47,6 +47,51 @@ def test_delete_parameters():
len(response['Parameters']).should.equal(0)
@mock_ssm
def test_get_parameters_by_path():
client = boto3.client('ssm', region_name='us-east-1')
client.put_parameter(
Name='/foo/name1',
Description='A test parameter',
Value='value1',
Type='String')
client.put_parameter(
Name='/foo/name2',
Description='A test parameter',
Value='value2',
Type='String')
client.put_parameter(
Name='/bar/name3',
Description='A test parameter',
Value='value3',
Type='String')
client.put_parameter(
Name='/bar/name3/name4',
Description='A test parameter',
Value='value4',
Type='String')
response = client.get_parameters_by_path(Path='/foo')
len(response['Parameters']).should.equal(2)
{p['Value'] for p in response['Parameters']}.should.equal(
set(['value1', 'value2'])
)
response = client.get_parameters_by_path(Path='/bar', Recursive=False)
len(response['Parameters']).should.equal(1)
response['Parameters'][0]['Value'].should.equal('value3')
response = client.get_parameters_by_path(Path='/bar', Recursive=True)
len(response['Parameters']).should.equal(2)
{p['Value'] for p in response['Parameters']}.should.equal(
set(['value3', 'value4'])
)
@mock_ssm
def test_put_parameter():
client = boto3.client('ssm', region_name='us-east-1')