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 be424b7..dbc5170 100644
--- a/_states/novav21.py
+++ b/_states/novav21.py
@@ -74,14 +74,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(
@@ -100,7 +104,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 %}
