blob: 1b8200b093c528c2b6f11204071fff722b9e3455 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/policy/device_management_service_configuration.h"
#include <stdint.h>
#include "base/logging.h"
#include "base/strings/stringprintf.h"
#include "base/sys_info.h"
#include "build/build_config.h"
#include "components/policy/core/browser/browser_policy_connector.h"
#include "components/version_info/version_info.h"
#if defined(OS_CHROMEOS)
#include "chromeos/system/statistics_provider.h"
#endif
namespace policy {
DeviceManagementServiceConfiguration::DeviceManagementServiceConfiguration(
const std::string& server_url)
: server_url_(server_url) {
}
DeviceManagementServiceConfiguration::~DeviceManagementServiceConfiguration() {
}
std::string DeviceManagementServiceConfiguration::GetServerUrl() {
return server_url_;
}
std::string DeviceManagementServiceConfiguration::GetAgentParameter() {
return base::StringPrintf("%s %s(%s)",
version_info::GetProductName().c_str(),
version_info::GetVersionNumber().c_str(),
version_info::GetLastChange().c_str());
}
std::string DeviceManagementServiceConfiguration::GetPlatformParameter() {
std::string os_name = base::SysInfo::OperatingSystemName();
std::string os_hardware = base::SysInfo::OperatingSystemArchitecture();
#if defined(OS_CHROMEOS)
chromeos::system::StatisticsProvider* provider =
chromeos::system::StatisticsProvider::GetInstance();
std::string hwclass;
if (!provider->GetMachineStatistic(chromeos::system::kHardwareClassKey,
&hwclass)) {
LOG(ERROR) << "Failed to get machine information";
}
os_name += ",CrOS," + base::SysInfo::GetLsbReleaseBoard();
os_hardware += "," + hwclass;
#endif
std::string os_version("-");
#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
int32_t os_major_version = 0;
int32_t os_minor_version = 0;
int32_t os_bugfix_version = 0;
base::SysInfo::OperatingSystemVersionNumbers(&os_major_version,
&os_minor_version,
&os_bugfix_version);
os_version = base::StringPrintf("%d.%d.%d",
os_major_version,
os_minor_version,
os_bugfix_version);
#endif
return base::StringPrintf(
"%s|%s|%s", os_name.c_str(), os_hardware.c_str(), os_version.c_str());
}
} // namespace policy