コード例 #1
0
ファイル: models.py プロジェクト: szaydel/ralph
class DHCPEntry(TimeTrackable):
    mac = MACAddressField(verbose_name=_("MAC address"), unique=False)
    ip = db.CharField(verbose_name=_("IP address"), blank=True, unique=False,
                      default="", max_length=len('xxx.xxx.xxx.xxx'))

    class Meta:
        verbose_name = _("DHCP entry")
        verbose_name_plural = _("DHCP entries")
コード例 #2
0
ファイル: models.py プロジェクト: szaydel/ralph
class Deployment(Auditable):
    device = db.ForeignKey(Device)
    mac = MACAddressField()
    status = db.IntegerField(choices=DeploymentStatus(),
                             default=DeploymentStatus.open.id)
    ip = db.IPAddressField(verbose_name=_("IP address"))
    hostname = db.CharField(verbose_name=_("hostname"),
                            max_length=255,
                            unique=True)
    preboot = db.ForeignKey(Preboot,
                            verbose_name=_("preboot"),
                            null=True,
                            on_delete=db.SET_NULL)
    venture = db.ForeignKey('business.Venture',
                            verbose_name=_("venture"),
                            null=True,
                            on_delete=db.SET_NULL)
    venture_role = db.ForeignKey('business.VentureRole',
                                 null=True,
                                 verbose_name=_("role"),
                                 on_delete=db.SET_NULL)
    done_plugins = db.TextField(verbose_name=_("done plugins"),
                                blank=True,
                                default='')
    is_running = db.BooleanField(
        verbose_name=_("is running"),
        default=False)  # a database-level lock for deployment-related tasks
    puppet_certificate_revoked = db.BooleanField(default=False)

    class Meta:
        verbose_name = _("deployment")
        verbose_name_plural = _("deployments")

    def create_issue(self):
        bowner = get_business_owner(self.device)
        towner = get_technical_owner(self.device)
        params = dict(
            ci_uid=CI.get_uid_by_content_object(self.device),
            description='Please accept in order to continue deployment.',
            summary='%s - acceptance request for deployment' %
            unicode(self.device),
            technical_assignee=towner,
            business_assignee=bowner,
        )
        super(Deployment, self).create_issue(params, DEFAULT_ASSIGNEE)

    def synchronize_status(self, new_status):
        ch = DeploymentStatus.from_id(new_status)
        transition_id = bugtracker_transition_ids.get(ch.name)
        self.transition_issue(transition_id)
コード例 #3
0
ファイル: models_component.py プロジェクト: szaydel/ralph
class Ethernet(Component):
    label = db.CharField(verbose_name=_("name"), max_length=255)
    mac = MACAddressField(verbose_name=_("MAC address"), unique=True)
    speed = db.PositiveIntegerField(verbose_name=_("speed"),
                                    choices=EthernetSpeed(),
                                    default=EthernetSpeed.unknown.id)

    class Meta:
        verbose_name = _("ethernet")
        verbose_name_plural = _("ethernets")
        ordering = ('device', 'mac')

    def __unicode__(self):
        return '{} ({})'.format(self.label, self.mac)
コード例 #4
0
ファイル: models.py プロジェクト: srikanth4372/sample
class DHCPEntry(TimeTrackable):
    mac = MACAddressField(verbose_name=_("MAC address"), unique=True)
    ip = db.CharField(verbose_name=_("IP address"), blank=True, unique=False,
                      default="", max_length=len('xxx.xxx.xxx.xxx'))
    number = db.BigIntegerField(
        _("IP address"), help_text=_("Presented as int."), editable=False,
        unique=False, default=0
    )

    class Meta:
        verbose_name = _("DHCP entry")
        verbose_name_plural = _("DHCP entries")

    def save(self, *args, **kwargs):
        self.number = int(ipaddr.IPAddress(self.ip))
        super(DHCPEntry, self).save(*args, **kwargs)
コード例 #5
0
ファイル: models.py プロジェクト: rainsome-org1/ralph
class AbstractDeployment(db.Model):
    user = models.ForeignKey('auth.User',
                             verbose_name=_("user"),
                             null=True,
                             blank=True,
                             default=None,
                             on_delete=models.SET_NULL)
    status_lastchanged = models.DateTimeField(
        default=datetime.datetime.now,
        verbose_name=_("last status change"),
        help_text=_("the date of the last status change"),
    )
    device = db.ForeignKey(Device)
    mac = MACAddressField()
    status = db.IntegerField(
        choices=DeploymentStatus(),
        default=DeploymentStatus.open.id,
    )
    ip = db.IPAddressField(_("IP address"))
    preboot = db.ForeignKey(
        Preboot,
        verbose_name=_("preboot"),
        null=True,
        on_delete=db.SET_NULL,
    )
    venture = db.ForeignKey(
        'business.Venture',
        verbose_name=_("venture"),
        null=True,
        on_delete=db.SET_NULL,
    )
    venture_role = db.ForeignKey(
        'business.VentureRole',
        null=True,
        verbose_name=_("role"),
        on_delete=db.SET_NULL,
    )
    done_plugins = db.TextField(
        _("done plugins"),
        blank=True,
        default='',
    )
    is_running = db.BooleanField(
        _("is running"),
        default=False,
    )  # a database-level lock for deployment-related tasks
    mass_deployment = db.ForeignKey(
        MassDeployment,
        verbose_name=_("initiated by mass deployment"),
        null=True,
        blank=True,
        default=None,
        on_delete=models.SET_NULL,
        editable=False)

    class Meta:
        abstract = True

    def __unicode__(self):
        return "{} as {}/{} - {}".format(
            self.hostname,
            self.venture.path if self.venture else '-',
            self.venture_role.path if self.venture_role else '-',
            self.get_status_display(),
        )