Lin Yang 70b42f2711 Add copyright header in ui code
Closes-Bug: #1635431
Change-Id: I5265841a6a417390bbe8245183fd5b1cf3e4f257
2016-11-01 10:07:10 -07:00

124 lines
3.6 KiB
JavaScript

/*Copyright (c) 2016 Intel, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/
import React from "react";
var config = require('../../config.js');
var util = require('../../util.js');
const NodeList = React.createClass({
delete: function(nodeId) {
var url = config.url + '/redfish/v1/Nodes/' + nodeId;
$.ajax({
url: url,
type: 'DELETE',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
success: function(resp) {
this.props.onUpdateNodes();
}.bind(this),
error: function(xhr, status, err) {
console.error(url, status, err.toString());
}.bind(this)
});
},
setBoot: function(nodeId) {
var url = config.url + '/redfish/v1/Nodes/' + nodeId;
$.ajax({
url: url,
type: 'PATCH',
headers: {
'Content-Type': 'application/json'
},
data: JSON.stringify({
"Boot": {
"BootSourceOverrideEnabled": "Continuous",
"BootSourceOverrideTarget": "Pxe"
}
}),
success: function(resp) {
this.props.onUpdateNodes();
}.bind(this),
error: function(xhr, status, err) {
console.error(url, status, err.toString());
}.bind(this)
});
},
assemble: function(nodeId) {
var url = config.url + '/redfish/v1/Nodes/' + nodeId + '/Actions/ComposedNode.Assemble';
$.ajax({
url: url,
type: 'POST',
success: function(resp) {
this.props.onUpdateNodes();
}.bind(this),
error: function(xhr, status, err) {
console.error(url, status, err.toString());
}.bind(this)
});
},
powerOn: function(nodeId) {
var url = config.url + '/redfish/v1/Nodes/' + nodeId + '/Actions/ComposedNode.Reset';
$.ajax({
url: url,
type: 'POST',
headers: {
'Content-Type': 'application/json'
},
data: JSON.stringify({"ResetType": "On"}),
success: function(resp) {
this.props.onUpdateNodes();
}.bind(this),
error: function(xhr, status, err) {
console.error(url, status, err.toString());
}.bind(this)
});
},
renderList: function() {
return this.props.nodes.map((node, i) =>
<div class="item" key={i}>
{node.Name}
<input type="button" class="detail-button" onClick={() => this.props.onShowDetail(node, this.props.header)} value="Show" />
<input type="button" class="detail-button" onClick={() => this.delete(node.Id)} value="Delete" />
<input type="button" class="detail-button" onClick={() => this.setBoot(node.Id)} value="Set Boot Source" />
<input type="button" class="detail-button" onClick={() => this.assemble(node.Id)} value="Assemble" />
<input type="button" class="detail-button" onClick={() => this.powerOn(node.Id)} value="Power On" />
<br />
{node.Description}
<hr class="separator"/>
</div>
);
},
render: function() {
return (
<div>
{this.renderList()}
</div>
);
},
});
NodeList.defaultProps = { nodes: [], header: ""};
export default NodeList;