Esempio n. 1
0
int
DockerAPI::stats(const std::string &container, uint64_t &memUsage, uint64_t &netIn, uint64_t &netOut) {
newstats(container, memUsage, netIn, netOut);
	ArgList args;
	if ( ! add_docker_arg(args))
		return -1;
	args.AppendArg( "stats" );
	args.AppendArg( "--no-stream" );
	args.AppendArg( container.c_str() );

	MyString displayString;
	TemporaryPrivSentry sentry(PRIV_ROOT);

	args.GetArgsStringForLogging( & displayString );

	dprintf( D_FULLDEBUG, "Attempting to run: %s\n", displayString.c_str() );

		// Read from Docker's combined output and error streams.
	FILE * dockerResults = my_popen( args, "r", 1 , 0, false);
	if( dockerResults == NULL ) {
		dprintf( D_ALWAYS | D_FAILURE, "Failed to run '%s'.\n", displayString.c_str() );
		return -2;
	}

	const int statLineSize = 256;
	char header[statLineSize];
	char data[statLineSize];
	if( NULL == fgets( header, statLineSize, dockerResults ) ) {
		my_pclose(dockerResults);
		return -2;
	}

	if( NULL == fgets( data, statLineSize, dockerResults ) ) {
		my_pclose(dockerResults);
		return -2;
	}
	my_pclose(dockerResults);

	dprintf(D_FULLDEBUG, "Docker stats data is:\n%s\n", data);
		// condor stats output looks like:
		// Name	cpu%   mem usage/limit  mem%  net i/o   block i/o
		// container  0.00%  0 B / 0 B        0.00% 0 B / 0 B  0 B / 0 B
		//
	char memUsageUnit[2];
	char netInUnit[2];
	char netOutUnit[2];

	double memRaw, netInRaw, netOutRaw;
	int matches = sscanf(data, "%*s %*g%% %lg %s / %*g %*s %*g%% %lg %s / %lg %s", &memRaw, &memUsageUnit[0], &netInRaw, &netInUnit[0], &netOutRaw, &netOutUnit[0]);
	if (matches < 6) {
		return -2;
	}

	memUsage = convertUnits(memRaw, memUsageUnit);
	netIn    = convertUnits(netInRaw, netInUnit);
	netOut   = convertUnits(netOutRaw, netOutUnit);
  
	dprintf(D_FULLDEBUG, "memUsage is %g (%s), net In is %g (%s), net Out is %g (%s)\n", memRaw, memUsageUnit, netInRaw, netInUnit, netOutRaw, netOutUnit);
	return 0;
}
bool LxQtNetworkMonitor::event(QEvent *event)
{
    if (event->type() == QEvent::ToolTip)
    {
#ifdef STATGRAB_NEWER_THAN_0_90
        size_t num_network_stats;
#else
        int num_network_stats;
#endif
        sg_network_io_stats *network_stats = sg_get_network_io_stats(&num_network_stats);

	for (int x = 0; x < num_network_stats; x++)
        {
            if (m_interface == QString::fromLocal8Bit(network_stats->interface_name))
            {
                setToolTip(tr("Network interface <b>%1</b>").arg(m_interface) + "<br>"
                           + tr("Transmitted %1").arg(convertUnits(network_stats->tx)) + "<br>"
                           + tr("Received %1").arg(convertUnits(network_stats->rx))
                          );
            }
            network_stats++;
        }
    }
    return QFrame::event(event);
}
int overwrite(string file, __int64 fsize, __time64_t fmod = NULL){
	char buffer[512];
	char buffer2[256];
	dOverwrite _dOverwrite;
	_dOverwrite.Create(IDD_OVERWRITE);
	HICON ico;
	//_dOverwrite.ShowWindow(SW_SHOW);
	//_dOverwrite.BeginModalState();
	
	sprintf(buffer, loadString(IDS_FILE_ALREADY_EXISTS), file.c_str());
	_dOverwrite.sOverwrite.SetWindowText(buffer);

	struct _finddatai64_t c_file;
	long hFile;
	if((hFile = _findfirsti64(file.c_str(), &c_file)) == -1L){
		//file doesn't exist?
	}else{
		strcpy(buffer2, convertUnits(c_file.size));
		sprintf(buffer, loadString(IDS_OVERWRITE_SIZE), buffer2);
		_dOverwrite.sOriginalSize.SetWindowText(buffer);

		_ctime64_s(buffer2, sizeof(buffer2), &c_file.time_write);
		sprintf(buffer, loadString(IDS_OVERWRITE_MOD), buffer2);
		_dOverwrite.sOriginalMod.SetWindowText(buffer);

		ico = getIcon(file);
		_dOverwrite.iOld.SetIcon(ico);
	}

	
	//new file
	strcpy(buffer2, convertUnits(fsize));
	sprintf(buffer, loadString(IDS_OVERWRITE_SIZE), buffer2);
	_dOverwrite.sNewSize.SetWindowText(buffer);
	if(fmod != NULL){
		_ctime64_s(buffer2, sizeof(buffer2), &fmod);
		sprintf(buffer, loadString(IDS_OVERWRITE_MOD), buffer2);
	}else{
		sprintf(buffer, loadString(IDS_OVERWRITE_MOD), "");
	}
	_dOverwrite.sNewMod.SetWindowText(buffer);
	_dOverwrite.iNew.SetIcon(ico);

	_dOverwrite.ShowWindow(SW_SHOW);
	_dOverwrite.bYes.SetButtonStyle(BS_DEFPUSHBUTTON);
	_dOverwrite.bYesAll.SetButtonStyle(_dOverwrite.bYesAll.GetButtonStyle() & ~BS_DEFPUSHBUTTON);
	return _dOverwrite.RunModalLoop();//_dOverwrite.DoModal();
}
inline bool addFile(CListCtrl *lFiles, string filename, __int64 size){
	char buffer[16];
	HICON ico = NULL;
	int ico_id;
	CImageList *imgLst = NULL;

	if(size >= (__int64)4*1024*1024*1024){
		MessageBox(0, loadString(IDS_TOO_BIG_FILE), "KGB Archiver", 0);
		return false;
	}

	ico = getIcon(filename);

	if(ico != NULL){
		imgLst = lFiles->GetImageList(LVSIL_SMALL);
		if(imgLst == NULL){
			imgLst = new CImageList();
			imgLst->Create(16, 16, ILC_COLORDDB, 0, INT_MAX);
			imgLst->SetBkColor(0x00FFFFFF);
		}
		ico_id = imgLst->Add(ico);
		lFiles->SetImageList(imgLst, LVSIL_SMALL);
		lFiles->InsertItem(lFiles->GetItemCount(), "", ico_id);
	}else
		lFiles->InsertItem(lFiles->GetItemCount(), ""); 


	lFiles->SetItemText(lFiles->GetItemCount()-1, 0, filename.c_str());
	
	sprintf(buffer, "%s", convertUnits(size));
	lFiles->SetItemText(lFiles->GetItemCount()-1, 1, buffer);

	return true;
}
Esempio n. 5
0
File: logger.c Progetto: Aconex/pcp
int
main(int argc, char **argv)
{
    static char		helppath[MAXPATHLEN];
    char		*endnum;
    pmdaInterface	desc;
    long		minmem;
    int			c, err = 0, sep = __pmPathSeparator();

    __pmSetProgname(argv[0]);
    __pmGetUsername(&username);

    minmem = getpagesize();
    maxmem = (minmem > DEFAULT_MAXMEM) ? minmem : DEFAULT_MAXMEM;
    snprintf(helppath, sizeof(helppath), "%s%c" "logger" "%c" "help",
		pmGetConfig("PCP_PMDAS_DIR"), sep, sep);
    pmdaDaemon(&desc, PMDA_INTERFACE_5, pmProgname, LOGGER,
		"logger.log", helppath);

    while ((c = pmdaGetOpt(argc, argv, "D:d:l:m:s:U:?", &desc, &err)) != EOF) {
	switch (c) {
	    case 'm':
		maxmem = strtol(optarg, &endnum, 10);
		if (*endnum != '\0')
		    convertUnits(&endnum, &maxmem);
		if (*endnum != '\0' || maxmem < minmem) {
		    fprintf(stderr, "%s: invalid max memory '%s' (min=%ld)\n",
			    pmProgname, optarg, minmem);
		    err++;
		}
		break;

	    case 's':
		if (pmParseInterval(optarg, &interval, &endnum) < 0) {
		    fprintf(stderr, "%s: -s requires a time interval: %s\n",
			    pmProgname, endnum);
		    free(endnum);
		    err++;
		}
		break;

	    case 'U':
		username = optarg;
		break;

	    default:
		err++;
		break;
	}
    }

    if (err || optind != argc -1)
    	usage();

    pmdaOpenLog(&desc);
    logger_init(&desc, argv[optind]);
    pmdaConnect(&desc);
    loggerMain(&desc);
    event_shutdown();
    exit(0);
}
Esempio n. 6
0
void DoubleProgressDialog::ProgressBarControl::setValue(float value)
{
    val = qBound(min, value, max);
    bar->setValue(convertUnits(val));
}
Esempio n. 7
0
void DoubleProgressDialog::ProgressBarControl::setMax(float maximum)
{
    max = maximum;
    if(min > max) setMin(max);
    bar->setMaximum(convertUnits(max));
}
Esempio n. 8
0
void DoubleProgressDialog::ProgressBarControl::setMin(float minimum)
{
    min = minimum;
    if(max < min) setMax(min);
    bar->setMinimum(convertUnits(min));
}
Esempio n. 9
0
File: systemd.c Progetto: Aconex/pcp
int
main(int argc, char **argv)
{
    static char         helppath[MAXPATHLEN];
    char                *endnum;
    pmdaInterface       desc;
    long                minmem;
    int                 c, err = 0, sep = __pmPathSeparator();

    minmem = getpagesize();
    maxmem = (minmem > DEFAULT_MAXMEM) ? minmem : DEFAULT_MAXMEM;
    __pmSetProgname(argv[0]);
    snprintf(helppath, sizeof(helppath), "%s%c" "systemd" "%c" "help",
                pmGetConfig("PCP_PMDAS_DIR"), sep, sep);
    pmdaDaemon(&desc, PMDA_INTERFACE_6, pmProgname, SYSTEMD,
                "systemd.log", helppath);

    while ((c = pmdaGetOpt(argc, argv, "D:d:l:m:s:U:f?", &desc, &err)) != EOF) {
        switch (c) {
            case 'm':
                maxmem = strtol(optarg, &endnum, 10);
                if (*endnum != '\0')
                    convertUnits(&endnum, &maxmem);
                if (*endnum != '\0' || maxmem < minmem) {
                    fprintf(stderr, "%s: invalid max memory '%s' (min=%ld)\n",
                            pmProgname, optarg, minmem);
                    err++;
                }
                break;

            case 's':
                if (pmParseInterval(optarg, &interval, &endnum) < 0) {
                    fprintf(stderr, "%s: -s requires a time interval: %s\n",
                            pmProgname, endnum);
                    free(endnum);
                    err++;
                }
                break;

            case 'U':
                username = optarg;
                break;

            case 'f':
                uid_gid_filter_p = 0;
                break;

            default:
                err++;
                break;
        }
    }

    if (err)
        usage();

    FD_ZERO (&fds);
    pmdaOpenLog(&desc);

    /* The systemwide journal may be accessed by the adm user (group);
       root access is not necessary. */
    __pmSetProcessIdentity(username);
    desc.comm.flags |= PDU_FLAG_AUTH;
    pmdaConnect(&desc);
    // After this point, systemd_init is allowed to take some extra time.
    systemd_init(&desc); // sets some fds
    systemdMain(&desc); // sets some more fds
    systemd_shutdown();
    exit(0);
}