Storage pool support unicode correctly

For unicode, we have handle the incoming text from
kimchi server and outgoing text to kimchi server correctly.

But we do not handle the incoming text from libvirt and outgoing
text to libvirt correctly.

For some variables of storage pool, such as pool name and pool xml
do not follow our principle.
https://github.com/kimchi-project/kimchi/wiki/support-unicode

This patch will improve the follow:
1. Handle storage pool xml and pool name as unicode in kimchi, and
decode them when pass them to libvirt.
2. Decode the pool name from libvirt.

We should guarantee:
All text strings, everywhere should be of type unicode, not str.
If we're handling text, and our variable is a str, it's a bug!

Test this patch:
1. create a pool
$ curl -u <user> -H 'Accept: application/json' \
-H 'Content-type: application/json' \
http://localhost:8000/storagepools/ -X POST -d '
{
   "name":"kīмсhī-pool",
   "type":"dir",
   "path":"/tmp/test"
} '

2. get this pool
$ curl -u <user> -H 'Accept: application/json' \
-H 'Content-type: application/json' \
http://localhost:8000/storagepools/kīмсhī-pool

3. delete this pool
$ curl -u <user> -H 'Accept: application/json' \
-H 'Content-type: application/json' -X DELETE \
http://localhost:8000/storagepools/kīмсhī-pool

Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com>
Firewall: Adding WebSocket port in firewall rules

Added port 64667 into src/firewalld.xml to attend Debian/Ubuntu, RHEL7+ and Fedora.
Also added iptables rules to attend RHEL6 into contrib/kimchi.spec.fedora.in

Signed-off-by: Paulo Vital <pvital@linux.vnet.ibm.com>
update test case for storage pool support unicode

update test case for it to avoid regression.

Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com>
bug fix: failed to update vm with unicode name

update a vm's name with unicode name, kimchi will report error.
$ curl -u <user> -H 'Accept: application/json' \
-H 'Content-type: application/json' \
http://localhost:8000/vms/u13.10 -X PUT -d '
{"name":  "kīмсhī-∨м"}'

There are two bugs:
1. typo
encode the ident with "utf8" when HTTPRedirect
change it to "utf-8"

2. The name form libvirt is str, need decode.
ref:
https://github.com/kimchi-project/kimchi/wiki/support-unicode

Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com>
update test case for updating vm with unicode name

update test case for it to avoid regression.

Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com>
change the vm name in test case

change kīмkhī to kīмсhī
kīмсhī looks like the acssii "kimchi"

Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com>
Fix controller base code: Update function is not using model_args

The model_args variable is used to pass information to functions.
Specially in functions of sub-collections and sub-resources, it is used
to pass the main collections and resources names/classes. The wrapper
update function from control base was not using model_args, then some
resouces might miss this information.

Signed-off-by: Rodrigo Trujillo <rodrigo.trujillo@linux.vnet.ibm.com>
Fix missing report-add html page in rpm

The file report-add.hml.tmpl is missing in rpms. This patch fixes this
problem adding the file name to Makefile.am.

Signed-off-by: Rodrigo Trujillo <rodrigo.trujillo@linux.vnet.ibm.com>
Add disks to LVM pool: control and model changes

Added a new update parameter to storagepool resource. Changed the
logic in the model to accept any update parameter ('autostart' or
'disks'). 'disks' parameter will add disks/partitions to the
target LVM pool.

Signed-off-by: Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com>
Add disks to LVM pool: API.md changes

Adding documentation about the new 'disks' update parameter,
pool type 'logical' only.

Signed-off-by: Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com>
Add disks to LVM pool: mockmodel changes

Eliminated the parameter validation that is now being done
in API.json.

To simulate the operation of add disks in the mockmodel, for
each disk (which is validated with real data from the host),
for each new disk added a fixed amount is added in the
'capacity' and 'available' fields on the pool.

Signed-off-by: Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com>
Add disks to LVM pool: API.json changes

This patch adds a new section 'storagepool_update' in API.json
in order to remove parameter validation inside the model.

Signed-off-by: Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com>