Example #1
0
    def get(self, name=None):
        # define possible status
        statuses = [
            "PROVISIONING",
            "STAGING",
            "CONFIGURING",
            "RUNNING",
            "STOPPING",
            "TERMINATED",
            "BUILDING"  # lucidworks status for building out box
        ]

        status = self.request.get('status')
        if status.upper() not in statuses:
            params = {
                "response": "fail",
                "message": "unknown status %s" % status
            }
            return self.render_template('api/response.json', **params)

        password = self.request.get('password')
        if password != "":
            instance = Instance.get_by_password(password)

            try:
                if instance.name == name:
                    instance.status = status
                    instance.put()

                    self.response.headers['Content-Type'] = "application/json"
                    params = {'instance': instance}
                    return self.render_template('api/instance.json', **params)

                else:
                    params = {
                        "response": "fail",
                        "message": "unknown instance name %s" % name
                    }
                    return self.render_template('api/response.json', **params)

            except Exception as ex:
                params = {
                    "response": "fail",
                    "message": "exception reached %s" % ex
                }
                return self.render_template('api/response.json', **params)
        else:
            params = {
                "response": "fail",
                "message": "[password] write status access denied"
            }
            return self.render_template('api/response.json', **params)