29
29
from maasserver.testing import get_data
30
30
from maasserver.testing.enum import map_enum
31
31
import maastesting.factory
32
from metadataserver.models import NodeCommissionResult
34
# We have a limited number of public keys:
35
# src/maasserver/tests/data/test_rsa{0, 1, 2, 3, 4}.pub
34
39
class Factory(maastesting.factory.Factory):
71
76
node.save(skip_check=True)
79
def make_node_commission_result(self, node=None, name=None, data=None):
81
node = self.make_node()
83
name = "ncrname-" + self.getRandomString(92)
85
data = "ncrdata-" + self.getRandomString(1000)
86
ncr = NodeCommissionResult(node=node, name=name, data=data)
74
90
def make_mac_address(self, address):
75
91
"""Create a MAC address."""
89
105
return User.objects.create_user(
90
106
username=username, password=password, email=email)
92
def make_sshkey(self, user):
93
key_string = get_data('data/test_rsa.pub')
108
def make_sshkey(self, user, key_string=None):
109
if key_string is None:
110
key_string = get_data('data/test_rsa0.pub')
94
111
key = SSHKey(key=key_string, user=user)
98
def make_user_with_keys(self, n_keys=2, **kwargs):
99
"""Create a user with n `SSHKey`.
115
def make_user_with_keys(self, n_keys=2, user=None, **kwargs):
116
"""Create a user with n `SSHKey`. If user is not None, use this user
117
instead of creating one.
101
119
Additional keyword arguments are passed to `make_user()`.
103
Keys will have a comment of the form: <username>-key-<i> where i
106
user = self.make_user(**kwargs)
121
if n_keys > MAX_PUBLIC_KEYS:
123
"Cannot create more than %d public keys. If you need more: "
124
"add more keys in src/maasserver/tests/data/."
127
user = self.make_user(**kwargs)
107
129
for i in range(n_keys):
110
key='ssh-rsa KEY %s-key-%d' % (user.username, i)).save()
130
key_string = get_data('data/test_rsa%d.pub' % i)
131
key = SSHKey(user=user, key=key_string)
113
136
def make_admin(self, username=None, password=None, email=None):
114
137
admin = self.make_user(