summaryrefslogtreecommitdiff
path: root/update_manager/android_things_policy.cc
diff options
context:
space:
mode:
Diffstat (limited to 'update_manager/android_things_policy.cc')
-rw-r--r--update_manager/android_things_policy.cc182
1 files changed, 0 insertions, 182 deletions
diff --git a/update_manager/android_things_policy.cc b/update_manager/android_things_policy.cc
deleted file mode 100644
index 4afcf12e..00000000
--- a/update_manager/android_things_policy.cc
+++ /dev/null
@@ -1,182 +0,0 @@
-//
-// Copyright (C) 2017 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// 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.
-//
-
-#include "update_engine/update_manager/android_things_policy.h"
-
-#include <string>
-#include <vector>
-
-#include <base/logging.h>
-#include <base/time/time.h>
-
-#include "update_engine/update_manager/api_restricted_downloads_policy_impl.h"
-#include "update_engine/update_manager/enough_slots_ab_updates_policy_impl.h"
-#include "update_engine/update_manager/interactive_update_policy_impl.h"
-#include "update_engine/update_manager/official_build_check_policy_impl.h"
-
-using base::Time;
-using chromeos_update_engine::ErrorCode;
-using std::string;
-using std::vector;
-
-namespace chromeos_update_manager {
-
-const NextUpdateCheckPolicyConstants
- AndroidThingsPolicy::kNextUpdateCheckPolicyConstants = {
- .timeout_initial_interval = 7 * 60,
- .timeout_periodic_interval = 5 * 60 * 60,
- .timeout_max_backoff_interval = 26 * 60 * 60,
- .timeout_regular_fuzz = 10 * 60,
- .attempt_backoff_max_interval_in_days = 16,
- .attempt_backoff_fuzz_in_hours = 12,
-};
-
-EvalStatus AndroidThingsPolicy::UpdateCheckAllowed(
- EvaluationContext* ec,
- State* state,
- string* error,
- UpdateCheckParams* result) const {
- // Set the default return values.
- result->updates_enabled = true;
- result->target_channel.clear();
- result->target_version_prefix.clear();
- result->rollback_allowed = false;
- result->rollback_allowed_milestones = -1;
- result->interactive = false;
-
- // Build a list of policies to consult. Note that each policy may modify the
- // result structure, even if it signals kContinue.
- EnoughSlotsAbUpdatesPolicyImpl enough_slots_ab_updates_policy;
- OnlyUpdateOfficialBuildsPolicyImpl only_update_official_builds_policy;
- InteractiveUpdatePolicyImpl interactive_update_policy;
- NextUpdateCheckTimePolicyImpl next_update_check_time_policy(
- kNextUpdateCheckPolicyConstants);
-
- vector<Policy const*> policies_to_consult = {
- // Do not perform any updates if there are not enough slots to do
- // A/B updates
- &enough_slots_ab_updates_policy,
-
- // Check to see if an interactive update was requested.
- &interactive_update_policy,
-
- // Unofficial builds should not perform periodic update checks.
- &only_update_official_builds_policy,
-
- // Ensure that periodic update checks are timed properly.
- &next_update_check_time_policy,
- };
-
- // Now that the list of policy implementations, and the order to consult them,
- // as been setup, do that. If none of the policies make a definitive
- // decisions about whether or not to check for updates, then allow the update
- // check to happen.
- EvalStatus status = ConsultPolicies(policies_to_consult,
- &Policy::UpdateCheckAllowed,
- ec,
- state,
- error,
- result);
- if (status != EvalStatus::kContinue) {
- return status;
- } else {
- // It is time to check for an update.
- LOG(INFO) << "Allowing update check.";
- return EvalStatus::kSucceeded;
- }
-}
-
-// Uses the |UpdateRestrictions| to determine if the download and apply can
-// occur at this time.
-EvalStatus AndroidThingsPolicy::UpdateCanBeApplied(
- EvaluationContext* ec,
- State* state,
- string* error,
- ErrorCode* result,
- chromeos_update_engine::InstallPlan* install_plan) const {
- // Build a list of policies to consult. Note that each policy may modify the
- // result structure, even if it signals kContinue.
- ApiRestrictedDownloadsPolicyImpl api_restricted_downloads_policy;
-
- vector<Policy const*> policies_to_consult = {
- // Do not apply the update if all updates are restricted by the API.
- &api_restricted_downloads_policy,
- };
-
- // Now that the list of policy implementations, and the order to consult them,
- // as been setup, do that. If none of the policies make a definitive
- // decisions about whether or not to check for updates, then allow the update
- // check to happen.
- EvalStatus status = ConsultPolicies(policies_to_consult,
- &Policy::UpdateCanBeApplied,
- ec,
- state,
- error,
- result,
- install_plan);
- if (EvalStatus::kContinue != status) {
- return status;
- } else {
- // The update can proceed.
- LOG(INFO) << "Allowing update to be applied.";
- *result = ErrorCode::kSuccess;
- return EvalStatus::kSucceeded;
- }
-}
-
-// Always returns |EvalStatus::kSucceeded|
-EvalStatus AndroidThingsPolicy::UpdateCanStart(EvaluationContext* ec,
- State* state,
- string* error,
- UpdateDownloadParams* result,
- UpdateState update_state) const {
- // Update is good to go.
- result->update_can_start = true;
- return EvalStatus::kSucceeded;
-}
-
-// Always returns |EvalStatus::kSucceeded|
-EvalStatus AndroidThingsPolicy::UpdateDownloadAllowed(EvaluationContext* ec,
- State* state,
- string* error,
- bool* result) const {
- // By default, we allow updates.
- *result = true;
- return EvalStatus::kSucceeded;
-}
-
-// P2P is always disabled. Returns |result|==|false| and
-// |EvalStatus::kSucceeded|
-EvalStatus AndroidThingsPolicy::P2PEnabled(EvaluationContext* ec,
- State* state,
- string* error,
- bool* result) const {
- *result = false;
- return EvalStatus::kSucceeded;
-}
-
-// This will return immediately with |EvalStatus::kSucceeded| and set
-// |result|==|false|
-EvalStatus AndroidThingsPolicy::P2PEnabledChanged(EvaluationContext* ec,
- State* state,
- string* error,
- bool* result,
- bool prev_result) const {
- *result = false;
- return EvalStatus::kSucceeded;
-}
-
-} // namespace chromeos_update_manager