Skip to content

Conversation

@lanchongyizu
Copy link
Member

@lanchongyizu lanchongyizu commented Nov 16, 2016

It's related with RackHD/on-http#531.

@RackHD/corecommitters @panpan0000 @iceiilin @keedya @johren

expect(task.options.fileServer).to.equal(fileServerUri);
expect(task.options.baseRoute).to.equal(server + '/api/current');
expect(task.options.templatesRoute).to.equal(server + '/api/current/templates');
expect(task.options.templatesRoute).to.equal(server + '/api/current/nodes/testtarget/templates');

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line is too long.

lib/task.js Outdated
self.renderContext.api.lookups = self.renderContext.api.base + '/lookups';
self.renderContext.api.files = self.renderContext.api.base + '/files';
self.renderContext.api.nodes = self.renderContext.api.base + '/nodes';
self.renderContext.api.templates = self.renderContext.api.nodes + '/' + self.nodeId + '/templates';

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line is too long.

@panpan0000
Copy link
Contributor

:+0: , sounds functional good.

@lanchongyizu lanchongyizu force-pushed the refactor-southbound-template-api branch from f9034fc to 6aa98af Compare November 17, 2016 09:51
var positiveSetParamCommand = {
'commands[1]': 'touch foo.txt', //allow duplicated command
'commands[1].downloadUrl': ['/foo', '/foo123/123/bar'],
'commands[1].downloadUrl': ['http://abc.com/foo', 'http://10.0.0.1:8080/foo123/123/bar', 'www.abc.com/abc'],

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line is too long.

@JenkinsRHD
Copy link
Contributor

BUILD on-tasks #1751 : UNSTABLE

BUILD smoke-test #3799 Error Logs ▼

Test Name: test_list_simple_storage
Error Details: (404)
Reason: Not Found
HTTP response headers: HTTPHeaderDict({'Content-Length': '742', 'X-Powered-By': 'Express', 'Connection': 'keep-alive', 'ETag': 'W/"2e6-R1p0eb9wQS2jPLEGXhEJyA"', 'Date': 'Thu, 17 Nov 2016 10:17:33 GMT', 'Access-Control-Allow-Origin': '*', 'Content-Type': 'application/json; charset=utf-8'})
HTTP response body: {"error":{"code":"Base.1.0.GeneralError","message":"A general error has occurred. See ExtendedInfo for more information.","@Message.ExtendedInfo":[{"@odata.type":"#Message.1.0.0.Message","MessageId":"Base.1.0.Messages.InvalidObject","Description":"Indicates that the object in question is invalid according to the implementation. Examples include a firmware update malformed URI.","Message":"The object at %1 is invalid.","Resolution":"Either the object is malformed or the URI is not correct. Correct the condition and resubmit the request if it failed.","Severity":"Critical"},{"MessageId":"RackHD.1.0.DetailedErrorMessage","Message":"No Catalogs Found for Source (smart).","Description":"Contains the detailed error message contents"}]}}

Stack Trace: Traceback (most recent call last):
File "/usr/lib/python2.7/unittest/case.py", line 331, in run
testMethod()
File "/usr/lib/python2.7/unittest/case.py", line 1043, in runTest
self._testFunc()
File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/case.py", line 296, in testng_method_mistake_capture_func
compatability.capture_type_error(s_func)
File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/compatability/exceptions_2_6.py", line 27, in capture_type_error
func()
File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/case.py", line 350, in func
func(test_case.state.get_state())
File "/home/jenkins/workspace/on-tasks/RackHD/test/tests/api/redfish_1_0/systems_tests.py", line 110, in test_list_simple_storage
redfish().list_simple_storage(dataId)
File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_redfish_1_0/apis/redfishv_api.py", line 4047, in list_simple_storage
callback=params.get('callback'))
File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_redfish_1_0/api_client.py", line 322, in call_api
response_type, auth_settings, callback)
File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_redfish_1_0/api_client.py", line 149, in __call_api
post_params=post_params, body=body)
File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_redfish_1_0/api_client.py", line 342, in request
headers=headers)
File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_redfish_1_0/rest.py", line 184, in GET
query_params=query_params)
File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_redfish_1_0/rest.py", line 177, in request
raise ApiException(http_resp=r)
ApiException: (404)
Reason: Not Found
HTTP response headers: HTTPHeaderDict({'Content-Length': '742', 'X-Powered-By': 'Express', 'Connection': 'keep-alive', 'ETag': 'W/"2e6-R1p0eb9wQS2jPLEGXhEJyA"', 'Date': 'Thu, 17 Nov 2016 10:17:33 GMT', 'Access-Control-Allow-Origin': '*', 'Content-Type': 'application/json; charset=utf-8'})
HTTP response body: {"error":{"code":"Base.1.0.GeneralError","message":"A general error has occurred. See ExtendedInfo for more information.","@Message.ExtendedInfo":[{"@odata.type":"#Message.1.0.0.Message","MessageId":"Base.1.0.Messages.InvalidObject","Description":"Indicates that the object in question is invalid according to the implementation. Examples include a firmware update malformed URI.","Message":"The object at %1 is invalid.","Resolution":"Either the object is malformed or the URI is not correct. Correct the condition and resubmit the request if it failed.","Severity":"Critical"},{"MessageId":"RackHD.1.0.DetailedErrorMessage","Message":"No Catalogs Found for Source (smart).","Description":"Contains the detailed error message contents"}]}}

Test Name: test_catalogs
Error Details: Catalog smart not found in node 582d829ee8e8a47f098372ef!
Stack Trace: Traceback (most recent call last):
File "/usr/lib/python2.7/unittest/case.py", line 331, in run
testMethod()
File "/usr/lib/python2.7/unittest/case.py", line 1043, in runTest
self._testFunc()
File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/case.py", line 296, in testng_method_mistake_capture_func
compatability.capture_type_error(s_func)
File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/compatability/exceptions_2_6.py", line 27, in capture_type_error
func()
File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/case.py", line 350, in func
func(test_case.state.get_state())
File "/home/jenkins/workspace/on-tasks/RackHD/test/tests/api/v2_0/catalogs_tests.py", line 48, in test_catalogs
fail('Catalog {0} not found in node {1}!'.format(source,node.get('id')))
File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/asserts.py", line 220, in fail
raise ASSERTION_ERROR(message)
AssertionError: Catalog smart not found in node 582d829ee8e8a47f098372ef!

});
expect(builtCommands[2]).to.deep.equal({
cmd: 'runSomething', downloadUrl: 'api/downloadScript'
cmd: 'runSomething', downloadUrl: 'http://10.0.0.1:8080/api/downloadScript?nodeId={{context.target}}'

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line is too long.

},
{
command: 'runSomething', downloadUrl: 'api/downloadScript'
command: 'runSomething', downloadUrl: 'http://10.0.0.1:8080/api/downloadScript?nodeId={{context.target}}'

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line is too long.

rackhdCallbackScript: 'esx.rackhdcallback',
esxBootConfigTemplate: 'esx-boot-cfg',
esxBootConfigTemplateUri: '{{api.templates}}/{{options.esxBootConfigTemplate}}',
esxBootConfigTemplateUri: '{{api.templates}}/{{options.esxBootConfigTemplate}}?nodeId={{context.target}}',

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line is too long.


// add script's url in the first command
this.commands[0].downloadUrl = '/api/current/templates/secure_erase.py';
this.commands[0].downloadUrl = '{{api.templates}}/secure_erase.py?nodeId={{context.target}}';

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line is too long.

@JenkinsRHD
Copy link
Contributor

BUILD on-tasks #1754 : UNSTABLE

BUILD smoke-test #3816 Error Logs ▼Test Name: test_list_simple_storage Error Details: (404) Reason: Not Found HTTP response headers: HTTPHeaderDict({'Content-Length': '742', 'X-Powered-By': 'Express', 'Connection': 'keep-alive', 'ETag': 'W/"2e6-R1p0eb9wQS2jPLEGXhEJyA"', 'Date': 'Mon, 21 Nov 2016 10:09:59 GMT', 'Access-Control-Allow-Origin': '*', 'Content-Type': 'application/json; charset=utf-8'}) HTTP response body: {"error":{"code":"Base.1.0.GeneralError","message":"A general error has occurred. See ExtendedInfo for more information.","@Message.ExtendedInfo":[{"@odata.type":"#Message.1.0.0.Message","MessageId":"Base.1.0.Messages.InvalidObject","Description":"Indicates that the object in question is invalid according to the implementation. Examples include a firmware update malformed URI.","Message":"The object at %1 is invalid.","Resolution":"Either the object is malformed or the URI is not correct. Correct the condition and resubmit the request if it failed.","Severity":"Critical"},{"MessageId":"RackHD.1.0.DetailedErrorMessage","Message":"No Catalogs Found for Source (smart).","Description":"Contains the detailed error message contents"}]}}

Stack Trace: Traceback (most recent call last):
File "/usr/lib/python2.7/unittest/case.py", line 331, in run
testMethod()
File "/usr/lib/python2.7/unittest/case.py", line 1043, in runTest
self._testFunc()
File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/case.py", line 296, in testng_method_mistake_capture_func
compatability.capture_type_error(s_func)
File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/compatability/exceptions_2_6.py", line 27, in capture_type_error
func()
File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/case.py", line 350, in func
func(test_case.state.get_state())
File "/home/jenkins/workspace/on-tasks/RackHD/test/tests/api/redfish_1_0/systems_tests.py", line 110, in test_list_simple_storage
redfish().list_simple_storage(dataId)
File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_redfish_1_0/apis/redfishv_api.py", line 4047, in list_simple_storage
callback=params.get('callback'))
File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_redfish_1_0/api_client.py", line 322, in call_api
response_type, auth_settings, callback)
File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_redfish_1_0/api_client.py", line 149, in __call_api
post_params=post_params, body=body)
File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_redfish_1_0/api_client.py", line 342, in request
headers=headers)
File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_redfish_1_0/rest.py", line 184, in GET
query_params=query_params)
File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_redfish_1_0/rest.py", line 177, in request
raise ApiException(http_resp=r)
ApiException: (404)
Reason: Not Found
HTTP response headers: HTTPHeaderDict({'Content-Length': '742', 'X-Powered-By': 'Express', 'Connection': 'keep-alive', 'ETag': 'W/"2e6-R1p0eb9wQS2jPLEGXhEJyA"', 'Date': 'Mon, 21 Nov 2016 10:09:59 GMT', 'Access-Control-Allow-Origin': '*', 'Content-Type': 'application/json; charset=utf-8'})
HTTP response body: {"error":{"code":"Base.1.0.GeneralError","message":"A general error has occurred. See ExtendedInfo for more information.","@Message.ExtendedInfo":[{"@odata.type":"#Message.1.0.0.Message","MessageId":"Base.1.0.Messages.InvalidObject","Description":"Indicates that the object in question is invalid according to the implementation. Examples include a firmware update malformed URI.","Message":"The object at %1 is invalid.","Resolution":"Either the object is malformed or the URI is not correct. Correct the condition and resubmit the request if it failed.","Severity":"Critical"},{"MessageId":"RackHD.1.0.DetailedErrorMessage","Message":"No Catalogs Found for Source (smart).","Description":"Contains the detailed error message contents"}]}}

Test Name: test_catalogs
Error Details: Catalog smart not found in node 5832c6d419d4735809e15ca8!
Stack Trace: Traceback (most recent call last):
File "/usr/lib/python2.7/unittest/case.py", line 331, in run
testMethod()
File "/usr/lib/python2.7/unittest/case.py", line 1043, in runTest
self._testFunc()
File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/case.py", line 296, in testng_method_mistake_capture_func
compatability.capture_type_error(s_func)
File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/compatability/exceptions_2_6.py", line 27, in capture_type_error
func()
File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/case.py", line 350, in func
func(test_case.state.get_state())
File "/home/jenkins/workspace/on-tasks/RackHD/test/tests/api/v2_0/catalogs_tests.py", line 48, in test_catalogs
fail('Catalog {0} not found in node {1}!'.format(source,node.get('id')))
File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/asserts.py", line 220, in fail
raise ASSERTION_ERROR(message)
AssertionError: Catalog smart not found in node 5832c6d419d4735809e15ca8!

Copy link
Contributor

@brianparry brianparry left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@brianparry
Copy link
Contributor

@lanchongyizu I think it would be best to have @anhou or @yyscamper work with you to merge this to make sure all the dependencies are covered.

@anhou
Copy link
Member

anhou commented Nov 22, 2016

@lanchongyizu if this PR had dependency with PR RackHD/on-http#531, at least the depenency PR test should pass.
and if it's possible to run regression test locally or in a separated branch, it's better

@yyscamper
Copy link
Contributor

@lanchongyizu: Forgot to mention you, this description should be changed since now the downloadUrl is full path not relative path:

"description": "Specify the download URL (relative to RackHD southbound API server) if the command needs to download some data or script from RackHD before execution",

"description": "Specify the download URL (relative to RackHD southbound API server) if the command needs to download some data or script from RackHD before execution",
"type": "string",
"pattern": "^/[a-zA-Z0-9+-.#?=\\\/]+"
"minLength": 1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would suggest to keep the pattern and check downloadurl against a valid http URL pattern. There are talks/PRs around changing relative URI to fullpath URL and this check will help people catch errors if a legacy relative URI is used.

Ref: https://github.com/RackHD/RackHD/issues/489#issuecomment-262570418

{
command: 'sudo node get_driveid.js',
downloadUrl: '/api/current/templates/get_driveid.js'
downloadUrl: '{{api.templates}}/get_driveid.js?nodeId={{context.target}}'
Copy link
Contributor

@cgx027 cgx027 Nov 24, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A picky style suggestion. It's more like we leave spaces around(before and after) the render elements, like following example. In this PR, there are no spaces between api.templates and the surrounding {{ }}.

You can decide yourself on whether to change it or not.

lib/graphs/discovery-sku-graph.js
14:            nodeIds: [ "{{ options.nodeId }}" ]

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

{
command: 'sudo bash get_smart.sh',
downloadUrl: '/api/current/templates/get_smart.sh'
downloadUrl: '{{api.templates}}/get_smart.sh?nodeId={{context.target}}'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This suggestion has gone beyond this PR, but {{ context.target }} gives people unclear hint that is actually referring to a node ID. something like ?nodeId={{context.nodeId}}' or ?nodeId={{ tasks.nodeID}}' would make the code more readable and less error-prong.

Agreed? @yyscamper @anhou . If yes, this would generate a follow up refactor task.

Copy link
Contributor

@cgx027 cgx027 Nov 25, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just find the refactor has already been done in master, so please update {{context.target}} to {{nodeId}}
Ref: https://github.com/RackHD/on-http/blob/master/lib/services/swagger-api-service.js#L346

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't work for task rendering, but only for templates and profiles rendering.
Thanks.

Copy link
Contributor

@cgx027 cgx027 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+0, I would suggest to add a schema pattern check against downloadUrl.

@lanchongyizu lanchongyizu force-pushed the refactor-southbound-template-api branch from 73dfa97 to 37123fb Compare November 24, 2016 09:53
var positiveSetParamCommand = {
'commands[1]': 'touch foo.txt', //allow duplicated command
'commands[1].downloadUrl': ['/foo', '/foo123/123/bar'],
'commands[1].downloadUrl': ['http://abc.com/foo', 'http://10.0.0.1:8080/foo123/123/bar?nodeId={{context.target}}', 'www.abc.com/abc'],

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line is too long.

@JenkinsRHD
Copy link
Contributor

BUILD on-tasks #1756 : FAILURE

@lanchongyizu lanchongyizu force-pushed the refactor-southbound-template-api branch from 37123fb to f03c597 Compare November 27, 2016 13:30
{
command: 'sudo ./remove_bmc_credentials.sh',
downloadUrl: '/api/current/templates/remove_bmc_credentials.sh'
downloadUrl: '{{ api.templates }}/remove_bmc_credentials.sh?nodeId={{ task.nodeId }}'

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line is too long.

profile: 'install-ubuntu.ipxe',
installScript: 'ubuntu-preseed',
installScriptUri: '{{api.templates}}/{{options.installScript}}',
installScriptUri: '{{ api.templates }}/{{ options.installScript }}?nodeId={{ task.nodeId }}',

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line is too long.

profile: 'install-suse.ipxe',
installScript: 'suse-autoinst.xml',
installScriptUri: '{{api.templates}}/{{options.installScript}}',
installScriptUri: '{{ api.templates }}/{{ options.installScript }}?nodeId={{ task.nodeId }}',

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line is too long.

profile: 'install-photon-os.ipxe',
installScript: 'photon-os-ks',
installScriptUri: '{{api.templates}}/{{options.installScript}}',
installScriptUri: '{{ api.templates }}/{{ options.installScript }}?nodeId={{ task.nodeId }}',

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line is too long.

profile: 'install-esx.ipxe',
installScript: 'esx-ks',
installScriptUri: '{{api.templates}}/{{options.installScript}}',
installScriptUri: '{{ api.templates }}/{{ options.installScript }}?nodeId={{ task.nodeId }}',

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line is too long.

profile: 'install-coreos.ipxe',
installScript: 'install-coreos.sh',
installScriptUri: '{{api.templates}}/{{options.installScript}}',
installScriptUri: '{{ api.templates }}/{{ options.installScript }}?nodeId={{ task.nodeId }}',

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line is too long.

profile: 'install-centos.ipxe',
installScript: 'centos-ks',
installScriptUri: '{{api.templates}}/{{options.installScript}}',
installScriptUri: '{{ api.templates }}/{{ options.installScript }}?nodeId={{ task.nodeId }}',

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line is too long.

@JenkinsRHD
Copy link
Contributor

BUILD on-tasks #1760 : UNSTABLE

BUILD smoke-test #3843 Error Logs ▼Test Name: test_list_simple_storage Error Details: (404) Reason: Not Found HTTP response headers: HTTPHeaderDict({'Content-Length': '742', 'X-Powered-By': 'Express', 'Connection': 'keep-alive', 'ETag': 'W/"2e6-R1p0eb9wQS2jPLEGXhEJyA"', 'Date': 'Sun, 27 Nov 2016 14:01:27 GMT', 'Access-Control-Allow-Origin': '*', 'Content-Type': 'application/json; charset=utf-8'}) HTTP response body: {"error":{"code":"Base.1.0.GeneralError","message":"A general error has occurred. See ExtendedInfo for more information.","@Message.ExtendedInfo":[{"@odata.type":"#Message.1.0.0.Message","MessageId":"Base.1.0.Messages.InvalidObject","Description":"Indicates that the object in question is invalid according to the implementation. Examples include a firmware update malformed URI.","Message":"The object at %1 is invalid.","Resolution":"Either the object is malformed or the URI is not correct. Correct the condition and resubmit the request if it failed.","Severity":"Critical"},{"MessageId":"RackHD.1.0.DetailedErrorMessage","Message":"No Catalogs Found for Source (smart).","Description":"Contains the detailed error message contents"}]}}

Stack Trace: Traceback (most recent call last):
File "/usr/lib/python2.7/unittest/case.py", line 331, in run
testMethod()
File "/usr/lib/python2.7/unittest/case.py", line 1043, in runTest
self._testFunc()
File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/case.py", line 296, in testng_method_mistake_capture_func
compatability.capture_type_error(s_func)
File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/compatability/exceptions_2_6.py", line 27, in capture_type_error
func()
File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/case.py", line 350, in func
func(test_case.state.get_state())
File "/home/jenkins/workspace/on-tasks/RackHD/test/tests/api/redfish_1_0/systems_tests.py", line 110, in test_list_simple_storage
redfish().list_simple_storage(dataId)
File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_redfish_1_0/apis/redfishv_api.py", line 4047, in list_simple_storage
callback=params.get('callback'))
File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_redfish_1_0/api_client.py", line 322, in call_api
response_type, auth_settings, callback)
File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_redfish_1_0/api_client.py", line 149, in __call_api
post_params=post_params, body=body)
File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_redfish_1_0/api_client.py", line 342, in request
headers=headers)
File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_redfish_1_0/rest.py", line 184, in GET
query_params=query_params)
File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_redfish_1_0/rest.py", line 177, in request
raise ApiException(http_resp=r)
ApiException: (404)
Reason: Not Found
HTTP response headers: HTTPHeaderDict({'Content-Length': '742', 'X-Powered-By': 'Express', 'Connection': 'keep-alive', 'ETag': 'W/"2e6-R1p0eb9wQS2jPLEGXhEJyA"', 'Date': 'Sun, 27 Nov 2016 14:01:27 GMT', 'Access-Control-Allow-Origin': '*', 'Content-Type': 'application/json; charset=utf-8'})
HTTP response body: {"error":{"code":"Base.1.0.GeneralError","message":"A general error has occurred. See ExtendedInfo for more information.","@Message.ExtendedInfo":[{"@odata.type":"#Message.1.0.0.Message","MessageId":"Base.1.0.Messages.InvalidObject","Description":"Indicates that the object in question is invalid according to the implementation. Examples include a firmware update malformed URI.","Message":"The object at %1 is invalid.","Resolution":"Either the object is malformed or the URI is not correct. Correct the condition and resubmit the request if it failed.","Severity":"Critical"},{"MessageId":"RackHD.1.0.DetailedErrorMessage","Message":"No Catalogs Found for Source (smart).","Description":"Contains the detailed error message contents"}]}}

Test Name: test_catalogs
Error Details: Catalog smart not found in node 583ae617f709f31909e42799!
Stack Trace: Traceback (most recent call last):
File "/usr/lib/python2.7/unittest/case.py", line 331, in run
testMethod()
File "/usr/lib/python2.7/unittest/case.py", line 1043, in runTest
self._testFunc()
File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/case.py", line 296, in testng_method_mistake_capture_func
compatability.capture_type_error(s_func)
File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/compatability/exceptions_2_6.py", line 27, in capture_type_error
func()
File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/case.py", line 350, in func
func(test_case.state.get_state())
File "/home/jenkins/workspace/on-tasks/RackHD/test/tests/api/v2_0/catalogs_tests.py", line 48, in test_catalogs
fail('Catalog {0} not found in node {1}!'.format(source,node.get('id')))
File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/asserts.py", line 220, in fail
raise ASSERTION_ERROR(message)
AssertionError: Catalog smart not found in node 583ae617f709f31909e42799!

BUILD unit-tests #10188 Error Logs ▼Test Name: Graph Library should validate all existing graphs not requiring user input for null values Error Details: Value does not exist for task.nodeId Stack Trace: TemplateRenderError: Value does not exist for task.nodeId at Task.renderString (node_modules/on-tasks/lib/task.js:214:19) at node_modules/on-tasks/lib/task.js:262:37 at arrayMap (node_modules/lodash/index.js:1406:25) at Function.map (node_modules/lodash/index.js:6710:14) at Task.render (node_modules/on-tasks/lib/task.js:254:18) at Task.renderOptions (node_modules/on-tasks/lib/task.js:273:25) at node_modules/on-tasks/lib/task.js:276:31 at node_modules/lodash/index.js:10033:16 at node_modules/lodash/index.js:3073:15 at baseForOwn (node_modules/lodash/index.js:2046:14) at Function.transform (node_modules/lodash/index.js:10032:39) at Task.renderOptions (node_modules/on-tasks/lib/task.js:275:22) at node_modules/on-tasks/lib/task.js:276:31 at node_modules/lodash/index.js:10033:16 at arrayEach (node_modules/lodash/index.js:1289:13) at Function.transform (node_modules/lodash/index.js:10032:39) at Task.renderOptions (node_modules/on-tasks/lib/task.js:275:22) at node_modules/on-tasks/lib/task.js:276:31 at node_modules/lodash/index.js:10033:16 at node_modules/lodash/index.js:3073:15 at baseForOwn (node_modules/lodash/index.js:2046:14) at Function.transform (node_modules/lodash/index.js:10032:39) at Task.renderOptions (node_modules/on-tasks/lib/task.js:275:22) at Task.renderOwnOptions (node_modules/on-tasks/lib/task.js:282:29) at node_modules/on-tasks/lib/task.js:180:22 at Object.finallyHandler (node_modules/on-core/node_modules/bluebird/js/main/finally.js:39:23) at Object.tryCatcher (node_modules/on-core/node_modules/bluebird/js/main/util.js:26:23) at Promise._settlePromiseFromHandler (node_modules/on-core/node_modules/bluebird/js/main/promise.js:510:31) at Promise._settlePromiseAt (node_modules/on-core/node_modules/bluebird/js/main/promise.js:584:18) at Async._drainQueue (node_modules/on-core/node_modules/bluebird/js/main/async.js:128:12) at Async._drainQueues (node_modules/on-core/node_modules/bluebird/js/main/async.js:133:10) at Immediate.Async.drainQueues [as _onImmediate] (node_modules/on-core/node_modules/bluebird/js/main/async.js:15:14)
BUILD on-taskgraph #1736 Error Logs ▼Test Name: Graph Library should validate all existing graphs not requiring user input for null values Error Details: Value does not exist for task.nodeId Stack Trace: TemplateRenderError: Value does not exist for task.nodeId at Task.renderString (node_modules/on-tasks/lib/task.js:214:19) at node_modules/on-tasks/lib/task.js:262:37 at arrayMap (node_modules/lodash/index.js:1406:25) at Function.map (node_modules/lodash/index.js:6710:14) at Task.render (node_modules/on-tasks/lib/task.js:254:18) at Task.renderOptions (node_modules/on-tasks/lib/task.js:273:25) at node_modules/on-tasks/lib/task.js:276:31 at node_modules/lodash/index.js:10033:16 at node_modules/lodash/index.js:3073:15 at baseForOwn (node_modules/lodash/index.js:2046:14) at Function.transform (node_modules/lodash/index.js:10032:39) at Task.renderOptions (node_modules/on-tasks/lib/task.js:275:22) at node_modules/on-tasks/lib/task.js:276:31 at node_modules/lodash/index.js:10033:16 at arrayEach (node_modules/lodash/index.js:1289:13) at Function.transform (node_modules/lodash/index.js:10032:39) at Task.renderOptions (node_modules/on-tasks/lib/task.js:275:22) at node_modules/on-tasks/lib/task.js:276:31 at node_modules/lodash/index.js:10033:16 at node_modules/lodash/index.js:3073:15 at baseForOwn (node_modules/lodash/index.js:2046:14) at Function.transform (node_modules/lodash/index.js:10032:39) at Task.renderOptions (node_modules/on-tasks/lib/task.js:275:22) at Task.renderOwnOptions (node_modules/on-tasks/lib/task.js:282:29) at node_modules/on-tasks/lib/task.js:180:22 at Object.finallyHandler (node_modules/on-core/node_modules/bluebird/js/main/finally.js:39:23) at Object.tryCatcher (node_modules/on-core/node_modules/bluebird/js/main/util.js:26:23) at Promise._settlePromiseFromHandler (node_modules/on-core/node_modules/bluebird/js/main/promise.js:510:31) at Promise._settlePromiseAt (node_modules/on-core/node_modules/bluebird/js/main/promise.js:584:18) at Async._drainQueue (node_modules/on-core/node_modules/bluebird/js/main/async.js:128:12) at Async._drainQueues (node_modules/on-core/node_modules/bluebird/js/main/async.js:133:10) at Immediate.Async.drainQueues [as _onImmediate] (node_modules/on-core/node_modules/bluebird/js/main/async.js:15:14)

@anhou anhou merged commit 209c51b into RackHD:master Nov 30, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants