GitHub user sudhansu7 opened a pull request:

    https://github.com/apache/cloudstack/pull/1869

    CLOUDSTACK-9701: When host is disabled/removed, capacity_type for loc…

    …al storage in op_host_capacity is still enabled
    
    Description
    =========
    When a host is disabled or removed, local storage related capacity data for 
the corresponding local storage of the host is still in enabled state.
    This may not directly impact deploy VM functionality (for example) but it 
does show incorrect capacity calculations.
    
    Steps
    =====
    
    1. Enable local storage for zone
    2. Disable host or remove host (after adding it to maintenance mode)
    3. Check op_host_capacity (capacity_state=9)
    
    In either of the cases, the local storage related capacity is still enabled 
for the host.
    
    
    ```
    mysql> select id, name, uuid, status,resource_state, type, removed from 
host where type = 'Routing';
    
+----+--------------------+--------------------------------------+--------+----------------+---------+---------+
    | id | name               | uuid                                 | status | 
resource_state | type    | removed |
    
+----+--------------------+--------------------------------------+--------+----------------+---------+---------+
    |  1 | xenserver-nvjxksqs | 16a922d0-7b4c-4c84-baad-5bd91542181c | Up     | 
Disabled       | Routing | NULL    |
    |  4 | xenserver-hnkwhblp | 0e0f161a-7cf5-4e44-8bcc-a25ba7d798e5 | Up     | 
Enabled        | Routing | NULL    |
    
+----+--------------------+--------------------------------------+--------+----------------+---------+---------+
    2 rows in set (0.00 sec)
    
    mysql> select host_id, used_capacity, reserved_capacity, total_capacity, 
capacity_type, capacity_state from op_host_capacity where capacity_type=9;
    
+---------+---------------+-------------------+----------------+---------------+----------------+
    | host_id | used_capacity | reserved_capacity | total_capacity | 
capacity_type | capacity_state |
    
+---------+---------------+-------------------+----------------+---------------+----------------+
    |       3 |       4194304 |                 0 |   491505319936 |            
 9 | Enabled        |
    |       4 |       4194304 |                 0 |   491505319936 |            
 9 | Enabled        |
    
+---------+---------------+-------------------+----------------+---------------+----------------+
    2 rows in set (0.00 sec)
    
    mysql> select id, name, removed, pool_type, capacity_bytes from 
storage_pool where id in (3,4);
    
+----+----------------------------------+---------+-----------+----------------+
    | id | name                             | removed | pool_type | 
capacity_bytes |
    
+----+----------------------------------+---------+-----------+----------------+
    |  3 | xenserver-nvjxksqs Local Storage | NULL    | LVM       |   
491505319936 |
    |  4 | xenserver-hnkwhblp Local Storage | NULL    | LVM       |   
491505319936 |
    
+----+----------------------------------+---------+-----------+----------------+
    
    mysql> select host_id, used_capacity, reserved_capacity, total_capacity, 
capacity_type, capacity_state from op_host_capacity where capacity_type in 
(0,1,3,9);
    
+---------+---------------+-------------------+----------------+---------------+----------------+
    | host_id | used_capacity | reserved_capacity | total_capacity | 
capacity_type | capacity_state |
    
+---------+---------------+-------------------+----------------+---------------+----------------+
    |       1 |    1342177280 |                 0 |    15721585024 |            
 0 | Disabled       |
    |       1 |          1000 |                 0 |          12400 |            
 1 | Disabled       |
    |       1 |  119954444288 |                 0 | 11804569632768 |            
 3 | Enabled        |
    |       4 |    2013265920 |                 0 |    15721585024 |            
 0 | Enabled        |
    |       4 |          2600 |                 0 |          12400 |            
 1 | Enabled        |
    |       2 |             0 |                 0 | 11804569632768 |            
 3 | Enabled        |
    |       3 |       4194304 |                 0 |   491505319936 |            
 9 | Disabled       |
    |       4 |       4194304 |                 0 |   491505319936 |            
 9 | Enabled        |
    
+---------+---------------+-------------------+----------------+---------------+----------------+
    8 rows in set (0.00 sec)
    
    
    ```
    
    After fix:
    ```
    mysql> select host_id, used_capacity, reserved_capacity, total_capacity, 
capacity_type, capacity_state from op_host_capacity where capacity_type in 
(0,1,3,9);
    
+---------+---------------+-------------------+----------------+---------------+----------------+
    | host_id | used_capacity | reserved_capacity | total_capacity | 
capacity_type | capacity_state |
    
+---------+---------------+-------------------+----------------+---------------+----------------+
    |       1 |    1342177280 |                 0 |    15721585024 |            
 0 | Disabled       |
    |       1 |          1000 |                 0 |          12400 |            
 1 | Disabled       |
    |       1 |  119954444288 |                 0 | 11804569632768 |            
 3 | Enabled        |
    |       4 |    2013265920 |                 0 |    15721585024 |            
 0 | Enabled        |
    |       4 |          2600 |                 0 |          12400 |            
 1 | Enabled        |
    |       2 |             0 |                 0 | 11804569632768 |            
 3 | Enabled        |
    |       3 |       4194304 |                 0 |   491505319936 |            
 9 | Disabled       |
    |       4 |       4194304 |                 0 |   491505319936 |            
 9 | Enabled        |
    
+---------+---------------+-------------------+----------------+---------------+----------------+
    8 rows in set (0.00 sec)
    ```


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/sudhansu7/cloudstack CLOUDSTACK-9701

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/cloudstack/pull/1869.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1869
    
----
commit 7491032be7258a276c8a988c72f6ff0cdc8d986e
Author: Sudhansu <sudhansu.s...@accelerite.com>
Date:   2016-12-23T10:31:21Z

    CLOUDSTACK-9701: When host is disabled/removed, capacity_type for local 
storage in op_host_capacity is still enabled

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to