示例#1
0
def subnet_to_dict(subnet):
    result = dict(
        id=subnet.id,
        name=subnet.name,
        provisioning_state=subnet.provisioning_state,
        address_prefix=subnet.address_prefix,
        address_prefixes=subnet.address_prefixes,
        network_security_group=dict(),
        route_table=dict(),
        private_endpoint_network_policies=subnet.private_endpoint_network_policies,
        private_link_service_network_policies=subnet.private_link_service_network_policies
    )
    if subnet.network_security_group:
        id_keys = azure_id_to_dict(subnet.network_security_group.id)
        result['network_security_group']['id'] = subnet.network_security_group.id
        result['network_security_group']['name'] = id_keys['networkSecurityGroups']
        result['network_security_group']['resource_group'] = id_keys['resourceGroups']
    if subnet.route_table:
        id_keys = azure_id_to_dict(subnet.route_table.id)
        result['route_table']['id'] = subnet.route_table.id
        result['route_table']['name'] = id_keys['routeTables']
        result['route_table']['resource_group'] = id_keys['resourceGroups']
    if subnet.service_endpoints:
        result['service_endpoints'] = [{'service': item.service, 'locations': item.locations or []} for item in subnet.service_endpoints]
    if subnet.delegations:
        result['delegations'] = [{'name': item.name, 'serviceName': item.service_name, 'actions': item.actions or []} for item in subnet.delegations]
    return result
示例#2
0
def nic_to_dict(nic):
    ip_configurations = [
        dict(name=config.name,
             private_ip_address=config.private_ip_address,
             private_ip_allocation_method=config.private_ip_allocation_method,
             primary=config.primary,
             load_balancer_backend_address_pools=([
                 item.id for item in config.load_balancer_backend_address_pools
             ] if config.load_balancer_backend_address_pools else None),
             public_ip_address=config.public_ip_address.id
             if config.public_ip_address else None,
             public_ip_allocation_method=config.public_ip_address.
             public_ip_allocation_method if config.public_ip_address else None,
             application_security_groups=([
                 asg.id for asg in config.application_security_groups
             ] if config.application_security_groups else None))
        for config in nic.ip_configurations
    ]
    config = nic.ip_configurations[0] if len(
        nic.ip_configurations) > 0 else None
    subnet_dict = azure_id_to_dict(
        config.subnet.id) if config and config.subnet else None
    subnet = subnet_dict.get('subnets') if subnet_dict else None
    virtual_network = dict(
        resource_group=subnet_dict.get('resourceGroups'),
        name=subnet_dict.get('virtualNetworks')) if subnet_dict else None
    return dict(
        id=nic.id,
        resource_group=azure_id_to_dict(nic.id).get('resourceGroups'),
        name=nic.name,
        subnet=subnet,
        virtual_network=virtual_network,
        location=nic.location,
        tags=nic.tags,
        security_group=nic.network_security_group.id
        if nic.network_security_group else None,
        dns_settings=dict(
            dns_servers=nic.dns_settings.dns_servers,
            applied_dns_servers=nic.dns_settings.applied_dns_servers,
            internal_dns_name_label=nic.dns_settings.internal_dns_name_label,
            internal_fqdn=nic.dns_settings.internal_fqdn),
        ip_configurations=ip_configurations,
        mac_address=nic.mac_address,
        enable_ip_forwarding=nic.enable_ip_forwarding,
        provisioning_state=nic.provisioning_state,
        enable_accelerated_networking=nic.enable_accelerated_networking,
        dns_servers=nic.dns_settings.dns_servers,
    )
def nic_to_dict(nic):
    ip_configurations = [
        dict(name=config.name,
             private_ip_address=config.private_ip_address,
             private_ip_allocation_method=config.private_ip_allocation_method,
             subnet=subnet_to_dict(config.subnet),
             primary=config.primary,
             load_balancer_backend_address_pools=([
                 item.id for item in config.load_balancer_backend_address_pools
             ] if config.load_balancer_backend_address_pools else None),
             public_ip_address=dict(
                 id=config.public_ip_address.id,
                 name=azure_id_to_dict(
                     config.public_ip_address.id).get('publicIPAddresses'),
                 public_ip_allocation_method=config.public_ip_address.
                 public_ip_allocation_method)
             if config.public_ip_address else None,
             application_security_groups=([
                 asg.id for asg in config.application_security_groups
             ] if config.application_security_groups else None))
        for config in nic.ip_configurations
    ]
    return dict(
        id=nic.id,
        name=nic.name,
        type=nic.type,
        location=nic.location,
        tags=nic.tags,
        network_security_group=dict(
            id=nic.network_security_group.id,
            name=azure_id_to_dict(
                nic.network_security_group.id).get('networkSecurityGroups'))
        if nic.network_security_group else None,
        dns_settings=dict(
            dns_servers=nic.dns_settings.dns_servers,
            applied_dns_servers=nic.dns_settings.applied_dns_servers,
            internal_dns_name_label=nic.dns_settings.internal_dns_name_label,
            internal_fqdn=nic.dns_settings.internal_fqdn),
        ip_configurations=ip_configurations,
        ip_configuration=ip_configurations[0] if len(ip_configurations) == 1
        else None,  # for compatible issue, keep this field
        mac_address=nic.mac_address,
        enable_ip_forwarding=nic.enable_ip_forwarding,
        provisioning_state=nic.provisioning_state,
        etag=nic.etag,
        enable_accelerated_networking=nic.enable_accelerated_networking,
        dns_servers=nic.dns_settings.dns_servers,
    )
示例#4
0
def route_to_dict(route):
    id_dict = azure_id_to_dict(route.id)
    return dict(id=route.id,
                name=route.name,
                resource_group=id_dict.get('resourceGroups'),
                route_table_name=id_dict.get('routeTables'),
                address_prefix=route.address_prefix,
                next_hop_type=_camel_to_snake(route.next_hop_type),
                next_hop_ip_address=route.next_hop_ip_address)
示例#5
0
def instance_to_dict(table):
    return dict(
        id=table.id,
        name=table.name,
        resource_group=azure_id_to_dict(table.id).get('resourceGroups'),
        location=table.location,
        routes=[route_to_dict(i)
                for i in table.routes] if table.routes else [],
        disable_bgp_route_propagation=table.disable_bgp_route_propagation,
        tags=table.tags)
示例#6
0
 def parse_nsg(self):
     nsg = self.security_group
     resource_group = self.resource_group
     if isinstance(self.security_group, dict):
         nsg = self.security_group.get('name')
         resource_group = self.security_group.get('resource_group', self.resource_group)
     id = format_resource_id(val=nsg,
                             subscription_id=self.subscription_id,
                             namespace='Microsoft.Network',
                             types='networkSecurityGroups',
                             resource_group=resource_group)
     name = azure_id_to_dict(id).get('name')
     return dict(id=id, name=name)
def subnet_to_dict(subnet):
    dic = azure_id_to_dict(subnet.id)
    return dict(id=subnet.id,
                virtual_network_name=dic.get('virtualNetworks'),
                resource_group=dic.get('resourceGroups'),
                name=dic.get('subnets'))