| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent c937338 commit ebd053e
3 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -9,6 +9,7 @@ API examples | |||
| 9 | 9 | gl_objects/emojis | |
| 10 | 10 | gl_objects/badges | |
| 11 | 11 | gl_objects/branches | |
| 12 | + gl_objects/clusters | ||
| 12 | 13 | gl_objects/messages | |
| 13 | 14 | gl_objects/commits | |
| 14 | 15 | gl_objects/deploy_keys | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -743,6 +743,51 @@ class GroupBoardManager(CRUDMixin, RESTManager): | |||
| 743 | 743 | _create_attrs = (("name",), tuple()) | |
| 744 | 744 | ||
| 745 | 745 | ||
| 746 | + class GroupCluster(SaveMixin, ObjectDeleteMixin, RESTObject): | ||
| 747 | + pass | ||
| 748 | + | ||
| 749 | + | ||
| 750 | + class GroupClusterManager(CRUDMixin, RESTManager): | ||
| 751 | + _path = "/groups/%(group_id)s/clusters" | ||
| 752 | + _obj_cls = GroupCluster | ||
| 753 | + _from_parent_attrs = {"group_id": "id"} | ||
| 754 | + _create_attrs = ( | ||
| 755 | + ("name", "platform_kubernetes_attributes",), | ||
| 756 | + ("domain", "enabled", "managed", "environment_scope",), | ||
| 757 | + ) | ||
| 758 | + _update_attrs = ( | ||
| 759 | + tuple(), | ||
| 760 | + ( | ||
| 761 | + "name", | ||
| 762 | + "domain", | ||
| 763 | + "management_project_id", | ||
| 764 | + "platform_kubernetes_attributes", | ||
| 765 | + "environment_scope", | ||
| 766 | + ), | ||
| 767 | + ) | ||
| 768 | + | ||
| 769 | + @exc.on_http_error(exc.GitlabStopError) | ||
| 770 | + def create(self, data, **kwargs): | ||
| 771 | + """Create a new object. | ||
| 772 | + | ||
| 773 | + Args: | ||
| 774 | + data (dict): Parameters to send to the server to create the | ||
| 775 | + resource | ||
| 776 | + **kwargs: Extra options to send to the server (e.g. sudo or | ||
| 777 | + 'ref_name', 'stage', 'name', 'all') | ||
| 778 | + | ||
| 779 | + Raises: | ||
| 780 | + GitlabAuthenticationError: If authentication is not correct | ||
| 781 | + GitlabCreateError: If the server cannot perform the request | ||
| 782 | + | ||
| 783 | + Returns: | ||
| 784 | + RESTObject: A new instance of the manage object class build with | ||
| 785 | + the data sent by the server | ||
| 786 | + """ | ||
| 787 | + path = "%s/user" % (self.path) | ||
| 788 | + return CreateMixin.create(self, data, path=path, **kwargs) | ||
| 789 | + | ||
| 790 | + | ||
| 746 | 791 | class GroupCustomAttribute(ObjectDeleteMixin, RESTObject): | |
| 747 | 792 | _id_attr = "key" | |
| 748 | 793 | ||
@@ -1150,6 +1195,7 @@ class Group(SaveMixin, ObjectDeleteMixin, RESTObject): | |||
| 1150 | 1195 | ("projects", "GroupProjectManager"), | |
| 1151 | 1196 | ("subgroups", "GroupSubgroupManager"), | |
| 1152 | 1197 | ("variables", "GroupVariableManager"), | |
| 1198 | + ("clusters", "GroupClusterManager"), | ||
| 1153 | 1199 | ) | |
| 1154 | 1200 | ||
| 1155 | 1201 | @cli.register_custom_action("Group", ("to_project_id",)) | |
@@ -1599,6 +1645,51 @@ class ProjectBranchManager(NoUpdateMixin, RESTManager): | |||
| 1599 | 1645 | _create_attrs = (("branch", "ref"), tuple()) | |
| 1600 | 1646 | ||
| 1601 | 1647 | ||
| 1648 | + class ProjectCluster(SaveMixin, ObjectDeleteMixin, RESTObject): | ||
| 1649 | + pass | ||
| 1650 | + | ||
| 1651 | + | ||
| 1652 | + class ProjectClusterManager(CRUDMixin, RESTManager): | ||
| 1653 | + _path = "/projects/%(project_id)s/clusters" | ||
| 1654 | + _obj_cls = ProjectCluster | ||
| 1655 | + _from_parent_attrs = {"project_id": "id"} | ||
| 1656 | + _create_attrs = ( | ||
| 1657 | + ("name", "platform_kubernetes_attributes",), | ||
| 1658 | + ("domain", "enabled", "managed", "environment_scope",), | ||
| 1659 | + ) | ||
| 1660 | + _update_attrs = ( | ||
| 1661 | + tuple(), | ||
| 1662 | + ( | ||
| 1663 | + "name", | ||
| 1664 | + "domain", | ||
| 1665 | + "management_project_id", | ||
| 1666 | + "platform_kubernetes_attributes", | ||
| 1667 | + "environment_scope", | ||
| 1668 | + ), | ||
| 1669 | + ) | ||
| 1670 | + | ||
| 1671 | + @exc.on_http_error(exc.GitlabStopError) | ||
| 1672 | + def create(self, data, **kwargs): | ||
| 1673 | + """Create a new object. | ||
| 1674 | + | ||
| 1675 | + Args: | ||
| 1676 | + data (dict): Parameters to send to the server to create the | ||
| 1677 | + resource | ||
| 1678 | + **kwargs: Extra options to send to the server (e.g. sudo or | ||
| 1679 | + 'ref_name', 'stage', 'name', 'all') | ||
| 1680 | + | ||
| 1681 | + Raises: | ||
| 1682 | + GitlabAuthenticationError: If authentication is not correct | ||
| 1683 | + GitlabCreateError: If the server cannot perform the request | ||
| 1684 | + | ||
| 1685 | + Returns: | ||
| 1686 | + RESTObject: A new instance of the manage object class build with | ||
| 1687 | + the data sent by the server | ||
| 1688 | + """ | ||
| 1689 | + path = "%s/user" % (self.path) | ||
| 1690 | + return CreateMixin.create(self, data, path=path, **kwargs) | ||
| 1691 | + | ||
| 1692 | + | ||
| 1602 | 1693 | class ProjectCustomAttribute(ObjectDeleteMixin, RESTObject): | |
| 1603 | 1694 | _id_attr = "key" | |
| 1604 | 1695 | ||
@@ -3943,6 +4034,7 @@ class Project(SaveMixin, ObjectDeleteMixin, RESTObject): | |||
| 3943 | 4034 | ("triggers", "ProjectTriggerManager"), | |
| 3944 | 4035 | ("variables", "ProjectVariableManager"), | |
| 3945 | 4036 | ("wikis", "ProjectWikiManager"), | |
| 4037 | + ("clusters", "ProjectClusterManager"), | ||
| 3946 | 4038 | ) | |
| 3947 | 4039 | ||
| 3948 | 4040 | @cli.register_custom_action("Project", ("submodule", "branch", "commit_sha")) | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -503,6 +503,46 @@ | |||
| 503 | 503 | env.delete() | |
| 504 | 504 | assert len(admin_project.environments.list()) == 0 | |
| 505 | 505 | ||
| 506 | + # Project clusters | ||
| 507 | + admin_project.clusters.create( | ||
| 508 | + { | ||
| 509 | + "name": "cluster1", | ||
| 510 | + "platform_kubernetes_attributes": { | ||
| 511 | + "api_url": "http://url", | ||
| 512 | + "token": "tokenval", | ||
| 513 | + }, | ||
| 514 | + } | ||
| 515 | + ) | ||
| 516 | + clusters = admin_project.clusters.list() | ||
| 517 | + assert len(clusters) == 1 | ||
| 518 | + cluster = clusters[0] | ||
| 519 | + cluster.platform_kubernetes_attributes = {"api_url": "http://newurl"} | ||
| 520 | + cluster.save() | ||
| 521 | + cluster = admin_project.clusters.list()[0] | ||
| 522 | + assert cluster.platform_kubernetes["api_url"] == "http://newurl" | ||
| 523 | + cluster.delete() | ||
| 524 | + assert len(admin_project.clusters.list()) == 0 | ||
| 525 | + | ||
| 526 | + # Group clusters | ||
| 527 | + group1.clusters.create( | ||
| 528 | + { | ||
| 529 | + "name": "cluster1", | ||
| 530 | + "platform_kubernetes_attributes": { | ||
| 531 | + "api_url": "http://url", | ||
| 532 | + "token": "tokenval", | ||
| 533 | + }, | ||
| 534 | + } | ||
| 535 | + ) | ||
| 536 | + clusters = group1.clusters.list() | ||
| 537 | + assert len(clusters) == 1 | ||
| 538 | + cluster = clusters[0] | ||
| 539 | + cluster.platform_kubernetes_attributes = {"api_url": "http://newurl"} | ||
| 540 | + cluster.save() | ||
| 541 | + cluster = group1.clusters.list()[0] | ||
| 542 | + assert cluster.platform_kubernetes["api_url"] == "http://newurl" | ||
| 543 | + cluster.delete() | ||
| 544 | + assert len(group1.clusters.list()) == 0 | ||
| 545 | + | ||
| 506 | 546 | # project events | |
| 507 | 547 | admin_project.events.list() | |
| 508 | 548 | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments