1#!/usr/bin/env python 2# 3# Copyright 2018 - The Android Open Source Project 4# 5# Licensed under the Apache License, Version 2.0 (the "License"); 6# you may not use this file except in compliance with the License. 7# You may obtain a copy of the License at 8# 9# http://www.apache.org/licenses/LICENSE-2.0 10# 11# Unless required by applicable law or agreed to in writing, software 12# distributed under the License is distributed on an "AS IS" BASIS, 13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14# See the License for the specific language governing permissions and 15# limitations under the License. 16 17"""Base device factory. 18 19BaseDeviceFactory provides basic interface to create a device factory. 20 21""" 22 23 24class BaseDeviceFactory(object): 25 """A class that provides basic interface to create a device factory.""" 26 27 LATEST = "latest" 28 29 def __init__(self, compute_client): 30 31 self._compute_client = compute_client 32 33 def GetComputeClient(self): 34 """To get client object. 35 36 Returns: 37 Returns an instance of gcompute_client.ComputeClient or its subclass. 38 """ 39 return self._compute_client 40 41 # pylint: disable=no-self-use 42 def CreateInstance(self): 43 """Creates single configured device. 44 45 Subclasses has to define this function 46 47 Returns: 48 The name of the created instance. 49 """ 50 return 51 52 # pylint: disable=no-self-use 53 def GetBuildInfoDict(self): 54 """Get build info dictionary. 55 56 Returns: 57 A build info dictionary. 58 """ 59 return None 60