mirror of
https://github.com/valitydev/salt.git
synced 2024-11-09 01:36:48 +00:00
Merge pull request #20821 from claudiupopescu/boto-vpc-describe-subnets
Adds boto VPC describe subnets
This commit is contained in:
commit
dc3e6b14b9
@ -1310,6 +1310,64 @@ def describe(vpc_id=None, region=None, key=None, keyid=None, profile=None):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def describe_subnets(vpc_id=None, cidr=None, region=None, key=None, keyid=None,
|
||||||
|
profile=None):
|
||||||
|
'''
|
||||||
|
Given a VPC ID or subnet CIDR, returns a list of associated subnets and
|
||||||
|
their details.
|
||||||
|
If a subnet CIDR is provided, only it's associated subnet details will be
|
||||||
|
returned.
|
||||||
|
|
||||||
|
CLI Examples::
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
salt myminion boto_vpc.describe_subnets vpc_id=vpc-123456
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
salt myminion boto_vpc.describe_subnets cidr=10.0.0.0/21
|
||||||
|
|
||||||
|
'''
|
||||||
|
conn = _get_conn(region, key, keyid, profile)
|
||||||
|
if not conn:
|
||||||
|
return False
|
||||||
|
|
||||||
|
if not vpc_id and not cidr:
|
||||||
|
raise SaltInvocationError('At least on of the following must be '
|
||||||
|
'specified: vpc_id or cidr.')
|
||||||
|
|
||||||
|
try:
|
||||||
|
filter_parameters = {'filters': {}}
|
||||||
|
|
||||||
|
if vpc_id:
|
||||||
|
filter_parameters['filters']['vpcId'] = [vpc_id]
|
||||||
|
|
||||||
|
if cidr:
|
||||||
|
filter_parameters['filters']['cidrBlock'] = [cidr]
|
||||||
|
|
||||||
|
subnets = conn.get_all_subnets(**filter_parameters)
|
||||||
|
log.debug('The filters criteria {0} matched the following subnets: '
|
||||||
|
'{1}'.format(filter_parameters, subnets))
|
||||||
|
|
||||||
|
if not subnets:
|
||||||
|
return False
|
||||||
|
|
||||||
|
subnets_list = []
|
||||||
|
keys = ['id', 'cidr_block', 'availability_zone', 'tags']
|
||||||
|
for item in subnets:
|
||||||
|
subnet = {}
|
||||||
|
for key in keys:
|
||||||
|
if hasattr(item, key):
|
||||||
|
subnet[key] = getattr(item, key)
|
||||||
|
subnets_list.append(subnet)
|
||||||
|
return subnets_list
|
||||||
|
|
||||||
|
except boto.exception.BotoServerError as exc:
|
||||||
|
log.debug(exc)
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
def _create_dhcp_options(conn, domain_name=None, domain_name_servers=None, ntp_servers=None, netbios_name_servers=None,
|
def _create_dhcp_options(conn, domain_name=None, domain_name_servers=None, ntp_servers=None, netbios_name_servers=None,
|
||||||
netbios_node_type=None):
|
netbios_node_type=None):
|
||||||
return conn.create_dhcp_options(domain_name=domain_name, domain_name_servers=domain_name_servers,
|
return conn.create_dhcp_options(domain_name=domain_name, domain_name_servers=domain_name_servers,
|
||||||
|
Loading…
Reference in New Issue
Block a user