func PlatformUpdate(opts provision.PlatformOptions) error { var ( provisioner provision.ExtensibleProvisioner platform Platform ok bool ) if provisioner, ok = Provisioner.(provision.ExtensibleProvisioner); !ok { return ErrProvisionerIsNotExtensible } if opts.Name == "" { return ErrPlatformNameMissing } conn, err := db.Conn() if err != nil { return err } defer conn.Close() err = conn.Platforms().Find(bson.M{"_id": opts.Name}).One(&platform) if err != nil { if err == mgo.ErrNotFound { return ErrPlatformNotFound } return err } if opts.Args["dockerfile"] != "" || opts.Input != nil { err = provisioner.PlatformUpdate(opts) if err != nil { return err } var apps []App err = conn.Apps().Find(bson.M{"framework": opts.Name}).All(&apps) if err != nil { return err } for _, app := range apps { app.SetUpdatePlatform(true) } } if opts.Args["disabled"] != "" { disableBool, err := strconv.ParseBool(opts.Args["disabled"]) if err != nil { return err } err = conn.Platforms().Update(bson.M{"_id": opts.Name}, bson.M{"$set": bson.M{"disabled": disableBool}}) if err != nil { return err } } return nil }
func PlatformUpdate(name string, args map[string]string, w io.Writer) error { var ( provisioner provision.ExtensibleProvisioner platform Platform ok bool ) if provisioner, ok = Provisioner.(provision.ExtensibleProvisioner); !ok { return errors.New("Provisioner is not extensible") } if name == "" { return errors.New("Platform name is required.") } conn, err := db.Conn() if err != nil { return err } defer conn.Close() err = conn.Platforms().Find(bson.M{"_id": name}).One(&platform) if err != nil { if err == mgo.ErrNotFound { return errors.New("Platform doesn't exist.") } return err } if args["dockerfile"] != "" { err = provisioner.PlatformUpdate(name, args, w) if err != nil { return err } var apps []App err = conn.Apps().Find(bson.M{"framework": name}).All(&apps) if err != nil { return err } for _, app := range apps { app.SetUpdatePlatform(true) } } if args["disabled"] != "" { disableBool, err := strconv.ParseBool(args["disabled"]) if err != nil { return err } err = conn.Platforms().Update(bson.M{"_id": name}, bson.M{"$set": bson.M{"disabled": disableBool}}) if err != nil { return err } } return nil }
func PlatformUpdate(name string, args map[string]string, w io.Writer) error { var ( provisioner provision.ExtensibleProvisioner platform Platform ok bool ) if provisioner, ok = Provisioner.(provision.ExtensibleProvisioner); !ok { return errors.New("Provisioner is not extensible") } if name == "" { return errors.New("Platform name is required.") } conn, err := db.Conn() if err != nil { return err } err = conn.Platforms().Find(bson.M{"_id": name}).One(&platform) if err != nil { if err == mgo.ErrNotFound { return errors.New("Platform doesn't exist.") } return err } err = provisioner.PlatformUpdate(name, args, w) if err != nil { return err } var apps []App err = conn.Apps().Find(bson.M{"framework": name}).All(&apps) if err != nil { return err } for _, app := range apps { app.SetUpdatePlatform(true) } return nil }