Esempio n. 1
0
 def test_start_should_not_throw_ex_when_project_id_none(self, _):
     op = ComputeEngineStartInstanceOperator(
         zone=GCE_ZONE,
         resource_id=RESOURCE_ID,
         task_id='id'
     )
     op.execute(None)
Esempio n. 2
0
 def test_start_should_throw_ex_when_missing_project_id(self, mock_hook):
     with self.assertRaises(AirflowException) as cm:
         op = ComputeEngineStartInstanceOperator(
             project_id="", zone=GCE_ZONE, resource_id=RESOURCE_ID, task_id='id'
         )
         op.execute(None)
     err = cm.exception
     self.assertIn("The required parameter 'project_id' is missing", str(err))
     mock_hook.assert_not_called()
Esempio n. 3
0
 def test_start_should_throw_ex_when_missing_resource_id(self, mock_hook):
     with pytest.raises(AirflowException) as ctx:
         op = ComputeEngineStartInstanceOperator(project_id=GCP_PROJECT_ID,
                                                 zone=GCE_ZONE,
                                                 resource_id="",
                                                 task_id='id')
         op.execute(None)
     err = ctx.value
     assert "The required parameter 'resource_id' is missing" in str(err)
     mock_hook.assert_not_called()
Esempio n. 4
0
 def test_instance_start(self, mock_hook):
     mock_hook.return_value.start_instance.return_value = True
     op = ComputeEngineStartInstanceOperator(project_id=GCP_PROJECT_ID,
                                             zone=GCE_ZONE,
                                             resource_id=RESOURCE_ID,
                                             task_id='id')
     result = op.execute(None)
     mock_hook.assert_called_once_with(api_version='v1',
                                       gcp_conn_id='google_cloud_default')
     mock_hook.return_value.start_instance.assert_called_once_with(
         zone=GCE_ZONE, resource_id=RESOURCE_ID, project_id=GCP_PROJECT_ID)
     self.assertTrue(result)
Esempio n. 5
0
 def test_instance_start_with_templates(self, _):
     dag_id = 'test_dag_id'
     args = {'start_date': DEFAULT_DATE}
     self.dag = DAG(dag_id, default_args=args)  # pylint: disable=attribute-defined-outside-init
     op = ComputeEngineStartInstanceOperator(project_id='{{ dag.dag_id }}',
                                             zone='{{ dag.dag_id }}',
                                             resource_id='{{ dag.dag_id }}',
                                             gcp_conn_id='{{ dag.dag_id }}',
                                             api_version='{{ dag.dag_id }}',
                                             task_id='id',
                                             dag=self.dag)
     ti = TaskInstance(op, DEFAULT_DATE)
     ti.render_templates()
     self.assertEqual(dag_id, getattr(op, 'project_id'))
     self.assertEqual(dag_id, getattr(op, 'zone'))
     self.assertEqual(dag_id, getattr(op, 'resource_id'))
     self.assertEqual(dag_id, getattr(op, 'gcp_conn_id'))
     self.assertEqual(dag_id, getattr(op, 'api_version'))
Esempio n. 6
0
GCE_INSTANCE = os.environ.get('GCE_INSTANCE', 'testinstance')
# [END howto_operator_gce_args_common]

GCE_SHORT_MACHINE_TYPE_NAME = os.environ.get('GCE_SHORT_MACHINE_TYPE_NAME',
                                             'n1-standard-1')

with models.DAG(
        'example_gcp_compute',
        schedule_interval=None,  # Override to match your needs
        start_date=days_ago(1),
        tags=['example'],
) as dag:
    # [START howto_operator_gce_start]
    gce_instance_start = ComputeEngineStartInstanceOperator(
        project_id=GCP_PROJECT_ID,
        zone=GCE_ZONE,
        resource_id=GCE_INSTANCE,
        task_id='gcp_compute_start_task')
    # [END howto_operator_gce_start]
    # Duplicate start for idempotence testing
    # [START howto_operator_gce_start_no_project_id]
    gce_instance_start2 = ComputeEngineStartInstanceOperator(
        zone=GCE_ZONE,
        resource_id=GCE_INSTANCE,
        task_id='gcp_compute_start_task2')
    # [END howto_operator_gce_start_no_project_id]
    # [START howto_operator_gce_stop]
    gce_instance_stop = ComputeEngineStopInstanceOperator(
        project_id=GCP_PROJECT_ID,
        zone=GCE_ZONE,
        resource_id=GCE_INSTANCE,