Exemplo n.º 1
0
Arquivo: stats.js Projeto: ndarilek/ui
    self.get('resource').followLink('stats').then(function(response) {
      //console.log(response);
      var url = response.get('url') + '?token=' + encodeURIComponent(response.get('token'));
      //console.log('url',url);

      var socket = Socket.create({
        url: url
      });

      socket.on('message', function(event) {
        if ( self.get('connected') )
        {
          self.process(JSON.parse(event.data));
        }
      });

      socket.on('connected', function(/*tries, after*/) {
        //console.log('StatsSocket connected');
        self.set('connected',true);
        self.trigger('connected');
      });

      socket.on('disconnected', function(/*tries*/) {
        //console.log('StatsSocket disconnected');
        self.set('connected',false);
        self.trigger('disconnected');
      });

      self.set('socket', socket);
      socket.connect();
    });
Exemplo n.º 2
0
  enter: function() {
    var store = this.get('store');
    var boundTypeify = store._typeify.bind(store);

    var url = "ws://"+window.location.host + this.get('app.wsEndpoint');
    var session = this.get('session');
    var token = session.get(C.SESSION.TOKEN);
    if ( token )
    {
      url = Util.addQueryParam(url, 'token', token);
    }

    var projectId = session.get(C.SESSION.PROJECT);
    if ( projectId )
    {
      url = Util.addQueryParam(url, 'projectId', projectId);
    }

    var socket = Socket.create({
      url: url
    });

    socket.on('message', (event) => {
      var d = JSON.parse(event.data, boundTypeify);
      this._trySend('wsMessage',d);

      var str = d.name;
      if ( d.resourceType )
      {
        str += ' ' + d.resourceType;

        if ( d.resourceId )
        {
          str += ' ' + d.resourceId;
        }
      }

      var action;
      if ( d.name === 'resource.change' )
      {
        action = d.resourceType+'Changed';
      }
      else if ( d.name === 'ping' )
      {
        action = 'wsPing';
      }

      if ( action )
      {
        this._trySend(action,d);
      }
    });

    socket.on('connected', (tries, after) => {
      this._trySend('wsConnected', tries, after);
    });

    socket.on('disconnected', () => {
      this._trySend('wsDisconnected', this.get('tries'));
    });

    this.set('socket', socket);
    socket.connect();
  },
Exemplo n.º 3
0
  k8s             : Ember.inject.service(),
  projects        : Ember.inject.service(),
  'tab-session'   : Ember.inject.service(),

  subscribeSocket : null,
  reconnect: true,
  connected: false,
  k8sUidBlacklist : null,

  init() {
    this._super();
    this.set('k8sUidBlacklist', []);

    var store = this.get('store');

    var socket = Socket.create();

    socket.on('message', (event) => {
      Ember.run.schedule('actions', this, function() {
        // Fail-safe: make sure the message is for this project
        var currentProject = this.get(`tab-session.${C.TABSESSION.PROJECT}`);
        var metadata = socket.getMetadata();
        var socketProject = metadata.projectId;
        if ( currentProject !== socketProject ) {
          console.error(`Subscribe ignoring message, current=${currentProject} socket=${socketProject} ` + this.forStr());
          this.connectSubscribe();
          return;
        }

        var d = JSON.parse(event.data);
        let resource;
Exemplo n.º 4
0
  connectSubscribe() {
    var projectId = this.get(`tab-session.${C.TABSESSION.PROJECT}`);

    console.log('Connect socket for', projectId);

    var store = this.get('store');
    var boundTypeify = store._typeify.bind(store);

    if ( !this.get('k8sUidBlacklist') )
    {
      this.set('k8sUidBlacklist', []);
    }

    var url = Util.addQueryParam("ws://"+window.location.host + this.get('app.wsEndpoint'), 'projectId', projectId);
    var socket = Socket.create({url: url});
    socket._projectId = projectId;
    this.set('subscribeSocket', socket);

    socket.on('message', (event) => {
      var d = JSON.parse(event.data, boundTypeify);
      //this._trySend('subscribeMessage',d);

      if ( d.name === 'resource.change' )
      {
        this._trySend(d.resourceType+'Changed', d);
      }
      else if ( d.name === 'service.kubernetes.change' )
      {
        var changeType = (Ember.get(d, 'data.type')||'').toLowerCase();
        var obj = Ember.get(d, 'data.object');