事象内容

登録した LoadBalancer を削除するためには、LoadBalancer に設定しているリスナーなどを削除する必要がある。コマンドでリスナーを削除しようとすると、以下メッセージが出て、削除できない。

Invalid state PENDING_UPDATE of loadbalancer

LoadBalancer に設定されたリスナーの一覧を表示する。

[root@controller ~]# neutron lbaas-listener-list
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
+--------------------------------------+--------------------------------------+------------+----------------------------------+----------+---------------+----------------+
| id                                   | default_pool_id                      | name       | tenant_id                        | protocol | protocol_port | admin_state_up |
+--------------------------------------+--------------------------------------+------------+----------------------------------+----------+---------------+----------------+
| 1bc9b177-f3b6-44a4-a7ad-2249fd60ceca | ae3a16d3-eb5e-4de6-b389-24924522f149 | Listener 1 | b9644b0689c4469baa45f9acb009d860 | HTTP     |            80 | True           |
+--------------------------------------+--------------------------------------+------------+----------------------------------+----------+---------------+----------------+
[root@controller ~]# 

LoadBalancer に設定するリスナー( Listener 1 )を削除しようとすると、Invalid state PENDING_UPDATE of loadbalancer メッセージが出て削除できない。

[root@controller ~]# neutron lbaas-listener-delete "Listener 1"
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
Invalid state PENDING_UPDATE of loadbalancer resource f4155304-2a4a-43b5-9e2e-a0db060f6be4
Neutron server returns request_ids: ['req-41c7ec99-9380-4a40-93e6-b3ff908df700']
[root@controller ~]# 

解決方法

neutron データベースに接続する。

[root@controller ~]# mysql -D neutron -u neutron -p 
Enter password: 
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 671
Server version: 10.1.20-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [neutron]> 

登録されている LoadBalancer の情報を取得する。

MariaDB [neutron]> select * from lbaas_loadbalancers;
+----------------------------------+--------------------------------------+-----------------+-------------+--------------------------------------+--------------------------------------+-------------+----------------+---------------------+------------------+-----------+
| project_id                       | id                                   | name            | description | vip_port_id                          | vip_subnet_id                        | vip_address | admin_state_up | provisioning_status | operating_status | flavor_id |
+----------------------------------+--------------------------------------+-----------------+-------------+--------------------------------------+--------------------------------------+-------------+----------------+---------------------+------------------+-----------+
| b9644b0689c4469baa45f9acb009d860 | f4155304-2a4a-43b5-9e2e-a0db060f6be4 | Load Balancer 1 |             | 3352b534-01f6-407d-b5f5-3b9b28c50117 | 812d8088-e027-452b-b006-3124bbee81c2 | 172.16.2.2  |              1 | PENDING_UPDATE      | ONLINE           | NULL      |
+----------------------------------+--------------------------------------+-----------------+-------------+--------------------------------------+--------------------------------------+-------------+----------------+---------------------+------------------+-----------+
1 row in set (0.00 sec)

MariaDB [neutron]> 

登録されている LoadBalancer の情報( id、name、provisioning_status )を再度取得する。 provisioning_status が PENDING_UPDATE の状態になっていることが確認できる。

MariaDB [neutron]> select id,name,provisioning_status from lbaas_loadbalancers;
+--------------------------------------+-----------------+---------------------+
| id                                   | name            | provisioning_status |
+--------------------------------------+-----------------+---------------------+
| f4155304-2a4a-43b5-9e2e-a0db060f6be4 | Load Balancer 1 | PENDING_UPDATE      |
+--------------------------------------+-----------------+---------------------+
1 row in set (0.01 sec)

MariaDB [neutron]> 

登録されている LoadBalancer の provisioning_status を Active に更新する。

MariaDB [neutron]> update lbaas_loadbalancers set provisioning_status='ACTIVE' where id='f4155304-2a4a-43b5-9e2e-a0db060f6be4';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

MariaDB [neutron]> 

登録されている LoadBalancer の情報( id、name、provisioning_status )を再度取得し、provisioning_status が Active の状態になっていることを確認する。

MariaDB [neutron]> select id,name,provisioning_status from lbaas_loadbalancers;
+--------------------------------------+-----------------+---------------------+
| id                                   | name            | provisioning_status |
+--------------------------------------+-----------------+---------------------+
| f4155304-2a4a-43b5-9e2e-a0db060f6be4 | Load Balancer 1 | ACTIVE              |
+--------------------------------------+-----------------+---------------------+
1 row in set (0.00 sec)

MariaDB [neutron]> 

データベースへの接続を終了する。

MariaDB [neutron]> exit
Bye
[root@controller ~]# 

LoadBalancer に設定されているリスナーの一覧を取得する。

[root@controller ~]# neutron lbaas-listener-list
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
+--------------------------------------+--------------------------------------+------------+----------------------------------+----------+---------------+----------------+
| id                                   | default_pool_id                      | name       | tenant_id                        | protocol | protocol_port | admin_state_up |
+--------------------------------------+--------------------------------------+------------+----------------------------------+----------+---------------+----------------+
| 1bc9b177-f3b6-44a4-a7ad-2249fd60ceca | ae3a16d3-eb5e-4de6-b389-24924522f149 | Listener 1 | b9644b0689c4469baa45f9acb009d860 | HTTP     |            80 | True           |
+--------------------------------------+--------------------------------------+------------+----------------------------------+----------+---------------+----------------+
[root@controller ~]# 

これで、リスナーが削除できる。

[root@controller ~]# neutron lbaas-listener-delete 1bc9b177-f3b6-44a4-a7ad-2249fd60ceca
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
Deleted listener(s): 1bc9b177-f3b6-44a4-a7ad-2249fd60ceca
[root@controller ~]#