From e755bf4b5f00c73b0046423e2c0fe43b40b3cda6 Mon Sep 17 00:00:00 2001 From: Dimitri John Ledkov Date: Thu, 8 Aug 2019 14:58:31 +0100 Subject: [PATCH] console_conf/subiquity: split identitymodel, as it is not the same at all. --- console_conf/models/console_conf.py | 2 +- console_conf/models/identity.py | 48 +++++++++++++++++++ .../models/identity.py | 2 +- subiquity/models/subiquity.py | 2 +- subiquity/ui/views/tests/test_identity.py | 2 +- subiquitycore/models/__init__.py | 3 +- 6 files changed, 53 insertions(+), 6 deletions(-) create mode 100644 console_conf/models/identity.py rename {subiquitycore => subiquity}/models/identity.py (96%) diff --git a/console_conf/models/console_conf.py b/console_conf/models/console_conf.py index 7663f011..2e1d86c3 100644 --- a/console_conf/models/console_conf.py +++ b/console_conf/models/console_conf.py @@ -1,6 +1,6 @@ from subiquitycore.models.network import NetworkModel -from subiquitycore.models.identity import IdentityModel +from .identity import IdentityModel class ConsoleConfModel: diff --git a/console_conf/models/identity.py b/console_conf/models/identity.py new file mode 100644 index 00000000..48743446 --- /dev/null +++ b/console_conf/models/identity.py @@ -0,0 +1,48 @@ +# Copyright 2015 Canonical, Ltd. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import logging + +import attr + + +log = logging.getLogger('console_conf.models.identity') + + +@attr.s +class User(object): + realname = attr.ib() + username = attr.ib() + homedir = attr.ib(default=None) + fingerprints = attr.ib(init=False, default=[]) + + +class IdentityModel(object): + """ Model representing user identity + """ + + def __init__(self): + self._user = None + + def add_user(self, result): + result = result.copy() + self._user = User(**result) + + @property + def user(self): + return self._user + + def __repr__(self): + return "".format(self.user) diff --git a/subiquitycore/models/identity.py b/subiquity/models/identity.py similarity index 96% rename from subiquitycore/models/identity.py rename to subiquity/models/identity.py index eca026ee..4c9a9aa0 100644 --- a/subiquitycore/models/identity.py +++ b/subiquity/models/identity.py @@ -20,7 +20,7 @@ import attr from subiquitycore.utils import crypt_password -log = logging.getLogger('subiquitycore.models.identity') +log = logging.getLogger('subiquity.models.identity') @attr.s diff --git a/subiquity/models/subiquity.py b/subiquity/models/subiquity.py index 7380e33c..3f61a041 100644 --- a/subiquity/models/subiquity.py +++ b/subiquity/models/subiquity.py @@ -22,7 +22,6 @@ import yaml from curtin.config import merge_config -from subiquitycore.models.identity import IdentityModel from subiquitycore.models.network import NetworkModel from subiquitycore.file_util import write_file from subiquitycore.utils import run_command @@ -34,6 +33,7 @@ from .proxy import ProxyModel from .mirror import MirrorModel from .snaplist import SnapListModel from .ssh import SSHModel +from .identity import IdentityModel log = logging.getLogger('subiquity.models.subiquity') diff --git a/subiquity/ui/views/tests/test_identity.py b/subiquity/ui/views/tests/test_identity.py index f0a23780..6256e8c9 100644 --- a/subiquity/ui/views/tests/test_identity.py +++ b/subiquity/ui/views/tests/test_identity.py @@ -1,10 +1,10 @@ import unittest from unittest import mock -from subiquitycore.models.identity import IdentityModel from subiquitycore.signals import Signal from subiquitycore.testing import view_helpers +from subiquity.models.identity import IdentityModel from subiquity.controllers.identity import IdentityController from subiquity.ui.views.identity import IdentityView diff --git a/subiquitycore/models/__init__.py b/subiquitycore/models/__init__.py index 767742f7..c6bf3020 100644 --- a/subiquitycore/models/__init__.py +++ b/subiquitycore/models/__init__.py @@ -13,6 +13,5 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from .identity import IdentityModel from .network import NetworkModel -__all__ = ['IdentityModel', 'NetworkModel'] +__all__ = ['NetworkModel']