Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(248)

Side by Side Diff: update_attempter.cc

Issue 2981008: Initial implementation of sending an install success even to Omaha. (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/update_engine.git
Patch Set: Fix indentation. Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « omaha_request_prep_action.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "update_engine/update_attempter.h" 5 #include "update_engine/update_attempter.h"
6 6
7 // From 'man clock_gettime': feature test macro: _POSIX_C_SOURCE >= 199309L 7 // From 'man clock_gettime': feature test macro: _POSIX_C_SOURCE >= 199309L
8 #ifndef _POSIX_C_SOURCE 8 #ifndef _POSIX_C_SOURCE
9 #define _POSIX_C_SOURCE 199309L 9 #define _POSIX_C_SOURCE 199309L
10 #endif // _POSIX_C_SOURCE 10 #endif // _POSIX_C_SOURCE
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 } 93 }
94 if (status_ != UPDATE_STATUS_IDLE) { 94 if (status_ != UPDATE_STATUS_IDLE) {
95 // Update in progress. Do nothing 95 // Update in progress. Do nothing
96 return; 96 return;
97 } 97 }
98 full_update_ = force_full_update; 98 full_update_ = force_full_update;
99 CHECK(!processor_.IsRunning()); 99 CHECK(!processor_.IsRunning());
100 processor_.set_delegate(this); 100 processor_.set_delegate(this);
101 101
102 // Actions: 102 // Actions:
103 shared_ptr<OmahaRequestPrepAction> request_prep_action( 103 shared_ptr<OmahaRequestPrepAction> update_check_prep_action(
104 new OmahaRequestPrepAction(force_full_update)); 104 new OmahaRequestPrepAction(force_full_update));
105 shared_ptr<OmahaRequestAction> update_check_action( 105 shared_ptr<OmahaRequestAction> update_check_action(
106 new OmahaRequestAction(new LibcurlHttpFetcher)); 106 new OmahaRequestAction(NULL, new LibcurlHttpFetcher));
107 shared_ptr<OmahaResponseHandlerAction> response_handler_action( 107 shared_ptr<OmahaResponseHandlerAction> response_handler_action(
108 new OmahaResponseHandlerAction); 108 new OmahaResponseHandlerAction);
109 shared_ptr<FilesystemCopierAction> filesystem_copier_action( 109 shared_ptr<FilesystemCopierAction> filesystem_copier_action(
110 new FilesystemCopierAction(false)); 110 new FilesystemCopierAction(false));
111 shared_ptr<FilesystemCopierAction> kernel_filesystem_copier_action( 111 shared_ptr<FilesystemCopierAction> kernel_filesystem_copier_action(
112 new FilesystemCopierAction(true)); 112 new FilesystemCopierAction(true));
113 shared_ptr<DownloadAction> download_action( 113 shared_ptr<DownloadAction> download_action(
114 new DownloadAction(new LibcurlHttpFetcher)); 114 new DownloadAction(new LibcurlHttpFetcher));
115 shared_ptr<PostinstallRunnerAction> postinstall_runner_action_precommit( 115 shared_ptr<PostinstallRunnerAction> postinstall_runner_action_precommit(
116 new PostinstallRunnerAction(true)); 116 new PostinstallRunnerAction(true));
117 shared_ptr<SetBootableFlagAction> set_bootable_flag_action( 117 shared_ptr<SetBootableFlagAction> set_bootable_flag_action(
118 new SetBootableFlagAction); 118 new SetBootableFlagAction);
119 shared_ptr<PostinstallRunnerAction> postinstall_runner_action_postcommit( 119 shared_ptr<PostinstallRunnerAction> postinstall_runner_action_postcommit(
120 new PostinstallRunnerAction(false)); 120 new PostinstallRunnerAction(false));
121 shared_ptr<OmahaRequestPrepAction> install_success_prep_action(
122 new OmahaRequestPrepAction(false));
123 shared_ptr<OmahaRequestAction> install_success_action(
124 new OmahaRequestAction(new OmahaEvent(OmahaEvent::kTypeInstallComplete,
125 OmahaEvent::kResultSuccess,
126 0),
127 new LibcurlHttpFetcher));
121 128
122 download_action->set_delegate(this); 129 download_action->set_delegate(this);
123 response_handler_action_ = response_handler_action; 130 response_handler_action_ = response_handler_action;
124 131
125 actions_.push_back(shared_ptr<AbstractAction>(request_prep_action)); 132 actions_.push_back(shared_ptr<AbstractAction>(update_check_prep_action));
126 actions_.push_back(shared_ptr<AbstractAction>(update_check_action)); 133 actions_.push_back(shared_ptr<AbstractAction>(update_check_action));
127 actions_.push_back(shared_ptr<AbstractAction>(response_handler_action)); 134 actions_.push_back(shared_ptr<AbstractAction>(response_handler_action));
128 actions_.push_back(shared_ptr<AbstractAction>(filesystem_copier_action)); 135 actions_.push_back(shared_ptr<AbstractAction>(filesystem_copier_action));
129 actions_.push_back(shared_ptr<AbstractAction>( 136 actions_.push_back(shared_ptr<AbstractAction>(
130 kernel_filesystem_copier_action)); 137 kernel_filesystem_copier_action));
131 actions_.push_back(shared_ptr<AbstractAction>(download_action)); 138 actions_.push_back(shared_ptr<AbstractAction>(download_action));
132 actions_.push_back(shared_ptr<AbstractAction>( 139 actions_.push_back(shared_ptr<AbstractAction>(
133 postinstall_runner_action_precommit)); 140 postinstall_runner_action_precommit));
134 actions_.push_back(shared_ptr<AbstractAction>(set_bootable_flag_action)); 141 actions_.push_back(shared_ptr<AbstractAction>(set_bootable_flag_action));
135 actions_.push_back(shared_ptr<AbstractAction>( 142 actions_.push_back(shared_ptr<AbstractAction>(
136 postinstall_runner_action_postcommit)); 143 postinstall_runner_action_postcommit));
144 actions_.push_back(shared_ptr<AbstractAction>(install_success_prep_action));
145 actions_.push_back(shared_ptr<AbstractAction>(install_success_action));
137 146
138 // Enqueue the actions 147 // Enqueue the actions
139 for (vector<shared_ptr<AbstractAction> >::iterator it = actions_.begin(); 148 for (vector<shared_ptr<AbstractAction> >::iterator it = actions_.begin();
140 it != actions_.end(); ++it) { 149 it != actions_.end(); ++it) {
141 processor_.EnqueueAction(it->get()); 150 processor_.EnqueueAction(it->get());
142 } 151 }
143 152
144 // Bond them together. We have to use the leaf-types when calling 153 // Bond them together. We have to use the leaf-types when calling
145 // BondActions(). 154 // BondActions().
146 BondActions(request_prep_action.get(), 155 BondActions(update_check_prep_action.get(),
147 update_check_action.get()); 156 update_check_action.get());
148 BondActions(update_check_action.get(), 157 BondActions(update_check_action.get(),
149 response_handler_action.get()); 158 response_handler_action.get());
150 BondActions(response_handler_action.get(), 159 BondActions(response_handler_action.get(),
151 filesystem_copier_action.get()); 160 filesystem_copier_action.get());
152 BondActions(filesystem_copier_action.get(), 161 BondActions(filesystem_copier_action.get(),
153 kernel_filesystem_copier_action.get()); 162 kernel_filesystem_copier_action.get());
154 BondActions(kernel_filesystem_copier_action.get(), 163 BondActions(kernel_filesystem_copier_action.get(),
155 download_action.get()); 164 download_action.get());
156 BondActions(download_action.get(), 165 BondActions(download_action.get(),
157 postinstall_runner_action_precommit.get()); 166 postinstall_runner_action_precommit.get());
158 BondActions(postinstall_runner_action_precommit.get(), 167 BondActions(postinstall_runner_action_precommit.get(),
159 set_bootable_flag_action.get()); 168 set_bootable_flag_action.get());
160 BondActions(set_bootable_flag_action.get(), 169 BondActions(set_bootable_flag_action.get(),
161 postinstall_runner_action_postcommit.get()); 170 postinstall_runner_action_postcommit.get());
171 BondActions(install_success_prep_action.get(),
172 install_success_action.get());
162 173
163 SetStatusAndNotify(UPDATE_STATUS_CHECKING_FOR_UPDATE); 174 SetStatusAndNotify(UPDATE_STATUS_CHECKING_FOR_UPDATE);
164 processor_.StartProcessing(); 175 processor_.StartProcessing();
165 } 176 }
166 177
167 void UpdateAttempter::CheckForUpdate() { 178 void UpdateAttempter::CheckForUpdate() {
168 if (status_ != UPDATE_STATUS_IDLE) { 179 if (status_ != UPDATE_STATUS_IDLE) {
169 LOG(INFO) << "Check for update requested, but status is " 180 LOG(INFO) << "Check for update requested, but status is "
170 << UpdateStatusToString(status_) << ", so not checking."; 181 << UpdateStatusToString(status_) << ", so not checking.";
171 return; 182 return;
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 update_engine_service_emit_status_update( 285 update_engine_service_emit_status_update(
275 dbus_service_, 286 dbus_service_,
276 last_checked_time_, 287 last_checked_time_,
277 download_progress_, 288 download_progress_,
278 UpdateStatusToString(status_), 289 UpdateStatusToString(status_),
279 new_version_.c_str(), 290 new_version_.c_str(),
280 new_size_); 291 new_size_);
281 } 292 }
282 293
283 } // namespace chromeos_update_engine 294 } // namespace chromeos_update_engine
OLDNEW
« no previous file with comments | « omaha_request_prep_action.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698