Package com.serotonin.m2m2.crowd

Examples of com.serotonin.m2m2.crowd.CrowdUtils


            osName = "linux";
            command = "vmstat -n ";
        }
        else if(osName.startsWith("Win")){
            osName = "windows";
            raiseEvent(DATA_SOURCE_EXCEPTION_EVENT, System.currentTimeMillis(), true, new TranslatableMessage(
                    "event.initializationError", "OS: " + osName + " Not Supported"));
            return;
        }//since 0.9.0 ->
        else if(osName.equals("SunOS")){
            osName = "solaris";
            raiseEvent(DATA_SOURCE_EXCEPTION_EVENT, System.currentTimeMillis(), true, new TranslatableMessage(
                    "event.initializationError", "OS: " + osName + " Not Supported"));
            return;
        }
        else if(osName.equals("Mac OS X") || osName.equals("Darwin")){//os.name "Darwin" since 2.6.0
            osName = "mac_os_x";
            command = "vm_stat -n"; //TODO Implement this for OSX, output format is different
            raiseEvent(DATA_SOURCE_EXCEPTION_EVENT, System.currentTimeMillis(), true, new TranslatableMessage(
                    "event.initializationError", "OS: " + osName + " Not Supported"));
            return;
          
        }else{
            raiseEvent(DATA_SOURCE_EXCEPTION_EVENT, System.currentTimeMillis(), true, new TranslatableMessage(
                    "event.initializationError", "OS: " + osName + " Not Supported"));
            return;
        }

        switch (vo.getOutputScale()) {
        case VMStatDataSourceVO.OutputScale.LOWER_K:
            command += "-S k ";
            break;
        case VMStatDataSourceVO.OutputScale.UPPER_K:
            command += "-S K ";
            break;
        case VMStatDataSourceVO.OutputScale.LOWER_M:
            command += "-S m ";
            break;
        case VMStatDataSourceVO.OutputScale.UPPER_M:
            command += "-S M ";
            break;
        }

        command += vo.getPollSeconds();

        try {
            vmstatProcess = Runtime.getRuntime().exec(command);

            // Create the input stream readers.
            in = new BufferedReader(new InputStreamReader(vmstatProcess.getInputStream()));

            // Read the first two lines of output. They are the headers.
            in.readLine();
            String headers = in.readLine();

            // Create a mapping of attribute ids to split array positions.
            attributePositions = new HashMap<Integer, Integer>();
            headers = headers.trim();
            String[] headerParts = headers.split("\\s+");
            for (int i = 0; i < headerParts.length; i++) {
                int attributeId = -1;
                if ("r".equals(headerParts[i]))
                    attributeId = VMStatPointLocatorVO.Attributes.PROCS_R;
                else if ("b".equals(headerParts[i]))
                    attributeId = VMStatPointLocatorVO.Attributes.PROCS_B;
                else if ("swpd".equals(headerParts[i]))
                    attributeId = VMStatPointLocatorVO.Attributes.MEMORY_SWPD;
                else if ("free".equals(headerParts[i]))
                    attributeId = VMStatPointLocatorVO.Attributes.MEMORY_FREE;
                else if ("buff".equals(headerParts[i]))
                    attributeId = VMStatPointLocatorVO.Attributes.MEMORY_BUFF;
                else if ("cache".equals(headerParts[i]))
                    attributeId = VMStatPointLocatorVO.Attributes.MEMORY_CACHE;
                else if ("si".equals(headerParts[i]))
                    attributeId = VMStatPointLocatorVO.Attributes.SWAP_SI;
                else if ("so".equals(headerParts[i]))
                    attributeId = VMStatPointLocatorVO.Attributes.SWAP_SO;
                else if ("bi".equals(headerParts[i]))
                    attributeId = VMStatPointLocatorVO.Attributes.IO_BI;
                else if ("bo".equals(headerParts[i]))
                    attributeId = VMStatPointLocatorVO.Attributes.IO_BO;
                else if ("in".equals(headerParts[i]))
                    attributeId = VMStatPointLocatorVO.Attributes.SYSTEM_IN;
                else if ("cs".equals(headerParts[i]))
                    attributeId = VMStatPointLocatorVO.Attributes.SYSTEM_CS;
                else if ("us".equals(headerParts[i]))
                    attributeId = VMStatPointLocatorVO.Attributes.CPU_US;
                else if ("sy".equals(headerParts[i]))
                    attributeId = VMStatPointLocatorVO.Attributes.CPU_SY;
                else if ("id".equals(headerParts[i]))
                    attributeId = VMStatPointLocatorVO.Attributes.CPU_ID;
                else if ("wa".equals(headerParts[i]))
                    attributeId = VMStatPointLocatorVO.Attributes.CPU_WA;
                else if ("st".equals(headerParts[i]))
                    attributeId = VMStatPointLocatorVO.Attributes.CPU_ST;

                if (attributeId != -1)
                    attributePositions.put(attributeId, i);
            }

            // Read the first line of data. This is a summary of beginning of time until now, so it is no good for
            // our purposes. Just throw it away.
            in.readLine();

            returnToNormal(DATA_SOURCE_EXCEPTION_EVENT, System.currentTimeMillis());
        }
        catch (IOException e) {
            raiseEvent(DATA_SOURCE_EXCEPTION_EVENT, System.currentTimeMillis(), true, new TranslatableMessage(
                    "event.initializationError", e.getMessage()));
        }
    }
View Full Code Here


        catch (IOException e) {
            // Assume that the process was ended.
            readError();

            if (!terminated) {
                raiseEvent(DATA_SOURCE_EXCEPTION_EVENT, System.currentTimeMillis(), true, new TranslatableMessage(
                        "event.vmstat.process", e.getMessage()));
            }
        }
    }
View Full Code Here

            }
        }
    }

    private void readParts(String[] parts) {
        TranslatableMessage error = null;
        long time = System.currentTimeMillis();

        synchronized (pointListChangeLock) {
            for (DataPointRT dp : dataPoints) {
                VMStatPointLocatorVO locator = ((VMStatPointLocatorRT) dp.getPointLocator()).getPointLocatorVO();

                Integer position = attributePositions.get(locator.getAttributeId());
                if (position == null) {
                    if (error != null)
                        error = new TranslatableMessage("event.vmstat.attributeNotFound",
                                locator.getConfigurationDescription());
                }
                else {
                    try {
                        String data = parts[position];
                        Double value = new Double(data);
                        dp.updatePointValue(new PointValueTime(value, time));
                    }
                    catch (NumberFormatException e) {
                        log.error("Weird. We couldn't parse the value " + parts[position]
                                + " into a double. attribute=" + locator.getAttributeId());
                    }
                    catch (ArrayIndexOutOfBoundsException e) {
                        log.error("Weird. We need element " + position + " but the vmstat data is only " + parts.length
                                + " elements long. The statistic " + Common.translate(VMStatPointLocatorVO.ATTRIBUTE_CODES.getKey(locator.getAttributeId())) + " is missing from the vmstat output.");
                        raiseEvent(DATA_SOURCE_EXCEPTION_EVENT, System.currentTimeMillis(), true, new TranslatableMessage(
                                "event.vmstat.process", "The statistic " + Common.translate(VMStatPointLocatorVO.ATTRIBUTE_CODES.getKey(locator.getAttributeId())) + " is missing from the vmstat output."));
                    }
                }
            }
        }
View Full Code Here

    @DwrPermission(user = true)
    public ReportVO createReportFromWatchlist(String name, int[] dataPointIds) {
        ReportVO report = new ReportVO();
        User user = Common.getUser();

        report.setName(new TranslatableMessage("common.copyPrefix", name).translate(getTranslations()));
        report.setXid(Common.generateXid("REP_"));
        DataPointDao dataPointDao = new DataPointDao();
        for (int id : dataPointIds) {
            DataPointVO dp = dataPointDao.getDataPoint(id);
            if (dp == null || !Permissions.hasDataPointReadPermission(user, dp))
View Full Code Here

    @JsonProperty
    private int pointIdentifierIndex;
   
  @Override
  public TranslatableMessage getConnectionDescription() {
    return new TranslatableMessage("serial.connection",this.commPortId);
  }
View Full Code Here

    return EVENT_CODES;
  }

  @Override
  protected void addEventTypes(List<EventTypeVO> eventTypes) {
    eventTypes.add(createEventType(SerialDataSourceRT.DATA_SOURCE_EXCEPTION_EVENT, new TranslatableMessage(
                "event.ds.dataSource")));
    eventTypes.add(createEventType(SerialDataSourceRT.POINT_READ_EXCEPTION_EVENT, new TranslatableMessage(
                "event.ds.pointRead")));
    eventTypes.add(createEventType(SerialDataSourceRT.POINT_WRITE_EXCEPTION_EVENT, new TranslatableMessage(
                "event.ds.pointWrite")));
    eventTypes.add(createEventType(SerialDataSourceRT.POINT_READ_PATTERN_MISMATCH_EVENT, new TranslatableMessage(
                "event.serial.patternMismatch")));
   
  }
View Full Code Here

  }

  @Override
  public TranslatableMessage getConfigurationDescription() {
    //TODO add the properties to this
    return new TranslatableMessage("serial.point.configuration",pointIdentifier);
  }
View Full Code Here

        Common.eventManager.returnToNormal(eventType, time);
        eventActive = false;
    }

    public TranslatableMessage getMessage() {
        return new TranslatableMessage("event.schedule.active", vo.getDescription());
    }
View Full Code Here

    public ScheduledEventRT createRuntime() {
        return new ScheduledEventRT(this);
    }

    public TranslatableMessage getDescription() {
        TranslatableMessage message;

        if (!StringUtils.isBlank(alias))
            message = new TranslatableMessage("common.default", alias);
        else if (scheduleType == TYPE_ONCE) {
            if (returnToNormal)
                message = new TranslatableMessage("event.schedule.onceUntil", Functions.getTime(new DateTime(
                        activeYear, activeMonth, activeDay, activeHour, activeMinute, activeSecond, 0).getMillis()),
                        Functions.getTime(new DateTime(inactiveYear, inactiveMonth, inactiveDay, inactiveHour,
                                inactiveMinute, inactiveSecond, 0).getMillis()));
            else
                message = new TranslatableMessage("event.schedule.onceAt", Functions.getTime(new DateTime(activeYear,
                        activeMonth, activeDay, activeHour, activeMinute, activeSecond, 0).getMillis()));
        }
        else if (scheduleType == TYPE_HOURLY) {
            String activeTime = StringUtils.leftPad(Integer.toString(activeMinute), 2, '0') + ":"
                    + StringUtils.leftPad(Integer.toString(activeSecond), 2, '0');
            if (returnToNormal)
                message = new TranslatableMessage("event.schedule.hoursUntil", activeTime, StringUtils.leftPad(
                        Integer.toString(inactiveMinute), 2, '0')
                        + ":" + StringUtils.leftPad(Integer.toString(inactiveSecond), 2, '0'));
            else
                message = new TranslatableMessage("event.schedule.hoursAt", activeTime);
        }
        else if (scheduleType == TYPE_DAILY) {
            if (returnToNormal)
                message = new TranslatableMessage("event.schedule.dailyUntil", activeTime(), inactiveTime());
            else
                message = new TranslatableMessage("event.schedule.dailyAt", activeTime());
        }
        else if (scheduleType == TYPE_WEEKLY) {
            if (returnToNormal)
                message = new TranslatableMessage("event.schedule.weeklyUntil", weekday(true), activeTime(),
                        weekday(false), inactiveTime());
            else
                message = new TranslatableMessage("event.schedule.weeklyAt", weekday(true), activeTime());
        }
        else if (scheduleType == TYPE_MONTHLY) {
            if (returnToNormal)
                message = new TranslatableMessage("event.schedule.monthlyUntil", monthday(true), activeTime(),
                        monthday(false), inactiveTime());
            else
                message = new TranslatableMessage("event.schedule.monthlyAt", monthday(true), activeTime());
        }
        else if (scheduleType == TYPE_YEARLY) {
            if (returnToNormal)
                message = new TranslatableMessage("event.schedule.yearlyUntil", monthday(true), month(true),
                        activeTime(), monthday(false), month(false), inactiveTime());
            else
                message = new TranslatableMessage("event.schedule.yearlyAt", monthday(true), month(true), activeTime());
        }
        else if (scheduleType == TYPE_CRON) {
            if (returnToNormal)
                message = new TranslatableMessage("event.schedule.cronUntil", activeCron, inactiveCron);
            else
                message = new TranslatableMessage("event.schedule.cronAt", activeCron);
        }
        else
            throw new ShouldNeverHappenException("Unknown schedule type: " + scheduleType);

        return message;
View Full Code Here

    }

    private TranslatableMessage getTypeMessage() {
        switch (scheduleType) {
        case TYPE_HOURLY:
            return new TranslatableMessage("scheduledEvents.type.hour");
        case TYPE_DAILY:
            return new TranslatableMessage("scheduledEvents.type.day");
        case TYPE_WEEKLY:
            return new TranslatableMessage("scheduledEvents.type.week");
        case TYPE_MONTHLY:
            return new TranslatableMessage("scheduledEvents.type.month");
        case TYPE_YEARLY:
            return new TranslatableMessage("scheduledEvents.type.year");
        case TYPE_ONCE:
            return new TranslatableMessage("scheduledEvents.type.once");
        case TYPE_CRON:
            return new TranslatableMessage("scheduledEvents.type.cron");
        }
        return null;
    }
View Full Code Here

TOP

Related Classes of com.serotonin.m2m2.crowd.CrowdUtils

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.