Fix for private flavor list

Closes-issue: https://mirantis.jira.com/browse/PROD-35763
Change-Id: If25297ef8d3f06f82622b30ef2ed2209af6ace00
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