MCPcopy Index your code
hub / github.com/cloudfoundry/cli / Execute

Method Execute

cf/commands/application/copy_source.go:86–155  ·  view source on GitHub ↗
(c flags.FlagContext)

Source from the content-addressed store, hash-verified

84}
85
86func (cmd *CopySource) Execute(c flags.FlagContext) error {
87 sourceAppName := c.Args()[0]
88 targetAppName := c.Args()[1]
89
90 targetOrg := c.String("o")
91 targetSpace := c.String("s")
92
93 if targetOrg != "" && targetSpace == "" {
94 return errors.New(T("Please provide the space within the organization containing the target application"))
95 }
96
97 _, err := cmd.authRepo.RefreshAuthToken()
98 if err != nil {
99 return err
100 }
101
102 sourceApp, err := cmd.appRepo.Read(sourceAppName)
103 if err != nil {
104 return err
105 }
106
107 var targetOrgName, targetSpaceName, spaceGUID, copyStr string
108 var spaceFields models.SpaceFields
109 if targetOrg != "" && targetSpace != "" {
110 spaceFields, err = cmd.findSpaceFields(targetOrg, targetSpace)
111 spaceGUID = spaceFields.GUID
112 if err != nil {
113 return err
114 }
115
116 targetOrgName = targetOrg
117 targetSpaceName = spaceFields.Name
118 } else if targetSpace != "" {
119 var space models.Space
120 space, err = cmd.spaceRepo.FindByName(targetSpace)
121 if err != nil {
122 return err
123 }
124 spaceGUID = space.GUID
125 targetOrgName = cmd.config.OrganizationFields().Name
126 targetSpaceName = space.Name
127 } else {
128 spaceGUID = cmd.config.SpaceFields().GUID
129 targetOrgName = cmd.config.OrganizationFields().Name
130 targetSpaceName = cmd.config.SpaceFields().Name
131 }
132
133 copyStr = buildCopyString(sourceAppName, targetAppName, targetOrgName, targetSpaceName, cmd.config.Username())
134
135 targetApp, err := cmd.appRepo.ReadFromSpace(targetAppName, spaceGUID)
136 if err != nil {
137 return err
138 }
139
140 cmd.ui.Say(copyStr)
141 cmd.ui.Say(T("Note: this may take some time"))
142 cmd.ui.Say("")
143

Callers

nothing calls this directly

Calls 15

findSpaceFieldsMethod · 0.95
buildCopyStringFunction · 0.85
ArgsMethod · 0.65
StringMethod · 0.65
RefreshAuthTokenMethod · 0.65
ReadMethod · 0.65
FindByNameMethod · 0.65
OrganizationFieldsMethod · 0.65
SpaceFieldsMethod · 0.65
UsernameMethod · 0.65
ReadFromSpaceMethod · 0.65
SayMethod · 0.65

Tested by

no test coverage detected