wiki:JacksIssues

Version 138 (modified by Aaron Helsinger, 5 years ago) (diff)

--

Jacks Bugs

4/24/15

Close to pushing to devel

  • When adding an rspec ('add-topology') to an empty Jacks (only has a single site with nothing in it), the new RSpec should over-ride the previous stuff; discard the empty site
  • Allow requesting that a link be 'non-trivial' going through a hardware switch, such that the link can be openflow controlled and shared. EG:

<vlan_tagging xmlns="http://www.protogeni.net/resources/rspec/ext/emulab/1" enabled="true"/>

  • Add a 'No MAC' checkbox on disk images
    • Allows user custom disk images and EG images to get the nomac flag that otherwise comes only from the constraint generator's config file
    • Checkbox says 'Disable MAC Learning' and is ORed with the setting in the context
    • NEW: Checkbox should be both checked and disabled if the 'nomac' is in the context (if not in the context, checkbox is neither checked nor disabled)

Next Items

  • Resources from other AMs / merging manifests:
    • An IG manifest may includes components which are not from the current AM
      • They may even be from AMs not known to the portal
    • The result is
      • The resources listed in that manifest may have since been deleted at the "real" AM, but Jacks still shows them
      • If the resources exist but at an AM not in the Jacks Context and not known to the portal, then Jacks shows resources that cannot be manipulated through the portal
    • Action:
      • Option 1: Jacks should only show nodes in View mode whose component_manager matches one of the aggregates in the current Jacks context
      • Option 2: When in view mode and receive an RSpec of type 'manifest', only show nodes from the sender aggregate (alternatively implement as only nodes with a sliver_id)
        • Links between AMs will need to be drawn like shared VLANs, with dangling endpoints
    • Status: Option 2 mostly implemented, links aren't quite handled correctly
  • Validate RSpec on submission
    • When extracting RSpec from Jacks, apply some sanity checks
      • See above about 'any' and constraints for default values, on links in particular
      • Warn on duplicated IP address
      • Warn on a link with 'Enable OpenFlow' checked but no controller
    • Status: Working on the warning system to support these checks
  • Duplicate constraints coming from generator
    • Looping over nodes and generating by AM constraint does not go through de-duping code
    • To do: Warn when constraint loaded detects a duplicate
  • Should be able to set bandwidths on links.
    • Will warn if RSpec tried to set different BW on on same interface for 2 different destinations but pick the first

Other Items

  • Constraints
    • If only a GRE tunnel is a valid link type, leaving the link type as 'any' will fail when you reserve
      • 'any' is treated as stitched by stitcher and the AMs, but stitched constraints are not applied by Jacks
      • Perhaps check all 'any' attributes and apply constraints as though the default (whatever that is) was selected?
        • Perhaps only on submission?
      • Action: If a link type is 'any' and the endpoints do not allow LAN or VLAN, then this is a warning (so the experimenter can pick GRE for example)
    • Visible indication of what is not allowed when dragging on palette (the warning system)
    • Ethernet/LAN should not be an option between sites
      • Jacks bug that constraints don't realize that a 2nd site cannot be same as a first site
        • Note though that if you pick ethernet and stitched ethernet is right, the right thing still happens
    • Stitched/VLAN and ExoGENI stitching don't work well together

Portal Items

  • Deleting resources from Jacks leaves Jacks with a non-empty canvas: http://grab.by/G8Fa
  • Portal: Expanded editor fails to load in some situations

3/12/15

  • Deleting resources from Jacks leaves Jacks with a non-empty canvas: http://grab.by/G8Fa
  • Constraints
    • Ethernet/LAN should not be an option between sites
      • Jacks bug that constraints don't realize that a 2nd site cannot be same as a first site
        • Note though that if you pick ethernet and stitched ethernet is right, the right thing still happens
    • Stitched/VLAN and ExoGENI stitching don't work well together
    • If only a GRE tunnel is a valid link type, leaving the link type as 'any' will fail when you reserve
      • 'any' is treated as stitched by stitcher and the AMs, but stitched constraints are not applied by Jacks
      • Perhaps check all 'any' attributes and apply constraints as though the default (whatever that is) was selected?
        • Perhaps only on submission?
    • Visible indication of what is not allowed when dragging on palette
  • Validate RSpec on submission
    • When extracting RSpec from Jacks, apply some sanity checks
      • See above about 'any' and constraints for default values, on links in particular
      • Warn on duplicated IP address
      • Warn on a link with 'Enable OpenFlow' checked but no controller
  • Any changes that change the rspec cause modified-topology events
    • Support seeing/handling GRE links differently
    • New modified-field event coming to devel 2/18
  • Portal: Expanded editor fails to load in some situations
  • Portal: must reload slice-jacks and Details pages to get ExoGENI login information
  • Duplicate constraints coming from generator
    • Looping over nodes and generating by AM constraint does not go through de-duping code
  • Should be able to set bandwidths on links.

Lower Priority

  • Manifest with linktype of 'vlan' shows in the link properties as link type Other='vlan' instead of 'Stitched Ethernet'
  • Optimize constraint enforcement
  • bind to a PC (i.e be able to set the component_id on a node; could simply be a textbox for now)
  • Portal: support 'create image' action
  • Add a LAN with only 1 node (like shared VLAN)
  • Change node ID changes interface ID
  • Pan / Zoom
  • Show actual path of stitched links
  • Allow moving shared VLAN UI element
  • Allow changing an attribute on multiple nodes/links that originally has different values to the same new value
  • Allow drawing two links between the same two nodes.

3/6/15 update

  • NEW If I draw two xen VMs (or two default-vm) at an IG aggregate, EGRE is a valid link type between these nodes (even though they are at the same AM).
    • Related to the Ethernet constraint bug below?
    • Same bug is true with 2 openvz nodes within a single IG site having GRE link listed as a valid link type
  • The link type checkbox 'Enable Openflow' pops up a text box. The box is meant for the controller URL but is unlabeled.
    • A default value like 'ex: tcp:controller_ip:6633'

2/18/15 update

Required for GEC22

  • Public IP issues
    • FIXED (SE tested on FF/Chrome) RSpec with a public IP when loaded in Jacks does not have the Public Ip checkbox checked.
    • FIXED (SE tested on FF/Chrome) Checking public IP on one node makes the checkbox checked on other nodes that don't have a public IP
  • Constraints
    • Ethernet/LAN should not be an option between sites
      • Jacks bug that constraints don't realize that a 2nd site cannot be same as a first site
        • Note though that if you pick ethernet and stitched ethernet is right, the right thing still happens
    • Stitched/VLAN not option in right places
      • Extend constraint system to limit sites by link type

Required to take Jacks out of Beta

  • 2 Parse errors should not be fatal in Jacks
    • FIXED (AH tested) Node with an interface but no link causes fatal error in Jacks
    • FIXED (SE tested on FF) RSpec with single node on a shared VLAN gives a transform error

Other

  • New 3/3/15: If only a GRE tunnel is a valid link type, leaving the link type as 'any' will fail when you reserve
  • Site ID: Always label a site with the component_manager, if specified.
    • Fixed in roll-out 3/4
  • FIXED (SE tested on FF) Shared VLAN link icon not showing in Firefox
    • Actually 2 issues Jon saw
  • Constraints
    • Visible indication of what is not allowed when dragging on palette
  • Any changes that change the rspec cause modified-topology events
    • Support seeing/handling GRE links differently
    • New modified-field event coming to devel 2/18
  • Add a 'No MAC' checkbox on disk images
    • Allows user custom disk images and EG images to get the nomac flag that otherwise comes only from the constraint generator's config file
  • Portal: Expanded editor fails to load in some situations
  • Portal: must reload slice-jacks and Details pages to get ExoGENI login information
  • Duplicate constraints coming from generator
    • Looping over nodes and generating by AM constraint does not go through de-duping code

Fixed Pre GEC items

  • FIXED: Copy-Paste broken on Firefox
    • Partial fixes coming to devel 2/18, with another case still to do
  • FIXED: Constraints
    • FIXED: ExoSM is always not an option
      • Tom will generate constraints that make ExoSM an option for all, ExoGENI-M4 only an option at ExoSM
        • Don't include ExoSM in list of Ads
        • Add ExoSM as AM type
        • Add explicit constraints for ExoSM and node type, HW type, link type
        • Explicitly add the EG M4 node type
    • FIXED: XOSmall node type forbids some EG sites
    • FIXED: GRE tunnels:
      • Jon will provide context config that says tunnels only among InstaGENI
    • FIXED: Tom: Remove default-vm constraints that mention images

Lower (post-GEC) Priority

  • Optimize constraint enforcement
  • bind to a PC (i.e be able to set the component_id on a node; could simply be a textbox for now)
  • Portal: support 'create image' action
  • Add a LAN with only 1 node (like shared VLAN)
  • Change node ID changes interface ID
  • Pan / Zoom
  • Show actual path of stitched links
  • Allow moving shared VLAN UI element

Constraints

  • extras/constraints in jacks-context config file not included in output. Jon says this is a bug in jacks-context.
    • This impacts the ability to put ExoGENI images in the output because you can't associate those images with ExoGENI resources
    • The workaround, if necessary, is to add the constraints as a post-processing step
  • [Minor] Some constraints are repeated in the jacks-context output.
    • This is due to a loop over nodes in the ads, resulting in repeated constraints showing the same aggregate and image
  • Stitchable sites don't seem to do the right thing in Jacks.
    • Connecting stitchable sites results in GRE & EGRE options, but not stitched.

New issues on 2/6/15

  • WORKING and tested on both FF/Chrome Lab 0 and Lab 1
  • BROKEN IN FIREFOX ONLY Shared VLANS don't show up in requests (I didn't check manifests). That is the box for the link is missing but the line between the node and the box are both there.

HIGH (required to remove beta)

  • GEC22 DEMOS (4 issues):
    • BROKEN Deconflict manifests so we can combine the manifests from multiple AMs.
      • 1/14/15: Mostly working if you specify 'source=devel'.
        • Need to add logic to compare sliver_id to fully uniqify 2 nodes (for ExoGENI), and to keep the 'old' equivalent node if it has a sliver_id and the 'new' node does not.
        • Must refuse to allow picking an AM that is already picked for another site
        • Marshall will confirm portal works with the new semantics
    • For bound requests and all manifest, make sure the site ID is not a number but the site name instead
      • Use site name from component_manager_id if present
      • 1/14/15: Fixed if you specify 'source=devel'. Please test.
      • 1/15/15: Sarah using Chrome on a mac: Tested manifests and seems to work. Having trouble verifying the request version of this bug on the production jacks so I don't have anything to compare the devel version to.
      • 2/6/15: Seems to work for requests, but not for manifests in some situations (Lab1 RSpec; two nodes with the same name at different aggregates)
  • GEC22 TUTORIALS (extra 4 issues):
    • A basic working constraint system with reasonable defaults JON WORKING ON THIS
      • includes being able to get a reasonable list of available OSes (perhaps constructed from the advertisement)
      • Limit aggregates to bind to things Jacks understands (for example, don't include OpenFlow aggregates)
      • selecting the appropriate default link type for inter-aggregate links
        • i.e. use EGRE if stitching is not available between 2 IG sites, stitching if it is available, and always stitching for EG sites
      • cannot add an IG VM/raw-pc to a site that is EG and vice-versa
    • OpenFlow topologies with the OVS image:
    • Plus see 1 portal item marked "GEC22" below
    • NEW Have to reload entire Slice page to get login information for ExoGENI only.
      • A portal issue
  • Others (3 issues)
    • BROKEN ON FF ONLY Copy-paste of text (e.g. hostname)
      • This is a known Firefox issue. Instead of disabled="disabled" you need to specify readonly="readonly". This seems to work for Chrome as well. So make the hostname box (or other non-editable box) readonly="readonly".
      • 1/14/15: Fixed if you specify source=devel. Please test.
      • 1/15/15: Sarah on Chrome on a mac: FIXED.
      • 2/6/15: NOT fixed on Firefox on a mac. FIXED on Chrome on a mac.
    • Proper handling of lan/vlan toggling
      • Will show a single link type that covers both LAN & VLAN and do the right thing under the covers.
    • Make sure we can still reserve at OpenFlow aggregates using canned RSpecs
    • REQUIRES CHANGE BY SW GROUP NEW If using GRE/EGRE tunnels, prompt the user to include IP addresses on the links.

MED

Items here and below are not required to get Jacks out of beta, may be needed by GEC22.

  • UI cleanup items on Jon's list (including changing the router image)
    • 1/14/15: Most are done, including router image.
  • FireFox formatting JON WORKING ON THIS
    • 1/14/14: Most are done.
  • bind to a PC (i.e be able to set the component_id on a node; could simply be a textbox for now)

LOW

  • Change node ID changes interface ID

Jacks enhancements

HIGH

  • GEC22 NEW Bigger Jacks pane on both Add Resources and Manifest views.
    • A portal bug, being worked
  • NEW Copy-paste of NODES (see description under (1) below)
    • Jacks App solution in process
  • Remove a node from a LAN
    • FIXED on Firefox
  • Full AM API v3 support including
    • This is a portal issue
    • view and renew slice expiration times
    • POA commands including restart, reload, create image
  • DONE? ability to specify the URL/URN for a custom OS

MED

  • Add a LAN with only 1 node (like shared VLAN)
  • NEW Substantial node type features (see description under (2) below)
  • NEW On the listresources.php page, have a combined manifest viewer (like on the slice page) which shows status.
    • A portal bug
  • NEW Auto-IP
    • Fixed for some cases?
  • NEW Validate user entered data such as IP addresses (e.g. both ends of link have IP and on same network). Warn if not make sense.

LOW

  • Pan / Zoom
  • Show actual path of stitched links
  • Allow moving shared VLAN UI element
  • Support non ASCII OS ???

Explanation of NEW items from above

1) Add "copy and paste" to Jacks (Flack has had it for a long time).

  • Without copy and paste you introduce a huge risk for introducing manual errors.
  • But a big reason we want this is that we are trying to encourage experimenters to define standard node types (or templates if you prefer) which they replicate as needed. Copy and paste is a cheap way of getting this feature.
  • Priority: Not required to get out Jacks out of beta, but top of the list after that

2) We'd also like to discuss adding more substantial support for node types with Jon. We envision two distinct possibilities:

a) Support for Pre-canned node types (a button with a custom icon, OS image, install/execute scripts, even an OF controller that serves a particular function such as "firewall") b) Support for Custom node types. Allow the experimenter to define their own node types (icon, image, install/execute, etc for a a particular function) on the fly.

  • Priority: Nice to have. We like to discuss this with him so it's in the back of his head as he's developing new features.

Jon is also working on (according to Aaron's notes from when we last spoke)

  • cleanup Jacks internals
  • clean up Jacks programmatic interface
  • Jacks shares more semantic information about nodes with the embedding page
  • apply/check constraints when dragging nodes and links, not just when picking an attribute from a drop-down list
  • avoid silent exceptions that cause blank screen

FIXED items

Bugs from Sarah testing source=devel on Chrome on 1/15/15

  • FIXED BLOCKER: In Firefox I getting a "Jacks loading..." or "Loading..." message in both the request and manifest views.
  • FIXED The aggregate pulldown for the single AM case is very narrow (just big enough to fit "any")
  • FIXED Why is the single AM case different from the multi-AM case? It's not clear to me that that's a good thing.
  • FIXED I was confused by the giant message to "Click to select". Clicking that message does nothing. I think it's trying to tell you to click on an icon on the right to select the icon.
  • FIXED Make saved RSpec format prettified
    • 2/6/15: Sarah on Firefox and Chrome on a mac: FIXED
  • FIXED ExoSM nodes don't highlight as Green when ready
    • Requires a Jacks fix and then a portal fix
    • Jon must return sliver_id with all topology information
  • FIXED Removing install/execute scripts from Jacks doesn't modify the RSPec (see proto-ch 1254)
    • If I do the following:
      1. Load an RSpec from a URL (I did: http://www.gpolab.bbn.com/experiment-support/HelloGENI/hellogeni.rspec)
      2. Edit the RSpec (I removed the install and execute scripts from both nodes using the Remove button)
      3. View, Download, or Reserve the RSpec
    • The resulting RSpec includes the install and execute scripts even though they are deleted in the GUI.
    • 1/14/15: Fixed if you specify source=devel. Please test.
    • 1/15/15: Sarah on Chrome on a mac: FIXED.
    • 2/6/15: Sarah on Firefox and Chrome on a mac: FIXED
  • FIXED Jacks sshes into wrong node when there are duplicate client_ids in a slice (see proto-ch 1257)
    • 2/6/15: Sarah tested on both chrome and ff.