Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

# Copyright (C) 2018 Bloomberg LP 

# 

# 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. 

 

 

from buildgrid._exceptions import FailedPreconditionError 

 

 

class HardwareInterface: 

"""Class to configure hardware and check requirements of a :class:`Lease`. 

 

In the future this could also be used to request and display 

the status of hardware. 

""" 

 

def __init__(self, worker): 

"""Initialises a new :class:`HardwareInstance`. 

 

Args: 

worker (:class:`Worker`) 

""" 

self._worker = worker 

 

def configure_hardware(self, requirements): 

"""Configure's hardware and checks to see if the requirements can 

be met. 

 

Args: 

requirements (:class:`Worker`): Requirements for the job. 

""" 

worker = self._worker 

 

for config_requirement in requirements.configs: 

if config_requirement.key not in worker.configs: 

raise FailedPreconditionError("Requirements can't be met. " 

"Requirements=[{}]".format(config_requirement)) 

 

def get_worker_pb2(self): 

"""Returns the protobuffer representation of the :class:`Worker`.""" 

return self._worker.get_pb2()