sts-sponsors team mailing list archive
-
sts-sponsors team
-
Mailing list archive
-
Message #07619
[Merge] ~bjornt/maas:move-metadataserver-node-models into maas:master
Björn Tillenius has proposed merging ~bjornt/maas:move-metadataserver-node-models into maas:master.
Commit message:
Move Node metadataserver models to maasserver.
Requested reviews:
MAAS Maintainers (maas-maintainers)
For more details, see:
https://code.launchpad.net/~bjornt/maas/+git/maas/+merge/441919
--
Your team MAAS Maintainers is requested to review the proposed merge of ~bjornt/maas:move-metadataserver-node-models into maas:master.
diff --git a/src/maasserver/api/tests/test_machine.py b/src/maasserver/api/tests/test_machine.py
index 0477be6..ca98aae 100644
--- a/src/maasserver/api/tests/test_machine.py
+++ b/src/maasserver/api/tests/test_machine.py
@@ -42,7 +42,7 @@ from maasserver.enum import (
from maasserver.exceptions import StaticIPAddressExhaustion
from maasserver.models import Config, Domain, Filesystem, Machine, Node
from maasserver.models import node as node_module
-from maasserver.models import StaticIPAddress
+from maasserver.models import NodeKey, NodeUserData, StaticIPAddress
from maasserver.models.bmc import Pod
from maasserver.models.node import RELEASABLE_STATUSES
from maasserver.models.signals.testing import SignalsDisabled
@@ -74,7 +74,6 @@ from maastesting.matchers import (
)
from metadataserver.builtin_scripts import load_builtin_scripts
from metadataserver.enum import SCRIPT_TYPE
-from metadataserver.models import NodeKey, NodeUserData
from metadataserver.nodeinituser import get_node_init_user
from provisioningserver.refresh.node_info_scripts import NODE_INFO_SCRIPTS
from provisioningserver.utils.enum import map_enum
diff --git a/src/maasserver/api/tests/test_node.py b/src/maasserver/api/tests/test_node.py
index 32a99cc..519a583 100644
--- a/src/maasserver/api/tests/test_node.py
+++ b/src/maasserver/api/tests/test_node.py
@@ -15,6 +15,7 @@ from maasserver.api import auth
from maasserver.enum import NODE_STATUS, NODE_STATUS_CHOICES, POWER_STATE
from maasserver.models import Config, Node
from maasserver.models import node as node_module
+from maasserver.models import NodeKey
from maasserver.testing.api import APITestCase
from maasserver.testing.architecture import make_usable_architecture
from maasserver.testing.factory import factory
@@ -34,7 +35,6 @@ from metadataserver.enum import (
SCRIPT_STATUS_CHOICES,
SCRIPT_TYPE,
)
-from metadataserver.models import NodeKey
from metadataserver.models.scriptset import get_status_from_qs
from metadataserver.nodeinituser import get_node_init_user
from provisioningserver.refresh.node_info_scripts import (
diff --git a/src/maasserver/clusterrpc/tests/test_osystems.py b/src/maasserver/clusterrpc/tests/test_osystems.py
index 7e8abb9..f98334b 100644
--- a/src/maasserver/clusterrpc/tests/test_osystems.py
+++ b/src/maasserver/clusterrpc/tests/test_osystems.py
@@ -23,12 +23,12 @@ from maasserver.clusterrpc.osystems import (
validate_license_key,
)
from maasserver.enum import BOOT_RESOURCE_TYPE, PRESEED_TYPE
+from maasserver.models import NodeKey
from maasserver.rpc import getAllClients
from maasserver.rpc.testing.fixtures import RunningClusterRPCFixture
from maasserver.testing.architecture import make_usable_architecture
from maasserver.testing.factory import factory
from maasserver.testing.testcase import MAASServerTestCase
-from metadataserver.models import NodeKey
from provisioningserver.rpc.exceptions import NoSuchOperatingSystem
diff --git a/src/maasserver/clusterrpc/tests/test_pods.py b/src/maasserver/clusterrpc/tests/test_pods.py
index 36badc6..45a3075 100644
--- a/src/maasserver/clusterrpc/tests/test_pods.py
+++ b/src/maasserver/clusterrpc/tests/test_pods.py
@@ -27,6 +27,7 @@ from maasserver.clusterrpc.pods import (
send_pod_commissioning_results,
)
from maasserver.exceptions import PodProblem
+from maasserver.models import NodeKey
from maasserver.testing.factory import factory
from maasserver.testing.testcase import (
MAASServerTestCase,
@@ -35,7 +36,6 @@ from maasserver.testing.testcase import (
from maastesting.crochet import wait_for
from maastesting.matchers import MockCalledOnceWith
from maastesting.testcase import MAASTestCase
-from metadataserver.models import NodeKey
from provisioningserver.drivers.pod import (
DiscoveredCluster,
DiscoveredPod,
diff --git a/src/maasserver/compose_preseed.py b/src/maasserver/compose_preseed.py
index 97974b6..2ccc0a0 100644
--- a/src/maasserver/compose_preseed.py
+++ b/src/maasserver/compose_preseed.py
@@ -620,8 +620,7 @@ def compose_preseed(request, preseed_type, node):
:return: Preseed data containing the information the node needs in order
to access the metadata service: its URL and auth token.
"""
- # Circular import.
- from metadataserver.models import NodeKey
+ from maasserver.models import NodeKey
token = NodeKey.objects.get_token_for_node(node)
if preseed_type == PRESEED_TYPE.COMMISSIONING:
diff --git a/src/maasserver/forms/__init__.py b/src/maasserver/forms/__init__.py
index 3838d7c..e87279e 100644
--- a/src/maasserver/forms/__init__.py
+++ b/src/maasserver/forms/__init__.py
@@ -1207,7 +1207,7 @@ class AdminMachineForm(MachineForm, AdminNodeForm, WithPowerTypeMixin):
def _setup_deployed_machine(self, machine):
"""Configure the Machine before it has been saved."""
- from metadataserver.models import NodeKey
+ from maasserver.models import NodeKey
from metadataserver.models.scriptset import ScriptSet
machine.update_status(NODE_STATUS.DEPLOYED, validate_transition=False)
diff --git a/src/maasserver/forms/tests/test_machine.py b/src/maasserver/forms/tests/test_machine.py
index 463e2db..a53d5be 100644
--- a/src/maasserver/forms/tests/test_machine.py
+++ b/src/maasserver/forms/tests/test_machine.py
@@ -14,6 +14,7 @@ from maasserver.forms import (
MachineForm,
pick_default_architecture,
)
+from maasserver.models import NodeKey
from maasserver.testing.architecture import (
make_usable_architecture,
patch_usable_architectures,
@@ -25,7 +26,6 @@ from maasserver.testing.osystems import (
patch_usable_osystems,
)
from maasserver.testing.testcase import MAASServerTestCase
-from metadataserver.models import NodeKey
from provisioningserver.certificates import Certificate
from provisioningserver.rpc.exceptions import (
NoConnectionsAvailable,
diff --git a/src/maasserver/migrations/maasserver/0296_move_metadata_node_models.py b/src/maasserver/migrations/maasserver/0296_move_metadata_node_models.py
new file mode 100644
index 0000000..a195447
--- /dev/null
+++ b/src/maasserver/migrations/maasserver/0296_move_metadata_node_models.py
@@ -0,0 +1,84 @@
+# Generated by Django 3.2.12 on 2022-11-17 15:29
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+import maasserver.models.cleansave
+import metadataserver.fields
+
+
+class Migration(migrations.Migration):
+ dependencies = [
+ ("piston3", "0003_piston_nonce_index"),
+ ("maasserver", "0295_macaddress_text_field"),
+ ("metadataserver", "0035_move_metadata_node_models"),
+ ]
+
+ operations = [
+ migrations.SeparateDatabaseAndState(
+ state_operations=[
+ migrations.CreateModel(
+ name="NodeKey",
+ fields=[
+ (
+ "id",
+ models.AutoField(
+ auto_created=True,
+ primary_key=True,
+ serialize=False,
+ verbose_name="ID",
+ ),
+ ),
+ (
+ "node",
+ models.OneToOneField(
+ editable=False,
+ on_delete=django.db.models.deletion.CASCADE,
+ to="maasserver.node",
+ ),
+ ),
+ (
+ "token",
+ models.OneToOneField(
+ editable=False,
+ on_delete=django.db.models.deletion.CASCADE,
+ to="piston3.token",
+ ),
+ ),
+ ],
+ bases=(
+ maasserver.models.cleansave.CleanSave,
+ models.Model,
+ ),
+ ),
+ migrations.CreateModel(
+ name="NodeUserData",
+ fields=[
+ (
+ "id",
+ models.AutoField(
+ auto_created=True,
+ primary_key=True,
+ serialize=False,
+ verbose_name="ID",
+ ),
+ ),
+ ("data", metadataserver.fields.BinaryField()),
+ (
+ "node",
+ models.OneToOneField(
+ editable=False,
+ on_delete=django.db.models.deletion.CASCADE,
+ to="maasserver.node",
+ ),
+ ),
+ ],
+ bases=(
+ maasserver.models.cleansave.CleanSave,
+ models.Model,
+ ),
+ ),
+ ],
+ database_operations=[],
+ ),
+ ]
diff --git a/src/maasserver/models/__init__.py b/src/maasserver/models/__init__.py
index 72f3ef5..1327639 100644
--- a/src/maasserver/models/__init__.py
+++ b/src/maasserver/models/__init__.py
@@ -48,7 +48,9 @@ __all__ = [
"NodeConfig",
"NodeDevice",
"NodeDeviceVPD",
+ "NodeKey",
"NodeMetadata",
+ "NodeUserData",
"NodeGroupToRackController",
"Notification",
"NUMANode",
@@ -166,7 +168,9 @@ from maasserver.models.node import (
from maasserver.models.nodeconfig import NodeConfig
from maasserver.models.nodedevice import NodeDevice
from maasserver.models.nodedevicevpd import NodeDeviceVPD
+from maasserver.models.nodekey import NodeKey
from maasserver.models.nodemetadata import NodeMetadata
+from maasserver.models.nodeuserdata import NodeUserData
from maasserver.models.notification import Notification
from maasserver.models.numa import NUMANode, NUMANodeHugepages
from maasserver.models.ownerdata import OwnerData
diff --git a/src/maasserver/models/node.py b/src/maasserver/models/node.py
index f8ea9a4..ea6b233 100644
--- a/src/maasserver/models/node.py
+++ b/src/maasserver/models/node.py
@@ -5716,7 +5716,7 @@ class Node(CleanSave, TimestampedModel):
from maasserver.clusterrpc.boot_images import (
get_common_available_boot_images,
)
- from metadataserver.models import NodeUserData
+ from maasserver.models import NodeUserData
if not user.has_perm(NodePermission.edit, self):
# You can't start a node you don't own unless you're an admin.
@@ -6108,7 +6108,7 @@ class Node(CleanSave, TimestampedModel):
"""Start rescue mode."""
# Avoid circular imports.
from maasserver.models.event import Event
- from metadataserver.models import NodeUserData
+ from maasserver.models.nodeuserdata import NodeUserData
if not user.has_perm(NodePermission.edit, self):
# You can't enter rescue mode on a node you don't own,
@@ -6487,8 +6487,7 @@ class Controller(Node):
@transactional
def _get_token_for_controller(self):
- # Avoid circular imports.
- from metadataserver.models import NodeKey
+ from maasserver.models import NodeKey
token = NodeKey.objects.get_token_for_node(self)
# Pull consumer into memory so it can be accessed outside a
diff --git a/src/metadataserver/models/nodekey.py b/src/maasserver/models/nodekey.py
similarity index 100%
rename from src/metadataserver/models/nodekey.py
rename to src/maasserver/models/nodekey.py
diff --git a/src/metadataserver/models/nodeuserdata.py b/src/maasserver/models/nodeuserdata.py
similarity index 100%
rename from src/metadataserver/models/nodeuserdata.py
rename to src/maasserver/models/nodeuserdata.py
diff --git a/src/maasserver/models/signals/nodes.py b/src/maasserver/models/signals/nodes.py
index ad12f89..ac846c7 100644
--- a/src/maasserver/models/signals/nodes.py
+++ b/src/maasserver/models/signals/nodes.py
@@ -17,9 +17,9 @@ from maasserver.models import (
Service,
)
from maasserver.models.nodeconfig import create_default_nodeconfig
+from maasserver.models.nodekey import NodeKey
from maasserver.models.numa import create_default_numanode
from maasserver.utils.signals import SignalsManager
-from metadataserver.models.nodekey import NodeKey
NODE_CLASSES = [
Node,
diff --git a/src/maasserver/models/signals/tests/test_nodes.py b/src/maasserver/models/signals/tests/test_nodes.py
index f006a33..e52d932 100644
--- a/src/maasserver/models/signals/tests/test_nodes.py
+++ b/src/maasserver/models/signals/tests/test_nodes.py
@@ -16,13 +16,13 @@ from maasserver.enum import (
POWER_STATE_CHOICES,
)
from maasserver.models import Node, RackController, StaticIPAddress
+from maasserver.models.nodekey import NodeKey
from maasserver.models.service import RACK_SERVICES, REGION_SERVICES, Service
from maasserver.models.signals import power
from maasserver.node_status import NODE_TRANSITIONS
from maasserver.testing.factory import factory
from maasserver.testing.testcase import MAASServerTestCase
from maasserver.utils.orm import reload_object
-from metadataserver.models.nodekey import NodeKey
class TestNodeDeletion(MAASServerTestCase):
diff --git a/src/maasserver/models/tests/test_node.py b/src/maasserver/models/tests/test_node.py
index 6e20681..04890bf 100644
--- a/src/maasserver/models/tests/test_node.py
+++ b/src/maasserver/models/tests/test_node.py
@@ -93,6 +93,7 @@ from maasserver.models import (
)
from maasserver.models import (
NodeDevice,
+ NodeUserData,
OwnerData,
PhysicalInterface,
RackController,
@@ -182,7 +183,7 @@ from metadataserver.enum import (
SCRIPT_STATUS_RUNNING_OR_PENDING,
SCRIPT_TYPE,
)
-from metadataserver.models import NodeUserData, ScriptResult, ScriptSet
+from metadataserver.models import ScriptResult, ScriptSet
from provisioningserver.drivers.pod import Capabilities, DiscoveredPodHints
from provisioningserver.drivers.power.ipmi import IPMI_BOOT_TYPE
from provisioningserver.drivers.power.registry import PowerDriverRegistry
diff --git a/src/metadataserver/models/tests/test_nodekey.py b/src/maasserver/models/tests/test_nodekey.py
similarity index 98%
rename from src/metadataserver/models/tests/test_nodekey.py
rename to src/maasserver/models/tests/test_nodekey.py
index c7f74eb..9f2e728 100644
--- a/src/metadataserver/models/tests/test_nodekey.py
+++ b/src/maasserver/models/tests/test_nodekey.py
@@ -6,10 +6,10 @@
from testtools.matchers import HasLength
+from maasserver.models import NodeKey
from maasserver.testing.factory import factory
from maasserver.testing.testcase import MAASServerTestCase
from maastesting.djangotestcase import CountQueries
-from metadataserver.models import NodeKey
class TestNodeKeyManager(MAASServerTestCase):
diff --git a/src/metadataserver/models/tests/test_nodeuserdata.py b/src/maasserver/models/tests/test_nodeuserdata.py
similarity index 98%
rename from src/metadataserver/models/tests/test_nodeuserdata.py
rename to src/maasserver/models/tests/test_nodeuserdata.py
index 1be190d..f1430fc 100644
--- a/src/metadataserver/models/tests/test_nodeuserdata.py
+++ b/src/maasserver/models/tests/test_nodeuserdata.py
@@ -4,9 +4,9 @@
"""Tests for :class:`NodeUserData` and manager."""
+from maasserver.models import NodeUserData
from maasserver.testing.factory import factory
from maasserver.testing.testcase import MAASServerTestCase
-from metadataserver.models import NodeUserData
class TestNodeUserDataManager(MAASServerTestCase):
diff --git a/src/maasserver/preseed.py b/src/maasserver/preseed.py
index 35713f8..8e9a8ed 100644
--- a/src/maasserver/preseed.py
+++ b/src/maasserver/preseed.py
@@ -33,7 +33,7 @@ from maasserver.compose_preseed import (
)
from maasserver.enum import FILESYSTEM_TYPE, PRESEED_TYPE
from maasserver.exceptions import ClusterUnavailable, MissingBootImage
-from maasserver.models import BootResource, Config, PackageRepository
+from maasserver.models import BootResource, Config, NodeKey, PackageRepository
from maasserver.models.filesystem import Filesystem
from maasserver.node_status import COMMISSIONING_LIKE_STATUSES
from maasserver.preseed_network import compose_curtin_network_config
@@ -48,7 +48,6 @@ from maasserver.utils.curtin import (
curtin_supports_webhook_events,
)
from maasserver.utils.osystems import get_release_version_from_string
-from metadataserver.models import NodeKey
from metadataserver.user_data.snippets import get_snippet_context
from provisioningserver.drivers.osystem.ubuntu import UbuntuOS
from provisioningserver.logger import get_maas_logger, LegacyLogger
diff --git a/src/maasserver/tests/test_compose_preseed.py b/src/maasserver/tests/test_compose_preseed.py
index eecd7a7..c3189c1 100644
--- a/src/maasserver/tests/test_compose_preseed.py
+++ b/src/maasserver/tests/test_compose_preseed.py
@@ -28,7 +28,7 @@ from maasserver.enum import (
POWER_STATE,
PRESEED_TYPE,
)
-from maasserver.models import PackageRepository
+from maasserver.models import NodeKey, PackageRepository
from maasserver.models.config import Config
from maasserver.rpc.testing.fixtures import RunningClusterRPCFixture
from maasserver.testing.factory import factory
@@ -36,7 +36,6 @@ from maasserver.testing.osystems import make_usable_osystem
from maasserver.testing.testcase import MAASServerTestCase
from maastesting.http import make_HttpRequest
from maastesting.matchers import MockCalledOnceWith
-from metadataserver.models import NodeKey
from provisioningserver.drivers.osystem import BOOT_IMAGE_PURPOSE
from provisioningserver.rpc.exceptions import (
NoConnectionsAvailable,
diff --git a/src/maasserver/tests/test_preseed.py b/src/maasserver/tests/test_preseed.py
index 4649eac..369e893 100644
--- a/src/maasserver/tests/test_preseed.py
+++ b/src/maasserver/tests/test_preseed.py
@@ -37,7 +37,7 @@ from maasserver.clusterrpc.testing.boot_images import make_rpc_boot_image
from maasserver.compose_preseed import get_archive_config, make_clean_repo_name
from maasserver.enum import FILESYSTEM_TYPE, NODE_STATUS, PRESEED_TYPE
from maasserver.exceptions import ClusterUnavailable, MissingBootImage
-from maasserver.models import BootResource, Config, PackageRepository
+from maasserver.models import BootResource, Config, NodeKey, PackageRepository
from maasserver.models.bootresource import LINUX_OSYSTEMS
from maasserver.preseed import (
compose_curtin_archive_config,
@@ -88,7 +88,6 @@ from maasserver.utils.curtin import curtin_supports_webhook_events
from maastesting.http import make_HttpRequest
from maastesting.matchers import MockCalledOnceWith, MockNotCalled
from maastesting.testcase import MAASTestCase
-from metadataserver.models import NodeKey
from provisioningserver.drivers.osystem.ubuntu import UbuntuOS
from provisioningserver.rpc.exceptions import NoConnectionsAvailable
from provisioningserver.utils.enum import map_enum
diff --git a/src/maasserver/tests/test_vmhost.py b/src/maasserver/tests/test_vmhost.py
index ac4abb9..d8fbc43 100644
--- a/src/maasserver/tests/test_vmhost.py
+++ b/src/maasserver/tests/test_vmhost.py
@@ -11,7 +11,7 @@ from twisted.internet.defer import succeed
from maasserver import vmhost as vmhost_module
from maasserver.enum import BMC_TYPE
from maasserver.exceptions import PodProblem
-from maasserver.models import Pod, PodHints, VMCluster
+from maasserver.models import NodeKey, Pod, PodHints, VMCluster
from maasserver.testing.factory import factory
from maasserver.testing.testcase import (
MAASServerTestCase,
@@ -21,7 +21,6 @@ from maasserver.utils.orm import reload_object
from maasserver.utils.threads import deferToDatabase
from maastesting.crochet import wait_for
from maastesting.matchers import MockCalledOnceWith
-from metadataserver.models.nodekey import NodeKey
from provisioningserver.drivers.pod import (
DiscoveredCluster,
DiscoveredPod,
diff --git a/src/maasserver/vmhost.py b/src/maasserver/vmhost.py
index 6b98824..3f70ddd 100644
--- a/src/maasserver/vmhost.py
+++ b/src/maasserver/vmhost.py
@@ -13,6 +13,7 @@ from maasserver.exceptions import PodProblem
from maasserver.models import (
BMCRoutableRackControllerRelationship,
Event,
+ NodeKey,
Pod,
RackController,
Tag,
@@ -23,7 +24,6 @@ from maasserver.rpc import getClientFromIdentifiers
from maasserver.utils import absolute_reverse
from maasserver.utils.orm import post_commit_do, transactional
from maasserver.utils.threads import deferToDatabase
-from metadataserver.models import NodeKey
from provisioningserver.drivers.pod import DiscoveredCluster, DiscoveredPod
from provisioningserver.events import EVENT_TYPES
diff --git a/src/maasserver/websockets/handlers/tests/test_machine.py b/src/maasserver/websockets/handlers/tests/test_machine.py
index b3d2327..5ea2e31 100644
--- a/src/maasserver/websockets/handlers/tests/test_machine.py
+++ b/src/maasserver/websockets/handlers/tests/test_machine.py
@@ -67,6 +67,7 @@ from maasserver.models import (
VolumeGroup,
)
from maasserver.models.blockdevice import MIN_BLOCK_DEVICE_SIZE
+from maasserver.models.nodekey import NodeKey
from maasserver.models.nodeprobeddetails import (
get_single_probed_details,
script_output_nsmap,
@@ -132,7 +133,6 @@ from metadataserver.enum import (
SCRIPT_STATUS_FAILED,
SCRIPT_TYPE,
)
-from metadataserver.models.nodekey import NodeKey
from metadataserver.models.scriptset import get_status_from_qs
from provisioningserver.refresh.node_info_scripts import (
LIST_MODALIASES_OUTPUT_NAME,
diff --git a/src/metadataserver/api.py b/src/metadataserver/api.py
index c42a5fb..faf237c 100644
--- a/src/metadataserver/api.py
+++ b/src/metadataserver/api.py
@@ -59,7 +59,9 @@ from maasserver.models import (
Config,
Interface,
Node,
+ NodeKey,
NodeMetadata,
+ NodeUserData,
SSHKey,
SSLKey,
)
@@ -88,13 +90,7 @@ from metadataserver.enum import (
SIGNAL_STATUS,
SIGNAL_STATUS_CHOICES,
)
-from metadataserver.models import (
- NodeKey,
- NodeUserData,
- Script,
- ScriptResult,
- ScriptSet,
-)
+from metadataserver.models import Script, ScriptResult, ScriptSet
from metadataserver.user_data import (
generate_user_data_for_poweroff,
generate_user_data_for_status,
diff --git a/src/metadataserver/api_twisted.py b/src/metadataserver/api_twisted.py
index 1ba61bc..ca432fa 100644
--- a/src/metadataserver/api_twisted.py
+++ b/src/metadataserver/api_twisted.py
@@ -18,7 +18,7 @@ from twisted.web.server import NOT_DONE_YET
from maasserver.api.utils import extract_oauth_key_from_auth_header
from maasserver.enum import NODE_STATUS, NODE_TYPE
from maasserver.forms.pods import PodForm
-from maasserver.models import Interface, Node
+from maasserver.models import Interface, Node, NodeKey
from maasserver.preseed import CURTIN_INSTALL_LOG
from maasserver.secrets import SecretManager
from maasserver.utils.orm import (
@@ -31,7 +31,6 @@ from maasserver.vmhost import discover_and_sync_vmhost
from metadataserver import logger
from metadataserver.api import add_event_to_node_event_log, process_file
from metadataserver.enum import SCRIPT_STATUS
-from metadataserver.models import NodeKey
from metadataserver.vendor_data import (
DEPLOY_SECRETS_LXD_KEY,
DEPLOY_SECRETS_VIRSH_KEY,
diff --git a/src/metadataserver/migrations/0035_move_metadata_node_models.py b/src/metadataserver/migrations/0035_move_metadata_node_models.py
new file mode 100644
index 0000000..c7be185
--- /dev/null
+++ b/src/metadataserver/migrations/0035_move_metadata_node_models.py
@@ -0,0 +1,33 @@
+# Generated by Django 3.2.12 on 2022-11-17 15:29
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+ dependencies = [
+ ("metadataserver", "0034_use_builtin_json_field"),
+ ("maasserver", "0295_macaddress_text_field"),
+ ]
+
+ operations = [
+ migrations.SeparateDatabaseAndState(
+ state_operations=[
+ migrations.DeleteModel(
+ name="NodeKey",
+ ),
+ migrations.DeleteModel(
+ name="NodeUserData",
+ ),
+ ],
+ database_operations=[
+ migrations.AlterModelTable(
+ name="NodeKey",
+ table="maasserver_nodekey",
+ ),
+ migrations.AlterModelTable(
+ name="NodeUserData",
+ table="maasserver_nodeuserdata",
+ ),
+ ],
+ ),
+ ]
diff --git a/src/metadataserver/models/__init__.py b/src/metadataserver/models/__init__.py
index d3e4f00..7e863ff 100644
--- a/src/metadataserver/models/__init__.py
+++ b/src/metadataserver/models/__init__.py
@@ -4,10 +4,8 @@
"""Model export and helpers for metadataserver.
"""
-__all__ = ["NodeKey", "NodeUserData", "Script", "ScriptResult", "ScriptSet"]
+__all__ = ["Script", "ScriptResult", "ScriptSet"]
-from metadataserver.models.nodekey import NodeKey
-from metadataserver.models.nodeuserdata import NodeUserData
from metadataserver.models.script import Script
from metadataserver.models.scriptresult import ScriptResult
from metadataserver.models.scriptset import ScriptSet
diff --git a/src/metadataserver/tests/test_api.py b/src/metadataserver/tests/test_api.py
index 4a1fd29..dcff7ac 100644
--- a/src/metadataserver/tests/test_api.py
+++ b/src/metadataserver/tests/test_api.py
@@ -41,7 +41,9 @@ from maasserver.forms.parameters import ParametersForm
from maasserver.models import (
Config,
Event,
+ NodeKey,
NodeMetadata,
+ NodeUserData,
SSHKey,
VersionedTextFile,
)
@@ -90,7 +92,7 @@ from metadataserver.enum import (
SIGNAL_STATUS,
SIGNAL_STATUS_CHOICES,
)
-from metadataserver.models import NodeKey, NodeUserData, Script, ScriptSet
+from metadataserver.models import Script, ScriptSet
from metadataserver.nodeinituser import get_node_init_user
from provisioningserver.events import (
EVENT_DETAILS,
diff --git a/src/metadataserver/tests/test_api_twisted.py b/src/metadataserver/tests/test_api_twisted.py
index e84c837..e347a72 100644
--- a/src/metadataserver/tests/test_api_twisted.py
+++ b/src/metadataserver/tests/test_api_twisted.py
@@ -19,7 +19,7 @@ from twisted.web.server import NOT_DONE_YET
from twisted.web.test.requesthelper import DummyRequest
from maasserver.enum import INTERFACE_TYPE, IPADDRESS_TYPE, NODE_STATUS
-from maasserver.models import Event, Pod
+from maasserver.models import Event, NodeKey, Pod
from maasserver.models.signals.testing import SignalsDisabled
from maasserver.models.timestampedmodel import now
from maasserver.node_status import get_node_timeout
@@ -52,7 +52,6 @@ from metadataserver.api_twisted import (
StatusWorkerService,
)
from metadataserver.enum import RESULT_TYPE, SCRIPT_STATUS
-from metadataserver.models import NodeKey
from provisioningserver.events import EVENT_STATUS_MESSAGES
from provisioningserver.testing.certificates import get_sample_cert
diff --git a/src/metadataserver/tests/test_vendor_data.py b/src/metadataserver/tests/test_vendor_data.py
index 561320d..85b0c90 100644
--- a/src/metadataserver/tests/test_vendor_data.py
+++ b/src/metadataserver/tests/test_vendor_data.py
@@ -10,7 +10,7 @@ from testtools.matchers import ContainsDict, Equals, KeysEqual, MatchesDict
import yaml
from maasserver.enum import NODE_STATUS
-from maasserver.models import Config, ControllerInfo
+from maasserver.models import Config, ControllerInfo, NodeKey
from maasserver.node_status import COMMISSIONING_LIKE_STATUSES
from maasserver.secrets import SecretManager
from maasserver.server_address import get_maas_facing_server_host
@@ -20,7 +20,6 @@ from maasserver.testing.testcase import MAASServerTestCase
from maasserver.utils.converters import systemd_interval_to_calendar
from maastesting.matchers import MockNotCalled
from metadataserver import vendor_data
-from metadataserver.models import NodeKey
from metadataserver.vendor_data import (
_get_metadataserver_template,
DEPLOY_SECRETS_LXD_KEY,
diff --git a/src/metadataserver/vendor_data.py b/src/metadataserver/vendor_data.py
index 06cf64b..6fb9b7e 100644
--- a/src/metadataserver/vendor_data.py
+++ b/src/metadataserver/vendor_data.py
@@ -17,7 +17,7 @@ import tempita
import yaml
from maasserver import ntp
-from maasserver.models import Config, NodeMetadata
+from maasserver.models import Config, NodeKey, NodeMetadata
from maasserver.models.controllerinfo import get_target_version
from maasserver.node_status import COMMISSIONING_LIKE_STATUSES
from maasserver.permissions import NodePermission
@@ -27,7 +27,6 @@ from maasserver.secrets import SecretManager
from maasserver.server_address import get_maas_facing_server_host
from maasserver.utils.certificates import generate_certificate
from maasserver.utils.converters import systemd_interval_to_calendar
-from metadataserver.models import NodeKey
from provisioningserver.ntp.config import normalise_address
from provisioningserver.utils.text import make_gecos_field
Follow ups