Example #1
0
 def createWorkspace(self,
                     name,
                     desc,
                     start_date=int(time.time() * 1000),
                     finish_date=int(time.time() * 1000),
                     customer=""):
     # XXX: DEPRECATE NEXT LINE
     workspace = Workspace(name, desc)
     try:
         create_workspace(name,
                          description=desc,
                          start_date=start_date,
                          finish_date=finish_date,
                          customer=customer)
     except Unauthorized:
         raise WorkspaceException(
             ("You're not authorized to create workspaces\n"
              "Make sure you're an admin and add your credentials"
              "to your user configuration "
              "file in $HOME/.faraday/config/user.xml\n"
              "For example: "
              "<couch_uri>http://john:[email protected]:5984</couch_uri>"))
     except Exception as e:
         raise WorkspaceException(str(e))
     self.mappersManager.createMappers(name)
     self.setActiveWorkspace(workspace)
     notification_center.workspaceChanged(workspace)
     return name
Example #2
0
 def createWorkspace(self, name, desc, start_date=int(time.time() * 1000),
                     finish_date=int(time.time() * 1000), customer=""):
     # XXX: DEPRECATE NEXT LINE
     workspace = Workspace(name, desc)
     try:
         create_workspace(name, description=desc, start_date=start_date,
                          finish_date=finish_date, customer=customer)
     except Unauthorized:
         raise WorkspaceException(
             ("You're not authorized to create workspaces\n"
              "Make sure you're an admin and add your credentials"
              "to your user configuration "
              "file in $HOME/.faraday/config/user.xml\n"
              "For example: "
              "<couch_uri>http://john:[email protected]:5984</couch_uri>"))
     except Exception as e:
         raise WorkspaceException(str(e))
     self.closeWorkspace()
     self.mappersManager.createMappers(name)
     self.setActiveWorkspace(workspace)
     notification_center.workspaceChanged(workspace)
     return name
Example #3
0
    def update_db(self, db_name):
        if 'backup' in db_name:
            logger.info('Database [%s] is a backup, ignoring' % db_name)
            return

        source_server = CONF.getCouchURI()
        # Levanto los servidores
        db_source = couchdbkit.Database("/".join((source_server, db_name)))
        if db_source.doc_exist(db_name):
            logger.info('DB: [%s] Already had suffer migration' % db_name)
            return

        # Primero replico para no cagarla
        logger.info('Creating db backup: %s' % ('%s-backup' % db_name))
        db_source.server.replicate(db_name, '%s-backup' % db_name, create_target = True)
        db_bkp = couchdbkit.Database("/".join((source_server,
                                            '%s-backup' % db_name)))
        import time
        while db_source.info()['doc_count'] < db_bkp.info()['doc_count']:
            time.sleep(1)

        # Crear documento 'workspace'
        logger.info('Creating workspace document')
        
        create_workspace(db_name,
                        'Migrated Workspace',
                        int(time.time() * 1000),
                        int(time.time() * 1000),
                        "")
        types = {}

        logger.info('Updating modelobject documents')
        for document in db_source.all_docs(include_docs=True):
            # Alter parent id:
            doc = document['doc']
            if not('type' in doc):
                continue
            if doc['type'] == 'CommandRunInformation':
                # Should set the workspace here!
                continue
            elif doc['type'] == 'Workspace':
                # Already modified
                continue
            else:
                # Modify the parent ID
                parent = doc['parent']
                if parent == 'None' or parent == '':
                    parent = None
                else:
                    l_parent = doc['_id'].split('.')[:-1]
                    parent = '.'.join(l_parent)
                doc['parent'] = parent
                if doc['owned'] == '' or doc['owned'] is None:
                    doc['owned'] == False
                else:
                    doc['owned'] = eval(doc['owned'])

                document['doc'] = doc
                db_source.save_doc(doc, force_update = True)

            types[doc['type']] = types.get(doc['type'], 0) + 1

        logger.info("Transformed %s objects" % str(types))