map_target_version_to_int = {
"1.0": 1000,
- "1.1": 1001
+ "1.1": 1001,
+ "1.2": 1002,
# Add new versions here
}
if path.isfile(config_file):
resources_to_operations_file = config_file
break
- if not resources_to_operations_file:
+ if not resources_to_operations_file:
raise EngineException("Invalid permission configuration: resources_to_operations file missing")
-
+
with open(resources_to_operations_file, 'r') as f:
resources_to_operations = yaml.load(f)
-
+
self.operations = []
for _, value in resources_to_operations["resources_to_operations"].items():
if value not in self.operations:
- self.operations += value
+ self.operations += [value]
if config["authentication"]["backend"] == "keystone":
self.map_from_topic_to_class["users"] = UserTopicAuth
def upgrade_db(self, current_version, target_version):
if target_version not in self.map_target_version_to_int.keys():
- raise EngineException("Wrong database version '{}'. Expected '{}'"
- ". It cannot be up/down-grade".format(current_version, target_version),
+ raise EngineException("Cannot upgrade to version '{}' with this version of code".format(target_version),
http_code=HTTPStatus.INTERNAL_SERVER_ERROR)
if current_version == target_version:
self.db.set_secret_key(serial)
current_version = "1.0"
- if current_version == "1.0" and target_version_int >= self.map_target_version_to_int["1.1"]:
+ if current_version in ("1.0", "1.1") and target_version_int >= self.map_target_version_to_int["1.2"]:
self.db.del_list("roles_operations")
version_data = {
"_id": "version",
- "version_int": 1001,
- "version": "1.1",
- "date": "2019-05-24",
+ "version_int": 1002,
+ "version": "1.2",
+ "date": "2019-06-11",
"description": "set new format for roles_operations"
}
self.db.set_one("admin", {"_id": "version"}, version_data)
- current_version = "1.1"
+ current_version = "1.2"
# TODO add future migrations here
def init_db(self, target_version='1.0'):