16 | | Attempt to access the ExoGENI AM at https://bbn-hn.exogeni.gpolab.bbn.com:11443/orca/xmlrpc resulted in connection refused. Using ExoSM as suggested by Ilia. |
| 19 | Attempt to access the ExoGENI AM at https://bbn-hn.exogeni.gpolab.bbn.com:11443/orca/xmlrpc resulted in connection refused. Using ExoSM as suggested by Ilia. |
| 20 | |
| 21 | |
| 22 | |
| 23 | == GPO Dev Team Analysis == |
| 24 | |
| 25 | The GPO Software development team analyzed the results from this test run and came up with the following list of Known issues with ExoGENI's AM API implementation. |
| 26 | |
| 27 | Priorities (from Trac): blocker, critical, major, minor, trivial [[BR]] |
| 28 | Status: where things stand - open, closed, etc. [[BR]] |
| 29 | Categories: AM API, RSpec, Acceptance Test, Stitching, Question [[BR]] |
| 30 | Issues are ordered by priority, and by relative importance within priority. |
| 31 | |
| 32 | ==== Critical Issues ==== |
| 33 | || ID || Priority || Status || Category || Description || |
| 34 | || 1 || critical || || AM API || !ListResources at ExoSM returns multiple advertisement RSpecs. This is neither valid XML nor valid RSpec. || |
| 35 | || 2 || critical || || RSpec || ExoGENI advertises RSpec GENI v3 support in !GetVersion, but the RSpecs (ad & manifest) are ProtoGENI v2. Make the RSpecs use the GENI v3 schema. (As a fallback, change the !GetVersion return).|| |
| 36 | || 3 || critical || || RSpec || missing schemaLocation declarations for all used schemas || |
| 37 | || 4|| critical || || RSpec || All Ad & manifest RSpecs must pass rspeclint, but currently do not || |
| 38 | |
| 39 | ==== Major Issues ==== |
| 40 | || ID || Priority || Status || Category || Description || |
| 41 | || 5 || major || || AM API || !GetVersion: The top-level (parallel to code and value) is missing a `geni_api` entry. Without this entry AM API v1 clients can't discover why they can't talk to this aggregate. || |
| 42 | || 6 || major || || AM API || !SliverStatus: Return at least a `geni_resources` entry that is empty, if not including all contained slivers. || |
| 43 | || 7 || major || || Acceptance Test || There is no 'extensions' field listed in `geni_request_rspec_versions` and `geni_ad_rspec_version` in the return from !GetVersion. Add it, including all used extensions. || |
| 44 | || 8 || major || || Acceptance Test || !ListResources does not handle the `geni_compressed` flag properly. The return value is always compressed, even if `geni_compressed` is set to False.|| |
| 45 | |
| 46 | ==== Minor Issues ==== |
| 47 | || ID || Priority || Status || Category || Description || |
| 48 | || 9 || minor || || RSpec || Does ExoGENI honor the sliver_type or ignore it? It seems to give a VM for a `sliver_type` of "raw_pc". || |
| 49 | || 10 || minor || || AM API || !CreateSliver results in a !NullPointerException if a link references a non-existent node. {{{<link client_id="center"> <interface_ref client_id="geni1:0"/> <interface_ref client_id="geni2:0"/> </link>}}} when node {{{geni1}}} is not in the request. || |
| 50 | || 11 || minor || || Stitching || Test stitching schema validity by using Omni's libstitch. Multiple undocumented conventions about IDs may need to be followed. || |
| 51 | || 12 || minor || || RSpec || You list 1 node with a hardware_type 'vm-cloud'. What about at least listing multiple sliver_types for the different EC2 style VM types, with the appropriate type_slots value for each sliver type? || |
| 52 | || 13 || minor || || RSpec || You list 1 node for each of 2 or 3 different hardware types, all for the same site. Is information duplicated? Could these reasonably be combined in any way? || |
| 53 | || 14 || minor || || RSpec || The dataplane IP address is missing from the manifest RSpec || |
| 54 | || 15 || minor || || RSpec || Add more info to the <interface> tag in manifest: PG includes the <ip> sub-element with IP, netmask, type || |
| 55 | || 16 || minor || || RSpec || Change structure of component_manager_id. AM URNs should be of the form <prefix>+name+authority+am. So use prefix+<SM site name+domain name>+authority+am || |
| 56 | || 17 || minor || || RSpec || Ad component_manager_id values are unlike those in sample request RSpec. Shouldn't this break something? Make these match. || |
| 57 | || 18 || minor || || RSpec || client_id values are changed in the manifest from the request (add a UUID), making it hard for experimenters/tools to reconcile. Can these be kept the same? || |
| 58 | || 19 || minor || || RSpec || Add more information to the RSpec if possible: `<component_manager>` sub-element on links, indicating the 2 AMs that control the endpoints of this link. || |
| 59 | || 20 || minor || || RSpec || Add more information to the RSpec if possible: `<property>` sub-element on links specifying dest_id and source_id || |
| 60 | || 21 || minor || || RSpec || Add more info / check form of interface `component_id`. Compare to PG form: prefix+site+interface+node/switch name:port #:name of remote, e.g. emulab.net+interface+procurve=pgeni-wash:10:ion || |
| 61 | || 22 || minor || || RSpec || Simplify sliver ID. How about prefix+<site>+sliver+AM name + slice name+client_id? || |
| 62 | || 23 || minor || || RSpec || Node component_id is the site name, making all reservations part of this same node. Maybe change exclusive to False? || |
| 63 | || 24 || minor || || Question || Are the assigned `client_id` values from the RSpec available within the running Node/vm? || |
| 64 | || 25 || minor || || Stitching RSpec || Stitching extension says scheduled=true. Probably should be false. || |
| 65 | || 26 || minor || || Stitching RSpec || stitching extension has same component_id for both port and link. Seems wrong. Maybe OK? PG has the link ID being the ID of the interface of the corresponding node. So this part of the Orca ad seems like a mistake.|| |
| 66 | || 27 || minor || || RSpec || The starlight Ad RSpec lists hardware_type name=orca-transit-net twice. Not a real problem, just not what he intended probably. || |
| 67 | |
| 68 | |
| 69 | |
| 70 | |
| 71 | == AM API Acceptance Tests == |
| 72 | |
| 73 | This section captures the GENI AM API Acceptance Test results using the ORCA ExoSM and GPO ExoGENI rack compute resources. |
| 74 | |
| 75 | * XML files used are attached: [http://groups.geni.net/geni/attachment/wiki/GENIRacksHome/ExogeniRacks/AggregateSurvey/request.xml request.xml], [http://groups.geni.net/geni/attachment/wiki/GENIRacksHome/ExogeniRacks/AggregateSurvey/request1.xml request1.xml], [http://groups.geni.net/geni/attachment/wiki/GENIRacksHome/ExogeniRacks/AggregateSurvey/request2.xml request2.xml], [http://groups.geni.net/geni/attachment/wiki/GENIRacksHome/ExogeniRacks/AggregateSurvey/request3.xml request3.xml],and [http://groups.geni.net/geni/attachment/wiki/GENIRacksHome/ExogeniRacks/AggregateSurvey/bad.xml bad.xml]. |
| 76 | * Omni_config used is [http://groups.geni.net/geni/attachment/wiki/GENIRacksHome/ExogeniRacks/AggregateSurvey/orca-acceptance-log.txt attached] |
| 77 | * Acceptance test logs are [http://groups.geni.net/geni/attachment/wiki/GENIRacksHome/ExogeniRacks/AggregateSurvey/orca-acceptance-log.txt attached]. |
| 78 | |
| 79 | Acceptance tests output: |
| 80 | {{{ |
| 81 | $ ./am_api_accept.py -a am-undertest -V 2 --debug |
| 82 | F.F...FNot wellformed XML: junk after document element: line 42, column 0 |
| 83 | F..Not wellformed XML: junk after document element: line 42, column 0 |
| 84 | FNot wellformed XML: not well-formed (invalid token): line 1, column 12 |
| 85 | F. |
| 86 | ====================================================================== |
| 87 | FAIL: test_CreateSliver: Passes if the sliver creation workflow succeeds. Use --rspec-file to replace the default request RSpec. |
| 88 | ---------------------------------------------------------------------- |
| 89 | Traceback (most recent call last): |
| 90 | File "./am_api_accept.py", line 625, in test_CreateSliver |
| 91 | self.subtest_CreateSliverWorkflow() |
| 92 | File "./am_api_accept.py", line 659, in subtest_CreateSliverWorkflow |
| 93 | self.assertRspecType( request, 'request') |
| 94 | File "/home/lnevers/gcf-1.6.1/src/omni_unittest.py", line 165, in assertRspecType |
| 95 | raise WrongRspecType, msg |
| 96 | WrongRspecType: RSpec expected to have type 'request' but schema was not correct. |
| 97 | |
| 98 | ====================================================================== |
| 99 | FAIL: test_CreateSliverWorkflow_multiSlice: Do CreateSliver workflow with multiple slices and ensure can not do ListResources on slices with the wrong credential. |
| 100 | ---------------------------------------------------------------------- |
| 101 | Traceback (most recent call last): |
| 102 | File "./am_api_accept.py", line 931, in test_CreateSliverWorkflow_multiSlice |
| 103 | manifest[i] = "".join(self.subtest_CreateSliver( slicenames[i] )) |
| 104 | File "./am_api_accept.py", line 1116, in subtest_CreateSliver |
| 105 | "but instead nothing returned. AM returned:\n %s"%text) |
| 106 | File "/home/lnevers/gcf-1.6.1/src/omni_unittest.py", line 112, in assertIsNotNone |
| 107 | raise NotNoneAssertionError, msg |
| 108 | NotNoneAssertionError: Return from 'CreateSliver'expected to be XML file but instead nothing returned. AM returned: |
| 109 | Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+acclne-1500470 expires within 1 day(s) on 2012-03-21 21:00:48 UTC |
| 110 | Asked https://geni.renci.org:11443/orca/xmlrpc to reserve resources. No manifest Rspec returned. ERROR: Exception encountered: java.lang.NullPointerException |
| 111 | |
| 112 | ====================================================================== |
| 113 | FAIL: test_GetVersion: Passes if a 'GetVersion' returns an XMLRPC struct containing 'geni_api' and other parameters defined in Change Set A. |
| 114 | ---------------------------------------------------------------------- |
| 115 | Traceback (most recent call last): |
| 116 | File "./am_api_accept.py", line 271, in test_GetVersion |
| 117 | self.assertKeyValueType( 'GetVersion', agg, vers, 'extensions', type([]) ) |
| 118 | File "/home/lnevers/gcf-1.6.1/src/omni_unittest.py", line 208, in assertKeyValueType |
| 119 | % (method, aggName, key, str(dictionary))) |
| 120 | AssertionError: Return from 'GetVersion' at https://geni.renci.org:11443/orca/xmlrpc expected to have entry 'extensions' but instead returned: |
| 121 | {'namespace': 'http://www.protogeni.net/resources/rspec/2', 'version': '3', 'type': 'GENI', 'schema': 'http://www.protogeni.net/resources/rspec/2/request.xsd'} |
| 122 | ... edited for length ... |
| 123 | |
| 124 | ====================================================================== |
| 125 | FAIL: test_ListResources: Passes if 'ListResources' returns an advertisement RSpec. |
| 126 | ---------------------------------------------------------------------- |
| 127 | Traceback (most recent call last): |
| 128 | File "./am_api_accept.py", line 328, in test_ListResources |
| 129 | self.subtest_ListResources() |
| 130 | File "./am_api_accept.py", line 602, in subtest_ListResources |
| 131 | % (agg_name, rspec[:100])) |
| 132 | AssertionError: Return from 'ListResources' at aggregate 'unspecified_AM_URN' expected to be XML but instead returned: |
| 133 | <?xml version="1.0" encoding="UTF-8" standalone="yes"?> |
| 134 | <rspec xmlns:ns2="http://hpn.east.isi.edu/rs |
| 135 | ... edited for length ... |
| 136 | |
| 137 | ====================================================================== |
| 138 | FAIL: test_ListResources_geni_available: Passes if 'ListResources' returns an advertisement RSpec. |
| 139 | ---------------------------------------------------------------------- |
| 140 | Traceback (most recent call last): |
| 141 | File "./am_api_accept.py", line 342, in test_ListResources_geni_available |
| 142 | self.subtest_ListResources() |
| 143 | File "./am_api_accept.py", line 602, in subtest_ListResources |
| 144 | % (agg_name, rspec[:100])) |
| 145 | AssertionError: Return from 'ListResources' at aggregate 'unspecified_AM_URN' expected to be XML but instead returned: |
| 146 | <?xml version="1.0" encoding="UTF-8" standalone="yes"?> |
| 147 | <rspec xmlns:ns2="http://hpn.east.isi.edu/rs |
| 148 | ... edited for length ... |
| 149 | |
| 150 | ====================================================================== |
| 151 | FAIL: test_ListResources_geni_compressed: Passes if 'ListResources' returns an advertisement RSpec. |
| 152 | ---------------------------------------------------------------------- |
| 153 | Traceback (most recent call last): |
| 154 | File "./am_api_accept.py", line 335, in test_ListResources_geni_compressed |
| 155 | self.subtest_ListResources() |
| 156 | File "./am_api_accept.py", line 602, in subtest_ListResources |
| 157 | % (agg_name, rspec[:100])) |
| 158 | AssertionError: Return from 'ListResources' at aggregate 'unspecified_AM_URN' expected to be XML but instead returned: |
| 159 | eAHtXetv2zi2/z5/hZH77fo68qPNtEbTwbbNdmfRKRZ93PthsSgUR3WEceRAktP2v798iIeHEiVTJOXYUwZoY8UieXh4+ON5kXzx |
| 160 | ... edited for length ... |
| 161 | |
| 162 | ---------------------------------------------------------------------- |
| 163 | Ran 13 tests in 240.826s |
| 164 | |
| 165 | FAILED (failures=6) |
| 166 | |
| 167 | }}} |
| 168 | |
| 169 | |
| 170 | Two tests were run for individual AM API Compliance test based on GPO Dev request, their results are captured in this page. |
| 171 | |
| 172 | ''' test_ListResources_geni_compressed only ''' |
| 173 | |
| 174 | Test output: |
| 175 | |
| 176 | {{{ |
| 177 | $ ./am_api_accept.py -a am-undertest -V 2 --debug Test.test_ListResources_geni_compressed |
| 178 | Not wellformed XML: syntax error: line 1, column 0 |
| 179 | F |
| 180 | ====================================================================== |
| 181 | FAIL: test_ListResources_geni_compressed: Passes if 'ListResources' returns an advertisement RSpec. |
| 182 | ---------------------------------------------------------------------- |
| 183 | Traceback (most recent call last): |
| 184 | File "./am_api_accept.py", line 335, in test_ListResources_geni_compressed |
| 185 | self.subtest_ListResources() |
| 186 | File "./am_api_accept.py", line 602, in subtest_ListResources |
| 187 | % (agg_name, rspec[:100])) |
| 188 | AssertionError: Return from 'ListResources' at aggregate 'unspecified_AM_URN' expected to be XML but instead returned: |
| 189 | eAHtXVtv2zq2ft+/wsh5Oz6OfGkzrdF0MG0znT3oLgZt9zkPg0GhOKojbFsOJLmXf394ERcXJUqmSMqxdxmgjRWL5OLi4sd1I/ni |
| 190 | ... edited for length ... |
| 191 | |
| 192 | ---------------------------------------------------------------------- |
| 193 | Ran 1 test in 5.628s |
| 194 | |
| 195 | FAILED (failures=1) |
| 196 | }}} |
| 197 | |
| 198 | Files attached are: [http://groups.geni.net/geni/attachment/wiki/GENIRacksHome/ExogeniRacks/AggregateSurvey/acceptance-listresources.log acceptance-listresource.log] and a the tee output for the same test [http://groups.geni.net/geni/attachment/wiki/GENIRacksHome/ExogeniRacks/AggregateSurvey/test_ListResources_geni_compressed-log.txt test_ListResources_geni_compressed-log.txt]. |
| 199 | |
| 200 | |
| 201 | |
660 | | == AM API Acceptance Tests == |
661 | | |
662 | | This section captures the GENI AM API Acceptance Test results using the ORCA ExoSM and GPO ExoGENI rack compute resources. |
663 | | |
664 | | * XML files used are attached: [http://groups.geni.net/geni/attachment/wiki/GENIRacksHome/ExogeniRacks/AggregateSurvey/request.xml request.xml], [http://groups.geni.net/geni/attachment/wiki/GENIRacksHome/ExogeniRacks/AggregateSurvey/request1.xml request1.xml], [http://groups.geni.net/geni/attachment/wiki/GENIRacksHome/ExogeniRacks/AggregateSurvey/request2.xml request2.xml], [http://groups.geni.net/geni/attachment/wiki/GENIRacksHome/ExogeniRacks/AggregateSurvey/request3.xml request3.xml],and [http://groups.geni.net/geni/attachment/wiki/GENIRacksHome/ExogeniRacks/AggregateSurvey/bad.xml bad.xml]. |
665 | | * Omni_config used is [http://groups.geni.net/geni/attachment/wiki/GENIRacksHome/ExogeniRacks/AggregateSurvey/orca-acceptance-log.txt attached] |
666 | | * Acceptance test logs are [http://groups.geni.net/geni/attachment/wiki/GENIRacksHome/ExogeniRacks/AggregateSurvey/orca-acceptance-log.txt attached]. |
667 | | |
668 | | Acceptance tests output: |
669 | | {{{ |
670 | | $ ./am_api_accept.py -a am-undertest -V 2 --debug |
671 | | F.F...FNot wellformed XML: junk after document element: line 42, column 0 |
672 | | F..Not wellformed XML: junk after document element: line 42, column 0 |
673 | | FNot wellformed XML: not well-formed (invalid token): line 1, column 12 |
674 | | F. |
675 | | ====================================================================== |
676 | | FAIL: test_CreateSliver: Passes if the sliver creation workflow succeeds. Use --rspec-file to replace the default request RSpec. |
677 | | ---------------------------------------------------------------------- |
678 | | Traceback (most recent call last): |
679 | | File "./am_api_accept.py", line 625, in test_CreateSliver |
680 | | self.subtest_CreateSliverWorkflow() |
681 | | File "./am_api_accept.py", line 659, in subtest_CreateSliverWorkflow |
682 | | self.assertRspecType( request, 'request') |
683 | | File "/home/lnevers/gcf-1.6.1/src/omni_unittest.py", line 165, in assertRspecType |
684 | | raise WrongRspecType, msg |
685 | | WrongRspecType: RSpec expected to have type 'request' but schema was not correct. |
686 | | |
687 | | ====================================================================== |
688 | | FAIL: test_CreateSliverWorkflow_multiSlice: Do CreateSliver workflow with multiple slices and ensure can not do ListResources on slices with the wrong credential. |
689 | | ---------------------------------------------------------------------- |
690 | | Traceback (most recent call last): |
691 | | File "./am_api_accept.py", line 931, in test_CreateSliverWorkflow_multiSlice |
692 | | manifest[i] = "".join(self.subtest_CreateSliver( slicenames[i] )) |
693 | | File "./am_api_accept.py", line 1116, in subtest_CreateSliver |
694 | | "but instead nothing returned. AM returned:\n %s"%text) |
695 | | File "/home/lnevers/gcf-1.6.1/src/omni_unittest.py", line 112, in assertIsNotNone |
696 | | raise NotNoneAssertionError, msg |
697 | | NotNoneAssertionError: Return from 'CreateSliver'expected to be XML file but instead nothing returned. AM returned: |
698 | | Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+acclne-1500470 expires within 1 day(s) on 2012-03-21 21:00:48 UTC |
699 | | Asked https://geni.renci.org:11443/orca/xmlrpc to reserve resources. No manifest Rspec returned. ERROR: Exception encountered: java.lang.NullPointerException |
700 | | |
701 | | ====================================================================== |
702 | | FAIL: test_GetVersion: Passes if a 'GetVersion' returns an XMLRPC struct containing 'geni_api' and other parameters defined in Change Set A. |
703 | | ---------------------------------------------------------------------- |
704 | | Traceback (most recent call last): |
705 | | File "./am_api_accept.py", line 271, in test_GetVersion |
706 | | self.assertKeyValueType( 'GetVersion', agg, vers, 'extensions', type([]) ) |
707 | | File "/home/lnevers/gcf-1.6.1/src/omni_unittest.py", line 208, in assertKeyValueType |
708 | | % (method, aggName, key, str(dictionary))) |
709 | | AssertionError: Return from 'GetVersion' at https://geni.renci.org:11443/orca/xmlrpc expected to have entry 'extensions' but instead returned: |
710 | | {'namespace': 'http://www.protogeni.net/resources/rspec/2', 'version': '3', 'type': 'GENI', 'schema': 'http://www.protogeni.net/resources/rspec/2/request.xsd'} |
711 | | ... edited for length ... |
712 | | |
713 | | ====================================================================== |
714 | | FAIL: test_ListResources: Passes if 'ListResources' returns an advertisement RSpec. |
715 | | ---------------------------------------------------------------------- |
716 | | Traceback (most recent call last): |
717 | | File "./am_api_accept.py", line 328, in test_ListResources |
718 | | self.subtest_ListResources() |
719 | | File "./am_api_accept.py", line 602, in subtest_ListResources |
720 | | % (agg_name, rspec[:100])) |
721 | | AssertionError: Return from 'ListResources' at aggregate 'unspecified_AM_URN' expected to be XML but instead returned: |
722 | | <?xml version="1.0" encoding="UTF-8" standalone="yes"?> |
723 | | <rspec xmlns:ns2="http://hpn.east.isi.edu/rs |
724 | | ... edited for length ... |
725 | | |
726 | | ====================================================================== |
727 | | FAIL: test_ListResources_geni_available: Passes if 'ListResources' returns an advertisement RSpec. |
728 | | ---------------------------------------------------------------------- |
729 | | Traceback (most recent call last): |
730 | | File "./am_api_accept.py", line 342, in test_ListResources_geni_available |
731 | | self.subtest_ListResources() |
732 | | File "./am_api_accept.py", line 602, in subtest_ListResources |
733 | | % (agg_name, rspec[:100])) |
734 | | AssertionError: Return from 'ListResources' at aggregate 'unspecified_AM_URN' expected to be XML but instead returned: |
735 | | <?xml version="1.0" encoding="UTF-8" standalone="yes"?> |
736 | | <rspec xmlns:ns2="http://hpn.east.isi.edu/rs |
737 | | ... edited for length ... |
738 | | |
739 | | ====================================================================== |
740 | | FAIL: test_ListResources_geni_compressed: Passes if 'ListResources' returns an advertisement RSpec. |
741 | | ---------------------------------------------------------------------- |
742 | | Traceback (most recent call last): |
743 | | File "./am_api_accept.py", line 335, in test_ListResources_geni_compressed |
744 | | self.subtest_ListResources() |
745 | | File "./am_api_accept.py", line 602, in subtest_ListResources |
746 | | % (agg_name, rspec[:100])) |
747 | | AssertionError: Return from 'ListResources' at aggregate 'unspecified_AM_URN' expected to be XML but instead returned: |
748 | | eAHtXetv2zi2/z5/hZH77fo68qPNtEbTwbbNdmfRKRZ93PthsSgUR3WEceRAktP2v798iIeHEiVTJOXYUwZoY8UieXh4+ON5kXzx |
749 | | ... edited for length ... |
750 | | |
751 | | ---------------------------------------------------------------------- |
752 | | Ran 13 tests in 240.826s |
753 | | |
754 | | FAILED (failures=6) |
755 | | |
756 | | }}} |
757 | | |
758 | | |
759 | | Two tests were run for individual AM API Compliance test based on GPO Dev request, their results are captured in this page. |
760 | | |
761 | | ''' test_ListResources_geni_compressed only ''' |
762 | | |
763 | | Test output: |
764 | | |
765 | | {{{ |
766 | | $ ./am_api_accept.py -a am-undertest -V 2 --debug Test.test_ListResources_geni_compressed |
767 | | Not wellformed XML: syntax error: line 1, column 0 |
768 | | F |
769 | | ====================================================================== |
770 | | FAIL: test_ListResources_geni_compressed: Passes if 'ListResources' returns an advertisement RSpec. |
771 | | ---------------------------------------------------------------------- |
772 | | Traceback (most recent call last): |
773 | | File "./am_api_accept.py", line 335, in test_ListResources_geni_compressed |
774 | | self.subtest_ListResources() |
775 | | File "./am_api_accept.py", line 602, in subtest_ListResources |
776 | | % (agg_name, rspec[:100])) |
777 | | AssertionError: Return from 'ListResources' at aggregate 'unspecified_AM_URN' expected to be XML but instead returned: |
778 | | eAHtXVtv2zq2ft+/wsh5Oz6OfGkzrdF0MG0znT3oLgZt9zkPg0GhOKojbFsOJLmXf394ERcXJUqmSMqxdxmgjRWL5OLi4sd1I/ni |
779 | | ... edited for length ... |
780 | | |
781 | | ---------------------------------------------------------------------- |
782 | | Ran 1 test in 5.628s |
783 | | |
784 | | FAILED (failures=1) |
785 | | }}} |
786 | | |
787 | | Files attached are: [http://groups.geni.net/geni/attachment/wiki/GENIRacksHome/ExogeniRacks/AggregateSurvey/acceptance-listresources.log acceptance-listresource.log] and a the tee output for the same test [http://groups.geni.net/geni/attachment/wiki/GENIRacksHome/ExogeniRacks/AggregateSurvey/test_ListResources_geni_compressed-log.txt test_ListResources_geni_compressed-log.txt]. |
788 | | |
789 | | == GPO Dev Team Analysis == |
790 | | |
791 | | The GPO Software development team analyzed the results from this test run and came up with the following list of Known issues with ExoGENI's AM API implementation. |
792 | | |
793 | | Priorities (from Trac): blocker, critical, major, minor, trivial [[BR]] |
794 | | Status: where things stand - open, closed, etc. [[BR]] |
795 | | Categories: AM API, RSpec, Acceptance Test, Stitching, Question [[BR]] |
796 | | Issues are ordered by priority, and by relative importance within priority. |
797 | | |
798 | | ==== Critical Issues ==== |
799 | | || ID || Priority || Status || Category || Description || |
800 | | || 1 || critical || || AM API || !ListResources at ExoSM returns multiple advertisement RSpecs. This is neither valid XML nor valid RSpec. || |
801 | | || 2 || critical || || RSpec || ExoGENI advertises RSpec GENI v3 support in !GetVersion, but the RSpecs (ad & manifest) are ProtoGENI v2. Make the RSpecs use the GENI v3 schema. (As a fallback, change the !GetVersion return).|| |
802 | | || 3 || critical || || RSpec || missing schemaLocation declarations for all used schemas || |
803 | | || 4|| critical || || RSpec || All Ad & manifest RSpecs must pass rspeclint, but currently do not || |
804 | | |
805 | | ==== Major Issues ==== |
806 | | || ID || Priority || Status || Category || Description || |
807 | | || 5 || major || || AM API || !GetVersion: The top-level (parallel to code and value) is missing a `geni_api` entry. Without this entry AM API v1 clients can't discover why they can't talk to this aggregate. || |
808 | | || 6 || major || || AM API || !SliverStatus: Return at least a `geni_resources` entry that is empty, if not including all contained slivers. || |
809 | | || 7 || major || || Acceptance Test || There is no 'extensions' field listed in `geni_request_rspec_versions` and `geni_ad_rspec_version` in the return from !GetVersion. Add it, including all used extensions. || |
810 | | || 8 || major || || Acceptance Test || !ListResources does not handle the `geni_compressed` flag properly. The return value is always compressed, even if `geni_compressed` is set to False.|| |
811 | | |
812 | | ==== Minor Issues ==== |
813 | | || ID || Priority || Status || Category || Description || |
814 | | || 9 || minor || || RSpec || Does ExoGENI honor the sliver_type or ignore it? It seems to give a VM for a `sliver_type` of "raw_pc". || |
815 | | || 10 || minor || || AM API || !CreateSliver results in a !NullPointerException if a link references a non-existent node. {{{<link client_id="center"> <interface_ref client_id="geni1:0"/> <interface_ref client_id="geni2:0"/> </link>}}} when node {{{geni1}}} is not in the request. || |
816 | | || 11 || minor || || Stitching || Test stitching schema validity by using Omni's libstitch. Multiple undocumented conventions about IDs may need to be followed. || |
817 | | || 12 || minor || || RSpec || You list 1 node with a hardware_type 'vm-cloud'. What about at least listing multiple sliver_types for the different EC2 style VM types, with the appropriate type_slots value for each sliver type? || |
818 | | || 13 || minor || || RSpec || You list 1 node for each of 2 or 3 different hardware types, all for the same site. Is information duplicated? Could these reasonably be combined in any way? || |
819 | | || 14 || minor || || RSpec || The dataplane IP address is missing from the manifest RSpec || |
820 | | || 15 || minor || || RSpec || Add more info to the <interface> tag in manifest: PG includes the <ip> sub-element with IP, netmask, type || |
821 | | || 16 || minor || || RSpec || Change structure of component_manager_id. AM URNs should be of the form <prefix>+name+authority+am. So use prefix+<SM site name+domain name>+authority+am || |
822 | | || 17 || minor || || RSpec || Ad component_manager_id values are unlike those in sample request RSpec. Shouldn't this break something? Make these match. || |
823 | | || 18 || minor || || RSpec || client_id values are changed in the manifest from the request (add a UUID), making it hard for experimenters/tools to reconcile. Can these be kept the same? || |
824 | | || 19 || minor || || RSpec || Add more information to the RSpec if possible: `<component_manager>` sub-element on links, indicating the 2 AMs that control the endpoints of this link. || |
825 | | || 20 || minor || || RSpec || Add more information to the RSpec if possible: `<property>` sub-element on links specifying dest_id and source_id || |
826 | | || 21 || minor || || RSpec || Add more info / check form of interface `component_id`. Compare to PG form: prefix+site+interface+node/switch name:port #:name of remote, e.g. emulab.net+interface+procurve=pgeni-wash:10:ion || |
827 | | || 22 || minor || || RSpec || Simplify sliver ID. How about prefix+<site>+sliver+AM name + slice name+client_id? || |
828 | | || 23 || minor || || RSpec || Node component_id is the site name, making all reservations part of this same node. Maybe change exclusive to False? || |
829 | | || 24 || minor || || Question || Are the assigned `client_id` values from the RSpec available within the running Node/vm? || |
830 | | || 25 || minor || || Stitching RSpec || Stitching extension says scheduled=true. Probably should be false. || |
831 | | || 26 || minor || || Stitching RSpec || stitching extension has same component_id for both port and link. Seems wrong. Maybe OK? PG has the link ID being the ID of the interface of the corresponding node. So this part of the Orca ad seems like a mistake.|| |
832 | | || 27 || minor || || RSpec || The starlight Ad RSpec lists hardware_type name=orca-transit-net twice. Not a real problem, just not what he intended probably. || |
833 | | |
834 | | |
835 | | |
836 | | |
837 | | |