当前位置:主页 > 查看内容

DNS Python SDK示例_SDK开发指南_开发指南_SDK(旧)_Python

发布时间:2021-09-20 00:00| 位朋友查看

简介:DNS Python OpenStack SDK示例 云解析(Domain Name Service)提供高可用,高扩展的权威DNS服务和DNS管理服务,把人们常用的域名或应用资源转换成计算机用于连接的IP地址,从而将最终用户路由到相应的应用资源上。 创建内网域名 用户在VPC内使用云解析服务进……

DNS Python OpenStack SDK示例

云解析(Domain Name Service)提供高可用,高扩展的权威DNS服务和DNS管理服务,把人们常用的域名或应用资源转换成计算机用于连接的IP地址,从而将最终用户路由到相应的应用资源上。

创建内网域名

用户在VPC内使用云解析服务进行内网域名托管,需使用增加内网域名功能,用户可使用Python OpenStack SDK创建一个内网域名,详细操作如下:

  1. 指定需要关联的VPC。
  2. 创建内网域名。

下面代码为内网域名创建的过程,用户可以根据需求进行相应的参数配置,创建完成后,新增的域名会在DNS服务的内网域名页面上显示。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
def setUpClass(cls):      
    super(TestZone, cls).setUpClass()      
    # get a router      
    routers = cls.conn.network.routers(limit=2)      
    idx = 0      
    for _router in routers:          
        idx += 1          
        print _router          
        if idx == 1:              
            cls.router = _router          
        if idx == 2:              
            cls.router2 = _router              
            break        
    # create zone       
    cls.zone = auto_create_private_zone(cls.conn, cls.NAME, cls.router.id,region)

关联VPC

当用户创建的内网域名需要新关联VPC时,可以利用Python OpenStack SDK在云平台上进行关联操作。 详细操作如下:

  1. 指定需要关联的VPC。
  2. 选择待关联VPC的内网域名并进行关联。

以下代码显示了内网域名与VPC相关联的过程,用户可以根据需要修改这些配置。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
def add_router_to_zone(self):
    # Designate a router  
    resource2.wait_for_status(self.conn.dns._session, self.zone, "ACTIVE", interval=5, failures=["ERROR"])
    # Associate the private zone to the router  
    result = self.conn.dns.add_router_to_zone(self.zone, **{"router_id": self.router2.id,"router_region": region})  
    self.assertEqual(result.router_id, self.router2.id)  
    self.assertEqual(result.router_region, region)  
    zone = self.conn.dns.get_zone(self.zone)  
    self.assertEqual(2, len(zone.routers))  
    router_ids = [_router["router_id"] for _router in zone.routers]      self.assertIn(self.router.id, router_ids)

解关联VPC

当用户创建的内网域名不需要关联某个VPC时,可以利用Python OpenStack SDK在云平台上进行进行解关联操作。代码如下: .

1
2
3
4
5
6
7
def remove_router_of_zone(self):      
    resource2.wait_for_status(self.conn.dns._session, self.zone, "ACTIVE", interval=5, failures=["ERROR"])      
    result = self.conn.dns.remove_router_from_zone(self.zone, **{          "router_id": self.router.id,          
      "router_region": region     
    })      
    self.assertEqual(result.router_id, self.router.id)            
    self.assertEqual(result.router_region, region)

删除内网域名

当用户无需使用云解析服务托管该内网域名时,可以使用删除内网域名功能。删除内网域名后,该内网域名包含的域名将无法再被解析。

执行删除内网域名操作前,请确认已备份该内网域名下所有用户创建的记录集。代码如下:

1
2
3
def tearDownClass(cls):      
    # delete zone      
    cls.conn.dns.delete_zone(cls.zone)

本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐