func (serviceDeploy *ServiceDeployWebSocketController) Deploying(ws *websocket.Conn, serviceIds string) {
	serviceId, err := strconv.ParseInt(serviceIds, 10, 64)
	if err != nil {
		writeStringMessage(ws, fmt.Sprintf("Error ServiceId,%s", err))
		return
	}
	//加载service
	writeStringMessage(ws, "Load Service")
	service := entity.Service{}
	service.Id = serviceId
	err = service.Load()

	if err != nil {
		writeStringMessage(ws, fmt.Sprintf("Error,%s", err))
		return
	}

	switch service.Where {
	case utils.Deploy_On_PaaS:
		serviceDeploy.Deploy2PaaS(ws, service)
	case utils.Deploy_On_Vms:
		serviceDeploy.Deploy2Vms(ws, service)
	default:
		writeStringMessage(ws, fmt.Sprintf("Unknow Platform %s", service.Where))
	}
}
func (this *TemplatesDetailController) List(serviceId int64) {
	service := entity.Service{}
	service.Id = serviceId
	service.Load()

	template, errs := entity.LoadTemplateList(serviceId)
	this.Data["Template"] = template

	if errs != nil {
		this.Data["MessageErr"] = fmt.Sprintf("Errors: %s", errs)
	}

	component, componenterrors := entity.LoadComponentList(serviceId)

	this.Data["Component"] = component
	if componenterrors != nil {
		this.Data["MessageErr"] = fmt.Sprintf("Errors: %s", componenterrors)
	}

	if service.Where == utils.Deploy_On_Vms {
		operation := entity.Operation{}
		operation.Sid = serviceId
		operationerrors := operation.LoadBySid()

		this.Data["Operation"] = operation
		if operationerrors != nil {
			this.Data["MessageErr"] = fmt.Sprintf("Errors: %s", operationerrors)
		}
	}
	this.TplName = "templates/index_detail.tpl"
}
func (this *TemplatesController) DeleteCustomService() {
	id, err := this.GetInt64("id", 0)
	service := entity.Service{}
	if err == nil && id != 0 {
		service.Id = id
		err = service.Load()
		if err == nil {
			serviceDto := entity.ServiceDto{}
			serviceDto.Service = service
			serviceDto.Load()
			if serviceDto.Service.Where == utils.Deploy_On_PaaS {
				serviceDto.OnPaaS.Delete()
			}
			if serviceDto.Service.Where == utils.Deploy_On_Vms {
				serviceDto.OnCustom.Delete()
			}
		}

		err = service.Delete()
		if err != nil {
			this.Data["MessageErr"] = fmt.Sprintf("Errors: %s", err)
		}
	}
	if err != nil {
		this.Data["MessageErr"] = fmt.Sprintf("Errors: %s", err)
	}
}
func (this *TemplatesController) LoadCustomServiceDetail() {
	id, err := this.GetInt64("id", 0)
	service := entity.Service{}
	if err == nil {
		service.Id = id
		err = service.Load()
		serviceDto := entity.ServiceDto{}
		serviceDto.Service = service
		err = serviceDto.Load()
		if err == nil {
			this.Data["json"] = &serviceDto
			this.ServeJSON()
		}
	}
}
func (this *TemplatesDetailController) CheckService(serviceId int64) bool {

	this.Data["ServiceId"] = serviceId
	if serviceId == 0 {
		this.TplName = "templates/404.tpl"
		return false
	}
	service := entity.Service{}
	service.Id = serviceId
	loaderr := service.Load()
	if loaderr != nil {
		this.TplName = "templates/404.tpl"
		return false
	}
	this.Data["Service"] = service
	return true
}
func (this *ServiceDeployController) Get() {
	this.Layout = "index.tpl"
	this.Data["NavBarFocus"] = "templates"
	this.Data["IaaSVersion"] = iaasVersion
	this.Data["DefaultVersion"] = defaultVersion

	this.Data["HOST"] = this.Ctx.Request.Host
	this.Data["AppName"] = globaleAppName
	this.Data["WebSocket"] = serviceDeployWebScoket
	this.Data["ServiceId"] = this.GetString("serviceId")

	serviceId, _ := this.GetInt64("serviceId", 0)
	service := entity.Service{}
	service.Id = serviceId
	loaderr := service.Load()

	if loaderr == nil {
		this.Data["Service"] = service
	}

	this.TplName = "templates/deploy.tpl"
}
var _ = Describe("Testing Service CRUD", func() {
	It("Service Save", func() {
		var service entity.Service = entity.Service{Name: "mysql-service", Description: "provide mysql store service"}
		err := service.Save()
		Expect(err).ToNot(HaveOccurred())

		err = service.Delete()
		Expect(err).ToNot(HaveOccurred())
	})
	It("Service Update", func() {
		service := entity.Service{Name: "mysql-service", Description: "provide mysql store service"}
		id, err := orm.NewOrm().Insert(&service)
		Expect(err).ToNot(HaveOccurred())
		service1 := entity.Service{}
		service1.Id = id
		errs := service1.Load()
		Expect(errs).ToNot(HaveOccurred())
		service1.Name = "New-mysql-service"
		errs = service1.Update()
		Expect(errs).ToNot(HaveOccurred())
		errs = service1.Load()
		Expect(errs).ToNot(HaveOccurred())

		Expect(service1.Name).To(Equal("New-mysql-service"))

		errs = service1.Delete()
		Expect(errs).ToNot(HaveOccurred())

	})
})