Skip to content

Commit

Permalink
initial importer
Browse files Browse the repository at this point in the history
  • Loading branch information
jgramoll committed Aug 2, 2019
1 parent 76854a7 commit d88ee11
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 4 deletions.
10 changes: 9 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,14 @@ curl -s https://raw.githubusercontent.com/jgramoll/terraform-provider-jenkins/ma

$jenkins_url/user/$username/configure

### Importer ###

go run ./importer -job="Name of your Job"

1. Ensures each resource has a valid id
1. Outputs terraform code to match the job
1. Outputs script that will import the resources to tf state

### resources ###

```terraform
Expand Down Expand Up @@ -138,7 +146,7 @@ resource "jenkins_job_gerrit_branch" "main" {
}
resource "jenkins_job_datadog_job_property" "main" {
job = "${jenkins_job.main.id}"
job = "${jenkins_job.main.id}"
}
```
Expand Down
7 changes: 4 additions & 3 deletions client/job_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,11 @@ func (service *JobService) GetJobs(folder string) (*[]*Job, error) {
}

var jobs []*Job
for _, job := range *response.Jobs {
jobs = append(jobs, newJobFromConfigAndDetails(nil, job))
if response.Jobs != nil {
for _, job := range *response.Jobs {
jobs = append(jobs, newJobFromConfigAndDetails(nil, job))
}
}

return &jobs, nil
}

Expand Down
Binary file added importer/importer
Binary file not shown.
53 changes: 53 additions & 0 deletions importer/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package main

import (
"flag"
"log"
"os"

"github.com/jgramoll/terraform-provider-jenkins/client"
)

func main() {
jobName := flag.String("job", "", "name of job to import")
flag.Parse()

if *jobName == "" {
log.Println("[ERROR] Job Name must be provided")
flag.PrintDefaults()
return
}

c := initClient()
js := client.JobService{Client: c}
t, err := js.GetJobs(*jobName)
if err != nil {
log.Println(err.Error())
return
}
println("here", t)
}

func initClient() *client.Client {
log.Println("[INFO] Initializing jenkins client")

address := os.Getenv("JENKINS_ADDRESS")
if address == "" {
log.Println("[Error] JENKINS_ADDRESS not defined")
}
username := os.Getenv("JENKINS_USERNAME")
if username == "" {
log.Println("[Error] JENKINS_USERNAME not defined")
}
token := os.Getenv("JENKINS_TOKEN")
if token == "" {
log.Println("[Error] JENKINS_TOKEN not defined")
}

clientConfig := client.Config{
Address: address,
Username: username,
Token: token,
}
return client.NewClient(clientConfig)
}

0 comments on commit d88ee11

Please sign in to comment.