Ability to configure default quotas for new projects (#27)

* Ability to configure default quotas for new projects

As documented on the Juniper / Contrail wiki:
https://github.com/Juniper/contrail-controller/wiki/Defining-default-Quotas

* docs can be misleading, it really needed underscores. also added all lbaas  options now.

* Making params singular (and aligned with neutron internal naming).
diff --git a/README.rst b/README.rst
index 901848d..65ad8cf 100644
--- a/README.rst
+++ b/README.rst
@@ -1007,8 +1007,26 @@
            - 10.10.10.10
            ipf_port: 80
 
-Enforcing physical routers
 
+Configuring OpenStack default quotasx
+
+.. code-block:: yaml
+    config:
+      quota:
+        network: 5
+        subnet: 10
+        router: 10
+        floating_ip: 100
+        secgroup: 1000
+        secgroup_rule: 1000
+        port: 1000
+        pool: -1
+        member: -1
+        health_monitor: -1
+        vip: -1
+
+Enforcing physical routers
+h
 .. code-block:: yaml
 
   opencontrail:
@@ -1053,6 +1071,7 @@
                     virtual_network: 'virtual-network'
 
 
+
 Usage
 =====
 
diff --git a/opencontrail/files/2.2/contrail-api.conf b/opencontrail/files/2.2/contrail-api.conf
index ff92939..d124f3b 100644
--- a/opencontrail/files/2.2/contrail-api.conf
+++ b/opencontrail/files/2.2/contrail-api.conf
@@ -44,3 +44,40 @@
 auth_url=http://{{ config.identity.host }}:{{ config.identity.port }}/v3
 {%- endif %}
 {%- endif %}
+
+{% if config.quota is defined %}
+[QUOTA]
+{%- if config.quota.network is defined %}
+virtual_network={{config.quota.network}}
+{%- endif %}
+{%- if config.quota.subnet is defined %}
+subnet={{config.quota.subnet}}
+{%- endif %}
+{%- if config.quota.floating_ip is defined %}
+floating_ip={{config.quota.floating_ip}}
+{%- endif %}
+{%- if config.quota.router is defined %}
+logical_router={{config.quota.router}}
+{%- endif %}
+{%- if config.quota.secgroup is defined %}
+security_group={{config.quota.secgroup}}
+{%- endif %}
+{%- if config.quota.secgroup_rule is defined %}
+security_group_rule={{config.quota.secgroup_rule}}
+{%- endif %}
+{%- if config.quota.port is defined %}
+virtual_machine_interface={{config.quota.port}}
+{%- endif %}
+{%- if config.quota.pool is defined %}
+loadbalancer_pool={{config.quota.pool}}
+{%- endif %}
+{%- if config.quota.member is defined %}
+loadbalancer_member={{config.quota.member}}
+{%- endif %}
+{%- if config.quota.health_monitor is defined %}
+loadbalancer_healthmonitor={{config.quota.health_monitor}}
+{%- endif %}
+{%- if config.quota.vip is defined %}
+virtual_ip={{config.quota.vip}}
+{%- endif %}
+{%- endif %}
diff --git a/opencontrail/files/3.0/contrail-api.conf b/opencontrail/files/3.0/contrail-api.conf
index ceadd64..be686aa 100644
--- a/opencontrail/files/3.0/contrail-api.conf
+++ b/opencontrail/files/3.0/contrail-api.conf
@@ -49,5 +49,43 @@
 certfile=/etc/contrail/ssl/certs/apiserver.pem
 ca_certs=/etc/contrail/ssl/certs/ca.pem
 
+{% if config.quota is defined %}
+[QUOTA]
+{%- if config.quota.network is defined %}
+virtual_network={{config.quota.network}}
+{%- endif %}
+{%- if config.quota.subnet is defined %}
+subnet={{config.quota.subnet}}
+{%- endif %}
+{%- if config.quota.floating_ip is defined %}
+floating_ip={{config.quota.floating_ip}}
+{%- endif %}
+{%- if config.quota.router is defined %}
+logical_router={{config.quota.router}}
+{%- endif %}
+{%- if config.quota.secgroup is defined %}
+security_group={{config.quota.secgroup}}
+{%- endif %}
+{%- if config.quota.secgroup_rule is defined %}
+security_group_rule={{config.quota.secgroup_rule}}
+{%- endif %}
+{%- if config.quota.port is defined %}
+virtual_machine_interface={{config.quota.port}}
+{%- endif %}
+{%- if config.quota.pool is defined %}
+loadbalancer_pool={{config.quota.pool}}
+{%- endif %}
+{%- if config.quota.member is defined %}
+loadbalancer_member={{config.quota.member}}
+{%- endif %}
+{%- if config.quota.health_monitor is defined %}
+loadbalancer_healthmonitor={{config.quota.health_monitor}}
+{%- endif %}
+{%- if config.quota.vip is defined %}
+virtual_ip={{config.quota.vip}}
+{%- endif %}
+{%- endif %}
+
 [KEYSTONE]
 keystone_sync_on_demand={{ config.identity.get('sync_on_demand', 'true') }}
+
diff --git a/opencontrail/files/4.0/contrail-api.conf b/opencontrail/files/4.0/contrail-api.conf
index acb2fc9..6f46207 100644
--- a/opencontrail/files/4.0/contrail-api.conf
+++ b/opencontrail/files/4.0/contrail-api.conf
@@ -54,6 +54,43 @@
 certfile=/etc/contrail/ssl/certs/apiserver.pem
 ca_certs=/etc/contrail/ssl/certs/ca.pem
 
+{% if config.quota is defined %}
+[QUOTA]
+{%- if config.quota.network is defined %}
+virtual_network={{config.quota.network}}
+{%- endif %}
+{%- if config.quota.subnet is defined %}
+subnet={{config.quota.subnet}}
+{%- endif %}
+{%- if config.quota.floating_ip is defined %}
+floating_ip={{config.quota.floating_ip}}
+{%- endif %}
+{%- if config.quota.router is defined %}
+logical_router={{config.quota.router}}
+{%- endif %}
+{%- if config.quota.secgroup is defined %}
+security_group={{config.quota.secgroup}}
+{%- endif %}
+{%- if config.quota.secgroup_rule is defined %}
+security_group_rule={{config.quota.secgroup_rule}}
+{%- endif %}
+{%- if config.quota.port is defined %}
+virtual_machine_interface={{config.quota.port}}
+{%- endif %}
+{%- if config.quota.pool is defined %}
+loadbalancer_pool={{config.quota.pool}}
+{%- endif %}
+{%- if config.quota.member is defined %}
+loadbalancer_member={{config.quota.member}}
+{%- endif %}
+{%- if config.quota.health_monitor is defined %}
+loadbalancer_healthmonitor={{config.quota.health_monitor}}
+{%- endif %}
+{%- if config.quota.vip is defined %}
+virtual_ip={{config.quota.vip}}
+{%- endif %}
+{%- endif %}
+
 [SANDESH]
 #sandesh_ssl_enable=false
 #introspect_ssl_enable=false
@@ -61,5 +98,7 @@
 #sandesh_certfile=/etc/contrail/ssl/certs/server.pem
 #sandesh_ca_cert=/etc/contrail/ssl/certs/ca-cert.pem
 
+
 [KEYSTONE]
 keystone_sync_on_demand={{ config.identity.get('sync_on_demand', 'true') }}
+