Exemple #1
0
import i18n from 'i18n';
import React from 'react';
import models from 'models';
import {backboneMixin} from 'component_mixins';
import NodeListScreen from 'views/cluster_page_tabs/nodes_tab_screens/node_list_screen';

var EquipmentPage, PluginLinks;

EquipmentPage = React.createClass({
  mixins: [backboneMixin('nodes')],
  statics: {
    title: i18n('equipment_page.title'),
    navbarActiveElement: 'equipment',
    breadcrumbsPath: [['home', '#'], 'equipment'],
    fetchData() {
      var nodes = new models.Nodes();
      var clusters = new models.Clusters();
      var plugins = new models.Plugins();
      var nodeNetworkGroups = new models.NodeNetworkGroups();
      var {releases, fuelSettings} = app;
      return $.when(
        nodes.fetch(),
        clusters.fetch(),
        nodeNetworkGroups.fetch(),
        releases.fetch({cache: true}),
        fuelSettings.fetch({cache: true}),
        plugins.fetch()
      ).then(() => {
        clusters.each(
          (cluster) => cluster.set({
            release: releases.get(cluster.get('release_id'))
Exemple #2
0
import models from 'models';
import dispatcher from 'dispatcher';
import {backboneMixin, pollingMixin} from 'component_mixins';
import CreateClusterWizard from 'views/wizard';
import {Link} from 'views/controls';

var ClustersPage, ClusterList, Cluster;

ClustersPage = React.createClass({
  statics: {
    title: i18n('clusters_page.title'),
    navbarActiveElement: 'clusters',
    breadcrumbsPath: [['home', '/'], 'environments'],
    fetchData() {
      var clusters = new models.Clusters();
      var nodes = new models.Nodes();
      var tasks = new models.Tasks();

      return Promise.all([clusters.fetch(), nodes.fetch(), tasks.fetch()])
        .then(() => {
          clusters.each((cluster) => {
            cluster.set('nodes', new models.Nodes(nodes.filter({cluster: cluster.id})));
            cluster.set('tasks', new models.Tasks(tasks.filter({cluster: cluster.id})));
          });
          return ({clusters});
        });
    }
  },
  render() {
    return (
      <div className='clusters-page'>
 * 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 $ from 'jquery';
import _ from 'underscore';
import React from 'react';
import models from 'models';
import NodeListScreen from 'views/cluster_page_tabs/nodes_tab_screens/node_list_screen';

var AddNodesScreen = React.createClass({
  statics: {
    fetchData(options) {
      var nodes = new models.Nodes();
      nodes.fetch = function(options) {
        return this.constructor.__super__.fetch.call(this, _.extend({data: {cluster_id: ''}},
          options));
      };
      return $.when(nodes.fetch(), options.cluster.get('roles').fetch(),
        options.cluster.get('settings').fetch({cache: true})).then(() => ({nodes: nodes}));
    }
  },
  render() {
    return <NodeListScreen {... _.omit(this.props, 'screenOptions')}
      ref='screen'
      mode='add'
      roles={this.props.cluster.get('roles')}
      nodeNetworkGroups={this.props.cluster.get('nodeNetworkGroups')}
      sorters={_.without(models.Nodes.prototype.sorters, 'cluster', 'roles', 'group_id')}