<reponame>opnfv/laas-reflab
##############################################################################
# Copyright 2018 <NAME> and Others                                 #
#                                                                            #
# 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.                                             #
##############################################################################

import sqlite3
from st2actions.runners.pythonrunner import Action


class ipmi_infoAction(Action):

    def run(self, host=None):
        db_file = self.action_service.get_value(name="database", local=False)
        db = sqlite3.connect(db_file)
        c = db.cursor()
        ipmi_host = c.execute("SELECT host FROM ipmi WHERE host=?", (host,)).fetchone()
        if ipmi_host:
            db.close()
            return host
        host_number = c.execute("SELECT server_number FROM hosts WHERE hostname=?", (host,)).fetchone()[0]
        ipmi_host = c.execute("SELECT host FROM ipmi WHERE server_number=?", (host_number,)).fetchone()
        db.close()
        return ipmi_host[0]

##############################################################################
# Copyright 2018 <NAME> and Others                                 #
#                                                                            #
# 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.                                             #
##############################################################################

import sqlite3
from st2actions.runners.pythonrunner import Action


class ipmi_infoAction(Action):

    def run(self, host=None):
        db_file = self.action_service.get_value(name="database", local=False)
        db = sqlite3.connect(db_file)
        c = db.cursor()
        ipmi_host = c.execute("SELECT host FROM ipmi WHERE host=?", (host,)).fetchone()
        if ipmi_host:
            db.close()
            return host
        host_number = c.execute("SELECT server_number FROM hosts WHERE hostname=?", (host,)).fetchone()[0]
        ipmi_host = c.execute("SELECT host FROM ipmi WHERE server_number=?", (host_number,)).fetchone()
        db.close()
        return ipmi_host[0]
############################################################################## # Copyright 2018 <NAME> and Others                                 # #                                                                            # # 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.                                             # ##############################################################################