Importing Shotgun Toolkit config

By using standard command line Shotgun (SG) activation SG create project config that attached to the main “studio” configuration thus it’s not localized and not portable.

Command line based activation

https://toolkit.shotgunsoftware.com/entries/97505513

By using “localize” Tank command config can be imported into single self contain folder that can be copied anywhere.

But copy of this config have no use until it hooked up with SG project. What if we want to hooked it up with the project that already has a internal studio config. In this example I brought a copy of my config home.

# Create SG instance
base_url = "https://studio.shotgunstudio.com"
sg = Shotgun(base_url, 'api_test', 'cf1e303b91800d89f596410f25690a41ba21d6211797d1daf')

def create_config(project, config_name, windows_path, mac_path, linux_path):

	data = {'project' : {'type':'Project','id':project_info(project)["id"]},
			'code' : config_name,
    		'windows_path': windows_path,
    		'mac_path' : mac_path,
    		'linux_path' : linux_path}

	create = sg.create("PipelineConfiguration", data)
	return create

create_config('Pipeline Research Project', 'External', 'Z:\software\shotgun\pipeline_research_project', '/Volumes/mnt', '/Volumes/mnt')

 

You will get permission denied error if you create “sg” object by authenticating “humanUser”. Shotgun¬†object has to be constructed from API script.

pipeline_config_example

Since the path where I want to store my project at home doesnt necessary match my studio setup we want to tell Shotgun where to look bu configure Local File Storage in SH Website Preferences.

sg_file_storage_ex

There are couple files that need to be corrected in you duplicated config folder that it corresponds with the new Pipeline Configuration on SG website.

config/core/pipeline_configuration.yml should look something like that

{pc_id: 41, pc_name: External, project_id: 278, project_name: pipeline_research_project, published_file_entity_type: PublishedFile,
  use_shotgun_path_cache: true}

 

config/core/roots.yml

primary: {linux_path: /Volumes/mnt/projects, mac_path: /Volumes/mnt/projects, windows_path: 'Z:\projects'}
external: {linux_path: /Volumes/mnt/projects, mac_path: /Volumes/mnt/projects, windows_path: 'Z:\projects'}

 

I mounted¬†“Z:” network drive to make it consistent among all external artist.