diff --git a/_modules/novav21/flavors.py b/_modules/novav21/flavors.py
index 53cd7a4..7cf62fa 100644
--- a/_modules/novav21/flavors.py
+++ b/_modules/novav21/flavors.py
@@ -10,6 +10,8 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
+import six.moves.urllib.parse as urllib_parse
+
 import common
 
 # Function alias to not shadow built-ins
@@ -78,4 +80,6 @@
     url = '/flavors'
     if detail:
         url = '%s/detail' % url
+    url = '%(base_url)s?%(query_args)s' % {
+        "base_url": url, "query_args": urllib_parse.urlencode(kwargs)}
     return url, {}
diff --git a/_states/novav21.py b/_states/novav21.py
index 138d295..a699874 100644
--- a/_states/novav21.py
+++ b/_states/novav21.py
@@ -72,14 +72,18 @@
 
 @_error_handler
 def flavor_present(name, cloud_name, vcpus=1, ram=256, disk=0, flavor_id=None,
-                   extra_specs=None):
+                   extra_specs=None, is_public=False):
     """Ensures that the flavor exists"""
     extra_specs = extra_specs or {}
-    # There is no way to query flavors by name
+    # There is no way to query flavors by name. And we always list both
+    # public and private flavors
     flavors = _call_nova_salt_module('flavor_list', name)(
-        detail=True, cloud_name=cloud_name)
+        detail=True, is_public=None, cloud_name=cloud_name)
     flavor = [flavor for flavor in flavors if flavor['name'] == name]
     # Flavor names are unique, there is either 1 or 0 with requested name
+    # TODO: check all the vcpus, ram etc. and delete the existing flavor if
+    # something does not match, as it is impossible to update exising flavor
+    # apart from its extra specs
     if flavor:
         flavor = flavor[0]
         current_extra_specs = _call_nova_salt_module(
@@ -98,7 +102,8 @@
             ret = _no_change(name, 'Flavor')
     else:
         flavor = _call_nova_salt_module('flavor_create', name)(
-            name, vcpus, ram, disk, id=flavor_id, cloud_name=cloud_name)
+            name, vcpus, ram, disk, id=flavor_id, cloud_name=cloud_name,
+            **{"os-flavor-access:is_public": is_public})
         _call_nova_salt_module('flavor_add_extra_specs', name)(
             flavor['id'], cloud_name=cloud_name, **extra_specs)
         flavor['extra_specs'] = extra_specs
diff --git a/nova/client/resources/v21.sls b/nova/client/resources/v21.sls
index 256c8f4..6f5d214 100644
--- a/nova/client/resources/v21.sls
+++ b/nova/client/resources/v21.sls
@@ -25,6 +25,9 @@
     {%- if flavor.extra_specs is defined %}
     - extra_specs: {{ flavor.extra_specs }}
     {%- endif %}
+    {%- if flavor.is_public is defined %}
+    - is_public: {{ flavor.is_public }}
+    {%- endif %}
 
   {%- endfor %}
   {%- endif %}
