示例#1
0
    def _get_zone_id_by_name(self, zone_name):
        if zone_name in self.zone_name_id_mapping:
            return self.zone_name_id_mapping.get(zone_name)

        zone_api = formation_client.ZonesApi(self.formation_api_client)
        zones = zone_api.zones_get()
        for zone in zones:
            if zone.name == zone_name:
                self.zone_name_id_mapping[zone.name] = zone.id
                return zone.id
示例#2
0
    def _get_zone_by_region_name(self, region_name):
        zone_api = formation_client.ZonesApi(self.formation_api_client)
        zones = zone_api.zones_get()

        # Walk through each zone and get regions
        # Return when region name matches
        for zone in zones:
            self.zone_name_id_mapping[zone.name] = zone.id
            zone_regions = self.get_regions(zone.name)
            if region_name in zone_regions:
                return zone.name

        return None
示例#3
0
    def get_domain_name(self, region):
        try:
            zone = self.region_zone_map[region]['zone']
            zone_id = self._get_zone_id_by_name(zone)
            zone_api = formation_client.ZonesApi(self.formation_api_client)
            zone_ = zone_api.zones_zone_id_get(zone_id)
        except formation_client.rest.ApiException as e:
            raise ApiClientError(e.msg)

        if not zone_.dns:
            LOG.warn('Got None while running get domain name')
            return None

        return zone_.dns
示例#4
0
    def get_zones(self, site=None):
        zone_api = formation_client.ZonesApi(self.formation_api_client)

        if site is None:
            zones = zone_api.zones_get()
        else:
            site_id = self._get_site_id_by_name(site)
            zones = zone_api.sites_site_id_zones_get(site_id)

        zones_list = []
        for zone in zones:
            zone_name = zone.name
            self.zone_name_id_mapping[zone_name] = zone.id
            zones_list.append(zone_name)

        return zones_list
示例#5
0
    def get_dns_servers(self, region):
        try:
            zone = self.region_zone_map[region]['zone']
            zone_id = self._get_zone_id_by_name(zone)
            zone_api = formation_client.ZonesApi(self.formation_api_client)
            zone_ = zone_api.zones_zone_id_get(zone_id)
        except formation_client.rest.ApiException as e:
            raise ApiClientError(e.msg)

        if not zone_.ipv4_dns:
            LOG.warn("No dns server")
            return []

        dns_list = []
        for dns in zone_.ipv4_dns:
            dns_list.append(dns.ip)

        return dns_list