def createProject(spec, dbMeta={}): project = ueAssetUtils.getProject(spec) if project: return project project["name"] = spec.proj project["created_by"] = getpass.getuser() for m in dbMeta: project[m] = dbMeta[m] ueClient.client.saveProject(spec, project) return ueAssetUtils.getProject(spec)
def printInfo(): if "spec" not in info: print "ERROR: Spec not set" sys.exit(2) spec = ueSpec.Spec(info["spec"]) if spec.grp == None: # Project info assetType = "project" assetInfo = ueAssetUtils.getProject(spec) elif spec.asst == None: # Group info assetType = "group" assetInfo = ueAssetUtils.getGroup(spec) elif spec.elclass == None and \ spec.eltype == None and \ spec.elname == None: # Asset info assetType = "asset" assetInfo = ueAssetUtils.getAsset(spec) elif spec.vers == None: # Element info assetType = "element" assetInfo = ueAssetUtils.getElement(spec) assetInfo = assetInfo[spec.elclass][spec.eltype][spec.elname] elif spec.elpass == None: # Version info assetType = "version" assetInfo = ueAssetUtils.getVersions(spec)[int(spec.vers)-1] else: print "ERROR: Could not identify spec as a valid element" sys.exit(2) print "Information on %s:\n%s\n" % (assetType, str(info["spec"])) for a in sorted(assetInfo): # Get a padding value so the key/value columns will be neatly aligned spacePadding = 28-len(a) # Parse the version and datetime info correctly if a == "versions": assetInfo[a] = len(assetInfo[a]) elif a in ["created_at", "updated_at"]: assetInfo[a] = ueCore.formatDatetime(str(assetInfo[a])) # Get rid of the keys with _id because they're database stuff if not re.match(".*_id$", a): print "%s:%s%s" % (a, " "*spacePadding, str(assetInfo[a])) print ""
def printInfo(): if "spec" not in info: print "ERROR: Spec not set" sys.exit(2) spec = ueSpec.Spec(info["spec"]) if spec.grp == None: # Project info assetType = "project" assetInfo = ueAssetUtils.getProject(spec) elif spec.asst == None: # Group info assetType = "group" assetInfo = ueAssetUtils.getGroup(spec) elif spec.elclass == None and \ spec.eltype == None and \ spec.elname == None: # Asset info assetType = "asset" assetInfo = ueAssetUtils.getAsset(spec) elif spec.vers == None: # Element info assetType = "element" assetInfo = ueAssetUtils.getElement(spec) assetInfo = assetInfo[spec.elclass][spec.eltype][spec.elname] elif spec.elpass == None: # Version info assetType = "version" assetInfo = ueAssetUtils.getVersions(spec)[int(spec.vers) - 1] else: print "ERROR: Could not identify spec as a valid element" sys.exit(2) print "Information on %s:\n%s\n" % (assetType, str(info["spec"])) for a in sorted(assetInfo): # Get a padding value so the key/value columns will be neatly aligned spacePadding = 28 - len(a) # Parse the version and datetime info correctly if a == "versions": assetInfo[a] = len(assetInfo[a]) elif a in ["created_at", "updated_at"]: assetInfo[a] = ueCore.formatDatetime(str(assetInfo[a])) # Get rid of the keys with _id because they're database stuff if not re.match(".*_id$", a): print "%s:%s%s" % (a, " " * spacePadding, str(assetInfo[a])) print ""
def createScript(self): job = {} if self.run == "nuke": ext = "nk" proj = ueAssetUtils.getProject(self.destSpec) asst = ueAssetUtils.getAsset(self.destSpec) versions = ueAssetUtils.getVersions(self.sourceSpec) version = versions[len(versions) - 1] p = os.path.join(version["path"], version["file_name"] + "." + ext) for f in range(self.frame_start, self.frame_end + 1): frame = {} if self.run == "nuke": frame["cmd"] = "nuke -x -V -f -X %s -F %i-%i %s" % (",".join( self.options["writeNode"]), f, f, p) frame["proj"] = self.destSpec.proj frame["grp"] = self.destSpec.grp frame["asst"] = self.destSpec.asst frame["proj_root"] = proj["path"] frame["asst_root"] = asst["path"] job[f] = frame versions = ueAssetUtils.getVersions(self.destSpec) version = versions[len(versions) - 1] p = os.path.join( asst["path"], "tmp", "drQueue", version["file_name"] + "." + str(int(time.time())) + ".dq") if not os.path.exists(os.path.dirname(p)): import ueCore.FileUtils as ueFileUtils ueFileUtils.createDir(os.path.dirname(p)) try: f = open(p, "w") f.write(json.dumps(job, sort_keys=True, indent=4)) f.close() except IOError, e: print "ERROR: Creating job script '%s' (%s)" % (p, e) sys.exit(2)
def createScript(self): job = {} if self.run == "nuke": ext = "nk" proj = ueAssetUtils.getProject(self.destSpec) asst = ueAssetUtils.getAsset(self.destSpec) versions = ueAssetUtils.getVersions(self.sourceSpec) version = versions[len(versions)-1] p = os.path.join(version["path"], version["file_name"]+"."+ext) for f in range(self.frame_start, self.frame_end+1): frame = {} if self.run == "nuke": frame["cmd"] = "nuke -x -V -f -X %s -F %i-%i %s" % (",".join(self.options["writeNode"]), f, f, p) frame["proj"] = self.destSpec.proj frame["grp"] = self.destSpec.grp frame["asst"] = self.destSpec.asst frame["proj_root"] = proj["path"] frame["asst_root"] = asst["path"] job[f] = frame versions = ueAssetUtils.getVersions(self.destSpec) version = versions[len(versions)-1] p = os.path.join(asst["path"], "tmp", "drQueue", version["file_name"]+"."+str(int(time.time()))+".dq") if not os.path.exists(os.path.dirname(p)): import ueCore.FileUtils as ueFileUtils ueFileUtils.createDir(os.path.dirname(p)) try: f = open(p, "w") f.write(json.dumps(job, sort_keys=True, indent=4)) f.close() except IOError, e: print "ERROR: Creating job script '%s' (%s)" % (p, e) sys.exit(2)
def changeAsset(): spec = ueSpec.Spec(sys.argv[-1]) if not spec.proj in ueAssetUtils.getProjectsList(): print "ERROR: Project does not exist" sys.exit(2) if not spec.grp in ueAssetUtils.getGroupsList(spec): print "ERROR: Group does not exist" sys.exit(2) if not spec.asst in ueAssetUtils.getAssetsList(spec): print "ERROR: Asset does not exist" sys.exit(2) project = ueAssetUtils.getProject(spec) asset = ueAssetUtils.getAsset(spec) print "export PROJ=%s; " % spec.proj print "export GRP=%s; " % spec.grp print "export ASST=%s; " % spec.asst print "export PROJ_ROOT=%s; " % project["path"] print "export ASST_ROOT=%s" % asset["path"]
def updateProject(spec, dbMeta={}): ueClient.client.updateProject(spec, dbMeta) return ueAssetUtils.getProject(spec)