Repository: napalm-automation/napalm

Issue:
KeyError in get_environment() on Juniper MX10k3 with Junos 19.2R1.8
### Description of Issue/Question

Calling `get_environment()` on our Juniper MX10003 throws a `KeyError`.

The error has been traced back to `pem_name = pem[0].replace("PEM", "Power Supply")`. I assume this was done because Junos returned "Power Suppply" in `junos_environment_table` and "PEM" in `junos_pem_table`. However, my box returns "PEM" in both, so replacing it causes the lookup error later.

Suggested fix is to also replace "PEM" with "Power Supply" on the name from the environment. This makes the lookup work and keeps the output consistent by always using the "Power Supply" naming:

```
for sensor_object, object_data in environment.items():
    ...
    if structured_object_data["class"] == "Power":
        sensor_object = sensor_object.replace("PEM", "Power Supply")
        ....
```

### Did you follow the steps from https://github.com/napalm-automation/napalm#faq
(Place an ``x`` between the square brackets where applicable)

- [x] Yes
- [ ] No


### Setup

### napalm version
(Paste verbatim output from `pip freeze | grep napalm` between quotes below)

```
napalm==3.0.1
```

### Network operating system version
(Paste verbatim output from `show version` - or equivalent - between quotes below)

```
Model: mx10003
Junos: 19.2R1.8
```

### Steps to Reproduce the Issue

```
In [1]: import napalm                                                                                                                                                                                                           
In [2]: driver = napalm.get_network_driver('junos')                                                                                                                                                                             
In [3]: rtr = driver('10.x.y.z', 'sander', 'wouldntyouliketoknow')                                                                                                                                                                      
In [4]: rtr.open()
In [5]: rtr.get_environment()                                                                                                                                                                                                   
```

### Error Traceback
(Paste the complete traceback of the exception between quotes below)

```
/opt/netbox-dev/venv/lib/python3.6/site-packages/napalm/junos/junos.py in get_environment(self)
    527                     environment_data["power"][pem_name]["capacity"] = pem_table[
    528                         pem_name
--> 529                     ]["capacity"]
    530                 if pem_table[pem_name]["output"] is not None:
    531                     environment_data["power"][pem_name]["output"] = pem_table[pem_name][

KeyError: 'Power Supply 0'
```

KeyError in get_environment() on Juniper MX10k3 with Junos 19.2R1.8
### Description of Issue/Question

Calling `get_environment()` on our Juniper MX10003 throws a `KeyError`.

The error has been traced back to `pem_name = pem[0].replace("PEM", "Power Supply")`. I assume this was done because Junos returned "Power Suppply" in `junos_environment_table` and "PEM" in `junos_pem_table`. However, my box returns "PEM" in both, so replacing it causes the lookup error later.

Suggested fix is to also replace "PEM" with "Power Supply" on the name from the environment. This makes the lookup work and keeps the output consistent by always using the "Power Supply" naming:

```
for sensor_object, object_data in environment.items():
    ...
    if structured_object_data["class"] == "Power":
        sensor_object = sensor_object.replace("PEM", "Power Supply")
        ....
```

### Did you follow the steps from https://github.com/napalm-automation/napalm#faq
(Place an ``x`` between the square brackets where applicable)

- [x] Yes
- [ ] No


### Setup

### napalm version
(Paste verbatim output from `pip freeze | grep napalm` between quotes below)

```
napalm==3.0.1
```

### Network operating system version
(Paste verbatim output from `show version` - or equivalent - between quotes below)

```
Model: mx10003
Junos: 19.2R1.8
```

### Steps to Reproduce the Issue

```
In [1]: import napalm                                                                                                                                                                                                           
In [2]: driver = napalm.get_network_driver('junos')                                                                                                                                                                             
In [3]: rtr = driver('10.x.y.z', 'sander', 'wouldntyouliketoknow')                                                                                                                                                                      
In [4]: rtr.open()
In [5]: rtr.get_environment()                                                                                                                                                                                                   
```

### Error Traceback
(Paste the complete traceback of the exception between quotes below)

```
/opt/netbox-dev/venv/lib/python3.6/site-packages/napalm/junos/junos.py in get_environment(self)
    527                     environment_data["power"][pem_name]["capacity"] = pem_table[
    528                         pem_name
--> 529                     ]["capacity"]
    530                 if pem_table[pem_name]["output"] is not None:
    531                     environment_data["power"][pem_name]["output"] = pem_table[pem_name][

KeyError: 'Power Supply 0'
```



Discussion:
Hi @steffann. Thanks for reporting. I think the fix you suggested sounds good.
PR incoming!
Hi @steffann. Thanks for reporting. I think the fix you suggested sounds good.
PR incoming!

Resolving patch:
diff --git a/napalm/junos/junos.py b/napalm/junos/junos.py
--- a/napalm/junos/junos.py
+++ b/napalm/junos/junos.py
@@ -429,6 +429,9 @@ def get_environment(self):
                 structured_object_data["class"] = current_class
 
             if structured_object_data["class"] == "Power":
+                # Make sure naming is consistent
+                sensor_object = sensor_object.replace("PEM", "Power Supply")
+
                 # Create a dict for the 'power' key
                 try:
                     environment_data["power"][sensor_object] = {}


Test patch:
diff --git a/test/junos/mocked_data/test_get_environment/mx10003/expected_result.json b/test/junos/mocked_data/test_get_environment/mx10003/expected_result.json
new file mode 100644
--- /dev/null
+++ b/test/junos/mocked_data/test_get_environment/mx10003/expected_result.json
@@ -0,0 +1,283 @@
+{
+  "temperature": {
+    "CB 0 Exhaust Temp Sensor": {
+      "temperature": 36.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "CB 0 Inlet Temp Sensor": {
+      "temperature": 30.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "CB 0 CPU DIE Temp Sensor": {
+      "temperature": 40.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "CB 1 Exhaust Temp Sensor": {
+      "temperature": 36.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "CB 1 Inlet Temp Sensor": {
+      "temperature": 29.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "CB 1 CPU DIE Temp Sensor": {
+      "temperature": 40.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 Intake Temp Sensor": {
+      "temperature": 27.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 Exhaust-A Temp Sensor": {
+      "temperature": 53.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 Exhaust-B Temp Sensor": {
+      "temperature": 47.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 EA0 Chip": {
+      "temperature": 54.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 EA0-XR0 Chip": {
+      "temperature": 57.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 EA0-XR1 Chip": {
+      "temperature": 59.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 EA1 Chip": {
+      "temperature": 61.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 EA1-XR0 Chip": {
+      "temperature": 64.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 EA1-XR1 Chip": {
+      "temperature": 65.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 EA2 Chip": {
+      "temperature": 46.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 EA2-XR0 Chip": {
+      "temperature": 48.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 EA2-XR1 Chip": {
+      "temperature": 51.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 PF Chip": {
+      "temperature": 64.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 EA0_HMC0 Logic die": {
+      "temperature": 69.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 EA0_HMC0 DRAM botm": {
+      "temperature": 66.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 EA0_HMC1 Logic die": {
+      "temperature": 70.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 EA0_HMC1 DRAM botm": {
+      "temperature": 67.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 EA0_HMC2 Logic die": {
+      "temperature": 69.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 EA0_HMC2 DRAM botm": {
+      "temperature": 66.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 EA1_HMC0 Logic die": {
+      "temperature": 76.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 EA1_HMC0 DRAM botm": {
+      "temperature": 73.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 EA1_HMC1 Logic die": {
+      "temperature": 75.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 EA1_HMC1 DRAM botm": {
+      "temperature": 72.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 EA1_HMC2 Logic die": {
+      "temperature": 76.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 EA1_HMC2 DRAM botm": {
+      "temperature": 73.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 EA2_HMC0 Logic die": {
+      "temperature": 53.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 EA2_HMC0 DRAM botm": {
+      "temperature": 50.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 EA2_HMC1 Logic die": {
+      "temperature": 58.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 EA2_HMC1 DRAM botm": {
+      "temperature": 55.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 EA2_HMC2 Logic die": {
+      "temperature": 59.0,
+      "is_alert": false,
+      "is_critical": false
+    },
+    "FPC 1 EA2_HMC2 DRAM botm": {
+      "temperature": 56.0,
+      "is_alert": false,
+      "is_critical": false
+    }
+  },
+  "power": {
+    "Power Supply 0": {
+      "capacity": 1600.0,
+      "output": 180.0,
+      "status": true
+    },
+    "Power Supply 1": {
+      "capacity": 1600.0,
+      "output": 252.0,
+      "status": true
+    },
+    "Power Supply 2": {
+      "capacity": 1600.0,
+      "output": 24.0,
+      "status": true
+    },
+    "Power Supply 3": {
+      "capacity": 1600.0,
+      "output": 24.0,
+      "status": true
+    },
+    "Power Supply 4": {
+      "capacity": 1600.0,
+      "output": 264.0,
+      "status": true
+    },
+    "Power Supply 5": {
+      "capacity": 1600.0,
+      "output": 24.0,
+      "status": true
+    }
+  },
+  "fans": {
+    "Fan Tray 0 Fan 0": {
+      "status": true
+    },
+    "Fan Tray 0 Fan 1": {
+      "status": true
+    },
+    "Fan Tray 0 Fan 2": {
+      "status": true
+    },
+    "Fan Tray 0 Fan 3": {
+      "status": true
+    },
+    "Fan Tray 1 Fan 0": {
+      "status": true
+    },
+    "Fan Tray 1 Fan 1": {
+      "status": true
+    },
+    "Fan Tray 1 Fan 2": {
+      "status": true
+    },
+    "Fan Tray 1 Fan 3": {
+      "status": true
+    },
+    "Fan Tray 2 Fan 0": {
+      "status": true
+    },
+    "Fan Tray 2 Fan 1": {
+      "status": true
+    },
+    "Fan Tray 2 Fan 2": {
+      "status": true
+    },
+    "Fan Tray 2 Fan 3": {
+      "status": true
+    },
+    "Fan Tray 3 Fan 0": {
+      "status": true
+    },
+    "Fan Tray 3 Fan 1": {
+      "status": true
+    },
+    "Fan Tray 3 Fan 2": {
+      "status": true
+    },
+    "Fan Tray 3 Fan 3": {
+      "status": true
+    }
+  },
+  "cpu": {
+    "0": {
+      "%usage": 5.0
+    },
+    "1": {
+      "%usage": 1.0
+    }
+  },
+  "memory": {
+    "available_ram": 49106,
+    "used_ram": 3437
+  }
+}
diff --git a/test/junos/mocked_data/test_get_environment/mx10003/get-environment-information.xml b/test/junos/mocked_data/test_get_environment/mx10003/get-environment-information.xml
new file mode 100644
--- /dev/null
+++ b/test/junos/mocked_data/test_get_environment/mx10003/get-environment-information.xml
@@ -0,0 +1,325 @@
+<environment-information>
+    <environment-item>
+        <name>CB 0 Exhaust Temp Sensor</name>
+        <class>Temp</class>
+        <status>OK</status>
+        <temperature celsius="36">36 degrees C / 96 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>CB 0 Inlet Temp Sensor</name>
+        <class>Temp</class>
+        <status>OK</status>
+        <temperature celsius="30">30 degrees C / 86 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>CB 0 CPU DIE Temp Sensor</name>
+        <class>Temp</class>
+        <status>OK</status>
+        <temperature celsius="40">40 degrees C / 104 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>CB 1 Exhaust Temp Sensor</name>
+        <class>Temp</class>
+        <status>OK</status>
+        <temperature celsius="36">36 degrees C / 96 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>CB 1 Inlet Temp Sensor</name>
+        <class>Temp</class>
+        <status>OK</status>
+        <temperature celsius="29">29 degrees C / 84 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>CB 1 CPU DIE Temp Sensor</name>
+        <class>Temp</class>
+        <status>OK</status>
+        <temperature celsius="40">40 degrees C / 104 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 Intake Temp Sensor</name>
+        <status>OK</status>
+        <temperature celsius="27">27 degrees C / 80 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 Exhaust-A Temp Sensor</name>
+        <status>OK</status>
+        <temperature celsius="53">53 degrees C / 127 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 Exhaust-B Temp Sensor</name>
+        <status>OK</status>
+        <temperature celsius="47">47 degrees C / 116 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 EA0 Chip</name>
+        <status>OK</status>
+        <temperature celsius="54">54 degrees C / 129 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 EA0-XR0 Chip</name>
+        <status>OK</status>
+        <temperature celsius="57">57 degrees C / 134 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 EA0-XR1 Chip</name>
+        <status>OK</status>
+        <temperature celsius="59">59 degrees C / 138 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 EA1 Chip</name>
+        <status>OK</status>
+        <temperature celsius="61">61 degrees C / 141 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 EA1-XR0 Chip</name>
+        <status>OK</status>
+        <temperature celsius="64">64 degrees C / 147 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 EA1-XR1 Chip</name>
+        <status>OK</status>
+        <temperature celsius="65">65 degrees C / 149 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 EA2 Chip</name>
+        <status>OK</status>
+        <temperature celsius="46">46 degrees C / 114 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 EA2-XR0 Chip</name>
+        <status>OK</status>
+        <temperature celsius="48">48 degrees C / 118 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 EA2-XR1 Chip</name>
+        <status>OK</status>
+        <temperature celsius="51">51 degrees C / 123 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 PF Chip</name>
+        <status>OK</status>
+        <temperature celsius="64">64 degrees C / 147 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 EA0_HMC0 Logic die</name>
+        <status>OK</status>
+        <temperature celsius="69">69 degrees C / 156 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 EA0_HMC0 DRAM botm</name>
+        <status>OK</status>
+        <temperature celsius="66">66 degrees C / 150 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 EA0_HMC1 Logic die</name>
+        <status>OK</status>
+        <temperature celsius="70">70 degrees C / 158 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 EA0_HMC1 DRAM botm</name>
+        <status>OK</status>
+        <temperature celsius="67">67 degrees C / 152 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 EA0_HMC2 Logic die</name>
+        <status>OK</status>
+        <temperature celsius="69">69 degrees C / 156 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 EA0_HMC2 DRAM botm</name>
+        <status>OK</status>
+        <temperature celsius="66">66 degrees C / 150 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 EA1_HMC0 Logic die</name>
+        <status>OK</status>
+        <temperature celsius="76">76 degrees C / 168 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 EA1_HMC0 DRAM botm</name>
+        <status>OK</status>
+        <temperature celsius="73">73 degrees C / 163 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 EA1_HMC1 Logic die</name>
+        <status>OK</status>
+        <temperature celsius="75">75 degrees C / 167 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 EA1_HMC1 DRAM botm</name>
+        <status>OK</status>
+        <temperature celsius="72">72 degrees C / 161 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 EA1_HMC2 Logic die</name>
+        <status>OK</status>
+        <temperature celsius="76">76 degrees C / 168 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 EA1_HMC2 DRAM botm</name>
+        <status>OK</status>
+        <temperature celsius="73">73 degrees C / 163 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 EA2_HMC0 Logic die</name>
+        <status>OK</status>
+        <temperature celsius="53">53 degrees C / 127 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 EA2_HMC0 DRAM botm</name>
+        <status>OK</status>
+        <temperature celsius="50">50 degrees C / 122 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 EA2_HMC1 Logic die</name>
+        <status>OK</status>
+        <temperature celsius="58">58 degrees C / 136 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 EA2_HMC1 DRAM botm</name>
+        <status>OK</status>
+        <temperature celsius="55">55 degrees C / 131 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 EA2_HMC2 Logic die</name>
+        <status>OK</status>
+        <temperature celsius="59">59 degrees C / 138 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>FPC 1 EA2_HMC2 DRAM botm</name>
+        <status>OK</status>
+        <temperature celsius="56">56 degrees C / 132 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>PEM 0</name>
+        <class>Power</class>
+        <status>OK</status>
+        <temperature celsius="40">40 degrees C / 104 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>PEM 1</name>
+        <class>Power</class>
+        <status>OK</status>
+        <temperature celsius="41">41 degrees C / 105 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>PEM 2</name>
+        <class>Power</class>
+        <status>OK</status>
+        <temperature celsius="35">35 degrees C / 95 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>PEM 3</name>
+        <class>Power</class>
+        <status>OK</status>
+        <temperature celsius="36">36 degrees C / 96 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>PEM 4</name>
+        <class>Power</class>
+        <status>OK</status>
+        <temperature celsius="40">40 degrees C / 104 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>PEM 5</name>
+        <class>Power</class>
+        <status>OK</status>
+        <temperature celsius="37">37 degrees C / 98 degrees F</temperature>
+    </environment-item>
+    <environment-item>
+        <name>Fan Tray 0 Fan 0</name>
+        <class>Fans</class>
+        <status>OK</status>
+        <comment>Spinning at normal speed</comment>
+    </environment-item>
+    <environment-item>
+        <name>Fan Tray 0 Fan 1</name>
+        <class>Fans</class>
+        <status>OK</status>
+        <comment>Spinning at normal speed</comment>
+    </environment-item>
+    <environment-item>
+        <name>Fan Tray 0 Fan 2</name>
+        <class>Fans</class>
+        <status>OK</status>
+        <comment>Spinning at normal speed</comment>
+    </environment-item>
+    <environment-item>
+        <name>Fan Tray 0 Fan 3</name>
+        <class>Fans</class>
+        <status>OK</status>
+        <comment>Spinning at normal speed</comment>
+    </environment-item>
+    <environment-item>
+        <name>Fan Tray 1 Fan 0</name>
+        <class>Fans</class>
+        <status>OK</status>
+        <comment>Spinning at normal speed</comment>
+    </environment-item>
+    <environment-item>
+        <name>Fan Tray 1 Fan 1</name>
+        <class>Fans</class>
+        <status>OK</status>
+        <comment>Spinning at normal speed</comment>
+    </environment-item>
+    <environment-item>
+        <name>Fan Tray 1 Fan 2</name>
+        <class>Fans</class>
+        <status>OK</status>
+        <comment>Spinning at normal speed</comment>
+    </environment-item>
+    <environment-item>
+        <name>Fan Tray 1 Fan 3</name>
+        <class>Fans</class>
+        <status>OK</status>
+        <comment>Spinning at normal speed</comment>
+    </environment-item>
+    <environment-item>
+        <name>Fan Tray 2 Fan 0</name>
+        <class>Fans</class>
+        <status>OK</status>
+        <comment>Spinning at normal speed</comment>
+    </environment-item>
+    <environment-item>
+        <name>Fan Tray 2 Fan 1</name>
+        <class>Fans</class>
+        <status>OK</status>
+        <comment>Spinning at normal speed</comment>
+    </environment-item>
+    <environment-item>
+        <name>Fan Tray 2 Fan 2</name>
+        <class>Fans</class>
+        <status>OK</status>
+        <comment>Spinning at normal speed</comment>
+    </environment-item>
+    <environment-item>
+        <name>Fan Tray 2 Fan 3</name>
+        <class>Fans</class>
+        <status>OK</status>
+        <comment>Spinning at normal speed</comment>
+    </environment-item>
+    <environment-item>
+        <name>Fan Tray 3 Fan 0</name>
+        <class>Fans</class>
+        <status>OK</status>
+        <comment>Spinning at normal speed</comment>
+    </environment-item>
+    <environment-item>
+        <name>Fan Tray 3 Fan 1</name>
+        <class>Fans</class>
+        <status>OK</status>
+        <comment>Spinning at normal speed</comment>
+    </environment-item>
+    <environment-item>
+        <name>Fan Tray 3 Fan 2</name>
+        <class>Fans</class>
+        <status>OK</status>
+        <comment>Spinning at normal speed</comment>
+    </environment-item>
+    <environment-item>
+        <name>Fan Tray 3 Fan 3</name>
+        <class>Fans</class>
+        <status>OK</status>
+        <comment>Spinning at normal speed</comment>
+    </environment-item>
+</environment-information>
diff --git a/test/junos/mocked_data/test_get_environment/mx10003/get-power-usage-information-detail.xml b/test/junos/mocked_data/test_get_environment/mx10003/get-power-usage-information-detail.xml
new file mode 100644
--- /dev/null
+++ b/test/junos/mocked_data/test_get_environment/mx10003/get-power-usage-information-detail.xml
@@ -0,0 +1,163 @@
+<power-usage-information>
+    <power-usage-item>
+        <name>PEM 0</name>
+        <state>Online</state>
+        <pem-capacity-detail>
+            <capacity-actual>1600</capacity-actual>
+            <capacity-max>1600</capacity-max>
+        </pem-capacity-detail>
+        <ac-input-detail>
+            <ac-input>OK</ac-input>
+            <ac-expect-feed>1</ac-expect-feed>
+            <ac-actual-feed>1</ac-actual-feed>
+        </ac-input-detail>
+        <dc-output-detail>
+            <dc-power>180</dc-power>
+            <zone>0</zone>
+            <dc-current>15</dc-current>
+            <dc-voltage>12</dc-voltage>
+            <dc-load>11</dc-load>
+        </dc-output-detail>
+    </power-usage-item>
+    <power-usage-item>
+        <name>PEM 1</name>
+        <state>Online</state>
+        <pem-capacity-detail>
+            <capacity-actual>1600</capacity-actual>
+            <capacity-max>1600</capacity-max>
+        </pem-capacity-detail>
+        <ac-input-detail>
+            <ac-input>OK</ac-input>
+            <ac-expect-feed>1</ac-expect-feed>
+            <ac-actual-feed>1</ac-actual-feed>
+        </ac-input-detail>
+        <dc-output-detail>
+            <dc-power>252</dc-power>
+            <zone>0</zone>
+            <dc-current>21</dc-current>
+            <dc-voltage>12</dc-voltage>
+            <dc-load>15</dc-load>
+        </dc-output-detail>
+    </power-usage-item>
+    <power-usage-item>
+        <name>PEM 2</name>
+        <state>Online</state>
+        <pem-capacity-detail>
+            <capacity-actual>1600</capacity-actual>
+            <capacity-max>1600</capacity-max>
+        </pem-capacity-detail>
+        <ac-input-detail>
+            <ac-input>OK</ac-input>
+            <ac-expect-feed>1</ac-expect-feed>
+            <ac-actual-feed>1</ac-actual-feed>
+        </ac-input-detail>
+        <dc-output-detail>
+            <dc-power>24</dc-power>
+            <zone>0</zone>
+            <dc-current>2</dc-current>
+            <dc-voltage>12</dc-voltage>
+            <dc-load>1</dc-load>
+        </dc-output-detail>
+    </power-usage-item>
+    <power-usage-item>
+        <name>PEM 3</name>
+        <state>Online</state>
+        <pem-capacity-detail>
+            <capacity-actual>1600</capacity-actual>
+            <capacity-max>1600</capacity-max>
+        </pem-capacity-detail>
+        <ac-input-detail>
+            <ac-input>OK</ac-input>
+            <ac-expect-feed>1</ac-expect-feed>
+            <ac-actual-feed>1</ac-actual-feed>
+        </ac-input-detail>
+        <dc-output-detail>
+            <dc-power>24</dc-power>
+            <zone>0</zone>
+            <dc-current>2</dc-current>
+            <dc-voltage>12</dc-voltage>
+            <dc-load>1</dc-load>
+        </dc-output-detail>
+    </power-usage-item>
+    <power-usage-item>
+        <name>PEM 4</name>
+        <state>Online</state>
+        <pem-capacity-detail>
+            <capacity-actual>1600</capacity-actual>
+            <capacity-max>1600</capacity-max>
+        </pem-capacity-detail>
+        <ac-input-detail>
+            <ac-input>OK</ac-input>
+            <ac-expect-feed>1</ac-expect-feed>
+            <ac-actual-feed>1</ac-actual-feed>
+        </ac-input-detail>
+        <dc-output-detail>
+            <dc-power>264</dc-power>
+            <zone>0</zone>
+            <dc-current>22</dc-current>
+            <dc-voltage>12</dc-voltage>
+            <dc-load>16</dc-load>
+        </dc-output-detail>
+    </power-usage-item>
+    <power-usage-item>
+        <name>PEM 5</name>
+        <state>Online</state>
+        <pem-capacity-detail>
+            <capacity-actual>1600</capacity-actual>
+            <capacity-max>1600</capacity-max>
+        </pem-capacity-detail>
+        <ac-input-detail>
+            <ac-input>OK</ac-input>
+            <ac-expect-feed>1</ac-expect-feed>
+            <ac-actual-feed>1</ac-actual-feed>
+        </ac-input-detail>
+        <dc-output-detail>
+            <dc-power>24</dc-power>
+            <zone>0</zone>
+            <dc-current>2</dc-current>
+            <dc-voltage>12</dc-voltage>
+            <dc-load>1</dc-load>
+        </dc-output-detail>
+    </power-usage-item>
+    <power-usage-system>
+        <power-usage-zone-information>
+            <zone>0</zone>
+            <capacity-actual>9600</capacity-actual>
+            <capacity-max>9600</capacity-max>
+            <capacity-allocated>1146</capacity-allocated>
+            <capacity-remaining>8454</capacity-remaining>
+            <capacity-actual-usage>768</capacity-actual-usage>
+        </power-usage-zone-information>
+        <capacity-sys-actual>9600</capacity-sys-actual>
+        <capacity-sys-max>9600</capacity-sys-max>
+        <capacity-sys-remaining>8454</capacity-sys-remaining>
+    </power-usage-system>
+    <power-usage-fru-item>
+        <name>Fan Tray 0</name>
+        <dc-power>9</dc-power>
+    </power-usage-fru-item>
+    <power-usage-fru-item>
+        <name>Fan Tray 1</name>
+        <dc-power>9</dc-power>
+    </power-usage-fru-item>
+    <power-usage-fru-item>
+        <name>Fan Tray 2</name>
+        <dc-power>8</dc-power>
+    </power-usage-fru-item>
+    <power-usage-fru-item>
+        <name>Fan Tray 3</name>
+        <dc-power>10</dc-power>
+    </power-usage-fru-item>
+    <power-usage-fru-item>
+        <name>RE0/CB0</name>
+        <dc-power>58</dc-power>
+    </power-usage-fru-item>
+    <power-usage-fru-item>
+        <name>RE1/CB1</name>
+        <dc-power>56</dc-power>
+    </power-usage-fru-item>
+    <power-usage-fru-item>
+        <name>FPC 1</name>
+        <dc-power>544</dc-power>
+    </power-usage-fru-item>
+</power-usage-information>
diff --git a/test/junos/mocked_data/test_get_environment/mx10003/get-route-engine-information.xml b/test/junos/mocked_data/test_get_environment/mx10003/get-route-engine-information.xml
new file mode 100644
--- /dev/null
+++ b/test/junos/mocked_data/test_get_environment/mx10003/get-route-engine-information.xml
@@ -0,0 +1,63 @@
+<route-engine-information>
+    <route-engine>
+        <slot>0</slot>
+        <mastership-state>master</mastership-state>
+        <mastership-priority>master (default)</mastership-priority>
+        <status>OK</status>
+        <temperature celsius="39">39 degrees C / 102 degrees F</temperature>
+        <cpu-temperature celsius="40">40 degrees C / 104 degrees F</cpu-temperature>
+        <memory-dram-size>49106 MB</memory-dram-size>
+        <memory-installed-size>(49152 MB installed)</memory-installed-size>
+        <memory-buffer-utilization>50</memory-buffer-utilization>
+        <cpu-user>2</cpu-user>
+        <cpu-background>0</cpu-background>
+        <cpu-system>3</cpu-system>
+        <cpu-interrupt>1</cpu-interrupt>
+        <cpu-idle>95</cpu-idle>
+        <cpu-user1>2</cpu-user1>
+        <cpu-background1>0</cpu-background1>
+        <cpu-system1>2</cpu-system1>
+        <cpu-interrupt1>1</cpu-interrupt1>
+        <cpu-idle1>95</cpu-idle1>
+        <cpu-user2>2</cpu-user2>
+        <cpu-background2>0</cpu-background2>
+        <cpu-system2>2</cpu-system2>
+        <cpu-interrupt2>1</cpu-interrupt2>
+        <cpu-idle2>95</cpu-idle2>
+        <cpu-user3>2</cpu-user3>
+        <cpu-background3>0</cpu-background3>
+        <cpu-system3>2</cpu-system3>
+        <cpu-interrupt3>1</cpu-interrupt3>
+        <cpu-idle3>95</cpu-idle3>
+        <model>RE-S-1600x8</model>
+        <start-time seconds="1573239583">2019-11-08 19:59:43 CET</start-time>
+        <up-time seconds="20360313">235 days, 15 hours, 38 minutes, 33 seconds</up-time>
+        <last-reboot-reason>0x2000:hypervisor reboot</last-reboot-reason>
+        <load-average-one>0.22</load-average-one>
+        <load-average-five>0.30</load-average-five>
+        <load-average-fifteen>0.35</load-average-fifteen>
+    </route-engine>
+    <route-engine>
+        <slot>1</slot>
+        <mastership-state>backup</mastership-state>
+        <mastership-priority>backup (default)</mastership-priority>
+        <status>OK</status>
+        <temperature celsius="39">39 degrees C / 102 degrees F</temperature>
+        <cpu-temperature celsius="39">39 degrees C / 102 degrees F</cpu-temperature>
+        <memory-dram-size>49106 MB</memory-dram-size>
+        <memory-installed-size>(49152 MB installed)</memory-installed-size>
+        <memory-buffer-utilization>7</memory-buffer-utilization>
+        <cpu-user>1</cpu-user>
+        <cpu-background>0</cpu-background>
+        <cpu-system>1</cpu-system>
+        <cpu-interrupt>0</cpu-interrupt>
+        <cpu-idle>99</cpu-idle>
+        <model>RE-S-1600x8</model>
+        <start-time seconds="1573240662">2019-11-08 20:17:42 CET</start-time>
+        <up-time seconds="20359219">235 days, 15 hours, 20 minutes, 19 seconds</up-time>
+        <last-reboot-reason>0x2000:hypervisor reboot</last-reboot-reason>
+        <load-average-one>0.26</load-average-one>
+        <load-average-five>0.21</load-average-five>
+        <load-average-fifteen>0.17</load-average-fifteen>
+    </route-engine>
+</route-engine-information>
diff --git a/test/junos/mocked_data/test_get_environment/mx10003/get-temperature-threshold-information.xml b/test/junos/mocked_data/test_get_environment/mx10003/get-temperature-threshold-information.xml
new file mode 100644
--- /dev/null
+++ b/test/junos/mocked_data/test_get_environment/mx10003/get-temperature-threshold-information.xml
@@ -0,0 +1,392 @@
+<temperature-threshold-information>
+    <temperature-threshold>
+        <name>Routing Engine 0</name>
+        <fan-normal-speed>48</fan-normal-speed>
+        <fan-high-speed>54</fan-high-speed>
+        <bad-fan-yellow-alarm>85</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>100</bad-fan-red-alarm>
+        <yellow-alarm>85</yellow-alarm>
+        <red-alarm>100</red-alarm>
+        <fire-shutdown>102</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>Routing Engine 1</name>
+        <fan-normal-speed>48</fan-normal-speed>
+        <fan-high-speed>54</fan-high-speed>
+        <bad-fan-yellow-alarm>85</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>100</bad-fan-red-alarm>
+        <yellow-alarm>85</yellow-alarm>
+        <red-alarm>100</red-alarm>
+        <fire-shutdown>102</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>CB 0 Exhaust Temp Sensor</name>
+        <fan-normal-speed>60</fan-normal-speed>
+        <fan-high-speed>65</fan-high-speed>
+        <bad-fan-yellow-alarm>75</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>85</bad-fan-red-alarm>
+        <yellow-alarm>75</yellow-alarm>
+        <red-alarm>85</red-alarm>
+        <fire-shutdown>95</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>CB 0 Inlet Temp Sensor</name>
+        <fan-normal-speed>60</fan-normal-speed>
+        <fan-high-speed>65</fan-high-speed>
+        <bad-fan-yellow-alarm>75</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>85</bad-fan-red-alarm>
+        <yellow-alarm>75</yellow-alarm>
+        <red-alarm>85</red-alarm>
+        <fire-shutdown>95</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>CB 0 CPU DIE Temp Sensor</name>
+        <fan-normal-speed>83</fan-normal-speed>
+        <fan-high-speed>90</fan-high-speed>
+        <bad-fan-yellow-alarm>98</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>105</bad-fan-red-alarm>
+        <yellow-alarm>98</yellow-alarm>
+        <red-alarm>105</red-alarm>
+        <fire-shutdown>110</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>CB 1 Exhaust Temp Sensor</name>
+        <fan-normal-speed>60</fan-normal-speed>
+        <fan-high-speed>65</fan-high-speed>
+        <bad-fan-yellow-alarm>75</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>85</bad-fan-red-alarm>
+        <yellow-alarm>75</yellow-alarm>
+        <red-alarm>85</red-alarm>
+        <fire-shutdown>95</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>CB 1 Inlet Temp Sensor</name>
+        <fan-normal-speed>60</fan-normal-speed>
+        <fan-high-speed>65</fan-high-speed>
+        <bad-fan-yellow-alarm>75</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>85</bad-fan-red-alarm>
+        <yellow-alarm>75</yellow-alarm>
+        <red-alarm>85</red-alarm>
+        <fire-shutdown>95</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>CB 1 CPU DIE Temp Sensor</name>
+        <fan-normal-speed>83</fan-normal-speed>
+        <fan-high-speed>90</fan-high-speed>
+        <bad-fan-yellow-alarm>98</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>105</bad-fan-red-alarm>
+        <yellow-alarm>98</yellow-alarm>
+        <red-alarm>105</red-alarm>
+        <fire-shutdown>110</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 Intake Temp Sensor</name>
+        <fan-normal-speed>40</fan-normal-speed>
+        <fan-high-speed>45</fan-high-speed>
+        <bad-fan-yellow-alarm>70</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>80</bad-fan-red-alarm>
+        <yellow-alarm>75</yellow-alarm>
+        <red-alarm>85</red-alarm>
+        <fire-shutdown>95</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 Exhaust-A Temp Sensor</name>
+        <fan-normal-speed>55</fan-normal-speed>
+        <fan-high-speed>60</fan-high-speed>
+        <bad-fan-yellow-alarm>80</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>90</bad-fan-red-alarm>
+        <yellow-alarm>85</yellow-alarm>
+        <red-alarm>90</red-alarm>
+        <fire-shutdown>100</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 Exhaust-B Temp Sensor</name>
+        <fan-normal-speed>55</fan-normal-speed>
+        <fan-high-speed>60</fan-high-speed>
+        <bad-fan-yellow-alarm>80</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>90</bad-fan-red-alarm>
+        <yellow-alarm>85</yellow-alarm>
+        <red-alarm>90</red-alarm>
+        <fire-shutdown>100</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 EA0 Chip</name>
+        <fan-normal-speed>87</fan-normal-speed>
+        <fan-high-speed>92</fan-high-speed>
+        <bad-fan-yellow-alarm>97</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>105</bad-fan-red-alarm>
+        <yellow-alarm>97</yellow-alarm>
+        <red-alarm>105</red-alarm>
+        <fire-shutdown>110</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 EA0-XR0 Chip</name>
+        <fan-normal-speed>88</fan-normal-speed>
+        <fan-high-speed>93</fan-high-speed>
+        <bad-fan-yellow-alarm>98</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>120</bad-fan-red-alarm>
+        <yellow-alarm>98</yellow-alarm>
+        <red-alarm>120</red-alarm>
+        <fire-shutdown>125</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 EA0-XR1 Chip</name>
+        <fan-normal-speed>88</fan-normal-speed>
+        <fan-high-speed>93</fan-high-speed>
+        <bad-fan-yellow-alarm>98</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>120</bad-fan-red-alarm>
+        <yellow-alarm>98</yellow-alarm>
+        <red-alarm>120</red-alarm>
+        <fire-shutdown>125</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 EA1 Chip</name>
+        <fan-normal-speed>87</fan-normal-speed>
+        <fan-high-speed>92</fan-high-speed>
+        <bad-fan-yellow-alarm>97</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>105</bad-fan-red-alarm>
+        <yellow-alarm>97</yellow-alarm>
+        <red-alarm>105</red-alarm>
+        <fire-shutdown>110</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 EA1-XR0 Chip</name>
+        <fan-normal-speed>88</fan-normal-speed>
+        <fan-high-speed>93</fan-high-speed>
+        <bad-fan-yellow-alarm>98</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>120</bad-fan-red-alarm>
+        <yellow-alarm>98</yellow-alarm>
+        <red-alarm>120</red-alarm>
+        <fire-shutdown>125</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 EA1-XR1 Chip</name>
+        <fan-normal-speed>88</fan-normal-speed>
+        <fan-high-speed>93</fan-high-speed>
+        <bad-fan-yellow-alarm>98</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>120</bad-fan-red-alarm>
+        <yellow-alarm>98</yellow-alarm>
+        <red-alarm>120</red-alarm>
+        <fire-shutdown>125</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 EA2 Chip</name>
+        <fan-normal-speed>87</fan-normal-speed>
+        <fan-high-speed>92</fan-high-speed>
+        <bad-fan-yellow-alarm>97</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>105</bad-fan-red-alarm>
+        <yellow-alarm>97</yellow-alarm>
+        <red-alarm>105</red-alarm>
+        <fire-shutdown>110</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 EA2-XR0 Chip</name>
+        <fan-normal-speed>88</fan-normal-speed>
+        <fan-high-speed>93</fan-high-speed>
+        <bad-fan-yellow-alarm>98</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>120</bad-fan-red-alarm>
+        <yellow-alarm>98</yellow-alarm>
+        <red-alarm>120</red-alarm>
+        <fire-shutdown>125</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 EA2-XR1 Chip</name>
+        <fan-normal-speed>88</fan-normal-speed>
+        <fan-high-speed>93</fan-high-speed>
+        <bad-fan-yellow-alarm>98</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>120</bad-fan-red-alarm>
+        <yellow-alarm>98</yellow-alarm>
+        <red-alarm>120</red-alarm>
+        <fire-shutdown>125</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 PF Chip</name>
+        <fan-normal-speed>89</fan-normal-speed>
+        <fan-high-speed>94</fan-high-speed>
+        <bad-fan-yellow-alarm>104</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>120</bad-fan-red-alarm>
+        <yellow-alarm>104</yellow-alarm>
+        <red-alarm>120</red-alarm>
+        <fire-shutdown>120</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 EA0_HMC0 Logic die</name>
+        <fan-normal-speed>88</fan-normal-speed>
+        <fan-high-speed>93</fan-high-speed>
+        <bad-fan-yellow-alarm>103</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>120</bad-fan-red-alarm>
+        <yellow-alarm>103</yellow-alarm>
+        <red-alarm>120</red-alarm>
+        <fire-shutdown>125</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 EA0_HMC0 DRAM botm</name>
+        <fan-normal-speed>83</fan-normal-speed>
+        <fan-high-speed>88</fan-high-speed>
+        <bad-fan-yellow-alarm>98</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>120</bad-fan-red-alarm>
+        <yellow-alarm>98</yellow-alarm>
+        <red-alarm>120</red-alarm>
+        <fire-shutdown>125</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 EA0_HMC1 Logic die</name>
+        <fan-normal-speed>88</fan-normal-speed>
+        <fan-high-speed>93</fan-high-speed>
+        <bad-fan-yellow-alarm>103</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>120</bad-fan-red-alarm>
+        <yellow-alarm>103</yellow-alarm>
+        <red-alarm>120</red-alarm>
+        <fire-shutdown>125</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 EA0_HMC1 DRAM botm</name>
+        <fan-normal-speed>83</fan-normal-speed>
+        <fan-high-speed>88</fan-high-speed>
+        <bad-fan-yellow-alarm>98</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>120</bad-fan-red-alarm>
+        <yellow-alarm>98</yellow-alarm>
+        <red-alarm>120</red-alarm>
+        <fire-shutdown>125</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 EA0_HMC2 Logic die</name>
+        <fan-normal-speed>88</fan-normal-speed>
+        <fan-high-speed>93</fan-high-speed>
+        <bad-fan-yellow-alarm>103</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>120</bad-fan-red-alarm>
+        <yellow-alarm>103</yellow-alarm>
+        <red-alarm>120</red-alarm>
+        <fire-shutdown>125</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 EA0_HMC2 DRAM botm</name>
+        <fan-normal-speed>83</fan-normal-speed>
+        <fan-high-speed>88</fan-high-speed>
+        <bad-fan-yellow-alarm>98</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>120</bad-fan-red-alarm>
+        <yellow-alarm>98</yellow-alarm>
+        <red-alarm>120</red-alarm>
+        <fire-shutdown>125</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 EA1_HMC0 Logic die</name>
+        <fan-normal-speed>88</fan-normal-speed>
+        <fan-high-speed>93</fan-high-speed>
+        <bad-fan-yellow-alarm>103</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>120</bad-fan-red-alarm>
+        <yellow-alarm>103</yellow-alarm>
+        <red-alarm>120</red-alarm>
+        <fire-shutdown>125</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 EA1_HMC0 DRAM botm</name>
+        <fan-normal-speed>83</fan-normal-speed>
+        <fan-high-speed>88</fan-high-speed>
+        <bad-fan-yellow-alarm>98</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>120</bad-fan-red-alarm>
+        <yellow-alarm>98</yellow-alarm>
+        <red-alarm>120</red-alarm>
+        <fire-shutdown>125</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 EA1_HMC1 Logic die</name>
+        <fan-normal-speed>88</fan-normal-speed>
+        <fan-high-speed>93</fan-high-speed>
+        <bad-fan-yellow-alarm>103</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>120</bad-fan-red-alarm>
+        <yellow-alarm>103</yellow-alarm>
+        <red-alarm>120</red-alarm>
+        <fire-shutdown>125</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 EA1_HMC1 DRAM botm</name>
+        <fan-normal-speed>83</fan-normal-speed>
+        <fan-high-speed>88</fan-high-speed>
+        <bad-fan-yellow-alarm>98</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>120</bad-fan-red-alarm>
+        <yellow-alarm>98</yellow-alarm>
+        <red-alarm>120</red-alarm>
+        <fire-shutdown>125</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 EA1_HMC2 Logic die</name>
+        <fan-normal-speed>88</fan-normal-speed>
+        <fan-high-speed>93</fan-high-speed>
+        <bad-fan-yellow-alarm>103</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>120</bad-fan-red-alarm>
+        <yellow-alarm>103</yellow-alarm>
+        <red-alarm>120</red-alarm>
+        <fire-shutdown>125</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 EA1_HMC2 DRAM botm</name>
+        <fan-normal-speed>83</fan-normal-speed>
+        <fan-high-speed>88</fan-high-speed>
+        <bad-fan-yellow-alarm>98</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>120</bad-fan-red-alarm>
+        <yellow-alarm>98</yellow-alarm>
+        <red-alarm>120</red-alarm>
+        <fire-shutdown>125</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 EA2_HMC0 Logic die</name>
+        <fan-normal-speed>88</fan-normal-speed>
+        <fan-high-speed>93</fan-high-speed>
+        <bad-fan-yellow-alarm>103</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>120</bad-fan-red-alarm>
+        <yellow-alarm>103</yellow-alarm>
+        <red-alarm>120</red-alarm>
+        <fire-shutdown>125</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 EA2_HMC0 DRAM botm</name>
+        <fan-normal-speed>83</fan-normal-speed>
+        <fan-high-speed>88</fan-high-speed>
+        <bad-fan-yellow-alarm>98</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>120</bad-fan-red-alarm>
+        <yellow-alarm>98</yellow-alarm>
+        <red-alarm>120</red-alarm>
+        <fire-shutdown>125</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 EA2_HMC1 Logic die</name>
+        <fan-normal-speed>88</fan-normal-speed>
+        <fan-high-speed>93</fan-high-speed>
+        <bad-fan-yellow-alarm>103</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>120</bad-fan-red-alarm>
+        <yellow-alarm>103</yellow-alarm>
+        <red-alarm>120</red-alarm>
+        <fire-shutdown>125</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 EA2_HMC1 DRAM botm</name>
+        <fan-normal-speed>83</fan-normal-speed>
+        <fan-high-speed>88</fan-high-speed>
+        <bad-fan-yellow-alarm>98</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>120</bad-fan-red-alarm>
+        <yellow-alarm>98</yellow-alarm>
+        <red-alarm>120</red-alarm>
+        <fire-shutdown>125</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 EA2_HMC2 Logic die</name>
+        <fan-normal-speed>88</fan-normal-speed>
+        <fan-high-speed>93</fan-high-speed>
+        <bad-fan-yellow-alarm>103</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>120</bad-fan-red-alarm>
+        <yellow-alarm>103</yellow-alarm>
+        <red-alarm>120</red-alarm>
+        <fire-shutdown>125</fire-shutdown>
+    </temperature-threshold>
+    <temperature-threshold>
+        <name>FPC 1 EA2_HMC2 DRAM botm</name>
+        <fan-normal-speed>83</fan-normal-speed>
+        <fan-high-speed>88</fan-high-speed>
+        <bad-fan-yellow-alarm>98</bad-fan-yellow-alarm>
+        <bad-fan-red-alarm>120</bad-fan-red-alarm>
+        <yellow-alarm>98</yellow-alarm>
+        <red-alarm>120</red-alarm>
+        <fire-shutdown>125</fire-shutdown>
+    </temperature-threshold>
+</temperature-threshold-information>