Skip to content

Commit 6461709

Browse files
authored
Merge pull request #16 from powerapi-ng/add-os-deployement-possibility
Add os deployment possibility
2 parents 6c41517 + 33be2af commit 6461709

File tree

14 files changed

+342
-97
lines changed

14 files changed

+342
-97
lines changed

.gitignore

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
1-
/logs.d/**/*
1+
/logs*.d/**/*
22
.env
33
/Cargo.lock
44
/tasks.d/**/*
55
/jobs.d/**/*
6-
/results.d/**/*
7-
/scripts.d/**/*
8-
/inventories.d/**/*
6+
/results*.d/**/*
7+
/scripts*.d/**/*
8+
/inventories*.d/**/*
99
/backup/**/*
1010
/test_results/**/*
11-
/jobs.yaml
11+
/jobs*.yaml
1212
/menage.sh
13-
13+
/resources
14+
/*.tar.*
15+
/*ipynb*
16+
/batches/**
17+
/.ssh_g5k.pub
1418

1519
# Added by cargo
1620

src/configs.rs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,11 +121,17 @@ fn build_hwpc_system(hwpc_events: &HwpcEvents) -> HwpcSystem {
121121
}
122122
}
123123

124-
fn build_hwpc_config(name: String, system: HwpcSystem) -> HwpcConfig {
124+
fn build_hwpc_config(name: String, system: HwpcSystem, os_flavor: &str) -> HwpcConfig {
125+
let cgroup_basepath;
126+
if os_flavor == "ubuntu2404-nfs" {
127+
cgroup_basepath = "/sys/fs/cgroup";
128+
} else {
129+
cgroup_basepath = "/sys/fs/cgroup/perf_event";
130+
}
125131
HwpcConfig {
126132
name,
127133
verbose: true,
128-
cgroup_basepath: "/sys/fs/cgroup/perf_event".to_owned(),
134+
cgroup_basepath: cgroup_basepath.to_owned(),
129135
frequency: 1000,
130136
output: HwpcOutput {
131137
r#type: "csv".to_owned(),
@@ -138,13 +144,14 @@ pub fn generate_hwpc_configs(
138144
hwpc_events: &HwpcEvents,
139145
core_values: &[u32],
140146
prefix: &str,
147+
os_flavor: &str,
141148
) -> HashMap<u32, HwpcConfig> {
142149
let hwpc_system = build_hwpc_system(hwpc_events);
143150
core_values
144151
.iter()
145152
.map(|&core_value| {
146153
let name = format!("{}_sensor_{}", prefix, core_value);
147-
(core_value, build_hwpc_config(name, hwpc_system.clone()))
154+
(core_value, build_hwpc_config(name, hwpc_system.clone(), os_flavor))
148155
})
149156
.collect()
150157
}

src/inventories.rs

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ pub async fn get_api_call(
189189
let username = env::var("G5K_USERNAME").expect("G5K_USERNAME must be set");
190190
let password = env::var("G5K_PASSWORD").expect("G5K_PASSWORD must be set");
191191

192-
debug!("Scraping {}", endpoint);
192+
debug!("GET request to {}", endpoint);
193193

194194
let response = client
195195
.get(endpoint)
@@ -211,6 +211,39 @@ pub async fn get_api_call(
211211
}
212212
}
213213

214+
pub async fn post_api_call(
215+
client: &Client,
216+
endpoint: &str,
217+
data: &serde_json::Value
218+
) -> Result<HashMap<String, serde_json::Value>, InventoryError> {
219+
dotenv::dotenv().ok();
220+
let username = env::var("G5K_USERNAME").expect("G5K_USERNAME must be set");
221+
let password = env::var("G5K_PASSWORD").expect("G5K_PASSWORD must be set");
222+
223+
debug!("POST request to {}", endpoint);
224+
debug!("with data {:?}", data);
225+
226+
let response = client
227+
.post(endpoint)
228+
.json(&data)
229+
.basic_auth(username, Some(password))
230+
.send()
231+
.await;
232+
let response_json = match response {
233+
Ok(response_body) => {
234+
response_body
235+
.json()
236+
.await
237+
},
238+
Err(e) => Err(e)
239+
};
240+
241+
match response_json {
242+
Ok(json) => Ok(json),
243+
Err(e) => Err(InventoryError::HttpRequest(e)),
244+
}
245+
}
246+
214247
pub async fn generate_inventory(inventories_dir: &str) -> Result<(), InventoryError> {
215248
dotenv::dotenv().ok(); // Charger les variables d'environnement
216249
//
@@ -245,8 +278,8 @@ pub async fn generate_inventory(inventories_dir: &str) -> Result<(), InventoryEr
245278
.await
246279
.unwrap();
247280
for node in nodes.iter_mut() {
281+
node.cluster = Some(cluster.uid.clone().to_string());
248282
if node.is_to_be_deployed() {
249-
node.cluster = Some(cluster.uid.clone().to_string());
250283
let node_specs_file_path = format!("{}/{}.json", cluster_dir, &node.uid);
251284

252285
if !Path::new(&node_specs_file_path).exists() {

0 commit comments

Comments
 (0)