Documentation
¶
Index ¶
- Constants
- Variables
- func BoshFlags(defaults *BoshBase) []pcli.Flag
- func NewHealthMonitor(resurrectorEnabled bool) health_monitor.Hm
- func NewNTP(ntp ...string) []string
- func NewNats(user, pass string) *director.Nats
- func SHA512Pass(password string) (string, error)
- type AWSBosh
- func (s *AWSBosh) CreateCPIJobProperties() map[string]interface{}
- func (s *AWSBosh) CreateCPIRelease() enaml.Release
- func (s *AWSBosh) CreateCPITemplate() (template enaml.Template)
- func (s *AWSBosh) CreateCloudProvider() (provider enaml.CloudProvider)
- func (s *AWSBosh) CreateDeploymentManifest() (*enaml.DeploymentManifest, error)
- func (s *AWSBosh) CreateDiskPool() enaml.DiskPool
- func (s *AWSBosh) CreateJobNetwork() *enaml.Network
- func (s *AWSBosh) CreateManualNetwork() (net enaml.ManualNetwork)
- func (s *AWSBosh) CreateResourcePool() (*enaml.ResourcePool, error)
- func (s *AWSBosh) CreateVIPNetwork() (net enaml.VIPNetwork)
- type AWSInitConfig
- type Ar
- type AzureBosh
- func (a *AzureBosh) CreateCPIJobProperties() map[string]interface{}
- func (a *AzureBosh) CreateCPIRelease() enaml.Release
- func (a *AzureBosh) CreateCPITemplate() enaml.Template
- func (a *AzureBosh) CreateCloudProvider() enaml.CloudProvider
- func (a *AzureBosh) CreateDeploymentManifest() (*enaml.DeploymentManifest, error)
- func (a *AzureBosh) CreateDiskPool() enaml.DiskPool
- func (a *AzureBosh) CreateJobNetwork() *enaml.Network
- func (a *AzureBosh) CreateManualNetwork() enaml.ManualNetwork
- func (a *AzureBosh) CreateResourcePool() (*enaml.ResourcePool, error)
- func (a *AzureBosh) CreateVIPNetwork() enaml.VIPNetwork
- type AzureInitConfig
- type BoshBase
- func (s *BoshBase) CreateAuthenticationFiles() error
- func (s *BoshBase) CreateDeploymentManifest() *enaml.DeploymentManifest
- func (s *BoshBase) CreateJob() enaml.Job
- func (s *BoshBase) CreateResourcePool(cloudPropertiesFunction func() interface{}) (*enaml.ResourcePool, error)
- func (s *BoshBase) GetRoutableIP() string
- func (s *BoshBase) HandleDeployment(provider IAASManifestProvider, boshInitDeploy func(string)) error
- func (s *BoshBase) InitializeCerts() (err error)
- func (s *BoshBase) InitializeDBDefaults()
- func (s *BoshBase) InitializeKeys() (err error)
- func (s *BoshBase) InitializePasswords()
- func (s *BoshBase) IsBasic() bool
- func (s *BoshBase) IsUAA() bool
- type BoshPassword
- type DirectorProperty
- type GCPBosh
- func (g *GCPBosh) CreateCPIJobProperties() map[string]interface{}
- func (g *GCPBosh) CreateCPIRelease() enaml.Release
- func (g *GCPBosh) CreateCPITemplate() enaml.Template
- func (g *GCPBosh) CreateCloudProvider() enaml.CloudProvider
- func (g *GCPBosh) CreateDeploymentManifest() (*enaml.DeploymentManifest, error)
- func (g *GCPBosh) CreateDiskPool() enaml.DiskPool
- func (g *GCPBosh) CreateJobNetwork() *enaml.Network
- func (g *GCPBosh) CreateManualNetwork() enaml.ManualNetwork
- func (g *GCPBosh) CreateResourcePool() (*enaml.ResourcePool, error)
- func (g *GCPBosh) CreateVIPNetwork() enaml.VIPNetwork
- type GCPBoshInitConfig
- type IAASManifestProvider
- func NewAWSIaaSProvider(cfg AWSInitConfig, boshBase *BoshBase) IAASManifestProvider
- func NewAzureIaaSProvider(cfg AzureInitConfig, boshBase *BoshBase) IAASManifestProvider
- func NewGCPIaaSProvider(cfg *GCPBoshInitConfig, boshBase *BoshBase) IAASManifestProvider
- func NewPhotonIaaSProvider(cfg *PhotonBoshInitConfig, boshBase *BoshBase) IAASManifestProvider
- func NewVSphereIaaSProvider(cfg VSphereInitConfig, boshBase *BoshBase) IAASManifestProvider
- type Network
- type PgSql
- type PhotonBosh
- func (g *PhotonBosh) CreateCPIJobProperties() map[string]interface{}
- func (g *PhotonBosh) CreateCPIRelease() enaml.Release
- func (g *PhotonBosh) CreateCPITemplate() enaml.Template
- func (g *PhotonBosh) CreateCloudProvider() enaml.CloudProvider
- func (g *PhotonBosh) CreateDeploymentManifest() (*enaml.DeploymentManifest, error)
- func (g *PhotonBosh) CreateDiskPool() enaml.DiskPool
- func (g *PhotonBosh) CreateJobNetwork() *enaml.Network
- func (g *PhotonBosh) CreateManualNetwork() enaml.ManualNetwork
- func (g *PhotonBosh) CreateResourcePool() (*enaml.ResourcePool, error)
- func (g *PhotonBosh) CreateVIPNetwork() enaml.VIPNetwork
- type PhotonBoshInitConfig
- type Postgres
- type RegistryProperty
- type ResourcePool
- type Rr
- type UAAClient
- type VSphereBosh
- func (v *VSphereBosh) CreateCPIJobProperties() map[string]interface{}
- func (v *VSphereBosh) CreateCPIRelease() enaml.Release
- func (v *VSphereBosh) CreateCPITemplate() enaml.Template
- func (v *VSphereBosh) CreateCloudProvider() enaml.CloudProvider
- func (v *VSphereBosh) CreateDeploymentManifest() (*enaml.DeploymentManifest, error)
- func (v *VSphereBosh) CreateDiskPool() enaml.DiskPool
- func (v *VSphereBosh) CreateJobNetwork() *enaml.Network
- func (v *VSphereBosh) CreateManualNetwork() enaml.ManualNetwork
- func (v *VSphereBosh) CreateResourcePool() (*enaml.ResourcePool, error)
- func (v *VSphereBosh) CreateVIPNetwork() enaml.VIPNetwork
- type VSphereDatacenter
- type VSphereDatacenters
- type VSphereInitConfig
- type VSpherecloudpropertiesNetwork
- type VSpherecloudpropertiesResourcePool
Constants ¶
View Source
const ( GCPCPIReleaseName = "bosh-google-cpi" GCPCPIURL = "https://storage.googleapis.com/bosh-cpi-artifacts/bosh-google-cpi-24.2.0.tgz" GCPCPISHA = "80d3ef039cb0ed014e97eeea10569598804659d3" GCPCPIJobName = "google_cpi" GCPStemcellURL = "https://storage.googleapis.com/bosh-cpi-artifacts/light-bosh-stemcell-3262.4-google-kvm-ubuntu-trusty-go_agent.tgz" GCPStemcellSHA = "1f44ee6fc5fd495113694aa772d636bf1a8d645a" )
View Source
const ( PhotonCPIReleaseName = "bosh-photon-cpi" PhotonCPIJobName = "cpi" PhotonPersistentDiskSize = 32768 PhotonCPIURL = "https://s3.amazonaws.com/concourse-photon/bosh-photon-cpi-1.0.0.tgz" PhotonCPISHA = "71626961a8505447fa34ca569f97f8c70a0ef39a" PhotonBoshReleaseURL = "https://bosh.io/d/github.com/cloudfoundry/bosh?v=257.3" PhotonBoshReleaseSHA = "e4442afcc64123e11f2b33cc2be799a0b59207d0" PhotonStemcellURL = "https://bosh.io/d/stemcells/bosh-vsphere-esxi-ubuntu-trusty-go_agent?v=3232.1" PhotonStemcellSHA = "169df93e3e344cd84ac6ef16d76dd0276e321a25" )
Variables ¶
View Source
var RequiredSliceFlags = []string{
"dns",
"ntp-server",
}
View Source
var RequiredStringFlags = []string{
"cidr",
"gateway",
"bosh-private-ip",
"bosh-release-url",
"bosh-release-sha",
"bosh-cpi-release-url",
"bosh-cpi-release-sha",
"go-agent-release-url",
"go-agent-release-sha",
"director-name",
"uaa-release-url",
"uaa-release-sha",
"persistent-disk-size",
}
Functions ¶
func NewHealthMonitor ¶
func NewHealthMonitor(resurrectorEnabled bool) health_monitor.Hm
func SHA512Pass ¶ added in v1.0.0
SHA512Pass creates a sha-512 password
Types ¶
type AWSBosh ¶ added in v0.0.6
type AWSBosh struct {
// contains filtered or unexported fields
}
func (*AWSBosh) CreateCPIJobProperties ¶ added in v0.0.10
func (*AWSBosh) CreateCPIRelease ¶ added in v0.0.6
func (*AWSBosh) CreateCPITemplate ¶ added in v0.0.6
func (*AWSBosh) CreateCloudProvider ¶ added in v0.0.6
func (s *AWSBosh) CreateCloudProvider() (provider enaml.CloudProvider)
func (*AWSBosh) CreateDeploymentManifest ¶ added in v0.0.6
func (s *AWSBosh) CreateDeploymentManifest() (*enaml.DeploymentManifest, error)
func (*AWSBosh) CreateDiskPool ¶ added in v0.0.6
func (*AWSBosh) CreateJobNetwork ¶ added in v0.0.6
func (*AWSBosh) CreateManualNetwork ¶ added in v0.0.6
func (s *AWSBosh) CreateManualNetwork() (net enaml.ManualNetwork)
func (*AWSBosh) CreateResourcePool ¶ added in v0.0.6
func (s *AWSBosh) CreateResourcePool() (*enaml.ResourcePool, error)
func (*AWSBosh) CreateVIPNetwork ¶ added in v0.0.6
func (s *AWSBosh) CreateVIPNetwork() (net enaml.VIPNetwork)
type AWSInitConfig ¶ added in v0.0.11
type AzureBosh ¶ added in v0.0.31
type AzureBosh struct {
// contains filtered or unexported fields
}
func (*AzureBosh) CreateCPIJobProperties ¶ added in v0.0.31
func (*AzureBosh) CreateCPIRelease ¶ added in v0.0.31
func (*AzureBosh) CreateCPITemplate ¶ added in v0.0.31
func (*AzureBosh) CreateCloudProvider ¶ added in v0.0.31
func (a *AzureBosh) CreateCloudProvider() enaml.CloudProvider
func (*AzureBosh) CreateDeploymentManifest ¶ added in v0.0.31
func (a *AzureBosh) CreateDeploymentManifest() (*enaml.DeploymentManifest, error)
func (*AzureBosh) CreateDiskPool ¶ added in v0.0.31
func (*AzureBosh) CreateJobNetwork ¶ added in v0.0.31
func (*AzureBosh) CreateManualNetwork ¶ added in v0.0.31
func (a *AzureBosh) CreateManualNetwork() enaml.ManualNetwork
func (*AzureBosh) CreateResourcePool ¶ added in v0.0.31
func (a *AzureBosh) CreateResourcePool() (*enaml.ResourcePool, error)
func (*AzureBosh) CreateVIPNetwork ¶ added in v0.0.31
func (a *AzureBosh) CreateVIPNetwork() enaml.VIPNetwork
type AzureInitConfig ¶ added in v0.0.11
type AzureInitConfig struct {
AzureInstanceSize string
AzureVnet string
AzureSubnet string
AzureSubscriptionID string
AzureTenantID string
AzureClientID string
AzureClientSecret string
AzureResourceGroup string
AzureStorageAccount string
AzureDefaultSecurityGroup string
AzureSSHPubKey string
AzureSSHUser string
AzureEnvironment string
AzurePrivateKeyPath string
}
type BoshBase ¶ added in v0.0.6
type BoshBase struct {
Mode string
NetworkCIDR string
NetworkGateway string
NetworkDNS []string
DirectorName string
DirectorPassword string
CPIJobName string
NtpServers []string
PrivateStaticIPs []string
PrivateReservedRange string
NatsPassword string
MBusPassword string
PrivateIP string
PublicIP string
SSLCert string
SSLKey string
PrivateKey string
PublicKey string
HealthMonitorSecret string
LoginSecret string
RegistryPassword string
CACert string
BoshReleaseSHA string
BoshReleaseURL string
CPIReleaseSHA string
CPIReleaseURL string
GOAgentSHA string
GOAgentReleaseURL string
UAAReleaseSHA string
UAAReleaseURL string
TrustedCerts string
PersistentDiskSize int
PrintManifest bool
GraphiteAddress string
GraphitePort int
SyslogAddress string
SyslogPort int
SyslogTransport string
UseExternalDB bool
DatabaseDriver string
DatabaseHost string
DatabasePort int
DatabaseUsername string
DatabasePassword string
DirectorDatabaseName string
RegistryDatabaseName string
UAADatabaseName string
DatabaseScheme string
ConfigureBlobstore func(*enaml.Job)
}
func GetAWSBoshBase ¶ added in v0.0.11
func GetAWSBoshBase() *BoshBase
func GetAzureDefaults ¶ added in v0.0.11
func GetAzureDefaults() *BoshBase
func GetVSphereDefaults ¶ added in v0.0.11
func GetVSphereDefaults() *BoshBase
func NewBoshBase ¶ added in v0.0.6
func NewGCPBoshBase ¶ added in v0.0.11
func NewGCPBoshBase() *BoshBase
func NewPhotonBoshBase ¶ added in v0.0.11
func NewPhotonBoshBase() *BoshBase
NewPhotonBoshBase creates a BoshBase initialized with Photon defaults.
func (*BoshBase) CreateAuthenticationFiles ¶ added in v0.0.31
func (*BoshBase) CreateDeploymentManifest ¶ added in v0.0.6
func (s *BoshBase) CreateDeploymentManifest() *enaml.DeploymentManifest
func (*BoshBase) CreateResourcePool ¶ added in v1.0.0
func (s *BoshBase) CreateResourcePool(cloudPropertiesFunction func() interface{}) (*enaml.ResourcePool, error)
CreateResourcePool creates the bosh resource pool
func (*BoshBase) GetRoutableIP ¶ added in v0.0.10
func (*BoshBase) HandleDeployment ¶ added in v0.0.31
func (s *BoshBase) HandleDeployment(provider IAASManifestProvider, boshInitDeploy func(string)) error
func (*BoshBase) InitializeCerts ¶ added in v0.0.9
InitializeCerts - initializes certs needed for UAA and health monitor
func (*BoshBase) InitializeDBDefaults ¶ added in v1.0.0
func (s *BoshBase) InitializeDBDefaults()
func (*BoshBase) InitializeKeys ¶ added in v0.0.9
InitializeKeys - initializes public/private keys
func (*BoshBase) InitializePasswords ¶ added in v0.0.9
func (s *BoshBase) InitializePasswords()
type BoshPassword ¶ added in v1.0.0
type BoshPassword struct {
Password string `yaml:"password"`
}
type DirectorProperty ¶
type GCPBosh ¶ added in v0.0.11
type GCPBosh struct {
BoshInitConfig *GCPBoshInitConfig
Base *BoshBase
}
func (*GCPBosh) CreateCPIJobProperties ¶ added in v0.0.11
func (*GCPBosh) CreateCPIRelease ¶ added in v0.0.11
func (*GCPBosh) CreateCPITemplate ¶ added in v0.0.11
func (*GCPBosh) CreateCloudProvider ¶ added in v0.0.11
func (g *GCPBosh) CreateCloudProvider() enaml.CloudProvider
func (*GCPBosh) CreateDeploymentManifest ¶ added in v0.0.11
func (g *GCPBosh) CreateDeploymentManifest() (*enaml.DeploymentManifest, error)
func (*GCPBosh) CreateDiskPool ¶ added in v0.0.11
func (*GCPBosh) CreateJobNetwork ¶ added in v0.0.11
func (*GCPBosh) CreateManualNetwork ¶ added in v0.0.11
func (g *GCPBosh) CreateManualNetwork() enaml.ManualNetwork
func (*GCPBosh) CreateResourcePool ¶ added in v0.0.11
func (g *GCPBosh) CreateResourcePool() (*enaml.ResourcePool, error)
func (*GCPBosh) CreateVIPNetwork ¶ added in v0.0.11
func (g *GCPBosh) CreateVIPNetwork() enaml.VIPNetwork
type GCPBoshInitConfig ¶ added in v0.0.11
type IAASManifestProvider ¶ added in v0.0.6
type IAASManifestProvider interface {
CreateCPIRelease() enaml.Release
CreateCPITemplate() enaml.Template
CreateDiskPool() enaml.DiskPool
CreateResourcePool() (*enaml.ResourcePool, error)
CreateManualNetwork() enaml.ManualNetwork
CreateVIPNetwork() enaml.VIPNetwork
CreateJobNetwork() *enaml.Network
CreateCloudProvider() enaml.CloudProvider
CreateCPIJobProperties() map[string]interface{}
CreateDeploymentManifest() (*enaml.DeploymentManifest, error)
}
func NewAWSIaaSProvider ¶ added in v0.0.6
func NewAWSIaaSProvider(cfg AWSInitConfig, boshBase *BoshBase) IAASManifestProvider
func NewAzureIaaSProvider ¶ added in v0.0.31
func NewAzureIaaSProvider(cfg AzureInitConfig, boshBase *BoshBase) IAASManifestProvider
func NewGCPIaaSProvider ¶ added in v0.0.11
func NewGCPIaaSProvider(cfg *GCPBoshInitConfig, boshBase *BoshBase) IAASManifestProvider
func NewPhotonIaaSProvider ¶ added in v0.0.11
func NewPhotonIaaSProvider(cfg *PhotonBoshInitConfig, boshBase *BoshBase) IAASManifestProvider
func NewVSphereIaaSProvider ¶ added in v0.0.31
func NewVSphereIaaSProvider(cfg VSphereInitConfig, boshBase *BoshBase) IAASManifestProvider
type PhotonBosh ¶ added in v0.0.11
type PhotonBosh struct {
BoshInitConfig *PhotonBoshInitConfig
Base *BoshBase
}
func (*PhotonBosh) CreateCPIJobProperties ¶ added in v0.0.11
func (g *PhotonBosh) CreateCPIJobProperties() map[string]interface{}
func (*PhotonBosh) CreateCPIRelease ¶ added in v0.0.11
func (g *PhotonBosh) CreateCPIRelease() enaml.Release
func (*PhotonBosh) CreateCPITemplate ¶ added in v0.0.11
func (g *PhotonBosh) CreateCPITemplate() enaml.Template
func (*PhotonBosh) CreateCloudProvider ¶ added in v0.0.11
func (g *PhotonBosh) CreateCloudProvider() enaml.CloudProvider
func (*PhotonBosh) CreateDeploymentManifest ¶ added in v0.0.11
func (g *PhotonBosh) CreateDeploymentManifest() (*enaml.DeploymentManifest, error)
func (*PhotonBosh) CreateDiskPool ¶ added in v0.0.11
func (g *PhotonBosh) CreateDiskPool() enaml.DiskPool
func (*PhotonBosh) CreateJobNetwork ¶ added in v0.0.11
func (g *PhotonBosh) CreateJobNetwork() *enaml.Network
func (*PhotonBosh) CreateManualNetwork ¶ added in v0.0.11
func (g *PhotonBosh) CreateManualNetwork() enaml.ManualNetwork
func (*PhotonBosh) CreateResourcePool ¶ added in v0.0.11
func (g *PhotonBosh) CreateResourcePool() (*enaml.ResourcePool, error)
func (*PhotonBosh) CreateVIPNetwork ¶ added in v0.0.11
func (g *PhotonBosh) CreateVIPNetwork() enaml.VIPNetwork
type PhotonBoshInitConfig ¶ added in v0.0.11
type RegistryProperty ¶
type ResourcePool ¶ added in v0.0.11
type ResourcePool struct {
ResourcePool string `yaml:"resource_pool"`
}
type UAAClient ¶ added in v0.0.6
type UAAClient struct {
ID string `yaml:"id,omitempty"`
Secret string `yaml:"secret,omitempty"`
Scope string `yaml:"scope,omitempty"`
AuthorizedGrantTypes string `yaml:"authorized-grant-types,omitempty"`
Authorities string `yaml:"authorities,omitempty"`
AutoApprove interface{} `yaml:"autoapprove,omitempty"`
Override bool `yaml:"override,omitempty"`
RedirectURI string `yaml:"redirect-uri,omitempty"`
AccessTokenValidity int `yaml:"access-token-validity,omitempty"`
RefreshTokenValidity int `yaml:"refresh-token-validity,omitempty"`
ResourceIDs string `yaml:"resource_ids,omitempty"`
Name string `yaml:"name,omitempty"`
AppLaunchURL string `yaml:"app-launch-url,omitempty"`
ShowOnHomepage bool `yaml:"show-on-homepage,omitempty"`
AppIcon string `yaml:"app-icon,omitempty"`
}
UAAClient - Structure to represent map of client priviledges
type VSphereBosh ¶ added in v0.0.31
type VSphereBosh struct {
// contains filtered or unexported fields
}
func (*VSphereBosh) CreateCPIJobProperties ¶ added in v0.0.31
func (v *VSphereBosh) CreateCPIJobProperties() map[string]interface{}
func (*VSphereBosh) CreateCPIRelease ¶ added in v0.0.31
func (v *VSphereBosh) CreateCPIRelease() enaml.Release
func (*VSphereBosh) CreateCPITemplate ¶ added in v0.0.31
func (v *VSphereBosh) CreateCPITemplate() enaml.Template
func (*VSphereBosh) CreateCloudProvider ¶ added in v0.0.31
func (v *VSphereBosh) CreateCloudProvider() enaml.CloudProvider
func (*VSphereBosh) CreateDeploymentManifest ¶ added in v0.0.31
func (v *VSphereBosh) CreateDeploymentManifest() (*enaml.DeploymentManifest, error)
func (*VSphereBosh) CreateDiskPool ¶ added in v0.0.31
func (v *VSphereBosh) CreateDiskPool() enaml.DiskPool
func (*VSphereBosh) CreateJobNetwork ¶ added in v0.0.31
func (v *VSphereBosh) CreateJobNetwork() *enaml.Network
func (*VSphereBosh) CreateManualNetwork ¶ added in v0.0.31
func (v *VSphereBosh) CreateManualNetwork() enaml.ManualNetwork
func (*VSphereBosh) CreateResourcePool ¶ added in v0.0.31
func (v *VSphereBosh) CreateResourcePool() (*enaml.ResourcePool, error)
func (*VSphereBosh) CreateVIPNetwork ¶ added in v0.0.31
func (v *VSphereBosh) CreateVIPNetwork() enaml.VIPNetwork
type VSphereDatacenter ¶
type VSphereDatacenter struct {
Name string `yaml:"name"` // [String, required]: vSphere datacenter name.
VMFolder string `yaml:"vm_folder"` // [String, required]: The folder to create PCF VMs in.
TemplateFolder string `yaml:"template_folder"` // [String, required]: The folder to store stemcells in.
DatastorePattern string `yaml:"datastore_pattern"` // [String, required]: The pattern to the vSphere datastore.
PersistentDatastorePattern string `yaml:"persistent_datastore_pattern"` // [String, required]: The pattern to the vSphere datastore for persistent diskv.
DiskPath string `yaml:"disk_path"` // [String, required]: The disk path.
Clusters interface{} `yaml:"clusters"` // [[]String], required]: The vSphere cluster(s).
}
type VSphereDatacenters ¶
type VSphereDatacenters []VSphereDatacenter
type VSphereInitConfig ¶ added in v0.0.11
type VSphereInitConfig struct {
VSphereAddress string
VSphereUser string
VSpherePassword string
VSphereDatacenterName string
VSphereVMFolder string
VSphereTemplateFolder string
VSphereDataStore string
VSphereDiskPath string
VSphereResourcePool []string
VSphereClusters []string
VSphereNetworks []Network
}
type VSpherecloudpropertiesNetwork ¶
type VSpherecloudpropertiesNetwork struct {
Name string `yaml:"name,omitempty"` // [String, required]: vSphere network name.
}
type VSpherecloudpropertiesResourcePool ¶
type VSpherecloudpropertiesResourcePool struct {
CPU int `yaml:"cpu,omitempty"` // [Integer, required]: Number of CPUv.
RAM int `yaml:"ram,omitempty"` // [Integer, required]: Specified the amount of RAM in megabytev.
Disk int `yaml:"disk,omitempty"` // [Integer, required]: Specifies the disk size in megabytev.
Datacenters VSphereDatacenters `yaml:"datacenters,omitempty"`
}
Source Files
¶
Click to show internal directories.
Click to hide internal directories.