This issue is reporducible if user adds a primary storage and quickly fires
listStoragePool API command without waiting for the responce of previous
createStoragePool API command. So during this period
(before receiving createStoragePool API resonce), the primary srorage is in
initialized status and the "scope" of storage is not set.
- fixes an NPE in case the pool.scope = null
- replaces null checks around toString with ObjectUtils.toString call
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
The additional response type is basically the same as
StoragePoolResponse. Only additional state reported is whether the
storage pool is suitable for migration. Since this is fetched from
hypervisor capabilities there is no need for a new response type.
Tested with the simulator and I can see the response format correctly.
mysql> select * from hypervisor_capabilities where id=18\G
*************************** 1. row ***************************
id: 18
uuid: 98b88e6e-ccf1-11e2-bd2a-af89de8bd27e
hypervisor_type: Simulator
hypervisor_version: NULL
max_guests_limit: 100
security_group_enabled: 1
max_data_volumes_limit: 100
max_hosts_per_cluster: 100
storage_motion_supported: 1
vm_snapshot_enabled: 1
1 row in set (0.00 sec)
CloudMonkey output as below:
> find storagepoolsformigration id=0a644f79-53dd-4eb6-a871-64679a47cfc6
count = 1
storagepool:
name = PS0
id = 7c07ec9b-a3c6-3466-ab5a-f5669ead0b22
clusterid = 71fb5c34-4852-46e6-bb8f-c9da4e8f827c
clustername = C0
created = 2013-06-04T14:06:55+0530
disksizeallocated = 0
disksizetotal = 1099511627776
disksizeused = 0
ipaddress = 10.147.28.6
jobstatus = 0
path = /export/home/sandbox/primary0
podid = 560d9600-35dd-4a50-addd-81d5618536e9
podname = POD0
scope = CLUSTER
state = Up
suitableformigration = True
type = NetworkFilesystem
zoneid = 3108f711-0db6-4dad-a0d0-2fd7d413e5ef
zonename = Sandbox-simulator
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
DB changes to support hypervisor specific zone wide storage pool.
Added method findZoneWideStoragePoolsByHypervisor to PrimaryStorageDaoImpl to find suitable zone wide storage pool of specific hypervisor type.
Added column 'hypervisor' to table storage_pool. This column can be NULL. Used/populated only for zone wide primary storage pools.
Signed-off-by: Sateesh Chodapuneedi <sateesh@apache.org>