Beispiel #1
0
 def __storeGadget(self, gadgetMetaData):
     gadgetPath = path.join(STORAGE_DIR,
                            gadgetMetaData['gadgetRelativePath'])
     gadgetZipFileName = path.join(gadgetPath, STORAGE_GADGET_ZIP_NAME)
     #Remote Storage
     if gadgetMetaData.has_key('gadgetDataUri'):
         conn = Connection(gadgetMetaData['gadgetDataUri'])
         if settings.STORAGE_FORMAT == 'base64string':
             f = open(gadgetZipFileName, 'rb')
             data = f.read()
             f.close()
             data = binascii.b2a_base64(data)
             format = settings.STORAGE_FORMAT
         else:
             data = '/'.join(
                 [gadgetMetaData['gadgetUri'], STORAGE_GADGET_ZIP_NAME])
             format = 'URL'
         body = {'Data': data, 'DataType': format}
         result = conn.request_post(resource='',
                                    body=str(json_encode(body)),
                                    headers={
                                        'Accept': 'application/json',
                                        'Content-Type': 'application/json'
                                    })
         if not isValidResponse(result):
             raise Exception(result['body'])
     #Local Storage
     else:
         un = unzip.unzip()
         un.extract(gadgetZipFileName, gadgetPath)
         remove(gadgetZipFileName)
Beispiel #2
0
 def share(self):
     if (self.uri == None) or (self.uri == ''):
         conn = Connection(cleanUrl(self.get_catalogue_url()))
         body = self.data
         result = conn.request_post('', body=body, headers={'Accept':'text/json'})
         if isValidResponse(result):
             self.data = result['body']
             obj = simplejson.loads(result['body'])
             self.uri = obj['uri']
             self.save()
         else:
             raise Exception(result['body'])
     else:
         conn = Connection(self.uri)
         result = conn.request_put('', body=self.data, headers={'Accept':'text/json'})
         if not isValidResponse(result):
             raise Exception(result['body'])
Beispiel #3
0
    def delete(self, *args, **kwargs):
        try:
            json = simplejson.loads(self.data)

            if json['gadgetResource'] != None:
                conn = Connection(json['gadgetResource'])
                result = conn.request_delete(resource='', headers={'Accept':'application/json'})
                if not isValidResponse(result):
                    raise Exception(result['body'])
        except Exception, e:
            pass
Beispiel #4
0
 def delete(self, *args, **kwargs):
     for storage in self.storage_set.all():
         storage.delete()
     # Delete screen instances
     json = simplejson.loads(self.data)
     for screen in json['definition']['screens']:
         conn = Connection(screen['uri'])
         result = conn.request_delete('', headers={'Accept':'text/json'})
         if not isValidResponse(result):
             raise Exception(result['body'])
     super(Screenflow, self).delete(*args, **kwargs)
Beispiel #5
0
 def delete(self, *args, **kwargs):
     for storage in self.storage_set.all():
         storage.delete()
     # Delete screen instances
     json = simplejson.loads(self.data)
     for screen in json['definition']['screens']:
         conn = Connection(screen['uri'])
         result = conn.request_delete('', headers={'Accept': 'text/json'})
         if not isValidResponse(result):
             raise Exception(result['body'])
     super(Screenflow, self).delete(*args, **kwargs)
Beispiel #6
0
 def unshare(self):
     if (self.uri != None) and (self.uri != ''):
         conn = Connection(self.uri)
         result = conn.request_delete('', headers={'Accept':'text/json'})
         if not isValidResponse(result):
             raise Exception(result['body'])
         else:
             data = simplejson.loads(self.data)
             del data['uri']
             self.uri = None
             self.data = json_encode(data)
             self.save()
Beispiel #7
0
 def unshare(self):
     if (self.uri != None) and (self.uri != ''):
         conn = Connection(self.uri)
         result = conn.request_delete('', headers={'Accept': 'text/json'})
         if not isValidResponse(result):
             raise Exception(result['body'])
         else:
             data = simplejson.loads(self.data)
             del data['uri']
             self.uri = None
             self.data = json_encode(data)
             self.save()
Beispiel #8
0
 def share(self):
     if (self.uri == None) or (self.uri == ''):
         conn = Connection(cleanUrl(self.get_catalogue_url()))
         body = self.data
         result = conn.request_post('',
                                    body=body,
                                    headers={'Accept': 'text/json'})
         if isValidResponse(result):
             self.data = result['body']
             obj = simplejson.loads(result['body'])
             self.uri = obj['uri']
             self.save()
         else:
             raise Exception(result['body'])
     else:
         conn = Connection(self.uri)
         result = conn.request_put('',
                                   body=self.data,
                                   headers={'Accept': 'text/json'})
         if not isValidResponse(result):
             raise Exception(result['body'])
Beispiel #9
0
 def __setPlatformUrls(self, metadata):
     conn = Connection(metadata['gadgetResource'] + "/platform")
     body = {
         'PlatformName': ",".join(translate_to_service(metadata['platforms']))
     }
     result = conn.request_post(resource='', body=json_encode(body),
                             headers={'Accept': 'application/json',
                             'Content-Type': 'application/json'})
     if isValidResponse(result):
         gadgets = {}
         platform_list = simplejson.loads(result['body'])
         for platform in platform_list:
             gadgets[platform['PlatformName']]=platform['RedirectUri']
         metadata['gadgets'] = gadgets
     else:
         raise Exception(result['body'])
Beispiel #10
0
    def __createResourceURI(self, request, metadata, storage):
        metadata['gadgetResource'] = None
        if isLocalStorage():
            base_uri = request.build_absolute_uri('/static')
            metadata['gadgetUri'] = '/'.join([base_uri, str(storage.pk)])
        else:
            conn = Connection(settings.STORAGE_URL)
            body = {
                'Owner': metadata['owner'],
                'Version': metadata['version'],
                'Author': {
                    'AuthorName': metadata['authorName'],
                    'href': metadata['authorHomepage'],
                    'email': metadata['email']
                },
                'Vendor': {
                    'VendorName': metadata['vendor']
                },
                'GadgetMetadata': {
                    'GadgetName': metadata['name'],
                    'GadgetShortName': metadata['shortname'],
                    'GadgetDescription': metadata['description'],
                    'GadgetIcon': False,
                    'GadgetIconUrl': metadata['imageURI']
                }
            }

            if metadata['height'] != '':
                body['GadgetMetadata']['GadgetDefaultHeight'] = metadata[
                    'height']
            if metadata['width'] != '':
                body['GadgetMetadata']['GadgetDefaultWidth'] = metadata[
                    'width']

            result = conn.request_post(resource='/gadgets/metadata',
                                       body=json_encode(body),
                                       headers={
                                           'Accept': 'application/json',
                                           'Content-Type': 'application/json'
                                       })
            if not isValidResponse(result):
                raise Exception(result['body'])
            data = simplejson.loads(result['body'])
            metadata['gadgetUri'] = data['GadgetLocationURL']
            metadata['gadgetResource'] = data['ServiceGadgetUri']
            metadata['gadgetDataUri'] = data['GadgetDataUri']
Beispiel #11
0
 def __setPlatformUrls(self, metadata):
     conn = Connection(metadata['gadgetResource'] + "/platform")
     body = {
         'PlatformName':
         ",".join(translate_to_service(metadata['platforms']))
     }
     result = conn.request_post(resource='',
                                body=json_encode(body),
                                headers={
                                    'Accept': 'application/json',
                                    'Content-Type': 'application/json'
                                })
     if isValidResponse(result):
         gadgets = {}
         platform_list = simplejson.loads(result['body'])
         for platform in platform_list:
             gadgets[platform['PlatformName']] = platform['RedirectUri']
         metadata['gadgets'] = gadgets
     else:
         raise Exception(result['body'])
Beispiel #12
0
 def __storeGadget(self, gadgetMetaData):
     gadgetPath = path.join(STORAGE_DIR, gadgetMetaData['gadgetRelativePath'])
     gadgetZipFileName = path.join(gadgetPath, STORAGE_GADGET_ZIP_NAME)
     #Remote Storage
     if gadgetMetaData.has_key('gadgetDataUri'):
         conn = Connection(gadgetMetaData['gadgetDataUri'])
         if settings.STORAGE_FORMAT == 'base64string':
             f = open(gadgetZipFileName, 'rb')
             data = f.read()
             f.close()
             data = binascii.b2a_base64(data)
             format = settings.STORAGE_FORMAT
         else:
             data = '/'.join([gadgetMetaData['gadgetUri'], STORAGE_GADGET_ZIP_NAME])
             format = 'URL'
         body = {'Data':data,'DataType':format}
         result = conn.request_post(resource='', body=str(json_encode(body)), headers={'Accept':'application/json', 'Content-Type': 'application/json'})
         if not isValidResponse(result):
             raise Exception(result['body'])
     #Local Storage
     else:
         un = unzip.unzip()
         un.extract(gadgetZipFileName, gadgetPath)
         remove(gadgetZipFileName)
Beispiel #13
0
    def __createResourceURI(self, request, metadata, storage):
        metadata['gadgetResource'] = None
        if isLocalStorage():
            base_uri = request.build_absolute_uri('/static')
            metadata['gadgetUri'] =  '/'.join([base_uri, str(storage.pk)])
        else:
            conn = Connection(settings.STORAGE_URL)
            body = {
                'Owner': metadata['owner'],
                'Version': metadata['version'],
                'Author':{'AuthorName': metadata['authorName'],
                          'href': metadata['authorHomepage'],
                          'email': metadata['email']
                          },
                'Vendor':{'VendorName': metadata['vendor']},
                'GadgetMetadata':{'GadgetName': metadata['name'],
                                  'GadgetShortName': metadata['shortname'],
                                  'GadgetDescription': metadata['description'],
                                  'GadgetIcon': False,
                                  'GadgetIconUrl': metadata['imageURI']
                                  }
                }

            if metadata['height']!='':
                body['GadgetMetadata']['GadgetDefaultHeight'] = metadata['height']
            if metadata['width']!='':
                body['GadgetMetadata']['GadgetDefaultWidth'] = metadata['width']


            result = conn.request_post(resource='/gadgets/metadata', body=json_encode(body) , headers={'Accept':'application/json', 'Content-Type': 'application/json'})
            if not isValidResponse(result):
                raise Exception(result['body'])
            data = simplejson.loads(result['body'])
            metadata['gadgetUri'] = data['GadgetLocationURL']
            metadata['gadgetResource'] = data['ServiceGadgetUri']
            metadata['gadgetDataUri'] = data['GadgetDataUri']
Beispiel #14
0
                    bb.save()

            bb.compile_code()
            try:
                print "Sharing %s" % bb.pk
                bb.share()
            except Exception, e:
                print "ERROR sharing: %s" % bb.pk
                print e

        concepts_dir = options["concepts_dir"]
        if concepts_dir:
            if not path.isdir(concepts_dir):
                raise CommandError("'%s' is not a valid directory" % concepts_dir)

            json_pattern = re.compile(r'^.*\.json$')
            for filename in filter(json_pattern.match, os.listdir(concepts_dir)):
                filepath = path.join(concepts_dir, filename)
                print "\nImporting %s..." % filepath,
                f = open(filepath)
                concepts = simplejson.load(f)
                for concept in concepts:
                    conn = Connection(self.concepts_url)
                    body = simplejson.dumps(concept)
                    result = conn.request_post('', body=body, headers={'Accept':'text/json'})
                    if isValidResponse(result):
                        print "OK ",
                    else:
                        print "Error"
                        print result