Exemplo n.º 1
0
    def post(self, version):
        logging.debug("ServicesListHandler#post")

        if (self.valid_version(version)):
            
            name = self.request.get('name', default_value=None)
            description = self.request.get('description', default_value=None)
            region = self.request.get('region', default_value=None)
            
            if name and description and region:
                slug = Service.slugify(name, region)
                existing_s = Service.get_by_slug(slug)

                # Update existing resource
                if existing_s:
                    existing_s.description = description
                    if region:
                        existing_s.region = Region.get_by_name(region)
                        existing_s.slug = Service.slugify(name, region)
                    existing_s.put()
                    self.json(existing_s.rest(self.base_url(version)))
                # Create new service
                else:
                    region = Region.get_by_name(region)
                    s = Service(name=name, slug=slug, description=description, region=region)
                    s.put()
                    self.json(s.rest(self.base_url(version)))
            else:
                self.error(400, "Bad Data: Name: %s, Description: %s, Region: %s" % (name, description, region))
        else:
            self.error(404, "API Version %s not supported" % version)
Exemplo n.º 2
0
    def post(self, version):
        logging.debug("AnnouncementsListHandler#post")

        if (self.valid_version(version)):
            message = self.request.get('message', default_value=None)
            region = self.request.get('region', default_value=None)
            key = self.request.get('key', default_value=None)

            if message:
                if key: # modify an existing announcement
                    a = Announcement.get(key)
                    a.message = message
                else: # create a new announcement
                    a = Announcement(message=message)

                if region:
                    region = Region.get_by_name(region)
                    a.region = region
                else:
                    a.region = None
                a.put()
                self.json(a.to_json())

            else:
                self.error(400, "Bad Data: Missing Message")
        else:
            self.error(404, "API Version %s not supported" % version)
Exemplo n.º 3
0
    def post(self, version, service_slug):
        logging.debug("ServiceInstanceHandler#post")
        name = self.request.get('name', default_value=None)
        description = self.request.get('description', default_value=None)
        region = self.request.get('region', default_value=None)
        
        if (self.valid_version(version)):
            service = Service.get_by_slug(service_slug)
            if service:
                if description:
                    service.description = description
                
                if name:
                    service.name = name

                if region:
                    service.region = Region.get_by_name(region)
                
                if name or description or region:
                    service.slug = Service.slugify(service.name, service.region.name)
                    service.put()
                    
                self.json(service.rest(self.base_url(version)))   
            else:
                self.error(404, "Service %s does not exist" % service_slug)
        else:
            self.error(404, "API Version %s not supported" % version)
Exemplo n.º 4
0
    def get(self, version):
        logging.debug("AnnouncementsListHandler#get")

        if (self.valid_version(version)):
            region = self.request.get('region', default_value=None)
            if region:
                region = Region.get_by_name(region)

            self.json({"announcements": Announcement.get_active(region)})
        else:
            self.error(404, "API Version %s not supported" % version)
Exemplo n.º 5
0
    def post(self, version):
        logging.debug("RegionListHandler#post")

        if (self.valid_version(version)):
            name = self.request.get('name', default_value=None)

            if name:
                existing_r = Region.get_by_name(name)
                if existing_r:
                    self.error(400, 'Bad Data: Name %s already in use.' % name)
                else: # Create new region
                    r = Region(name=name) 
                    r.put()

            else:
                self.error(400, "Bad Data: Name: %s" % name)
        else:
            self.error(404, "API Version %s not supported" % version)
Exemplo n.º 6
0
    def get(self, version):
        logging.debug("ServicesListHandler#get")
        if (self.valid_version(version)):
            region = self.request.get('region', default_value=None)
            
            query = Service.all().order('name')
            if region:
                r = Region.get_by_name(region)
                query.filter("region = ", r)

            data = []
            for s in query:
                data.append(s.rest(self.base_url(version)))

            data = { "services": data }

            self.json(data)
            
        else:
            self.error(404, "API Version %s not supported" % version)