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
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
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))