Exemple #1
0
    def startInstance(self, instanceNo):
        #AWS_INSTANCE 取得
        tableCSINS = self.conn.getTable("CLOUDSTACK_INSTANCE")
        csInstance = self.conn.selectOne(tableCSINS.select(tableCSINS.c.INSTANCE_NO==instanceNo))

        #PCC_INSTANCE 取得
        tableINS = self.conn.getTable("INSTANCE")
        pccInstance = self.conn.selectOne(tableINS.select(tableINS.c.INSTANCE_NO==instanceNo))

        #イメージの取得  再考の余地あり
        image = getImage(pccInstance["IMAGE_NO"])

        #
        if isEmpty(csInstance["INSTANCE_ID"]):
            #インスタンスの作成
            self.run(instanceNo, csInstance, pccInstance, image)

            #winodowsなら
            if (startsWithIgnoreCase(image["os"], "windows")):
                #INSTANCE_ID取得の為、CLOUDSTACK_INSTANCE 再取得
                csInstance = self.conn.selectOne(tableCSINS.select(tableCSINS.c.INSTANCE_NO==instanceNo))
                self.client.getPasswordData(csInstance["INSTANCE_ID"])

        else:
            # インスタンスが停止中でない場合はスキップ
            if (csInstance["STATE"] != "Stopped"):
                return;
            # インスタンスの起動
            self.start(instanceNo, csInstance, pccInstance)
Exemple #2
0
    def startInstance(self, instanceNo):
        #AWS_INSTANCE 取得
        tableAWSINS = self.conn.getTable("AWS_INSTANCE")
        awsInstance = self.conn.selectOne(
            tableAWSINS.select(tableAWSINS.c.INSTANCE_NO == instanceNo))

        #PCC_INSTANCE 取得
        tableINS = self.conn.getTable("INSTANCE")
        pccInstance = self.conn.selectOne(
            tableINS.select(tableINS.c.INSTANCE_NO == instanceNo))

        #イメージの取得  再考の余地あり
        image = getImage(pccInstance["IMAGE_NO"])

        # インスタンスイメージの場合や、EBSイメージでインスタンスIDがない場合
        if (image["ebsImage"] == "false"
                or isEmpty(awsInstance["INSTANCE_ID"])):

            #インスタンスIDがある場合はスキップ
            if (isEmpty(awsInstance["INSTANCE_ID"]) == False):
                return

            #インスタンスの作成
            self.run(instanceNo, awsInstance, pccInstance, image)

            #インスタンスの作成待ち
            self.waitRun(instanceNo, pccInstance)

            #インスタンスにタグをつける
            self.createTag(instanceNo, pccInstance)

            #winodowsなら
            if (startsWithIgnoreCase(image["os"], "windows")):
                self.waitGetPasswordData(instanceNo, awsInstance)

        # EBSイメージでインスタンスIDがある場合
        else:
            # インスタンスが停止中でない場合はスキップ
            if (awsInstance["STATUS"] != "stopped"):
                return
            # インスタンスの起動
            self.start(instanceNo, awsInstance, pccInstance)

            # インスタンスの起動待ち
            self.waitStart(instanceNo, pccInstance)
    def startInstance(self, instanceNo):
        #AWS_INSTANCE 取得
        tableAWSINS = self.conn.getTable("AWS_INSTANCE")
        awsInstance = self.conn.selectOne(tableAWSINS.select(tableAWSINS.c.INSTANCE_NO==instanceNo))

        #PCC_INSTANCE 取得
        tableINS = self.conn.getTable("INSTANCE")
        pccInstance = self.conn.selectOne(tableINS.select(tableINS.c.INSTANCE_NO==instanceNo))

        #イメージの取得  再考の余地あり
        image = getImage(pccInstance["IMAGE_NO"])

        # インスタンスイメージの場合や、EBSイメージでインスタンスIDがない場合
        if(image["ebsImage"] == "false" or isEmpty(awsInstance["INSTANCE_ID"])):

            #インスタンスIDがある場合はスキップ
            if (isEmpty(awsInstance["INSTANCE_ID"])==False):
                return;

            #インスタンスの作成
            self.run(instanceNo, awsInstance, pccInstance, image)

            #インスタンスの作成待ち
            self.waitRun(instanceNo, pccInstance)

            #インスタンスにタグをつける
            self.createTag(instanceNo, pccInstance)

            #winodowsなら
            if (startsWithIgnoreCase(image["os"], "windows")):
                self.waitGetPasswordData(instanceNo, awsInstance)

        # EBSイメージでインスタンスIDがある場合
        else:
            # インスタンスが停止中でない場合はスキップ
            if (awsInstance["STATUS"] != "stopped"):
                return;
            # インスタンスの起動
            self.start(instanceNo, awsInstance, pccInstance)

            # インスタンスの起動待ち
            self.waitStart(instanceNo, pccInstance)