Merge ~ya-bo-ng/maas:add-note-to-machine-listing into maas:master

Proposed by Anthony Dillon
Status: Merged
Approved by: Anthony Dillon
Approved revision: ee62a4d7ce228c196b2397a8cc84cd91d7994a2e
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~ya-bo-ng/maas:add-note-to-machine-listing
Merge into: maas:master
Diff against target: 111 lines (+27/-7)
5 files modified
src/maasserver/static/partials/machines-table.html (+15/-5)
src/maasserver/testing/factory.py (+4/-2)
src/maasserver/testing/sampledata.py (+6/-0)
src/maasserver/websockets/handlers/machine.py (+1/-0)
src/maasserver/websockets/handlers/node.py (+1/-0)
Reviewer Review Type Date Requested Status
Caleb Ellis (community) Approve
Blake Rouse (community) Approve
Review via email: mp+366186@code.launchpad.net

Commit message

Add note to machine listing

Description of the change

Add note to machine listing and add random with notes to the sample data to make it easier to review.

## QA
- Run `make clean+db`
- Run `make`
- Run `make syncdb`
- Run `make sampledata`
- Run `make start`
- Then load the machine listing
- See you get some notes on machines in the Pool column
- Hover should reveal the rest of the note

## Screenshot
https://screenshots.firefox.com/gCdTZr4jhCpW4Eyd/10.54.72.65

To post a comment you must log in.
Revision history for this message
Blake Rouse (blake-rouse) wrote :

Looks good.

review: Approve
Revision history for this message
Caleb Ellis (caleb-ellis) wrote :

LGTM! You'll probably get an error in the machine websocket test though because you've added another field

review: Approve
Revision history for this message
Anthony Dillon (ya-bo-ng) wrote :
Revision history for this message
MAAS Lander (maas-lander) wrote :
Revision history for this message
MAAS Lander (maas-lander) wrote :
ee62a4d... by Anthony Dillon

Fix tests

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/src/maasserver/static/partials/machines-table.html b/src/maasserver/static/partials/machines-table.html
index 64de02f..6317850 100644
--- a/src/maasserver/static/partials/machines-table.html
+++ b/src/maasserver/static/partials/machines-table.html
@@ -32,7 +32,10 @@
32 <span role="columnheader" data-ng-click="sortTable('owner')" data-ng-class="{'is-sorted': table.predicate === 'owner', 'sort-asc': table.reverse === false, 'sort-desc': table.reverse === true}">Owner,</span>32 <span role="columnheader" data-ng-click="sortTable('owner')" data-ng-class="{'is-sorted': table.predicate === 'owner', 'sort-asc': table.reverse === false, 'sort-desc': table.reverse === true}">Owner,</span>
33 <div>Tags</div>33 <div>Tags</div>
34 </th>34 </th>
35 <th class="p-table__col--pool" title="Pool" role="columnheader" data-ng-click="sortTable('pool.name')" data-ng-class="{'is-sorted': table.predicate === 'pool.name', 'sort-asc': table.reverse === false, 'sort-desc': table.reverse === true}">Pool</th>35 <th class="p-table__col--pool p-double-row" title="Pool, Note">
36 <span role="columnheader" data-ng-click="sortTable('pool.name')" data-ng-class="{'is-sorted': table.predicate === 'pool.name', 'sort-asc': table.reverse === false, 'sort-desc': table.reverse === true}">Pool,</span>
37 <div>Note</div>
38 </th>
36 <th class="p-table__col--zone p-double-row" title="Zone">39 <th class="p-table__col--zone p-double-row" title="Zone">
37 <span role="columnheader" data-ng-click="sortTable('zone.name')" data-ng-class="{'is-sorted': table.predicate === 'zone.name', 'sort-asc': table.reverse === false, 'sort-desc': table.reverse === true}">Zone</span>40 <span role="columnheader" data-ng-click="sortTable('zone.name')" data-ng-class="{'is-sorted': table.predicate === 'zone.name', 'sort-asc': table.reverse === false, 'sort-desc': table.reverse === true}">Zone</span>
38 </th>41 </th>
@@ -245,11 +248,18 @@
245 </span>248 </span>
246 </div>249 </div>
247 </td>250 </td>
248 <td class="p-table__col--pool" aria-label="{$ node.pool.name $}">251 <td class="p-table__col--pool p-double-row" aria-label="Pool, Note">
249 <div class="p-table-menu">252 <div class="p-table-menu">
250 <i class="p-icon--spinner u-animation--spin" data-ng-if="node['set-pool-transition']">Setting pool</i>253 <div class="p-double-row__rows-container">
251 <span data-ng-if="node.pool.name"><a class="p-link--soft" href="#/pools" title="{$ node.pool.name $}"> {$ node.pool.name $}</a></span>254 <div class="p-double-row__main-row" aria-label="Pool">
252 <span data-ng-if="!node.pool.name">-</span>255 <i class="p-icon--spinner u-animation--spin" data-ng-if="node['set-pool-transition']">Setting pool</i>
256 <span data-ng-if="node.pool.name"><a class="p-link--soft" href="#/pools" title="{$ node.pool.name $}"> {$ node.pool.name $}</a></span>
257 <span data-ng-if="!node.pool.name">-</span>
258 </div>
259 <div data-ng-if="node.description" class="p-double-row__muted-row" aria-label="Note" title="{$ node.description $}">
260 <span>{$ node.description $}</span>
261 </div>
262 </div>
253 <button263 <button
254 data-ng-if="node.actions.indexOf('set-pool') !== -1"264 data-ng-if="node.actions.indexOf('set-pool') !== -1"
255 data-ng-click="toggleMenu(node.system_id + '-pool')"265 data-ng-click="toggleMenu(node.system_id + '-pool')"
diff --git a/src/maasserver/testing/factory.py b/src/maasserver/testing/factory.py
index 365ab2a..ec327a4 100644
--- a/src/maasserver/testing/factory.py
+++ b/src/maasserver/testing/factory.py
@@ -394,7 +394,7 @@ class Factory(maastesting.factory.Factory):
394394
395 def make_Node(395 def make_Node(
396 self, interface=False, hostname=None, domain=None, status=None,396 self, interface=False, hostname=None, domain=None, status=None,
397 architecture="i386/generic", min_hwe_kernel=None,397 architecture="i386/generic", description=None, min_hwe_kernel=None,
398 hwe_kernel=None, node_type=NODE_TYPE.MACHINE, updated=None,398 hwe_kernel=None, node_type=NODE_TYPE.MACHINE, updated=None,
399 created=None, zone=None, networks=None, sortable_name=False,399 created=None, zone=None, networks=None, sortable_name=False,
400 power_type=None, power_parameters=None, power_state=None,400 power_type=None, power_parameters=None, power_state=None,
@@ -418,6 +418,8 @@ class Factory(maastesting.factory.Factory):
418 hostname = self.make_string(20)418 hostname = self.make_string(20)
419 if domain is None:419 if domain is None:
420 domain = Domain.objects.get_default_domain()420 domain = Domain.objects.get_default_domain()
421 if description is None:
422 description = ''
421 if sortable_name:423 if sortable_name:
422 hostname = hostname.lower()424 hostname = hostname.lower()
423 if status is None:425 if status is None:
@@ -436,7 +438,7 @@ class Factory(maastesting.factory.Factory):
436 node = Node(438 node = Node(
437 hostname=hostname, status=status, architecture=architecture,439 hostname=hostname, status=status, architecture=architecture,
438 min_hwe_kernel=min_hwe_kernel, hwe_kernel=hwe_kernel,440 min_hwe_kernel=min_hwe_kernel, hwe_kernel=hwe_kernel,
439 node_type=node_type, zone=zone,441 node_type=node_type, zone=zone, description=description,
440 power_state=power_state, power_state_updated=power_state_updated,442 power_state=power_state, power_state_updated=power_state_updated,
441 domain=domain, bmc=bmc, hardware_uuid=hardware_uuid,443 domain=domain, bmc=bmc, hardware_uuid=hardware_uuid,
442 ephemeral_deploy=ephemeral_deploy, **kwargs)444 ephemeral_deploy=ephemeral_deploy, **kwargs)
diff --git a/src/maasserver/testing/sampledata.py b/src/maasserver/testing/sampledata.py
index c34e42f..42454f8 100644
--- a/src/maasserver/testing/sampledata.py
+++ b/src/maasserver/testing/sampledata.py
@@ -429,6 +429,12 @@ def populate_main():
429 interface=False, with_boot_disk=False, power_type='manual',429 interface=False, with_boot_disk=False, power_type='manual',
430 domain=random.choice(domains),430 domain=random.choice(domains),
431 memory=random.choice([1024, 4096, 8192]),431 memory=random.choice([1024, 4096, 8192]),
432 description=random.choice([
433 '',
434 'Scheduled for removeal',
435 'Firmware old',
436 'Earmarked for Project Fuse in April'
437 ]),
432 cpu_count=random.randint(2, 8))438 cpu_count=random.randint(2, 8))
433 machine.set_random_hostname()439 machine.set_random_hostname()
434 machines.append(machine)440 machines.append(machine)
diff --git a/src/maasserver/websockets/handlers/machine.py b/src/maasserver/websockets/handlers/machine.py
index 8be7f10..2bb40e6 100644
--- a/src/maasserver/websockets/handlers/machine.py
+++ b/src/maasserver/websockets/handlers/machine.py
@@ -235,6 +235,7 @@ class MachineHandler(NodeHandler):
235 "owner",235 "owner",
236 "cpu_count",236 "cpu_count",
237 "cpu_speed",237 "cpu_speed",
238 "description",
238 "memory",239 "memory",
239 "power_state",240 "power_state",
240 "domain",241 "domain",
diff --git a/src/maasserver/websockets/handlers/node.py b/src/maasserver/websockets/handlers/node.py
index 1a25fa7..76a27f3 100644
--- a/src/maasserver/websockets/handlers/node.py
+++ b/src/maasserver/websockets/handlers/node.py
@@ -260,6 +260,7 @@ class NodeHandler(TimestampedModelHandler):
260 data["distro_series"] = obj.distro_series260 data["distro_series"] = obj.distro_series
261 data["memory"] = obj.display_memory()261 data["memory"] = obj.display_memory()
262 data["status"] = obj.display_status()262 data["status"] = obj.display_status()
263 data["description"] = obj.description
263 data["status_code"] = obj.status264 data["status_code"] = obj.status
264265
265 # Filters are only available on machines and devices.266 # Filters are only available on machines and devices.

Subscribers

People subscribed via source and target branches