Configurable update tracks to help testing.
This commit is contained in:
parent
fa319ff64c
commit
4a2b418fc2
17
Cargo.lock
generated
17
Cargo.lock
generated
@ -33,8 +33,8 @@ dependencies = [
|
|||||||
"num_cpus 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"num_cpus 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"number_prefix 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"number_prefix 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-hash-fetch 1.5.0",
|
"parity-hash-fetch 1.5.0",
|
||||||
"parity-updater 1.5.0",
|
|
||||||
"parity-rpc-client 1.4.0",
|
"parity-rpc-client 1.4.0",
|
||||||
|
"parity-updater 1.5.0",
|
||||||
"regex 0.1.68 (registry+https://github.com/rust-lang/crates.io-index)",
|
"regex 0.1.68 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp 0.1.0",
|
"rlp 0.1.0",
|
||||||
"rpassword 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rpassword 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -890,7 +890,7 @@ version = "3.0.2"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parking_lot 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde 0.8.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 0.8.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_codegen 0.8.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_codegen 0.8.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_json 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_json 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1398,6 +1398,17 @@ dependencies = [
|
|||||||
"parity-hash-fetch 1.5.0",
|
"parity-hash-fetch 1.5.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "parking_lot"
|
||||||
|
version = "0.2.8"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
dependencies = [
|
||||||
|
"kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"libc 0.2.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"smallvec 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "parking_lot"
|
name = "parking_lot"
|
||||||
version = "0.3.6"
|
version = "0.3.6"
|
||||||
@ -1650,6 +1661,7 @@ dependencies = [
|
|||||||
"kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"libc 0.2.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
"libc 0.2.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"termios 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"termios 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2265,6 +2277,7 @@ dependencies = [
|
|||||||
"checksum owning_ref 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8d91377085359426407a287ab16884a0111ba473aa6844ff01d4ec20ce3d75e7"
|
"checksum owning_ref 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8d91377085359426407a287ab16884a0111ba473aa6844ff01d4ec20ce3d75e7"
|
||||||
"checksum parity-dapps-glue 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "98378dec0a185da2b7180308752f0bad73aaa949c3e0a3b0528d0e067945f7ab"
|
"checksum parity-dapps-glue 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "98378dec0a185da2b7180308752f0bad73aaa949c3e0a3b0528d0e067945f7ab"
|
||||||
"checksum parity-ui-precompiled 1.4.0 (git+https://github.com/ethcore/js-precompiled.git)" = "<none>"
|
"checksum parity-ui-precompiled 1.4.0 (git+https://github.com/ethcore/js-precompiled.git)" = "<none>"
|
||||||
|
"checksum parking_lot 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "968f685642555d2f7e202c48b8b11de80569e9bfea817f7f12d7c61aac62d4e6"
|
||||||
"checksum parking_lot 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "e1435e7a2a00dfebededd6c6bdbd54008001e94b4a2aadd6aef0dc4c56317621"
|
"checksum parking_lot 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "e1435e7a2a00dfebededd6c6bdbd54008001e94b4a2aadd6aef0dc4c56317621"
|
||||||
"checksum parking_lot_core 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fb1b97670a2ffadce7c397fb80a3d687c4f3060140b885621ef1653d0e5d5068"
|
"checksum parking_lot_core 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fb1b97670a2ffadce7c397fb80a3d687c4f3060140b885621ef1653d0e5d5068"
|
||||||
"checksum phf 0.7.14 (registry+https://github.com/rust-lang/crates.io-index)" = "447d9d45f2e0b4a9b532e808365abf18fc211be6ca217202fcd45236ef12f026"
|
"checksum phf 0.7.14 (registry+https://github.com/rust-lang/crates.io-index)" = "447d9d45f2e0b4a9b532e808365abf18fc211be6ca217202fcd45236ef12f026"
|
||||||
|
@ -27,7 +27,9 @@ pub enum ReleaseTrack {
|
|||||||
Beta,
|
Beta,
|
||||||
/// Nightly track.
|
/// Nightly track.
|
||||||
Nightly,
|
Nightly,
|
||||||
/// No known track.
|
/// Testing track.
|
||||||
|
Testing,
|
||||||
|
/// No known track, also "current executable's track" when it's not yet known.
|
||||||
Unknown,
|
Unknown,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -37,7 +39,8 @@ impl fmt::Display for ReleaseTrack {
|
|||||||
ReleaseTrack::Stable => "stable",
|
ReleaseTrack::Stable => "stable",
|
||||||
ReleaseTrack::Beta => "beta",
|
ReleaseTrack::Beta => "beta",
|
||||||
ReleaseTrack::Nightly => "nightly",
|
ReleaseTrack::Nightly => "nightly",
|
||||||
ReleaseTrack::Unknown => "unknown",
|
ReleaseTrack::Testing => "testing",
|
||||||
|
ReleaseTrack::Unknown => "unknown",
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -48,6 +51,7 @@ impl<'a> From<&'a str> for ReleaseTrack {
|
|||||||
"stable" => ReleaseTrack::Stable,
|
"stable" => ReleaseTrack::Stable,
|
||||||
"beta" => ReleaseTrack::Beta,
|
"beta" => ReleaseTrack::Beta,
|
||||||
"nightly" => ReleaseTrack::Nightly,
|
"nightly" => ReleaseTrack::Nightly,
|
||||||
|
"testing" => ReleaseTrack::Testing,
|
||||||
_ => ReleaseTrack::Unknown,
|
_ => ReleaseTrack::Unknown,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -59,6 +63,7 @@ impl From<u8> for ReleaseTrack {
|
|||||||
1 => ReleaseTrack::Stable,
|
1 => ReleaseTrack::Stable,
|
||||||
2 => ReleaseTrack::Beta,
|
2 => ReleaseTrack::Beta,
|
||||||
3 => ReleaseTrack::Nightly,
|
3 => ReleaseTrack::Nightly,
|
||||||
|
4 => ReleaseTrack::Testing,
|
||||||
_ => ReleaseTrack::Unknown,
|
_ => ReleaseTrack::Unknown,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -70,6 +75,7 @@ impl Into<u8> for ReleaseTrack {
|
|||||||
ReleaseTrack::Stable => 1,
|
ReleaseTrack::Stable => 1,
|
||||||
ReleaseTrack::Beta => 2,
|
ReleaseTrack::Beta => 2,
|
||||||
ReleaseTrack::Nightly => 3,
|
ReleaseTrack::Nightly => 3,
|
||||||
|
ReleaseTrack::Testing => 4,
|
||||||
ReleaseTrack::Unknown => 0,
|
ReleaseTrack::Unknown => 0,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ mode = "last"
|
|||||||
mode_timeout = 300
|
mode_timeout = 300
|
||||||
mode_alarm = 3600
|
mode_alarm = 3600
|
||||||
auto_update = "critical"
|
auto_update = "critical"
|
||||||
|
releases_track = "current"
|
||||||
no_download = false
|
no_download = false
|
||||||
no_consensus = false
|
no_consensus = false
|
||||||
|
|
||||||
|
@ -86,6 +86,7 @@ usage! {
|
|||||||
flag_mode_timeout: u64 = 300u64, or |c: &Config| otry!(c.parity).mode_timeout.clone(),
|
flag_mode_timeout: u64 = 300u64, or |c: &Config| otry!(c.parity).mode_timeout.clone(),
|
||||||
flag_mode_alarm: u64 = 3600u64, or |c: &Config| otry!(c.parity).mode_alarm.clone(),
|
flag_mode_alarm: u64 = 3600u64, or |c: &Config| otry!(c.parity).mode_alarm.clone(),
|
||||||
flag_auto_update: String = "critical", or |c: &Config| otry!(c.parity).auto_update.clone(),
|
flag_auto_update: String = "critical", or |c: &Config| otry!(c.parity).auto_update.clone(),
|
||||||
|
flag_releases_track: String = "current", or |c: &Config| otry!(c.parity).releases_track.clone(),
|
||||||
flag_no_download: bool = false, or |c: &Config| otry!(c.parity).no_download.clone(),
|
flag_no_download: bool = false, or |c: &Config| otry!(c.parity).no_download.clone(),
|
||||||
flag_no_consensus: bool = false, or |c: &Config| otry!(c.parity).no_consensus.clone(),
|
flag_no_consensus: bool = false, or |c: &Config| otry!(c.parity).no_consensus.clone(),
|
||||||
flag_chain: String = "homestead", or |c: &Config| otry!(c.parity).chain.clone(),
|
flag_chain: String = "homestead", or |c: &Config| otry!(c.parity).chain.clone(),
|
||||||
@ -313,6 +314,7 @@ struct Operating {
|
|||||||
mode_timeout: Option<u64>,
|
mode_timeout: Option<u64>,
|
||||||
mode_alarm: Option<u64>,
|
mode_alarm: Option<u64>,
|
||||||
auto_update: Option<String>,
|
auto_update: Option<String>,
|
||||||
|
releases_track: Option<String>,
|
||||||
no_download: Option<bool>,
|
no_download: Option<bool>,
|
||||||
no_consensus: Option<bool>,
|
no_consensus: Option<bool>,
|
||||||
chain: Option<String>,
|
chain: Option<String>,
|
||||||
@ -540,6 +542,7 @@ mod tests {
|
|||||||
flag_mode_timeout: 300u64,
|
flag_mode_timeout: 300u64,
|
||||||
flag_mode_alarm: 3600u64,
|
flag_mode_alarm: 3600u64,
|
||||||
flag_auto_update: "critical".into(),
|
flag_auto_update: "critical".into(),
|
||||||
|
flag_releases_track: "current".into(),
|
||||||
flag_no_download: false,
|
flag_no_download: false,
|
||||||
flag_no_consensus: false,
|
flag_no_consensus: false,
|
||||||
flag_chain: "xyz".into(),
|
flag_chain: "xyz".into(),
|
||||||
@ -717,6 +720,7 @@ mod tests {
|
|||||||
mode_timeout: Some(15u64),
|
mode_timeout: Some(15u64),
|
||||||
mode_alarm: Some(10u64),
|
mode_alarm: Some(10u64),
|
||||||
auto_update: None,
|
auto_update: None,
|
||||||
|
releases_track: None,
|
||||||
no_download: None,
|
no_download: None,
|
||||||
no_consensus: None,
|
no_consensus: None,
|
||||||
chain: Some("./chain.json".into()),
|
chain: Some("./chain.json".into()),
|
||||||
|
@ -34,12 +34,19 @@ Operating Options:
|
|||||||
--mode-alarm SECS Specify the number of seconds before auto sleep
|
--mode-alarm SECS Specify the number of seconds before auto sleep
|
||||||
reawake timeout occurs when mode is passive
|
reawake timeout occurs when mode is passive
|
||||||
(default: {flag_mode_alarm}).
|
(default: {flag_mode_alarm}).
|
||||||
--auto-update TRACK Set a release track to automatically update and
|
--auto-update SET Set a releases set to automatically update and
|
||||||
install.
|
install.
|
||||||
all - All updates in the current release track.
|
all - All updates in the our release track.
|
||||||
critical - Only consensus/security updates.
|
critical - Only consensus/security updates.
|
||||||
none - No updates will be auto-installed.
|
none - No updates will be auto-installed.
|
||||||
(default: {flag_auto_update}).
|
(default: {flag_auto_update}).
|
||||||
|
--releases-track TRACK Set which release track we should use for updates.
|
||||||
|
stable - Stable releases.
|
||||||
|
beta - Beta releases.
|
||||||
|
nightly - Nightly releases (unstable).
|
||||||
|
testing - Testing releases (do not use).
|
||||||
|
current - Whatever track this executable was
|
||||||
|
released on (default: {flag_releases_track}).
|
||||||
--no-download Normally new releases will be downloaded ready for
|
--no-download Normally new releases will be downloaded ready for
|
||||||
updating. This disables it. Not recommended.
|
updating. This disables it. Not recommended.
|
||||||
(default: {flag_no_download}).
|
(default: {flag_no_download}).
|
||||||
@ -47,7 +54,7 @@ Operating Options:
|
|||||||
issues regarding consensus. Not recommended.
|
issues regarding consensus. Not recommended.
|
||||||
(default: {flag_no_consensus}).
|
(default: {flag_no_consensus}).
|
||||||
--force-direct Run the originally installed version of Parity,
|
--force-direct Run the originally installed version of Parity,
|
||||||
ignoring any updates that have since been installed.
|
ignoring any updates that have since been installed.
|
||||||
--chain CHAIN Specify the blockchain type. CHAIN may be either a
|
--chain CHAIN Specify the blockchain type. CHAIN may be either a
|
||||||
JSON chain specification file or olympic, frontier,
|
JSON chain specification file or olympic, frontier,
|
||||||
homestead, mainnet, morden, ropsten, classic, expanse,
|
homestead, mainnet, morden, ropsten, classic, expanse,
|
||||||
|
@ -37,7 +37,7 @@ use ethcore_logger::Config as LogConfig;
|
|||||||
use dir::Directories;
|
use dir::Directories;
|
||||||
use dapps::Configuration as DappsConfiguration;
|
use dapps::Configuration as DappsConfiguration;
|
||||||
use signer::{Configuration as SignerConfiguration};
|
use signer::{Configuration as SignerConfiguration};
|
||||||
use updater::{UpdatePolicy, UpdateFilter};
|
use updater::{UpdatePolicy, UpdateFilter, ReleaseTrack};
|
||||||
use run::RunCmd;
|
use run::RunCmd;
|
||||||
use blockchain::{BlockchainCmd, ImportBlockchain, ExportBlockchain, KillBlockchain, ExportState, DataFormat};
|
use blockchain::{BlockchainCmd, ImportBlockchain, ExportBlockchain, KillBlockchain, ExportState, DataFormat};
|
||||||
use presale::ImportWallet;
|
use presale::ImportWallet;
|
||||||
@ -693,6 +693,14 @@ impl Configuration {
|
|||||||
"all" => UpdateFilter::All,
|
"all" => UpdateFilter::All,
|
||||||
_ => return Err("Invalid value for `--auto-update`. See `--help` for more information.".into()),
|
_ => return Err("Invalid value for `--auto-update`. See `--help` for more information.".into()),
|
||||||
},
|
},
|
||||||
|
track: match self.args.flag_releases_track.as_ref() {
|
||||||
|
"stable" => ReleaseTrack::Stable,
|
||||||
|
"beta" => ReleaseTrack::Beta,
|
||||||
|
"nightly" => ReleaseTrack::Nightly,
|
||||||
|
"testing" => ReleaseTrack::Testing,
|
||||||
|
"current" => ReleaseTrack::Unknown,
|
||||||
|
_ => return Err("Invalid value for `--releases-track`. See `--help` for more information.".into()),
|
||||||
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,6 +58,9 @@ pub enum ReleaseTrack {
|
|||||||
/// Nightly track.
|
/// Nightly track.
|
||||||
#[serde(rename="nightly")]
|
#[serde(rename="nightly")]
|
||||||
Nightly,
|
Nightly,
|
||||||
|
/// Testing track.
|
||||||
|
#[serde(rename="testing")]
|
||||||
|
Testing,
|
||||||
/// No known track.
|
/// No known track.
|
||||||
#[serde(rename="null")]
|
#[serde(rename="null")]
|
||||||
Unknown,
|
Unknown,
|
||||||
@ -69,6 +72,7 @@ impl Into<ReleaseTrack> for updater::ReleaseTrack {
|
|||||||
updater::ReleaseTrack::Stable => ReleaseTrack::Stable,
|
updater::ReleaseTrack::Stable => ReleaseTrack::Stable,
|
||||||
updater::ReleaseTrack::Beta => ReleaseTrack::Beta,
|
updater::ReleaseTrack::Beta => ReleaseTrack::Beta,
|
||||||
updater::ReleaseTrack::Nightly => ReleaseTrack::Nightly,
|
updater::ReleaseTrack::Nightly => ReleaseTrack::Nightly,
|
||||||
|
updater::ReleaseTrack::Testing => ReleaseTrack::Testing,
|
||||||
updater::ReleaseTrack::Unknown => ReleaseTrack::Unknown,
|
updater::ReleaseTrack::Unknown => ReleaseTrack::Unknown,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ use std::sync::{Arc, Weak};
|
|||||||
use std::{fs, env};
|
use std::{fs, env};
|
||||||
use std::io::Write;
|
use std::io::Write;
|
||||||
use std::path::{PathBuf};
|
use std::path::{PathBuf};
|
||||||
//use util::misc::platform;
|
use util::misc::platform;
|
||||||
use ipc_common_types::{VersionInfo, ReleaseTrack};
|
use ipc_common_types::{VersionInfo, ReleaseTrack};
|
||||||
use util::{Address, H160, H256, FixedHash, Mutex, Bytes};
|
use util::{Address, H160, H256, FixedHash, Mutex, Bytes};
|
||||||
use ethcore::client::{BlockId, BlockChainClient, ChainNotify};
|
use ethcore::client::{BlockId, BlockChainClient, ChainNotify};
|
||||||
@ -47,6 +47,8 @@ pub struct UpdatePolicy {
|
|||||||
pub require_consensus: bool,
|
pub require_consensus: bool,
|
||||||
/// Which of those downloaded should be automatically installed.
|
/// Which of those downloaded should be automatically installed.
|
||||||
pub filter: UpdateFilter,
|
pub filter: UpdateFilter,
|
||||||
|
/// Which track we should be following.
|
||||||
|
pub track: ReleaseTrack,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for UpdatePolicy {
|
impl Default for UpdatePolicy {
|
||||||
@ -55,6 +57,7 @@ impl Default for UpdatePolicy {
|
|||||||
enable_downloading: false,
|
enable_downloading: false,
|
||||||
require_consensus: true,
|
require_consensus: true,
|
||||||
filter: UpdateFilter::None,
|
filter: UpdateFilter::None,
|
||||||
|
track: ReleaseTrack::Unknown,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -89,14 +92,9 @@ pub struct Updater {
|
|||||||
|
|
||||||
const CLIENT_ID: &'static str = "parity";
|
const CLIENT_ID: &'static str = "parity";
|
||||||
|
|
||||||
// TODO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! REMOVE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
fn platform() -> String {
|
|
||||||
"test".to_owned()
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Updater {
|
impl Updater {
|
||||||
pub fn new(client: Weak<BlockChainClient>, update_policy: UpdatePolicy) -> Arc<Self> {
|
pub fn new(client: Weak<BlockChainClient>, update_policy: UpdatePolicy) -> Arc<Self> {
|
||||||
let mut u = Updater {
|
let r = Arc::new(Updater {
|
||||||
update_policy: update_policy,
|
update_policy: update_policy,
|
||||||
weak_self: Mutex::new(Default::default()),
|
weak_self: Mutex::new(Default::default()),
|
||||||
client: client.clone(),
|
client: client.clone(),
|
||||||
@ -105,14 +103,7 @@ impl Updater {
|
|||||||
exit_handler: Mutex::new(None),
|
exit_handler: Mutex::new(None),
|
||||||
this: VersionInfo::this(),
|
this: VersionInfo::this(),
|
||||||
state: Mutex::new(Default::default()),
|
state: Mutex::new(Default::default()),
|
||||||
};
|
});
|
||||||
|
|
||||||
// TODO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! REMOVE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
if u.this.track == ReleaseTrack::Unknown {
|
|
||||||
u.this.track = ReleaseTrack::Nightly;
|
|
||||||
}
|
|
||||||
|
|
||||||
let r = Arc::new(u);
|
|
||||||
*r.fetcher.lock() = Some(fetch::Client::new(r.clone()));
|
*r.fetcher.lock() = Some(fetch::Client::new(r.clone()));
|
||||||
*r.weak_self.lock() = Arc::downgrade(&r);
|
*r.weak_self.lock() = Arc::downgrade(&r);
|
||||||
r.poll();
|
r.poll();
|
||||||
@ -135,6 +126,13 @@ impl Updater {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn track(&self) -> ReleaseTrack {
|
||||||
|
match self.update_policy.track {
|
||||||
|
ReleaseTrack::Unknown => self.this.track,
|
||||||
|
x => x,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn collect_latest(&self) -> Result<OperationsInfo, String> {
|
fn collect_latest(&self) -> Result<OperationsInfo, String> {
|
||||||
if let Some(ref operations) = *self.operations.lock() {
|
if let Some(ref operations) = *self.operations.lock() {
|
||||||
let hh: H256 = self.this.hash.into();
|
let hh: H256 = self.this.hash.into();
|
||||||
@ -145,15 +143,15 @@ impl Updater {
|
|||||||
if track > 0 {Some(fork as u64)} else {None}
|
if track > 0 {Some(fork as u64)} else {None}
|
||||||
});
|
});
|
||||||
|
|
||||||
if self.this.track == ReleaseTrack::Unknown {
|
if self.track() == ReleaseTrack::Unknown {
|
||||||
return Err(format!("Current executable ({}) is unreleased.", H160::from(self.this.hash)));
|
return Err(format!("Current executable ({}) is unreleased.", H160::from(self.this.hash)));
|
||||||
}
|
}
|
||||||
|
|
||||||
let latest_in_track = operations.latest_in_track(CLIENT_ID, self.this.track.into())?;
|
let latest_in_track = operations.latest_in_track(CLIENT_ID, self.track().into())?;
|
||||||
let in_track = Self::collect_release_info(operations, &latest_in_track)?;
|
let in_track = Self::collect_release_info(operations, &latest_in_track)?;
|
||||||
let mut in_minor = Some(in_track.clone());
|
let mut in_minor = Some(in_track.clone());
|
||||||
const PROOF: &'static str = "in_minor initialised and assigned with Some; loop breaks if None assigned; qed";
|
const PROOF: &'static str = "in_minor initialised and assigned with Some; loop breaks if None assigned; qed";
|
||||||
while in_minor.as_ref().expect(PROOF).version.track != self.this.track {
|
while in_minor.as_ref().expect(PROOF).version.track != self.track() {
|
||||||
let track = match in_minor.as_ref().expect(PROOF).version.track {
|
let track = match in_minor.as_ref().expect(PROOF).version.track {
|
||||||
ReleaseTrack::Beta => ReleaseTrack::Stable,
|
ReleaseTrack::Beta => ReleaseTrack::Stable,
|
||||||
ReleaseTrack::Nightly => ReleaseTrack::Beta,
|
ReleaseTrack::Nightly => ReleaseTrack::Beta,
|
||||||
|
Loading…
Reference in New Issue
Block a user